{"version":3,"file":"js/chunk-vendors.js?00f54d5b7e3124ee","mappings":";;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB;AACnH,kBAAkB,mBAAO,CAAC,KAAW;AACrC,2BAA2B,mBAAO,CAAC,KAA6B;AAChE,gBAAgB,mBAAO,CAAC,KAAS;AACjC,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAQ;AAC/B,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF,YAAY,aAAa;AACzB,YAAY,gBAAgB;AAC5B,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC,SAAS,aAAa;AACnF;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB,MAAM,sBAAsB;AAC9F;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F;AAC3F,gBAAgB,WAAW;AAC3B;AACA,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA;;;;;;;ACjPA,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACrBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC3HW;;AAEZ,2BAA2B,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG;AAC1E,mCAAmC,KAAK,sBAAsB,aAAa,EAAE;;AAE7E;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO,GAAG,iCAAiC;AACpE;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,OAAO,GAAG,mBAAmB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,mBAAmB,GAAG,IAAI;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC3La;AACb,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;;AAEA;AACA;AACA;AACA;;;;;;;;ACRA,aAAa,mBAAO,CAAC,KAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC7Ca;;AAEb,iBAAiB,mBAAO,CAAC,KAAgB;AACzC,cAAc,mBAAO,CAAC,KAAgB;AACtC,yBAAyB,mBAAO,CAAC,KAAmB;AACpD,wBAAwB,mBAAO,CAAC,KAAkB;AAClD,4BAA4B,mBAAO,CAAC,KAAsB;;AAE1D;;AAEA,WAAW,aAAa;AACxB;AACA,eAAe,mCAAmC;;AAElD,YAAY,qBAAqB;;AAEjC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,IAAqB;AAC7C;AACA;AACA,eAAe,YAAY,wBAAwB,gBAAgB,YAAY;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA,+CAA+C,0CAA0C,GAAG,KAAK,IAAI,WAAW;AAChH;AACA;AACA,yCAAyC,QAAQ,MAAM,KAAK;AAC5D;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACxBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC3FY;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D,+BAA+B;;;;;;;;ACH/B;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/GY;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;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;AACA;AACA;;AAEA;;;;;;;;;ACpCa;AACb;AACA,eAAe,mBAAO,CAAC,KAAwB;AAC/C,6BAA6B,mBAAO,CAAC,KAAuC;AAC5E,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,WAAW,mBAAO,CAAC,KAAmB;AACtC,4BAA4B,mBAAO,CAAC,IAAsC;AAC1E,gBAAgB,mBAAO,CAAC,KAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;ACnFA,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;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;;AAEA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvBA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACxFY;;AAEb,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxDA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzID;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,KAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACXA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3ED,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;;AAEA;;;;;;;;;ACLA,WAAW,mBAAO,CAAC,IAAS;AAC5B,gBAAgB,mBAAO,CAAC,KAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,gCAAgC,iCAAa,UAAU,qEAAqE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA,uBAAuB,iCAAa;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA,QAAQ,6BAAY;AACpB,yBAAyB,wBAAO;AAChC,QAAQ,6BAAY;AACpB;AACA;AACA,SAAS,sCAAK;AACd,wBAAwB,2BAA2B;AACnD;AACA,YAAY,6BAAY;AACxB,6BAA6B,wBAAO;AACpC,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd,sBAAsB,MAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,sDAAsD,CAAe,IAAI,CAAa;AACtF;AACA;AACA;AACA,kBAAkB,sCAAK;AACvB,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA,0BAA0B,wBAAO;AACjC,yBAAyB,wBAAO;AAChC,kBAAkB,sCAAK;AACvB,qBAAqB,wBAAO;AAC5B,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB,SAAS,sCAAK;AACd;AACA;AACA,SAAS,sCAAK;AACd,sBAAsB,MAAI;AAC1B;AACA;AACA,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd,sBAAsB,MAAI;AAC1B;AACA;AACA;AACA;AACA,0BAA0B,wBAAO;AACjC,yBAAyB,wBAAO;AAChC,kBAAkB,sCAAK;AACvB,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAK;AACnB;AACA;AACA,SAAS,sCAAK;AACd;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,aAAa,sCAAK;AAClB,0BAA0B,MAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,sBAAsB,sCAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sCAAK;AAC3B,SAAS,sCAAK;AACd;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA,cAAc,sCAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA,sBAAsB,sCAAK;AAC3B;AACA,eAAe,sCAAK;AACpB,yBAAyB,sCAAK;AAC9B;AACA,QAAQ,sCAAK;AACb,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA,oBAAoB,qBAAqB;AACzC,QAAQ,2BAAM;AACd;AACA;AACA,SAAS,sCAAK;AACd,wBAAwB,2BAA2B;AACnD,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;;;ACxjBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACoI;AACvB;AACvB;AACwB;AAC3C;AAClB;AACsB;AAC+C;AACtH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,CAAC,CAAC,8BAAa;AACQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B,wBAAwB,qBAAI;AAC5B;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,4BAA4B,iGAAiG;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA,mDAAmD,sCAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,qBAAqB,sCAAiB,oBAAoB,sCAAiB;AAC3E;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,sCAAiB,8BAA8B,sCAAiB;AACtH;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAiB;AACpC;AACA;AACA;AACA;AACA,0BAA0B,sCAAiB;AAC3C;AACA,oCAAoC,sCAAiB;AACrD;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA,YAAY,wBAAO;AACnB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAAU,iBAAiB,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAiB;AACpD;AACA;AACA;AACA;AACA,2CAA2C,sCAAiB;AAC5D;AACA;AACA,kBAAkB,sCAAiB,sBAAsB,sCAAiB;AAC1E;AACA;AACA,oCAAoC,sCAAiB;AACrD;AACA;AACA,QAAQ,+BAAU,iBAAiB,iDAAiD;AACpF;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB;AACjC;AACA,0DAA0D,4BAA4B;AACtF;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB,gBAAgB,sCAAiB;AACvE;AACA;AACA,qBAAqB,sCAAiB,+BAA+B,sCAAiB;AACtF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD,oBAAoB,sCAAiB;AACrC;AACA;AACA,kCAAkC,sCAAiB;AACnD;AACA,yDAAyD,mCAAmC,oBAAoB;AAChH;AACA;AACA;AACA;AACA;AACA,4DAA4D,uBAAuB;AACnF;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA,qCAAqC,4BAAM;AAC3C;AACA,iBAAiB,sCAAiB;AAClC;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,iDAAiD,sCAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,sDAAsD,iEAAiE;AACvH;AACA,YAAY,+BAAU,iBAAiB,4FAA4F;AACnI;AACA;AACA,YAAY,+BAAU,iBAAiB,yDAAyD;AAChG;AACA;AACA;AACA;AACA,kBAAkB,sCAAiB;AACnC,uDAAuD,6BAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAO,6CAA6C,sCAAiB;AACrH,2CAA2C,+BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,sFAAsF,6BAAQ;AAC9F;AACA;AACA;AACA;AACA,6BAA6B,4BAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,4BAA4B,6BAAQ;AACpC;AACA;AACA,+CAA+C,wCAAwC,gBAAgB;AACvG;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAkB;AAC/C;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA,sCAAsC,sCAAiB;AACvD;AACA;AACA;AACA,wBAAwB,mCAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sCAAiB;AAC1D;AACA;AACA,YAAY,wBAAO,oCAAoC,sCAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA,gBAAgB,gCAAW;AAC3B;AACA;AACA,aAAa,sCAAiB;AAC9B,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uDAAuD;AAChH;AACA;AACA;AACA;AACA,QAAQ,+BAAU,iBAAiB,gDAAgD;AACnF,QAAQ,+BAAU,iBAAiB,uDAAuD;AAC1F;AACA,oCAAoC,sCAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2CAA2C,sCAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B,6DAA6D,uEAAuE;AACpI;AACA;AACA;AACA;AACA,4DAA4D,wCAAwC,kBAAkB;AACtH,uCAAuC,4BAAM,GAAG,0DAA0D;AAC1G;AACA,iBAAiB,sCAAiB;AAClC,gBAAgB,4BAAO;AACvB;AACA;AACA;AACA,gBAAgB,4BAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB,iCAAiC,sCAAiB;AAClD,gBAAgB,gCAAW;AAC3B;AACA;AACA;AACA,YAAY,6BAAQ;AACpB,iCAAiC,sCAAiB;AAClD,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB,sDAAsD,wBAAwB;AAC9E;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA,sBAAsB,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAiB;AACrC,wBAAwB,wBAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sCAAiB;AAC/C,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA,8CAA8C,sCAAiB;AAC/D;AACA,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sCAAiB;AACvE;AACA;AACA;AACA,wBAAwB,2BAAM;AAC9B;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,0EAA0E,sCAAiB;AAC3F,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,UAAU,+BAAU,kBAAkB;AAC5F;AACA;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,SAAS,+BAAU,iBAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sCAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C,iCAAiC,sCAAiB;AAClD;AACA;AACA,iCAAiC,sCAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,iCAAiC,sCAAiB;AAClD;AACA;AACA,sBAAsB,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB,YAAY,gCAAW;AACvB,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB,aAAa,sCAAiB;AAC9B,YAAY,gCAAW;AACvB;AACA;AACA,YAAY,gCAAW,IAAI,sCAAiB;AAC5C;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,QAAQ,gCAAW;AACnB,aAAa,sCAAiB;AAC9B,YAAY,gCAAW;AACvB;AACA,aAAa,sCAAiB,sBAAsB,sCAAiB;AACrE;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA,YAAY,2BAAM;AAClB;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,6CAA6C,sCAAiB;AAC9D;AACA;AACA;AACA,QAAQ,aAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sCAAiB;AAC7E,iBAAiB,sCAAiB;AAClC;AACA;AACA,8BAA8B,6BAAQ;AACtC;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sCAAiB;AAC5D;AACA;AACA,wBAAwB,gCAAW;AACnC,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA,4EAA4E,8BAAa;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB,kBAAkB,wBAAwB;AACnF;AACA;AACA;AACA;AACA;AACA,kEAAkE,8BAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,8BAAa;AACzF;AACA;AACA;AACA,qEAAqE,8BAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAiB;AAClD;AACA,gCAAgC,gCAAW;AAC3C;AACA;AACA;AACA;AACA,4BAA4B,gCAAW;AACvC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,6CAA6C,sCAAiB;AAC9D;AACA;AACA,YAAY,6BAAQ;AACpB,uCAAuC,sCAAiB;AACxD;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB,YAAY,gCAAW;AACvB,wCAAwC,sCAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,+BAAU,IAAI;AACtB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,QAAQ,4BAAO,GAAG,0BAA0B,EAAE,0BAAY;AAC1D;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,sCAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0BAAS;AACO;AAClB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,iBAAiB,QAAQ;AACzB;AACA;AACA,4BAA4B,iCAAa,UAAU,6BAA6B;AAChF;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,aAAa;AACb;AACA,4CAA4C;AAC5C,4BAA4B,uBAAuB;AACnD;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AAClC,iBAAiB,QAAQ;AACzB;AACA;AACA,4BAA4B,iCAAa,UAAU,+BAA+B;AAClF;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,aAAa;AACb,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,YAAY,uBAAuB;AACjF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAiB;AAC3C,2BAA2B,sCAAiB;AAC5C,2BAA2B,sCAAiB;AAC5C,iCAAiC,sCAAiB;AAClD,iCAAiC,sCAAiB;AAClD,iCAAiC,sCAAiB;AAClD,4BAA4B,sCAAiB,wCAAwC;AACrF,qCAAqC,sCAAiB;AACtD,cAAc;AACd,4BAA4B,sCAAiB;AAC7C,0BAA0B,sCAAiB;AAC3C,wBAAwB,sCAAiB;AACzC,yBAAyB,sCAAiB;AAC1C,0BAA0B,sCAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,aAAa;AACb,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;ACh9DvC,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;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,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;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,2CAA2C;;;;;;;;;ACha9B;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,iBAAiB;AAC1B;AACA,CAAC;;;;;;;;;ACnBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,cAAc,mBAAO,CAAC,KAAiB;AACvC;AACA,kBAAe;AACf;;;;;;;;ACNa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;AC3ChB,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,6BAA6B,2BAA2B,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;;;AClQjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,kDAAkD;AAC5F;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,kDAAkD;AAC5F;AACA;AACA;AACA,sCAAsC,eAAe;AACrD;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,8FAA8F;AACxI;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,8FAA8F;AACxI;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,2BAA2B,IAAI,mCAAmC;AACtF,UAAU,mCAAmC,IAAI,4CAA4C;AAC7F,UAAU,4CAA4C,IAAI,oCAAoC;AAC9F,UAAU,oCAAoC,IAAI;AAClD;AACA,qBAAqB,oBAAoB,IAAI,6BAA6B,IAAI,qBAAqB,IAAI,YAAY;AACnH;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA,gCAAgC,0EAA0E;AAC1G;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC,oCAAoC,kFAAkF;AACtH;AACA;AACA;AACA;AACA,gCAAgC,0DAA0D;AAC1F;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC,oCAAoC,kEAAkE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,SAAS;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,QAAQ;AACpB,YAAY,SAAS;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,YAAY;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;AC5XhB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACiB;AAClB;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnTA,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AAC2F;AAC3F;AACA;AACA;AACA;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;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,yCAAyC;AACzC,+BAA+B;AAC/B,YAAY;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACC;AAChB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,yCAAyC;AACzC,+BAA+B;AAC/B,YAAY;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,yCAAyC;AACzC,+BAA+B;AAC/B,YAAY;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,mCAAc;AACtB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,mCAAc;AACtB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;;;AC5d7B;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;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,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gDAAgD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;;;AC/9Bc;AACd;AACA;AACO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,mCAAmC;AACnC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS,QAAQ,SAAS;AACnD;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,aAAa;AACpE;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;ACvW1B,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AAC6D;AACb;AACN;AACG;AACA;AACoB;AACjE;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,MAAM;AACrB;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B;AACA;AACA,wBAAwB;AACxB,qBAAqB,SAAS;AAC9B;AACA,iBAAiB,WAAW;AAC5B;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB,2BAA2B;AAC3B,4BAA4B;AAC5B,kBAAkB,WAAW;AAC7B,mBAAmB,WAAW;AAC9B,qBAAqB,WAAW;AAChC,sBAAsB,WAAW;AACjC;AACA,sBAAsB,WAAW;AACjC,uBAAuB,WAAW;AAClC,yBAAyB,WAAW;AACpC,0BAA0B,WAAW;AACrC;AACA,eAAe,IAAI;AACnB;AACA;AACA,CAAC,CAAC,cAAc;AACK;;;AC7PrB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AACI;AACvD;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACO;;;ACtMvB,IAAI,cAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACwC;AACa;AACM;AACd;AACA;AACU;AACvD;AACA;AACA;AACA;AACA,IAAI,cAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,wBAAwB,WAAW;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,uCAAuC,SAAS;AAChD;AACA,sEAAsE,aAAa;AACnF;AACA,iIAAiI,WAAW;AAC5I;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA,gDAAgD,WAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC,CAAC,SAAS;AACO;;;ACnOlB;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvDA,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AACN;AAC8C;AACmB;AAC9G;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,qCAAqC,iBAAiB;AACtD,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC,0BAA0B,oBAAoB;AAC9C;AACA,4BAA4B,aAAa;AACzC;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACO;;;ACnLvB,IAAI,qBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AACK;AACxD;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,MAAM;AAC5B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACQ;;;ACrHxB,IAAI,sBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AAC2C;AAC9F;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACgB;;;;;AC7HhC,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,gBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACsF;AACrC;AACjD;AACA;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP,4BAA4B,8BAAO;AACnC;AACA,sBAAsB,8BAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,qBAAqB;AAChC,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0CAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5JA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,aAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACwE;AAChB;AACZ;AACmB;AACpB;AAC3C;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,cAAc;AAC/B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,eAAe;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA;AACA,CAAC,CAAC,8BAAa;AACC;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACmB;;;AC9IpB,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AACjB;AACX;AACS;AACL;AACL;AAC3C;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ,CAAC,qBAAqB;AACtC;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO;AACf;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,iEAAiE,EAAE,SAAS;AAC9F;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,sEAAsE,EAAE,MAAM;AAChG;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;;;AC1L1B;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,iBAAiB;AAC5B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChHA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7FA;AAC8C;AACF;AACW;AACX;AAC+C;AAC7B;AACS;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,mBAAmB;AAC9B;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,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,KAAK;AAChB,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;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,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;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,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA,yBAAyB;AACzB,mDAAmD,2BAA2B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AAC/B,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA,wBAAwB,8BAA8B;AACtD;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B,WAAW,gBAAgB;AAC3B,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,MAAM;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,yBAAyB;AACzB,yBAAyB;AACzB,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB,oBAAoB,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,KAAK;AACpD;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA,kCAAkC,aAAa,oBAAoB,yCAAyC;AAC5G;AACA;AACA;AACA,kCAAkC,eAAe,oBAAoB,kBAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB,mBAAmB,eAAe,mBAAmB,aAAa;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB,oBAAoB,oBAAoB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;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,OAAO;AACrB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe;AAC7B,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;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,SAAS;AACvB,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB;AACA;AACO;AACP,cAAc;AACd;AACA,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,+CAA+C;AAC7E,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,+CAA+C;AAC7E,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,YAAY;AACZ,YAAY;AACZ,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,kBAAkB,KAAK,aAAa,oBAAoB;AACxD;AACA;AACA,wBAAwB,KAAK;AAC7B,kBAAkB,KAAK,aAAa,oBAAoB;AACxD;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,SAAS;AAC3G;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD,cAAc,KAAK;AACnB;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,SAAS,2BAA2B;AACpC,YAAY,2BAA2B;AACvC,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,SAAS,2BAA2B;AACpC,YAAY,2BAA2B;AACvC,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA,gCAAgC;AAChC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,+BAA+B;AAC/B;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,SAAS,2BAA2B;AACpC,YAAY,2BAA2B;AACvC,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,yDAAyD,YAAY;AACrE,mFAAmF,YAAY;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe;AAC9B,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,mCAAmC,KAAK,iCAAiC,KAAK;AAC9E;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,mCAAmC,KAAK,iCAAiC,KAAK;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe;AAC9B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe;AAC9B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACA;AACA,wBAAwB;AACxB,+BAA+B;AAC/B;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACtB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,YAAY;AACzC,4CAA4C,KAAK;AACjD,gCAAgC;AAChC,gCAAgC;AAChC,0BAA0B,KAAK;AAC/B;AACA,kCAAkC,aAAa,wBAAwB,+FAA+F;AACtK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA,gCAAgC,wCAAwC,KAAK;AAC7E,gCAAgC,sCAAsC,KAAK;AAC3E,0BAA0B,KAAK;AAC/B;AACA,kCAAkC,aAAa,wBAAwB,+FAA+F;AACtK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,4BAA4B;AAC5B,gCAAgC,yCAAyC,KAAK;AAC9E,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,4GAA4G;AACpL;AACA,gCAAgC,uCAAuC,KAAK;AAC5E,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gGAAgG;AACxK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC,yCAAyC,KAAK;AAC9E,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gGAAgG;AACxK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC,yCAAyC,KAAK;AAC9E,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gGAAgG;AACxK;AACA;AACA;AACA,kCAAkC,aAAa,wBAAwB,gBAAgB;AACvF;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1rHA,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,gBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;;;ACjE7B,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACD;AACG;AAC9C;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,iBAAiB;AACrC;AACA;AACA,CAAC,CAAC,8BAAa;AACK;;;AC/DpB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACkD;AACC;AACO;AAC3D;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,MAAM;AAC5B,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC,CAAC,cAAc;AACc;;;ACnG9B,IAAI,yBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACA;AACQ;AACpD;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA;AACA,CAAC,CAAC,8BAAa;AACY;AAC3B;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA;AACA,CAAC;AAC8B;AAC/B;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA;AACA,CAAC;AACmC;;;AC9GK;AAC6F;AAChE;AACnB;AACN;AAC2B;AAClB;AACtD;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,yEAAyE;AACpF;AACA;AACO;AACP;AACA;AACA,6BAA6B,eAAe,sBAAsB,cAAc;AAChF,uCAAuC,qBAAqB;AAC5D;AACA,iCAAiC,SAAS;AAC1C,uCAAuC,oBAAoB;AAC3D;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,yEAAyE;AACpF;AACA;AACO;AACP;AACA;AACA,6BAA6B,eAAe,sBAAsB,cAAc;AAChF,uCAAuC,qBAAqB;AAC5D;AACA,iCAAiC,SAAS;AAC1C,uCAAuC,oBAAoB;AAC3D;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,mCAAmC,oBAAoB;AACvD;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,mCAAmC,oBAAoB;AACvD;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,gCAAgC,oBAAoB;AACpD,wCAAwC,oBAAoB;AAC5D;AACA,qCAAqC,oBAAoB;AACzD,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,gCAAgC,oBAAoB;AACpD,wCAAwC,oBAAoB;AAC5D;AACA,qCAAqC,oBAAoB;AACzD,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,wDAAwD;AACnE;AACA;AACO;AACP,yBAAyB,eAAe,sBAAsB,cAAc;AAC5E,kCAAkC,qBAAqB;AACvD;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,WAAW;AACtB;AACA;AACO;AACP,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,WAAW;AACtB;AACA;AACO;AACP,yBAAyB,IAAI,yBAAyB,eAAe;AACrE,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA,iCAAiC,eAAe,8BAA8B,eAAe;AAC7F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,WAAW;AACtB;AACA;AACO;AACP,yBAAyB,IAAI,yBAAyB,eAAe;AACrE,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA,iCAAiC,eAAe,8BAA8B,eAAe;AAC7F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,wDAAwD;AACnE,WAAW,wDAAwD;AACnE;AACA;AACO;AACP;AACA,wBAAwB,eAAe,oBAAoB,cAAc;AACzE,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,mCAAmC,oBAAoB;AACvD;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,+BAA+B,oBAAoB;AACnD,uCAAuC,oBAAoB;AAC3D;AACA,oCAAoC,oBAAoB;AACxD,0CAA0C,kBAAkB;AAC5D;AACA;AACA,6BAA6B,SAAS,oBAAoB,QAAQ;AAClE,+BAA+B,eAAe;AAC9C,uCAAuC,eAAe;AACtD;AACA,oCAAoC,eAAe;AACnD,0CAA0C,kBAAkB;AAC5D;AACA;AACA,6BAA6B,eAAe,oBAAoB,cAAc;AAC9E,+BAA+B,qBAAqB;AACpD,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,uCAAuC,eAAe;AACtD;AACA,oCAAoC,eAAe;AACnD,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,yBAAyB,YAAY,gCAAgC,YAAY;AACjF;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA,iCAAiC,SAAS,IAAI,oBAAoB,YAAY,eAAe;AAC7F;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;;;ACjnBA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AAC6D;AAC3B;AACM;AACK;AACM;AACI;AACvD;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,iBAAiB;AAChC,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,oBAAoB;AACnC,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD,oEAAoE,WAAW;AAC/E;AACA;AACA,oEAAoE,MAAM;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB,uBAAuB;AACnE;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,gDAAgD,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qEAAqE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,SAAS;AACU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,MAAM;AACY;AACpB;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;;;ACzxBuB;AAC8C;AACvC;AACiE;AAChD;AACG;AACN;AAClB;AACS;AACT;AACwE;AACnE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,YAAY,SAAS;AACrB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA,6DAA6D,QAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe,aAAa,eAAe;AACrE,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,sBAAsB,qBAAW;AACjC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,SAAS,SAAS;AAClB,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS,SAAS;AAClB,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe,WAAW,eAAe,YAAY,eAAe;AAC7F,yBAAyB;AACzB;AACA,aAAa,SAAS;AACtB,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,yCAAyC,eAAe;AACxD;AACA;AACA;AACA,oGAAoG,aAAa;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,iBAAiB;AAC7B,WAAW,QAAQ;AACnB;AACA;AACO;AACP,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,iBAAiB;AAC5B,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,oBAAoB;AAC/B,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA,uBAAuB,IAAI;AAC3B,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,wBAAwB,uDAAuD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA,oEAAoE,kBAAkB;AACtF;AACA;AACA;AACA,yDAAyD;AACzD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW,kBAAkB,qBAAW;AACpE;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW,8BAA8B,qBAAW;AAChF;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,YAAY;AACzC;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA,2CAA2C,aAAa;AACxD,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA,qFAAqF,qBAAW;AAChG,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA,8BAA8B;AAC9B,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC,4DAA4D;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E,wCAAwC,wDAAwD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,YAAY;AACvB,WAAW,WAAW;AACtB,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,MAAM;AACjB,WAAW,YAAY;AACvB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC,+CAA+C,aAAa;AAC5D,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6BAA6B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA,0FAA0F,qBAAW;AACrG,oCAAoC,qBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA,qFAAqF,QAAQ;AAC7F;AACA;AACA;AACA,qBAAqB,eAAe,WAAW,eAAe;AAC9D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4CAA4C;AACpE;AACA;AACA,sCAAsC,8CAA8C;AACpF,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA,oBAAoB,2CAA2C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc,kBAAkB;AAC1D;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,oBAAoB,mDAAmD;AACvE;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE,8DAA8D,eAAe;AAC7E;AACA;AACA;AACA,oCAAoC,sBAAsB,wBAAwB;AAClF;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA,oCAAoC,qBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA,0BAA0B,MAAM;AAChC;AACA,wBAAwB,4BAA4B;AACpD,2EAA2E,MAAM;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW;AACvC;AACA,sBAAsB,qBAAW;AACjC;AACA,uCAAuC,aAAa;AACpD;AACA;AACA,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAgC;AACxE;AACA,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA,2CAA2C,IAAI,UAAU,gDAAgD;AACzG;AACA;AACA,2DAA2D,WAAW,UAAU,iDAAiD;AACjI;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;;;ACn3EgD;AACT;AACF;AACM;AACD;AACW;AACK;AAChB;AACe;AACkE;AACT;AAC9C;AACc;AAC1B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,mMAAmM,eAAe,IAAI,cAAc;AACpO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sMAAsM,eAAe,IAAI,cAAc;AACvO;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD,kCAAkC,qBAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAW;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP,mBAAmB,IAAI;AACvB;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA,QAAQ,aAAa,UAAU,IAAI;AACnC,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA;AACA;AACA;AACA,SAAS,6BAAQ;AACjB;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA,qDAAqD,qBAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACO;AACP,qBAAqB,qBAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,qBAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC;AACA,YAAY,mBAAmB;AAC/B;AACA,QAAQ,oBAAoB;AAC5B;AACA,QAAQ,gBAAgB;AACxB,QAAQ,aAAa;AACrB;AACA,IAAI,uBAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzfiD;AACV;AACG;AACkD;AACgB;AACuD;AACxC;AAClD;AAC7B;AACgB;AACoC;AACrD;AACa;AACgB;AACM;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,wBAAwB;AACnC,WAAW,wBAAwB;AACnC,WAAW,yEAAyE;AACpF;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA,SAAS,WAAW,aAAa,iBAAiB;AAClD;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C,sDAAsD,gBAAgB;AACtE;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,qBAAqB,aAAa;AAClC,uBAAuB,gBAAgB;AACvC;AACA;AACA,qBAAqB,aAAa;AAClC,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA,kDAAkD,SAAS;AAC3D,gBAAgB,aAAa;AAC7B,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA,2BAA2B,SAAS,sBAAsB,QAAQ;AAClE,aAAa,UAAU,cAAc,eAAe,aAAa,cAAc;AAC/E;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe,sBAAsB,cAAc,OAAO,UAAU,cAAc,SAAS;AACtH,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI,mBAAmB,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA,gBAAgB,OAAO;AACvB,oCAAoC,SAAS;AAC7C;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA,4BAA4B,UAAU,cAAc,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,WAAW;AACtB,WAAW,eAAe;AAC1B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,oCAAoC,KAAK,2GAA2G,oBAAoB,wEAAwE,oBAAoB;AACpQ;AACA;AACA,oCAAoC,KAAK,kIAAkI,oBAAoB,+FAA+F,oBAAoB;AAClT;AACA;AACA;AACA;AACA,8CAA8C,mBAAmB;AACjE;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD,iCAAiC;AACjC;AACA;AACA,oCAAoC,+BAA+B;AACnE,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,wBAAwB;AACnC,WAAW,wBAAwB;AACnC;AACA;AACO;AACP;AACA;AACA,QAAQ,OAAO,sBAAsB,oBAAoB,SAAS,cAAc;AAChF,YAAY,oBAAoB,SAAS,cAAc;AACvD,kCAAkC,eAAe;AACjD;AACA;AACA;AACA,aAAa,OAAO,sBAAsB,oBAAoB,SAAS,cAAc;AACrF,YAAY,oBAAoB,SAAS,cAAc;AACvD,iCAAiC,eAAe;AAChD;AACA,8BAA8B;AAC9B;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,gBAAgB;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB,oBAAoB,IAAI;AACxB,kBAAkB,IAAI;AACtB,qBAAqB,IAAI;AACzB,oBAAoB,sBAAsB;AAC1C;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe,qHAAqH,sBAAsB,WAAW,mEAAmE;AACpP;AACA;AACA,YAAY,eAAe;AAC3B,+BAA+B,sBAAsB,WAAW,wCAAwC;AACxG;AACA;AACA,YAAY,eAAe;AAC3B,+BAA+B,sBAAsB,WAAW,uCAAuC;AACvG;AACA;AACA,YAAY,eAAe;AAC3B,+BAA+B,sBAAsB,WAAW,YAAY;AAC5E;AACA;AACA;AACA,QAAQ,eAAe,gHAAgH,sBAAsB,WAAW,uEAAuE;AAC/O;AACA;AACA,QAAQ,eAAe;AACvB,2BAA2B,sBAAsB,WAAW,4CAA4C;AACxG;AACA;AACA,QAAQ,eAAe,iHAAiH,sBAAsB,WAAW,uEAAuE;AAChP;AACA;AACA,QAAQ,eAAe;AACvB,2BAA2B,sBAAsB,WAAW,2CAA2C;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,iCAAiC;AACjC,2BAA2B,QAAQ;AACnC;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA,gCAAgC,eAAe,uBAAuB,cAAc;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC/jBA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACuC;AAC0C;AACrC;AACG;AACH;AAC8B;AAChC;AAC6B;AAC+D;AAC1C;AACZ;AACpB;AACvB;AACM;AACkD;AACtB;AACtB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA,4CAA4C,WAAW;AACvD;AACA,iBAAiB,cAAc;AAC/B,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD,uCAAuC,WAAW;AAClD;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,uBAAuB,IAAI;AAC3B;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACqB;AACtB;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,CAAC;AAC8B;AAC/B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA;AACA;AACA,iCAAiC;AACjC;AACA,wCAAwC,qBAAW;AACnD;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA,yCAAyC,KAAK;AAC9C,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD,oCAAoC,sFAAsF;AAC1H,oCAAoC,sEAAsE;AAC1G;AACA;AACA;AACA;AACA,yDAAyD,YAAY;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA,uEAAuE,YAAY,qBAAqB,YAAY;AACpH;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA,mEAAmE,qBAAW,mBAAmB,qBAAW;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS,sBAAsB,YAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY,qBAAqB,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY,qBAAqB,YAAY;AACjE;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,aAAa,iBAAiB,iBAAiB;AAC/H,mEAAmE,YAAY,iBAAiB,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C,6BAA6B,YAAY;AACzC,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,0CAAqB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA,wCAAwC,eAAe,WAAW,gBAAgB,aAAa,iBAAiB;AAChH,2EAA2E,eAAe,aAAa,eAAe,aAAa,eAAe;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI,2BAA2B,SAAS;AAC3E;AACA;AACA,mCAAmC;AACnC,uCAAuC,IAAI;AAC3C,0CAA0C,qBAAW;AACrD;AACA;AACA,+CAA+C,qBAAW;AAC1D;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,+CAA+C,IAAI,2BAA2B,SAAS;AACvF,mDAAmD,IAAI;AACvD,kDAAkD,qBAAW;AAC7D;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ,wOAAwO,QAAQ;AACzS;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD,0CAA0C,iBAAiB,8BAA8B,iBAAiB;AAC1G,wCAAwC,iBAAiB,sCAAsC,iBAAiB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAW,mBAAmB,qBAAW;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA,gFAAgF,SAAS;AACzF;AACA;AACA,0FAA0F,IAAI;AAC9F;AACA,oDAAoD,yCAAyC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,QAAQ;AAChF;AACA,oDAAoD,kDAAkD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,YAAY;AACrE;AACA,4DAA4D,QAAQ;AACpE;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAW;AACrD;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA,oCAAoC,qBAAW,mBAAmB,qBAAW;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C,4BAA4B,kCAAkC;AAC9D;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,wDAAwD;AACpJ,wBAAwB,oIAAoI;AAC5J;AACA,+EAA+E,YAAY,qBAAqB,YAAY;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI,sBAAsB,SAAS;AACjE,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,oCAAoC,iBAAiB;AAC1F,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,uBAAuB,6BAAQ;AAC/B,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,0CAAqB;AACjG;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA,YAAY,YAAY;AACxB,+BAA+B,sBAAsB,WAAW,gDAAgD;AAChH,2BAA2B,sBAAsB,WAAW,wCAAwC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,wEAAwE,qBAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE;AACA,0BAA0B,qBAAW;AACrC;AACA,6DAA6D,qBAAW,mBAAmB,qBAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA,yBAAyB;AACzB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,4CAA4C,iBAAiB;AAClG,sBAAsB,iBAAiB;AACvC;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0CAAqB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,wEAAwE,qBAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,qDAAqD,YAAY;AACjE,0BAA0B,qBAAW;AACrC;AACA,yDAAyD,qBAAW,mBAAmB,qBAAW;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0CAAqB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ,+DAA+D,eAAe;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,oBAAoB,iBAAiB;AACrC,sBAAsB,iBAAiB,sBAAsB,iBAAiB;AAC9E;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA,gEAAgE,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,iDAAiD,SAAS;AACtH,+DAA+D,YAAY;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,SAAS;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC+B;AAChC;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA,4BAA4B,6CAA6C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACsB;AACvB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;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;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C,IAAI,sDAAsD;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,cAAc;AACxE;AACA;AACA,iCAAiC,KAAK;AACtC,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAC6B;AAC9B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe,2BAA2B,kBAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;AAC/B;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB,WAAW,kBAAkB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAW;AAChE,8CAA8C,qBAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAW,0BAA0B,qBAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,0CAA0C,IAAI;AAC9C;AACA,oBAAoB,cAAc;AAClC,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAW;AACnC,wBAAwB,qBAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE,uBAAuB,eAAe;AACtC;AACA;AACA,iCAAiC,KAAK;AACtC,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,qBAAqB,2DAA2D;AAChF;AACA;AACA,2BAA2B,4CAA4C,IAAI,sDAAsD;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,+BAA+B,gCAAgC,iBAAiB,gEAAgE;AAChJ;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,KAAK;AAC5B,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa,oBAAoB,gBAAgB;AAC/E,0BAA0B;AAC1B,0BAA0B;AAC1B,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA,2EAA2E,OAAO,SAAS,mCAAmC,KAAK;AACnI,2EAA2E,OAAO,SAAS,mCAAmC,KAAK;AACnI;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;ACzhFxB,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwJ;AAC3F;AACjB;AACgB;AAC2D;AACtD;AACvB;AACA;AAC4C;AACyF;AAClF;AACa;AAC3C;AACL;AACE;AACd;AACK;AACmB;AACzB;AACN;AACI;AACuF;AAC/D;AACE;AAC9B;AACwB;AACd;AACf;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,qDAAqD,EAAE,UAAU;AACnF;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,cAAc,EAAE,KAAK;AACvC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ,CAAC,uBAAuB;AACxC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ,CAAC,gBAAgB;AACjC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACa;AAC5B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK,gCAAgC,KAAK;AAC9D,cAAc,KAAK;AACnB;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACoB;AACnC;AACA;AACA;AACO,SAAS,sBAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;AAC7B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACmB;AAClC;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACkB;AACjC;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA,4CAA4C,eAAe,+BAA+B,eAAe;AACzG;AACA;AACA;AACA;AACA,4CAA4C,eAAe,+BAA+B,eAAe;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM;AAClC,0BAA0B,WAAW;AACrC;AACA,+BAA+B,WAAW;AAC1C,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAA6D;AACrF;AACA;AACA,wBAAwB,uEAAuE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,2BAA2B;AAC3B,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,QAAQ,cAAc;AACxE,aAAa,oBAAoB,QAAQ,cAAc,YAAY,oBAAoB,QAAQ,cAAc;AAC7G,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,aAAa;AACb;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB;AACA,+DAA+D,yBAAyB,sBAAsB,kBAAkB;AAChI;AACA,2DAA2D,yBAAyB,sBAAsB,kBAAkB;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D;AACA,gDAAgD,UAAU;AAC1D,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C;AACA,qCAAqC,4BAAoB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,2BAA2B;AAC3B;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,oBAAoB;AACpB;AACA;AACA;AACA,kBAAkB,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK,gDAAgD,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,4BAA4B;AAC5B;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA,0DAA0D,CAA0C;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oBAAoB,KAAK;AACzB,sBAAsB,iBAAiB;AACvC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kFAAkF;AACzG;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,UAAU;AACnH;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA,gFAAgF;AAChF,gFAAgF;AAChF;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA,wCAAwC,sBAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA,wCAAwC,sBAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8DAA8D;AACjG;AACA;AACA,iBAAiB;AACjB;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA,QAAQ,YAAY;AACpB,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,qBAAqB,uBAAuB;AAC5C;AACA;AACA,2CAA2C,mBAAmB;AAC9D,QAAQ,eAAe;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,mCAAc;AACtB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ,CAAC,oBAAoB;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,+BAAU,KAAK,cAAc;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA,IAAI,kBAAU;AACd,QAAQ,+BAAU,KAAK,wBAAwB;AAC/C;AACA,IAAI,kBAAU;AACd,QAAQ,sCAAiB;AACzB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,eAAe;AACjC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB;AAClC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,WAAW;AACrE;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,+BAAU,KAAK,QAAQ;AAC/B;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,QAAQ;AACW;;;AC9oDrB,IAAI,aAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,cAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC2D;AACwC;AACjD;AACS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,gEAAgE,oCAAoC,mBAAmB;AACvH,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD,cAAc;AACd,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gBAAgB,gBAAgB;AAChC,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,sBAAsB,gBAAgB;AACtC;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,0BAAS;AACM;;;ACrbjB;AACA;AACA;AACwB;;;ACH+C;AAC7B;AACA;AACS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA,kDAAkD,gCAAgC,kBAAkB,OAAO;AAC3G;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA,wEAAwE,6CAA6C;AACrH;AACA,uGAAuG,gBAAgB;AACvH,iFAAiF,kBAAkB,eAAe;AAClH;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5OA,IAAI,gBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,iBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,4BAA4B,gBAAgB;AAC5C,UAAU;AACV;AACA,KAAK,0BAA0B,sCAAsC;AACrE;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,2DAA2D;AACnF;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;;;AC1ItB;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxCA,IAAI,yBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACoF;AACpF;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACI;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,+BAAU;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACgB;;;AC3Ge;AACF;AACoC;AACN;AACwB;AAClC;AACO;AAC0B;AACtB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qCAAqC;AACrC,2BAA2B;AAC3B,oBAAoB,KAAK;AACzB,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA,YAAY,eAAe,kBAAkB,kDAAkD;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B,iBAAiB,SAAS;AAC1B,iBAAiB,eAAe;AAChC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,kBAAkB;AACnC,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,oBAAoB;AAC9H,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe,iBAAiB,kDAAkD;AAC9F;AACA;AACA,YAAY,eAAe,iBAAiB,gJAAgJ;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,iBAAiB,gCAAgC;AACjD,gBAAgB,iBAAiB;AACjC,gBAAgB,eAAe;AAC/B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,gBAAgB,oBAAoB;AACpC,gBAAgB,aAAa;AAC7B,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C,yFAAyF;AACzF,gBAAgB,wBAAwB,sBAAsB;AAC9D,+BAA+B,6EAA6E;AAC5G;AACA,gBAAgB,8DAA8D,sCAAsC;AACpH;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,gBAAgB,sBAAsB;AACtC,gBAAgB,mBAAmB;AACnC,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0CAA0C;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sCAAsC;AACjG;AACA;AACA;AACA;AACA,QAAQ,eAAe,wCAAwC,mDAAmD,IAAI;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,sBAAsB;AACtC,gBAAgB,YAAY;AAC5B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,iBAAiB;AACjC,gBAAgB,YAAY;AAC5B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA,mBAAmB,gBAAgB,WAAW,oCAAoC;AAClF;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,QAAQ,cAAc;AACtB;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA,gBAAgB,eAAe,gBAAgB,oEAAoE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gBAAgB,YAAY;AAC5B,gBAAgB,iBAAiB;AACjC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,QAAQ;AACxB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;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;AACsB;;;AC17BqC;AACE;AACF;AACH;AACmC;AAClD;AAC6E;AACU;AAChB;AACE;AAC9B;AACA;AACxC;AACM;AACyC;AACnC;AACc;AACJ;AACvB;AACmC;AAC1C;AACuE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA,wCAAwC,WAAW,SAAS,cAAc;AAC1E;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,QAAQ;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,kCAAkC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA,eAAe,gBAAgB;AAC/B,eAAe,iCAAiC;AAChD,eAAe,cAAc;AAC7B,eAAe,aAAa;AAC5B,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,iCAAiC;AAChD,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,aAAa;AAC5B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,aAAa;AAC5B,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,kCAAkC,oBAAoB;AACtD,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,iCAAiC;AAChD,iBAAiB,oBAAoB;AACrC,gBAAgB,QAAQ;AACxB,gBAAgB,sBAAsB;AACtC,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB,WAAW,aAAa,4BAA4B,iBAAiB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa,4BAA4B,iBAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA,8CAA8C,mBAAmB;AACjE,iGAAiG,aAAa,wDAAwD,iBAAiB,mDAAmD,gFAAgF;AAC1T;AACA,8CAA8C,mBAAmB;AACjE,yGAAyG,aAAa,wDAAwD,iBAAiB,mDAAmD,iFAAiF;AACnU;AACA,8CAA8C,mBAAmB;AACjE,0GAA0G,aAAa,wDAAwD,iBAAiB,mDAAmD,mFAAmF;AACtU;AACA,8CAA8C,mBAAmB;AACjE,kHAAkH,aAAa,wDAAwD,iBAAiB,mDAAmD,oFAAoF;AAC/U;AACA;AACA,0CAA0C,mBAAmB;AAC7D,qGAAqG,aAAa,oDAAoD,iBAAiB,+CAA+C,2EAA2E;AACjT;AACA,0CAA0C,mBAAmB;AAC7D,8GAA8G,aAAa,oDAAoD,iBAAiB,+CAA+C,8EAA8E;AAC7T;AACA,0CAA0C,mBAAmB;AAC7D,qGAAqG,aAAa,mDAAmD,iBAAiB,8CAA8C,4EAA4E;AAChT;AACA,0CAA0C,mBAAmB;AAC7D,6GAA6G,aAAa,mDAAmD,iBAAiB,8CAA8C,6EAA6E;AACzT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,iCAAiC;AAChD,iBAAiB,oBAAoB;AACrC,gBAAgB,qBAAqB;AACrC,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,aAAa,6DAA6D,iBAAiB,2DAA2D,iEAAiE;AAChU,yGAAyG,aAAa,6DAA6D,iBAAiB,2DAA2D,iEAAiE;AAChU;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA,mJAAmJ,iBAAiB;AACpK;AACA,cAAc;AACd;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA,mGAAmG,aAAa;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA,mGAAmG,aAAa;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,mCAAmC,KAAK;AACxC;AACA,mEAAmE,oBAAoB;AACvF,mCAAmC,oBAAoB;AACvD,8HAA8H,aAAa,6DAA6D,iBAAiB,qDAAqD,iEAAiE;AAC/U,wBAAwB,aAAa;AACrC,qHAAqH,KAAK;AAC1H;AACA;AACA,+BAA+B,KAAK;AACpC,8EAA8E,oBAAoB;AAClG,8CAA8C,oBAAoB;AAClE,8HAA8H,aAAa,6DAA6D,iBAAiB,qDAAqD,iEAAiE;AAC/U,wBAAwB,aAAa;AACrC,qHAAqH,KAAK;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,iBAAiB,oBAAoB;AACrC,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,aAAa;AAC7B,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD,yBAAyB,KAAK;AAC9B;AACA;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,iBAAiB,aAAa;AAC9B,gBAAgB,aAAa;AAC7B,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,aAAa;AAC7B,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA,+DAA+D,oBAAoB;AACnF;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC,8BAA8B,IAAI;AAClC,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,gBAAgB;AAC/B,gBAAgB,iCAAiC;AACjD,iBAAiB,aAAa;AAC9B,gBAAgB,sBAAsB;AACtC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,QAAQ;AACvB,gBAAgB,iBAAiB;AACjC,iBAAiB,iCAAiC;AAClD,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,QAAQ;AACvB,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,QAAQ;AACvB,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,iBAAiB;AACjC,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB;AAC7C;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA,+DAA+D,oBAAoB;AACnF;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC,8BAA8B,IAAI;AAClC,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,eAAe;AAC9B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,eAAe;AAC9B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,cAAc;AAC9B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wCAAwC;AAC7G;AACA;AACA,sCAAsC,eAAe;AACrD,sCAAsC,oBAAoB;AAC1D,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,wCAAwC;AAC/I;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,gBAAgB;AAC/B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,sBAAsB;AACtC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,qDAAqD;AACnJ;AACA;AACA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,aAAa;AAC5B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,mBAAmB;AAClC,gBAAgB,gBAAgB;AAChC,gBAAgB,aAAa;AAC7B,gBAAgB,qBAAqB;AACrC,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,sBAAsB;AAClD,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,sBAAsB;AAClD,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,mBAAmB;AAClC,gBAAgB,gBAAgB;AAChC,gBAAgB,aAAa;AAC7B,gBAAgB,qBAAqB;AACrC,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,aAAa;AAC5B,gBAAgB,gCAAgC;AAChD,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA,4BAA4B,iBAAiB;AAC7C,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,cAAc;AACtG;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,cAAc;AAC7B,gBAAgB,gCAAgC;AAChD,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,WAAW;AAC1B,gBAAgB,gCAAgC;AAChD,gBAAgB,cAAc;AAC9B,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW,wCAAwC,aAAa;AACrG;AACA;AACA;AACA,qCAAqC,WAAW,uCAAuC,aAAa;AACpG;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD,4CAA4C,aAAa,6CAA6C,aAAa;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa,uCAAuC,OAAO;AACpG;AACA,uEAAuE,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB,2WAA2W,oBAAoB;AAC1c;AACA;AACA;AACA;AACA,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,iTAAiT,oBAAoB;AACrU,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa,uCAAuC,OAAO;AACnG;AACA,uEAAuE,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB,2WAA2W,oBAAoB;AAC1c;AACA;AACA;AACA;AACA,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,iTAAiT,oBAAoB;AACrU,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,gBAAgB;AAC/B,gBAAgB,gCAAgC;AAChD,gBAAgB,iBAAiB;AACjC,gBAAgB,gBAAgB;AAChC,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kBAAkB;AAC7F;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA,eAAe,WAAW;AAC1B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,kBAAkB;AAClC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,iBAAiB,YAAY;AAC7B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,QAAQ;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;AC3yE3B,IAAI,gBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,iBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACkD;AACc;AACM;AAC6B;AACc;AACxB;AACvC;AACA;AACc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe,sBAAsB,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB,UAAU;AAChD;AACA;AACA;AACA;AACA,yCAAyC,qDAAqD;AAC9F;AACA,kBAAkB,6BAA6B,mBAAmB;AAClE;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAO;AAC3B,mBAAmB,wBAAO;AAC1B;AACA,qBAAqB,wBAAO;AAC5B;AACA;AACA;AACA,mBAAmB,wBAAO;AAC1B,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA,oBAAoB,wBAAO;AAC3B,mBAAmB,wBAAO;AAC1B,mBAAmB,wBAAO;AAC1B,qBAAqB,wBAAO;AAC5B;AACA;AACA;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB,UAAU;AAC9D;AACA,gCAAgC,cAAc;AAC9C,wEAAwE,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC,kBAAkB,QAAQ;AACrH;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,0CAA0C,kBAAkB,QAAQ,SAAS;AAC7E,SAAS;AACT;AACA;AACA,wCAAwC,QAAQ,SAAS;AACzD;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB,QAAQ,wCAAwC;AAC9F;AACA;AACA,YAAY,eAAe,mBAAmB,2BAA2B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS,SAAS;AAC1D;AACA;AACA,SAAS;AACT,cAAc,gBAAgB;AAC9B;AACA,kBAAkB,gBAAgB,QAAQ,0EAA0E;AACpH;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA,SAAS;AACT,2DAA2D;AAC3D;AACA;AACA,gBAAgB,gBAAgB,QAAQ,wEAAwE;AAChH;AACA,wBAAwB,gBAAgB,WAAW,8DAA8D;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB,UAAU,sEAAsE;AACxH;AACA,wBAAwB,gBAAgB;AACxC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qBAAqB;AACrB,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,QAAQ,gBAAgB;AACxB;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,0BAAK;AACb;AACA;AACA,CAAC,CAAC,0BAAS;AACS;;;AC5+BwB;AACA;AAC+D;AACvC;AACT;AACF;AACX;AAC4I;AAClH;AACV;AACW;AACb;AACE;AACY;AAC6T;AACnR;AAC/C;AACF;AAC5B;AACC;AAC4C;AACL;AACvB;AACW;AACrB;AACC;AACM;AAC0B;AAC5B;AACP;AACW;AACN;AAC2B;AACJ;AACrB;AACnD;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,MAAM;AACjB,WAAW,gCAAgC;AAC3C;AACA;AACO;AACP;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,gCAAgC;AAC3C,WAAW,QAAQ;AACnB;AACA;AACO;AACP,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,gCAAgC;AAC3C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,MAAM;AACjB;AACA;AACO;AACP,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AAC5B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA,mBAAmB,KAAK;AACxB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B,0BAA0B,KAAK;AAC/B,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,uCAAuC;AACvC,0BAA0B,KAAK;AAC/B,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA,oBAAoB,YAAY,gCAAgC,KAAK,wEAAwE,KAAK;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,aAAa;AACxB;AACA;AACO;AACP;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,eAAe;AACf;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,4BAA4B;AACvC,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB,WAAW,4BAA4B;AACvC,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE,uDAAuD,cAAc;AACrE;AACA;AACA;AACA,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D,wCAAwC,kBAAkB;AAC1D;AACA;AACA;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,UAAU;AACzB,WAAW,gBAAgB;AAC3B,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,gBAAgB;AAC3B,YAAY,YAAY;AACxB;AACA;AACO;AACP,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,WAAW,YAAY;AACvB,YAAY,YAAY;AACxB,YAAY,YAAY;AACxB,YAAY,YAAY;AACxB;AACA;AACO;AACP,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA,iBAAiB;AACjB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,6CAA6C;AACzD,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA,0CAA0C,IAAI,wBAAwB,eAAe;AACrF,2BAA2B,SAAS,wBAAwB,oBAAoB;AAChF,kCAAkC,eAAe;AACjD,yCAAyC,IAAI,wBAAwB,eAAe;AACpF,2BAA2B,SAAS,wBAAwB,oBAAoB;AAChF,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,6CAA6C;AACxD,YAAY,YAAY;AACxB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,IAAI,oBAAoB,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AAC3B,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B,WAAW,0DAA0D;AACrE,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iCAAiC;AAC/C,WAAW,gCAAgC;AAC3C,YAAY,mBAAmB;AAC/B;AACA;AACO;AACP;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,SAAS;AACzB,wBAAwB,oBAAoB;AAC5C,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,2CAA2C;AACvD,YAAY,OAAO;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACO;AACP;AACA,gBAAgB,KAAK;AACrB;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,2CAA2C;AACvD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,oBAAoB,KAAK;AACzB;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA,oBAAoB,KAAK;AACzB,oBAAoB,KAAK;AACzB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,cAAc;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,2CAA2C;AACvD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,kBAAkB,KAAK;AACvB;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA,oBAAoB,KAAK;AACzB,oBAAoB,KAAK;AACzB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,cAAc;AACzB;AACA;AACO;AACP;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,2CAA2C;AACtD,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sCAAiB;AACvC,sBAAsB,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,YAAY;AACvB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,WAAW;AACtB,YAAY,UAAU;AACtB;AACA;AACO;AACP,wBAAwB,IAAI;AAC5B,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,WAAW,QAAQ;AACnB,YAAY,WAAW;AACvB;AACA;AACO;AACP;AACA,wBAAwB,2BAA2B;AACnD;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA,uBAAuB,qBAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0BAA0B;AAC1E;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,qCAAqC;AACpG;AACA;AACA,oBAAoB,wCAAwC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,QAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,MAAM;AACxC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,UAAK;AACvC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,iEAAiE,YAAY;AAC7E;AACA,oEAAoE,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC,0CAA0C,8BAA8B,IAAI;AAC5E;AACA,wEAAwE,YAAY;AACpF,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA,iBAAiB;AACjB,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C,oBAAoB,sCAAsC;AAC1D;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAsC;AAC1D;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA,yEAAyE,eAAe;AACxF,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,2DAA2D;AACtE,WAAW,2DAA2D;AACtE;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,iBAAiB;AAC5B;AACA;AACO;AACP;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,gBAAgB;AAC3B,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA,QAAQ,aAAa;AACrB,QAAQ,aAAa;AACrB,QAAQ,aAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP,sBAAsB,cAAc;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA,2EAA2E,cAAc,SAAS,WAAW;AAC7G,kBAAkB,6BAAQ;AAC1B,+BAA+B,cAAc;AAC7C;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA,8CAA8C,UAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA,cAAc,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACO;AACP,SAAS,6BAAQ;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAQ;AAC1B;AACA,+BAA+B,mBAAmB;AAClD,UAAU,6BAAQ;AAClB;AACA;AACA,eAAe,6BAAQ;AACvB;AACA;AACA;AACA,eAAe,6BAAQ;AACvB,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,MAAM;AACjB;AACA;AACO;AACP,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,WAAW,aAAa;AACxB,WAAW,gBAAgB;AAC3B,WAAW,MAAM;AACjB;AACA;AACO;AACP;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB,WAAW,eAAe;AAC1B;AACA;AACO;AACP,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,WAAW,eAAe;AAC1B,WAAW,iBAAiB;AAC5B,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B,QAAQ,YAAY;AACpB,gBAAgB,sBAAsB;AACtC;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA,cAAc,mBAAmB,yCAAyC,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,WAAW,qBAAqB;AAChC,WAAW,QAAQ;AACnB;AACA;AACO;AACP,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,WAAW,yBAAyB;AACpC,WAAW,QAAQ;AACnB;AACA;AACO;AACP,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAyD;AACtE,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,qEAAqE,eAAe;AACpF;AACA;AACA;AACA;AACA,qEAAqE,eAAe;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY,iCAAiC;AAC7C,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,iBAAiB;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,oDAAoD,gBAAgB;AACpE;AACA;AACA,sCAAsC,sBAAsB,WAAW,oCAAoC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,OAAO;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,6BAA6B;AACzC,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,4CAA4C;AACxD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAA2C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB,aAAa,4CAA4C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAA6C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA,wBAAwB,oBAAoB;AAC5C,+DAA+D,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAkC;AAC/C,YAAY,mCAAmC;AAC/C,YAAY,6BAA6B;AACzC,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,YAAY,iBAAiB;AAC7B,YAAY,uBAAuB;AACnC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB;AACA;AACO;AACP,kBAAkB;AAClB,gBAAgB,cAAc;AAC9B,IAAI,YAAY;AAChB;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB,WAAW,YAAY;AACzE;AACA;AACA,4BAA4B,sBAAsB,WAAW,oBAAoB;AACjF;AACA;AACA,4BAA4B,sBAAsB,WAAW,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB,WAAW,oBAAoB;AACjF;AACA;AACA,4BAA4B,sBAAsB,WAAW,4BAA4B;AACzF;AACA;AACA,4BAA4B,sBAAsB,WAAW,wBAAwB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB,WAAW,gBAAgB;AAC7E;AACA;AACA,4BAA4B,sBAAsB,WAAW,wBAAwB;AACrF;AACA;AACA,4BAA4B,sBAAsB,WAAW,oBAAoB;AACjF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,kBAAkB,IAAI;AACtB;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM,qBAAqB,SAAS;AACrE;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC,oBAAoB,kBAAkB;AACtC;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,WAAW;AACrC;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,wBAAwB,IAAI,oBAAoB,SAAS;AACzD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,2BAA2B;AAC3B;AACA;AACA,gBAAgB,SAAS;AACzB,qBAAqB,KAAK,aAAa,0CAA0C;AACjF,qBAAqB,KAAK,aAAa,kCAAkC;AACzE,mBAAmB,KAAK,aAAa,kCAAkC;AACvE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA,YAAY,wBAAO,2BAA2B,wBAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY,WAAW;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,qBAAqB;AACjC,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,qBAAqB;AACjC,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,YAAY;AACzB;AACO;AACP;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb;;;ACvjGA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,aAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACA;AAC5C;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,cAAc,EAAE,KAAK;AACvC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;;;AC7ErB,IAAI,mBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACuC;AACa;AACrD;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,SAAS;AACW;;;ACrNgD;AAC/B;AACW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,gBAAgB;AAC5B,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,wBAAwB,eAAe,WAAW,eAAe;AACjE,UAAU,eAAe,UAAU,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,YAAY,qBAAqB;AAC5E;AACA;AACA;AACA;AACA,aAAa;AACb,wEAAwE,qBAAqB;AAC7F;AACA;AACA;AACA;AACA,iBAAiB,YAAY,gBAAgB,eAAe,qBAAqB;AACjF;AACA;AACA,sBAAsB,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC/I;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC,4BAA4B,QAAQ;AACpC;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sCAAsC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC/J;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC,4BAA4B,QAAQ,8BAA8B;AAClE,sHAAsH;AACtH;AACA;AACA,8EAA8E,cAAc;AAC5F;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,0CAA0C,oBAAoB;AAC9D;AACA;AACA,sCAAsC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC/J;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0EAA0E,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,0BAA0B;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,0BAA0B;AACpG,sEAAsE,4BAA4B;AAClG;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,yBAAyB,IAAI;AAC7B,YAAY,QAAQ,sCAAsC,eAAe,aAAa,eAAe;AACrG;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,yBAAyB,IAAI;AAC7B,YAAY,QAAQ,sCAAsC,eAAe,aAAa,eAAe;AACrG;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,MAAM;AAClB,WAAW,eAAe;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChmBA,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;;;AC1DtB,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,aAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+I;AACpE;AAC/B;AACF;AACG;AACY;AACN;AACO;AACQ;AACN;AACA;AACE;AACS;AACpC;AACgB;AACQ;AACM;AACT;AACT;AACgE;AACvB;AACT;AACH;AACrC;AACmB;AACZ;AACX;AACiD;AACX;AACN;AACP;AACR;AACS;AACF;AACnB;AACa;AACF;AACZ;AACmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;AACjB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACiB;AAClB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA,IAAI,UAAK;AACT,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACgB;AACjB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,KAAK;AAC5B;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACQ;AACvB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,eAAe;AACtC;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,uCAAuC,gBAAgB;AACzE;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,kEAAkE,iBAAiB;AACrG;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,kEAAkE,iBAAiB;AACrG;AACA;AACA,CAAC,CAAC,8BAAa;AACsB;AACrC;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;;AAEA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACe;AAC9B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACY;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACiB;AAChC;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC6B;AAC9B;AACA;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,KAAK;AAC5B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAQ;AAC9B,mCAAmC,WAAW;AAC9C,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAQ;AAC9B,yCAAyC,cAAc;AACvD;AACA;AACA;AACA,2BAA2B,6BAAQ;AACnC,mCAAmC,WAAW;AAC9C,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA,yCAAyC,WAAW;AACpD,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA,2CAA2C,WAAW;AACtD,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA,gFAAgF,aAAa;AAC7F;AACA;AACA;AACA,gEAAgE,wBAAwB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA,iEAAiE,UAAU;AAC3E;AACA;AACA;AACA;AACA,6CAA6C,4BAAoB;AACjE,iEAAiE,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC,eAAe;AACnD,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,oCAAoC,eAAe;AACnD;AACA;AACA;AACA,8CAA8C,6BAAQ;AACtD,eAAe,6BAAQ,wFAAwF,6BAAQ;AACvH;AACA;AACA,gEAAgE,qBAAW;AAC3E;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,yCAAyC,SAAS,SAAS,MAAM;AACjE;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D;AACA,gDAAgD,UAAU;AAC1D,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6DAA6D;AACrF;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,QAAQ,cAAc;AACxE,aAAa,oBAAoB,QAAQ,cAAc,YAAY,oBAAoB,QAAQ,cAAc;AAC7G,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA,iEAAiE,CAAU;AAC3E;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAAoB;AACnE;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC,+BAA+B,YAAY;AAC3C,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,eAAe;AACtC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,mBAAmB;AAC1C;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,eAAe,EAAE,SAAS;AAC5C;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,mCAAc;AACtB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,eAAe;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,QAAQ;AACM;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,SAAS,yCAAyC,gBAAgB,uBAAuB;AAC3G;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACC;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,cAAc,oBAAoB;AACpD;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;AACjB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,SAAS,yCAAyC,gBAAgB,uBAAuB;AAC3G;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,8DAA8D;AAC9D,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,UAAU;AACjC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,mBAAmB;AACpC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;;;AC99DsB;AACA;AACyC;AAC2B;AAClB;AACrB;AAChC;AACK;AACY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,YAAY,cAAc;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+BAA+B;AAC5C,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA,QAAQ,wBAAO,yBAAyB,wBAAO;AAC/C,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,wBAAwB,iBAAiB;AACzC,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C,0BAA0B,QAAQ;AAClC;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,0DAA0D,oCAAoC,QAAQ;AACtG;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC,QAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA,wGAAwG,QAAQ;AAChH;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP,qBAAqB,IAAI;AACzB,2CAA2C,gCAAgC,sBAAsB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA,gCAAgC,+CAA+C,GAAG;AAClF;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB,YAAY,cAAc;AAC1B,YAAY,iBAAiB;AAC7B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC,sBAAsB,oBAAoB;AAC1C,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAO,yBAAyB,wBAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAiE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP,kBAAkB,iCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACO;AACP,2CAA2C,6BAA6B,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,4CAA4C;AACxD,YAAY,UAAU;AACtB,YAAY,sFAAsF;AAClG;AACA;AACO;AACP;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAAO;AACpC,4FAA4F,gBAAgB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAW;AAC3B;AACA;AACA;AACA;AACA,qCAAqC,4BAAO;AAC5C;AACA;AACA,qCAAqC,4BAAO;AAC5C;AACA;AACA;AACA;AACA,gBAAgB,qBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAW;AACvB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB;AACA;AACO;AACP,kCAAkC;AAClC,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wCAAwC,cAAc,YAAY,iBAAiB;AACnF,SAAS;AACT,+CAA+C,iCAAiC,sBAAsB;AACtG;AACA;AACA,sDAAsD,qDAAqD,kEAAkE;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,gBAAgB;AAC3B,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,WAAW,oBAAoB;AAC/B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC,yDAAyD,gBAAgB;AACzE;AACA;AACA,8CAA8C,qBAAW;AACzD,4BAA4B,2BAA2B;AACvD;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;;AC1sCuE;AAC7B;AACA;AACkD;AAC5C;AACgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAoB;AAC3C;AACA;AACA,uBAAuB,4BAAoB;AAC3C;AACA;AACA;AACA,mBAAmB,4BAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA,oBAAoB;AACpB,sCAAsC;AACtC,qBAAqB;AACrB,uCAAuC;AACvC,wCAAwC;AACxC,uBAAuB;AACvB,yCAAyC;AACzC,wBAAwB;AACxB,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,4CAA4C,sBAAsB;AAClE,gDAAgD,sBAAsB;AACtE,8CAA8C,sBAAsB;AACpE,kDAAkD,sBAAsB;AACxE,oDAAoD,sBAAsB;AAC1E,kDAAkD,sBAAsB;AACxE,sDAAsD,sBAAsB;AAC5E,oDAAoD,sBAAsB;AAC1E;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO,SAAS,qBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;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,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,WAAW,2BAA2B;AACtC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA,IAAI,oBAAoB,8CAA8C;AACtE,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP,iBAAiB,cAAc;AAC/B,IAAI,YAAY;AAChB,kBAAkB,sBAAsB,WAAW,YAAY;AAC/D,mBAAmB,sBAAsB,WAAW,qBAAqB;AACzE,qBAAqB,sBAAsB,WAAW,sBAAsB;AAC5E,sBAAsB,sBAAsB,WAAW,+BAA+B;AACtF;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,YAAY;AACvB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;;;ACplBA;AACA;AAC4C;AACE;AACoD;AAChD;AAC0B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,iBAAiB;AACjC,gBAAgB,YAAY;AAC5B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,wBAAwB,iBAAiB,aAAa,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,iBAAiB,gCAAgC;AACjD,gBAAgB,iBAAiB;AACjC,gBAAgB,eAAe;AAC/B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,CAAc;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB,aAAa,wDAAwD;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,mDAAmD;AACnD;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,QAAQ;AACxB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;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;AACyB;;;AC10B1B,IAAI,qBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,sBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AAC5C;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,0CAA0C,EAAE,MAAM;AACpE;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,iBAAiB,eAAe;AAChC,8CAA8C;AAC9C;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,0CAA0C,EAAE,MAAM;AACpE;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;;;AC/K1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;ACjB1B,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AACzB;AAC/C;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ,CAAC,eAAe;AAChC;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;;;AChFxB,IAAI,sBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,uBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AACxE;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,sBAAsB,+BAA+B;AACrD,mBAAmB;AACnB,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,2BAA2B;AAC7C;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,yBAAyB;AAC3C;AACA;AACA,CAAC,CAAC,8BAAa;AACU;;;AC1FzB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,qBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA,IAAI,qBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,qBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACa;;;ACrC5B,IAAI,mBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,oBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACoF;AACd;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,qCAAqC;AAC1C,KAAK,kEAAkE;AACvE,KAAK,2DAA2D;AAChE,KAAK,4DAA4D;AACjE,KAAK,6DAA6D;AAClE,KAAK,uDAAuD;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACiB;AAChC;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,+BAAU,KAAK,gBAAgB;AACvC;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;;;AC9ItB,IAAI,mBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,oBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC4C;AAC4B;AACxE;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACoB;AACnC;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG,wCAAwC,EAAE,MAAM;AAClE;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;;;AC3HlB,IAAI,yBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC2C;AACF;AAC8B;AACrB;AACL;AACT;AACuB;AACc;AACxC;AACc;AAChD;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA,oCAAoC,+BAA+B;AACnE,yCAAyC;AACzC;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,uCAAuC,iBAAiB;AACjG,0BAA0B,iBAAiB;AAC3C,yBAAyB,iBAAiB;AAC1C;AACA,2BAA2B,6BAAQ;AACnC,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAW;AACnD;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB,0CAA0C,iBAAiB;AACxG,8BAA8B,iBAAiB;AAC/C,6BAA6B,iBAAiB;AAC9C;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,2CAA2C,iBAAiB;AACrG,0BAA0B,qBAAW,gDAAgD,iBAAiB;AACtG;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,KAAK;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,6BAA6B,iBAAiB;AACxF;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC,8BAA8B,KAAK;AACnC;AACA,8BAA8B,KAAK;AACnC;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,wBAAwB,+BAA+B;AACvD;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe,0BAA0B,gCAAgC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,qBAAqB,KAAK;AAC1B,+BAA+B,KAAK;AACpC,0BAA0B,iBAAiB,oBAAoB,qEAAqE;AACpI;AACA;AACA,0BAA0B,iBAAiB,oBAAoB,uDAAuD;AACtH,0BAA0B,iBAAiB,oBAAoB,qEAAqE;AACpI;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,0BAA0B,KAAK;AAC/B,0BAA0B,KAAK;AAC/B,gCAAgC,iBAAiB,oBAAoB,iDAAiD;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB,oBAAoB,0DAA0D;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD,kBAAkB,KAAK;AACvB,kBAAkB,KAAK;AACvB,4BAA4B,iBAAiB,0BAA0B,iDAAiD;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B,sBAAsB,KAAK;AAC3B,iCAAiC,iBAAiB,0BAA0B,iDAAiD;AAC7H;AACA;AACA;AACA,0BAA0B,iBAAiB,0BAA0B,oBAAoB;AACzF;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB,0BAA0B,iBAAiB;AACjF;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,0BAA0B,2DAA2D;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,0BAA0B,+DAA+D;AACnI;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC,iBAAiB;AACnD;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,QAAQ;AACkB;;;AC/1B5B;AACA;AACA;AACA;AAC+C;AACH;AACa;AACR;AAC6C;AACR;AAC+B;AACE;AAC9C;AAClB;AACZ;AACqC;AACkE;AACvF;AAC6G;AAC1C;AACyC;AACvG;AAC6C;AACgD;AAC1G;AACqE;AAC7B;AAC/B;AAClB;AACiC;AACjC;AACoD;AACG;AACpB;AACG;AACR;AACgE;AACrD;AAClB;AAC6D;AAC3D;AAClB;AACD;AACM;AACH;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA,gFAAgF,aAAa;AAC7F;AACA;AACA,iFAAiF,aAAa;AAC9F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA,iDAAiD,yBAAyB,IAAI;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ,yBAAyB,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,OAAO;AAC/E,+EAA+E,UAAU,KAAK,OAAO;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,2DAA2D;AAC9H;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB,2BAA2B;AAC3B,4BAA4B;AAC5B,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB,2BAA2B;AAC3B,4BAA4B;AAC5B,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,mDAAmD;AAC/E;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D,wBAAwB;AACxB,4BAA4B,mDAAmD;AAC/E;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY,yCAAyC,YAAY;AAC3F;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA,0BAA0B,YAAY,yCAAyC,YAAY;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4BAA4B,wCAAwC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8DAA8D,eAAe,yBAAyB,oBAAoB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD,kCAAkC,YAAY;AAC9C,gDAAgD,eAAe;AAC/D,aAAa,UAAU,mBAAmB,WAAW;AACrD;AACA,qEAAqE,cAAc;AACnF;AACA,uCAAuC,kBAAkB,yBAAyB,mBAAmB;AACrG;AACA;AACA;AACA,6BAA6B,iBAAiB,0BAA0B,iBAAiB;AACzF,sDAAsD,iBAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB,yBAAyB,mBAAmB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,eAAe,kBAAkB,cAAc;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,2CAA2C,IAAI;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,QAAQ;AACxF,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB,yBAAyB,mBAAmB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI,qCAAqC,SAAS;AACzG,+BAA+B,IAAI,mBAAmB,SAAS;AAC/D,iCAAiC,WAAW;AAC5C,4EAA4E,IAAI,iCAAiC,SAAS;AAC1H,sDAAsD,cAAc,WAAW,cAAc;AAC7F;AACA,yCAAyC,IAAI;AAC7C,yCAAyC,IAAI;AAC7C,8DAA8D,cAAc,WAAW,cAAc;AACrG;AACA,yCAAyC,SAAS;AAClD,iEAAiE,cAAc,WAAW,cAAc;AACxG;AACA;AACA;AACA,4CAA4C,IAAI;AAChD,oEAAoE,cAAc,WAAW,cAAc;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW,4CAA4C,kBAAkB;AAC9H;AACA,iBAAiB,UAAU,mEAAmE,OAAO;AACrG;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,SAAS,SAAS;AAC1C;AACA,iBAAiB,UAAU;AAC3B,iDAAiD,QAAQ;AACzD;AACA;AACA,iCAAiC,SAAS,qBAAqB,SAAS;AACxE,kBAAkB,QAAQ;AAC1B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY,uCAAuC,YAAY;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe,mBAAmB,UAAU,mBAAmB,WAAW;AACtF;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,eAAe,6BAA6B,cAAc;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,cAAc;AAC/F,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA,2DAA2D,SAAS,0BAA0B,QAAQ;AACtG,uEAAuE,eAAe;AACtF;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA,iEAAiE,eAAe,gCAAgC,cAAc;AAC9H,sEAAsE,qBAAqB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA,6CAA6C,oBAAoB;AACjE,6CAA6C,mBAAmB;AAChE,6CAA6C,kBAAkB;AAC/D;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA,uEAAuE,WAAW;AAClF,2CAA2C,IAAI;AAC/C,2EAA2E,UAAU;AACrF,2DAA2D,SAAS;AACpE;AACA;AACA,uEAAuE,WAAW;AAClF,2CAA2C,SAAS;AACpD,gFAAgF,UAAU;AAC1F,2DAA2D,IAAI;AAC/D;AACA;AACA,yEAAyE,cAAc;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA,iEAAiE,2CAA2C,IAAI;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,IAAI;AAClE,+CAA+C,eAAe;AAC9D,2CAA2C,SAAS,qCAAqC,oBAAoB;AAC7G,8CAA8C,SAAS,iCAAiC,QAAQ;AAChG,mDAAmD,eAAe;AAClE,2CAA2C,eAAe,iCAAiC,cAAc;AACzG,mDAAmD,qBAAqB;AACxE;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe,yBAAyB,oBAAoB;AAClG,wCAAwC,QAAQ,yBAAyB,UAAU;AACnF,wCAAwC,UAAU,yBAAyB,WAAW;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ,yBAAyB,UAAU;AAC5E;AACA;AACA,uCAAuC,YAAY;AACnD,kCAAkC,YAAY;AAC9C,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,cAAc;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D,gBAAgB,UAAU,mBAAmB,WAAW;AACxD,qDAAqD,kBAAkB,yBAAyB,mBAAmB;AACnH,uCAAuC,kBAAkB,yBAAyB,mBAAmB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA,4EAA4E,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,SAAS;AAC1F;AACA;AACA;AACA;AACA;AACA,iEAAiE,2CAA2C;AAC5G,8BAA8B;AAC9B;AACA;AACA,sDAAsD,aAAa;AACnE,qFAAqF,aAAa;AAClG;AACA;AACA,0FAA0F,QAAQ,yBAAyB,UAAU;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA,wFAAwF,aAAa;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6CAA6C;AAC7F;AACA;AACA;AACA,iIAAiI,IAAI;AACrI,iIAAiI,KAAK;AACtI;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA,uHAAuH,QAAQ;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,aAAa;AAClG,qEAAqE,QAAQ;AAC7E;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,uDAAuD,aAAa,8CAA8C,kBAAkB;AACpI,qFAAqF,aAAa;AAClG;AACA;AACA;AACA;AACA,yCAAyC,cAAc;AACvD,wBAAwB,UAAU;AAClC,0CAA0C,cAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE,gDAAgD,iBAAiB,2BAA2B,iBAAiB;AAC7G,8BAA8B,iBAAiB;AAC/C,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA,0CAA0C,YAAY;AACtD,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA,uDAAuD,oBAAoB;AAC3E;AACA,0DAA0D,SAAS,yDAAyD,oBAAoB;AAChJ,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI,QAAQ,8BAA8B;AACzE;AACA,mFAAmF;AACnF,2BAA2B;AAC3B;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,6CAA6C;AAC7C,iCAAiC;AACjC,6EAA6E;AAC7E,yCAAyC;AACzC,6BAA6B;AAC7B,yEAAyE;AACzE,yBAAyB;AACzB;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,cAAc;AACnF;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW,gFAAgF,IAAI;AAChI,qEAAqE,cAAc,SAAS,cAAc;AAC1G;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,0CAA0C,aAAa,+CAA+C,aAAa;AACnH,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mEAAmE;AAC7G;AACA;AACA,0CAA0C,oEAAoE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB,yBAAyB,mBAAmB;AACrH;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA,iEAAiE,IAAI,iCAAiC,IAAI,iCAAiC,IAAI;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD,gCAAgC,6BAAQ;AACxC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,aAAa;AACrG;AACA,oKAAoK,cAAc;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,YAAY;AAC1E;AACA;AACA,6CAA6C;AAC7C,sDAAsD,WAAW;AACjE;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA,8DAA8D,kFAAkF;AAChJ;AACA,8EAA8E;AAC9E;AACA,8EAA8E,YAAY;AAC1F;AACA;AACA;AACA;AACA;AACA,sDAAsD,iEAAiE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA,wBAAwB,oDAAoD;AAC5E,wBAAwB;AACxB;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC,sBAAsB,wFAAwF;AAC9G;AACA,sCAAsC;AACtC,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA,YAAY,wBAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe,yBAAyB,oBAAoB;AAC9F,oCAAoC,QAAQ,yBAAyB,UAAU;AAC/E,oCAAoC,UAAU,yBAAyB,WAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA,2CAA2C,aAAa;AACxD;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA,yBAAyB,iBAAiB;AAC1C,yBAAyB,iBAAiB;AAC1C,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA,kEAAkE,IAAI;AACtE,mDAAmD,eAAe;AAClE,kDAAkD,SAAS;AAC3D,uDAAuD,oBAAoB;AAC3E,kDAAkD,SAAS,iCAAiC,QAAQ;AACpG,uDAAuD,eAAe;AACtE,kDAAkD,eAAe,iCAAiC,cAAc;AAChH,uDAAuD,qBAAqB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA,+DAA+D,SAAS,iCAAiC,QAAQ;AACjH;AACA;AACA;AACA;AACA,qDAAqD,eAAe,iCAAiC,cAAc;AACnH;AACA;AACA;AACA;AACA;AACA,uEAAuE,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,sFAAsF,kBAAkB,yBAAyB,mBAAmB;AACpJ;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA,uDAAuD,kBAAkB,yBAAyB,mBAAmB;AACrH;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA,yFAAyF,WAAW;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,SAAS,iBAAiB;AACnE;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,sCAAsC,QAAQ;AAC9C;AACA,6CAA6C,QAAQ;AACrD;AACA,6CAA6C,IAAI,wBAAwB,SAAS;AAClF;AACA;AACA;AACA,6DAA6D,oBAAoB;AACjF,6DAA6D,SAAS;AACtE;AACA;AACA,iDAAiD,IAAI,wBAAwB,SAAS;AACtF;AACA,+DAA+D,oBAAoB;AACnF,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,QAAQ;AACnC;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,mBAAmB;AAC9C;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA,2BAA2B,WAAW;AACtC;AACA,2BAA2B,QAAQ;AACnC;AACA,2BAA2B,oBAAoB;AAC/C;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA,4EAA4E,QAAQ;AACpF,4BAA4B,kBAAkB;AAC9C;AACA,yDAAyD,UAAU;AACnE;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,kFAAkF,eAAe;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6CAA6C;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uEAAuE,qBAAK;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA,4CAA4C,6CAA6C;AACzF,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA,uFAAuF,kBAAkB;AACzG,6BAA6B,sBAAsB;AACnD;AACA,wDAAwD,UAAU;AAClE;AACA,+DAA+D;AAC/D;AACA;AACA,yBAAyB;AACzB;AACA,yDAAyD,UAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,yBAAyB;AACzB;AACA,0CAA0C,oDAAoD;AAC9F;AACA;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,8EAA8E,sBAAsB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA,gCAAgC,iEAAiE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,iBAAiB;AACjB;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAA0B;AAClC;AACA;AACA;AACA;AACA,2DAA2D,2DAA2D;AACtH;AACA;AACA;AACA;AACA,2DAA2D,2DAA2D;AACtH;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE,mCAAmC,oBAAoB;AACvD,sCAAsC,oBAAoB;AAC1D,6DAA6D,IAAI;AACjE;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA,2EAA2E,SAAS;AACpF,gCAAgC,SAAS,2CAA2C,KAAI;AACxF;AACA;AACA;AACA;AACA;AACA,iCAAiC,2BAA2B;AAC5D,kEAAkE,gBAAgB;AAClF;AACA,qCAAqC,cAAc;AACnD,4BAA4B,YAAY;AACxC,oCAAoC,sBAAsB;AAC1D,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C,4BAA4B,sBAAsB;AAClD,gDAAgD,SAAS,IAAI,oBAAoB;AACjF,8DAA8D,SAAS,6BAA6B;AACpG;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA,4DAA4D,4BAA4B;AACxF;AACA;AACA,gHAAgH,QAAQ;AACxH,gEAAgE,QAAQ,KAAK,YAAY;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,4BAA4B,OAAO,mBAAmB,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA,kCAAkC,oBAAoB;AACtD,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW,aAAa,iBAAiB,cAAc,aAAa,4BAA4B,SAAS;AAC3H;AACA,iDAAiD,QAAQ;AACzD,8BAA8B,oBAAoB;AAClD,6BAA6B,oBAAoB;AACjD;AACA;AACA,4GAA4G,IAAI,mDAAmD,SAAS,MAAM,SAAS;AAC3L,wFAAwF,aAAa;AACrG,wFAAwF,YAAY;AACpG;AACA;AACA;AACA;AACA,wEAAwE,IAAI,qDAAqD,SAAS,OAAO,aAAa,0CAA0C,iBAAiB,cAAc,YAAY,0CAA0C,gBAAgB;AAC7S,mEAAmE,WAAW;AAC9E,6BAA6B,YAAY,0CAA0C,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,6BAA6B,oBAAoB;AACjD,wEAAwE,IAAI,mDAAmD,SAAS;AACxI,4BAA4B,YAAY,0CAA0C,gBAAgB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,QAAQ;AACzG;AACA,gCAAgC,oBAAoB;AACpD;AACA,4DAA4D,SAAS;AACrE;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,uEAAuE,SAAS;AAChF;AACA,sDAAsD,IAAI;AAC1D;AACA;AACA;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,uEAAuE,IAAI,mDAAmD,SAAS;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;ACtnGD,IAAI,aAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,cAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;;;AC1DjB,IAAI,uBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,IAAI,yBAAW,IAAI,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACiF;AACpB;AACD;AACA;AACH;AACf;AACM;AAC2D;AACR;AACuD;AAC5B;AAC/C;AACpC;AACyC;AACA;AACxC;AACgG;AAC7B;AAC7B;AACM;AACyD;AACrG;AACF;AAC2E;AACnD;AACzB;AAC8B;AAC2B;AACP;AACc;AACjC;AACjC;AACyB;AACiD;AAChD;AACqD;AAC1B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,wFAAwF,mEAAmE;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,wFAAwF,mEAAmE;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B,eAAe,sBAAsB;AACrC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,0EAA0E,MAAM;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB,gBAAgB,sCAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0CAAqB;AACtE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,YAAY;AAC3B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,gCAAgC,qBAAW;AAC3C;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB,WAAW,oBAAoB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB,gBAAgB,uBAAuB;AACjH;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC,gBAAgB,iCAAiC;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA,qDAAqD,mBAAmB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+DAA+D;AAClF,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,uBAAS;AACxB;AACA,mBAAmB,yBAAW;AAC9B;AACA;AACA,wCAAwC,YAAY,mBAAmB,YAAY;AACnF,sCAAsC,YAAY;AAClD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD,0CAA0C,iBAAiB;AAC3D;AACA,2EAA2E,SAAS,cAAc,YAAY;AAC9G;AACA;AACA;AACA,2EAA2E,YAAY;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,uBAAuB,iBAAiB;AAClF,+BAA+B,iBAAiB,4BAA4B,iBAAiB;AAC7F;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAmE;AACrF,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAW;AACxC;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB,yBAAyB,wEAAwE;AACzI,wBAAwB;AACxB;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB,yBAAyB,wEAAwE;AACzI;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,UAAU;AAC5B,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,gBAAgB;AAClC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6EAA6E;AAC/F,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,iEAAiE,6BAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAmE;AACrF,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB,yBAAyB,sCAAsC;AAC3G,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB,yBAAyB,sCAAsC;AAC/G,gCAAgC,wEAAwE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA,yCAAyC;AACzC,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA,+BAA+B,IAAI;AACnC,+BAA+B;AAC/B,uDAAuD,qBAAW;AAClE;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0BAA0B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6CAA6C;AACzE;AACA,+BAA+B,qBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAK;AACtC,qCAAqC,cAAc;AACnD,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA,6EAA6E,qBAAK;AAClF,gDAAgD,sBAAsB,WAAW,kEAAkE;AACnJ,wDAAwD,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D,4CAA4C,2BAA2B;AACvE;AACA,2DAA2D,qBAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C,kDAAkD,qBAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6BAA6B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uEAAuE,mCAAmC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA,6CAA6C,qBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA,oEAAoE,aAAa;AACjF;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,kBAAkB,IAAI;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,aAAa;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,6BAA6B,qBAAW;AACxC;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,6BAAQ;AACjF;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,6BAA6B,qBAAW;AACxC;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,iEAAiE;AACjE;AACA,yDAAyD,qCAAqC;AAC9F,8BAA8B,aAAa,qBAAW,4BAA4B;AAClF;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,2BAA2B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa,WAAW,SAAS;AACzD,wCAAwC,qBAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA,6FAA6F,gCAAgC,IAAI,0EAA0E;AAC3M;AACA;AACA;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA,6FAA6F,gCAAgC,IAAI,0EAA0E;AAC3M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,qBAAqB,qBAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA,YAAY,aAAa,CAAC,qBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA,0DAA0D,yBAAyB;AACnF;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,sCAAsC,YAAY;AAClD;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa,eAAe,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA,YAAY,aAAa,UAAU,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAK;AAC/B,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA,YAAY,aAAa,iCAAiC,IAAI,KAAK,aAAa,iCAAiC,SAAS;AAC1H,yBAAyB,IAAI;AAC7B,oEAAoE,QAAQ;AAC5E;AACA;AACA,yBAAyB,SAAS;AAClC;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C,sDAAsD,gBAAgB;AACtE;AACA;AACA,uCAAuC,qBAAqB;AAC5D,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC,eAAe,gCAAgC;AAC/C,eAAe,SAAS;AACxB,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA,eAAe,uBAAS;AACxB;AACA,mBAAmB,yBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD,oCAAoC,qCAAqC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B,8CAA8C,YAAY;AAC1D;AACA;AACA,8CAA8C,oBAAoB;AAClE;AACA;AACA,yCAAyC,cAAc;AACvD,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA,kDAAkD,+CAA+C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,aAAa,SAAS,0BAA0B,QAAQ,MAAM,UAAU;AACxE;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB,0CAA0C,YAAY;AACtD;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,+BAA+B,iBAAiB;AAChD,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,kCAAkC;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,kCAAkC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,sEAAsE,SAAS;AAC/E,qDAAqD,SAAS;AAC9D;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD,kCAAkC;AAClC,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,0BAA0B,+BAA+B;AACzD;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C,wCAAwC;AACxC,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA,6CAA6C,EAAE,6CAA6C,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,+BAA+B;AACxH;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA;AACA;AACA,0CAA0C,6BAA6B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA,qGAAqG,WAAW;AAChH,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,WAAW;AAC3G,yBAAyB;AACzB;AACA,0EAA0E,IAAI;AAC9E,8FAA8F,YAAY;AAC1G;AACA;AACA;AACA;AACA,sGAAsG,WAAW;AACjH,sGAAsG,YAAY;AAClH;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C,8BAA8B;AAC9B,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8CAA8C;AACjH;AACA,yDAAyD,uDAAuD,wBAAwB,qBAAqB;AAC7J;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8CAA8C;AACjH;AACA,yDAAyD,uDAAuD,wBAAwB,qBAAqB;AAC7J;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC,iBAAiB,WAAW;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,UAAU;AAC3B,iBAAiB,WAAW;AAC5B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA;AACA;AACA;AACA;AACA,2EAA2E,gDAAgD;AAC3H,yFAAyF,gCAAgC;AACzH,0FAA0F,gCAAgC;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB,mCAAmC,qBAAW;AAC9C;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA,kEAAkE,8CAA8C;AAChH;AACA;AACA;AACA,sDAAsD,qFAAqF;AAC3I;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6BAA6B;AAChG,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uDAAuD;AACpH,gDAAgD,6BAA6B;AAC7E,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,4IAA4I,EAAE,iCAAiC,EAAE;AACjL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB,mCAAmC,qBAAW;AAC9C;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB,8BAA8B;AAC9B,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA,kEAAkE,8CAA8C;AAChH,qDAAqD,oFAAoF;AACzI;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6BAA6B;AAChG,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,4IAA4I,EAAE,iCAAiC,EAAE;AACjL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,SAAS;AAC1B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,SAAS;AAC1B,iBAAiB,WAAW;AAC5B,iBAAiB,aAAa;AAC9B,iBAAiB,qBAAqB;AACtC,iBAAiB,WAAW;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gBAAgB;AAChB,gBAAgB;AAChB;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C,qCAAqC;AACrC,4BAA4B,cAAc;AAC1C;AACA,SAAS;AACT,mCAAmC,OAAO,2DAA2D;AACrG,qCAAqC;AACrC;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,SAAS;AAC7B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,SAAS;AAC7B,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,iBAAiB;AAClC,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,WAAW;AAC/B,oBAAoB,WAAW;AAC/B,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,UAAU;AAC3B,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,eAAe,uBAAS;AACxB;AACA,mBAAmB,yBAAW;AAC9B;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6BAAQ;AACrC,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA,iCAAiC,6BAAQ;AACzC,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO,sEAAsE,eAAe;AACxG,+BAA+B,IAAI;AACnC,kCAAkC;AAClC;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD,oFAAoF,aAAa;AACjG;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA,iFAAiF,aAAa;AAC9F;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA,sEAAsE,4CAA4C;AAClH;AACA;AACA;AACA;AACA,qCAAqC,aAAa;AAClD,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;AACA;AACA;AACA;AACA,+CAA+C,UAAU;AACzD,8CAA8C,SAAS;AACvD,0CAA0C,eAAe,oDAAoD,wEAAwE;AACrL;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E,kDAAkD,KAAK;AACvD;AACA,uDAAuD,KAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,qDAAqD,eAAe;AACpE,2BAA2B;AAC3B,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA,gCAAgC,KAAK;AACrC,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,YAAY,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,gBAAgB,QAAQ,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,0BAA0B,yGAAyG;AACnI,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,0BAA0B,uGAAuG;AACjI,0BAA0B;AAC1B;AACA,kCAAkC,iBAAiB;AACnD,kCAAkC,iBAAiB;AACnD;AACA;AACA,8BAA8B;AAC9B,kCAAkC,iBAAiB;AACnD;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa,qBAAqB,aAAa;AAC5E,oBAAoB,KAAK;AACzB,2CAA2C,eAAe;AAC1D;AACA,oBAAoB,KAAK;AACzB,2CAA2C,eAAe;AAC1D;AACA;AACA,oGAAoG,aAAa;AACjH;AACA;AACA,sBAAsB,KAAK;AAC3B,uCAAuC;AACvC;AACA;AACA,oGAAoG,aAAa;AACjH;AACA;AACA,sBAAsB,KAAK;AAC3B,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,oEAAoE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,sCAAsC,eAAe;AACrD,2BAA2B;AAC3B,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA,2BAA2B,0CAA0C;AACrE;AACA;AACA,2BAA2B,0CAA0C;AACrE;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,qCAAqC,SAAS;AAC9C,wCAAwC,KAAK;AAC7C,qCAAqC,SAAS;AAC9C,wCAAwC,KAAK;AAC7C;AACA;AACA,qCAAqC,SAAS;AAC9C,wCAAwC,KAAK;AAC7C;AACA;AACA,gCAAgC;AAChC,yCAAyC,SAAS;AAClD,4CAA4C,KAAK;AACjD;AACA;AACA,yCAAyC,SAAS;AAClD,4CAA4C,KAAK;AACjD;AACA;AACA,oCAAoC;AACpC,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD;AACA;AACA,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD;AACA;AACA,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD;AACA;AACA;AACA,yCAAyC,SAAS;AAClD,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,2BAA2B;AAC1C,eAAe,gCAAgC;AAC/C,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB;AACA,8CAA8C,uBAAuB;AACrE;AACA,+BAA+B,IAAI;AACnC,oBAAoB,SAAS,SAAS,eAAe;AACrD;AACA;AACA,sCAAsC;AACtC;AACA;AACA,wCAAwC,sBAAsB,WAAW,gDAAgD;AACzH;AACA;AACA,+DAA+D,IAAI,0EAA0E;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gDAAgD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,+BAA+B,sBAAsB;AACrD,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA,4BAA4B;AAC5B,yDAAyD;AACzD;AACA;AACA;AACA;AACA,kEAAkE,IAAI,8BAA8B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,4BAA4B;AAC3C,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,iGAAiG,eAAe;AAChH;AACA;AACA,kDAAkD,qBAAqB;AACvE;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sEAAsE;AACxF,eAAe,WAAW;AAC1B,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc,IAAI;AAC3C;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,+BAA+B,IAAI;AACnC,gCAAgC,oBAAoB;AACpD,kCAAkC,sBAAsB,WAAW,kDAAkD;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,kCAAkC;AAClC,qBAAqB;AACrB;AACA;AACA,wBAAwB,sBAAsB;AAC9C,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,qBAAqB;AACjC,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,oBAAoB;AAC5C,2BAA2B,cAAc;AACzC,YAAY,YAAY;AACxB;AACA,kBAAkB,sBAAsB;AACxC;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB;AACA;AACA,wBAAwB,sBAAsB,WAAW,gCAAgC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C;AACA,oNAAoN,OAAO;AAC3N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,gBAAgB,4BAA4B;AAC5C,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,oBAAoB,OAAO;AAC3B;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,iCAAiC,IAAI;AACrC;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,iCAAiC,IAAI;AACrC;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA,kEAAkE;AAClE;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,8BAA8B;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C,kBAAkB,yCAAyC;AAC3D,kBAAkB,yDAAyD;AAC3E,kBAAkB,0CAA0C;AAC5D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,4BAA4B,0BAA0B;AACtD,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,KAAK,cAAc,YAAY,IAAI,iFAAiF;AAC5I,wBAAwB,sBAAsB;AAC9C;AACA;AACA,kCAAkC,KAAK;AACvC,kCAAkC,KAAK;AACvC;AACA,yBAAyB,KAAK;AAC9B,yBAAyB,KAAK;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA,iFAAiF,IAAI;AACrF;AACA;AACA,aAAa;AACb;AACA,sBAAsB,wGAAwG;AAC9H;AACA,2CAA2C,SAAS;AACpD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA,sBAAsB,wGAAwG;AAC9H;AACA,2CAA2C,SAAS;AACpD;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,yBAAyB;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA,oBAAoB,SAAS,GAAG,kDAAkD;AAClF;AACA;AACA,6BAA6B,cAAc;AAC3C,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,wEAAwE,IAAI;AAC5E,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,8BAA8B,sBAAsB,WAAW,gDAAgD;AAC/G;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,oFAAoF,IAAI;AACxF;AACA;AACA,6BAA6B,2BAA2B;AACxD,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;AACnC;AACA;AACA;AACA,4FAA4F,wCAAwC;AACpI;AACA;AACA,8FAA8F,oGAAoG;AAClM;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,4BAA4B;AACtG,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa,2BAA2B,aAAa;AAC9H;AACA,yDAAyD,IAAI;AAC7D,gBAAgB,kBAAkB;AAClC;AACA;AACA,0EAA0E,aAAa,2BAA2B,aAAa;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC,oEAAoE,kDAAkD;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uCAAuC,aAAa;AACpD,2DAA2D,6BAA6B;AACxF,qEAAqE,aAAa;AAClF;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,CAAC,qBAAK;AAChD;AACA,8BAA8B,YAAY;AAC1C;AACA,6EAA6E,kBAAkB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC,wDAAwD;AACxD;AACA,aAAa;AACb;AACA;AACA;AACA,wDAAwD,IAAI,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kBAAkB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,IAAI;AAChD;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,oCAAoC,+BAA+B;AACnE;AACA,4CAA4C,IAAI;AAChD,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAK;AAChC;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAK;AACvC;AACA,2DAA2D,sBAAsB,gBAAgB,eAAe;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,SAAS;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B,oCAAoC,IAAI,2BAA2B,SAAS,oDAAoD,IAAI,2BAA2B,SAAS;AACxK;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI,sBAAsB,QAAQ;AAChE,0CAA0C,IAAI;AAC9C;AACA,sBAAsB,6BAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,IAAI;AACpD;AACA;AACA,uCAAuC,SAAS;AAChD,iFAAiF,IAAI;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD,4BAA4B;AAC5B,4BAA4B;AAC5B,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAK;AAC3B,sBAAsB,qBAAK;AAC3B;AACA;AACA,4BAA4B,qBAAW,uBAAuB,qBAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC,wBAAwB,oBAAoB;AAC5C;AACA;AACA,sBAAsB,IAAI;AAC1B,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,2BAA2B,SAAS;AACpC,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAK;AACnC,8BAA8B,qBAAK;AACnC;AACA;AACA,4BAA4B,qBAAW,+BAA+B,qBAAW;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,yBAAyB,SAAS;AAClC,+BAA+B;AAC/B,+BAA+B;AAC/B,wBAAwB,oBAAoB;AAC5C;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAK;AAC9B,yBAAyB,qBAAK;AAC9B;AACA;AACA,4BAA4B,qBAAW,0BAA0B,qBAAW;AAC5E;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,sCAAsC,qBAAK;AAC3C;AACA;AACA,2CAA2C,qBAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,UAAU;AAC5E;AACA;AACA;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC;AACnD,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC;AACnD,eAAe,4CAA4C;AAC3D;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD,YAAY,mBAAmB;AAC/B;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B,sBAAsB,mBAAmB;AACtF;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;AClrNgB;AACe;AACmE;AAC/E;AACiC;AAC9E;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,UAAU;AAChF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,UAAU;AAChF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,IAAI;AACtE;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,gCAAgC,oDAAoD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,gCAAgC,gDAAgD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,YAAY,OAAO,mCAAmC,MAAM;AAC5D,yBAAyB,cAAc;AACvC,YAAY,WAAW;AACvB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD,gBAAgB,WAAW;AAC3B,gBAAgB,eAAe;AAC/B,gBAAgB,cAAc;AAC9B,gCAAgC,sBAAsB,WAAW,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,mDAAmD,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AAC0B;;;ACt5B3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,CAAC;AACe;;;ACrM6B;AACf;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;;;AChbzB,IAAI,8BAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,+BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,8BAAS;AACb;AACA;AACA;AACA,IAAI,+BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACkB;;;AC9CjC,IAAI,qBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,sBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACe;;;ACrCY;AACgE;AAC3C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,4BAA4B,mBAAmB;AAC/C;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iFAAiF;AACvH,kBAAkB;AAClB,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,0CAA0C,uEAAuE;AACjH,sBAAsB;AACtB;AACA;AACA,0CAA0C,yDAAyD;AACnG,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,gCAAgC,mBAAmB;AACnD;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oDAAoD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kDAAkD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS,uBAAuB,oBAAoB;AAC3F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS,uBAAuB,oBAAoB;AAC3F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,IAAI,wCAAwC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;ACzhCvB,IAAI,wBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAS;AACb;AACA;AACA;AACA,IAAI,yBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACY;;;AC9C3B,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,gBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,IAAI,iBAAW,IAAI,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwI;AAC/E;AACH;AACO;AACN;AACA;AACgB;AACpB;AACK;AACkE;AACsB;AACtF;AACG;AAC+D;AAC5E;AACI;AACK;AACsB;AACb;AACzB;AACmG;AAC/F;AACF;AACyD;AACrC;AACU;AACd;AACA;AAC4E;AAC1E;AACmF;AACvG;AACkB;AACY;AACrB;AACmB;AAClB;AACL;AACE;AACmB;AACJ;AACN;AACI;AACe;AAC+D;AACzB;AACkB;AACrC;AACqB;AAClC;AAC0C;AAC3C;AACoC;AACS;AACS;AACrC;AAClC;AACX;AACE;AACf;AAC8B;AACJ;AACR;AACuE;AAC/B;AAC7B;AAC6C;AACrD;AACY;AAC+B;AACjD;AACM;AACJ;AACK;AACH;AACiC;AACjD;AAC4D;AACzB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA,8BAA8B,YAAY;AAC1C;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAsD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA,4BAA4B,gEAAgE;AAC5F;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA,wBAAwB,gEAAgE;AACxF;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA,uDAAuD,SAAS,qCAAqC,IAAI;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa;AACnD,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,gBAAgB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAW;AACzD;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA,kDAAkD,iBAAiB;AACnE,kDAAkD,iBAAiB;AACnE;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gBAAgB;AACvG;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E;AACA;AACA;AACA,qFAAqF,aAAa;AAClG;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA,kDAAkD,iBAAiB;AACnE,kDAAkD,iBAAiB;AACnE;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA,mDAAmD,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY,+BAA+B,YAAY;AAC1G,mDAAmD,YAAY,+BAA+B,YAAY;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA,oEAAoE,QAAQ;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA,kCAAkC,iBAAiB,qBAAqB,iBAAiB;AACzF;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,gBAAgB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4DAA4D;AACjI;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD,gCAAgC,mBAAmB;AACnD,iCAAiC,aAAa;AAC9C,4BAA4B,eAAe;AAC3C;AACA;AACA,0EAA0E,qBAAI;AAC9E;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe,sBAAsB,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA,mEAAmE,eAAe;AAClF;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAO;AACnB,wBAAwB,YAAY,WAAW,YAAY;AAC3D;AACA,qCAAqC;AACrC;AACA,6BAA6B,WAAW;AACxC,8BAA8B,aAAa;AAC3C;AACA;AACA,QAAQ,yBAAyB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE,kDAAkD,gBAAgB;AAClE;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,wBAAwB,wBAAO;AAC/B,0BAA0B,wBAAO;AACjC,4BAA4B,wBAAO;AACnC,yBAAyB,wBAAO;AAChC;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,0BAA0B,wBAAO;AACjC,4BAA4B,wBAAO;AACnC,yBAAyB,wBAAO;AAChC;AACA,wBAAwB,wBAAO;AAC/B,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gCAAgC;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;;AAEvB;AACA;AACA;AACA,iDAAiD,6BAAQ;AACzD;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA,wBAAwB,qBAAW;AACnC;AACA;AACA;AACA,sFAAsF;AACtF,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,qBAAW;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,qBAAW;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA,6BAA6B,qBAAW;AACxC;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4CAA4C;AAC3D,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4CAA4C;AAC3D,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4CAA4C;AAC3D,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA,uEAAuE,qBAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAW,mBAAmB,qBAAW;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,+BAA+B;AAC9C,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gCAAgC;AAC/C,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B,gBAAgB,yEAAyE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B,eAAe,UAAU;AACzB;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA,wFAAwF,gBAAgB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB,kBAAkB,iBAAiB;AACnG;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,sBAAsB;AACtB,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,sBAAsB;AACtB,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,iBAAiB;AAChC,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gCAAgC;AAC/C,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,eAAe;AAC9B,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,4HAA4H,YAAY;AACxI;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA,0DAA0D,IAAI,8BAA8B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,eAAS;AACxB;AACA,mBAAmB,iBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,QAAQ;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,yBAAyB;AACzB;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa,sCAAsC,aAAa;AACtH,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA,+EAA+E,qBAAW;AAC1F,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAW;AACnC,sDAAsD,aAAa,sCAAsC,aAAa;AACtH,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA,oFAAoF,qBAAW;AAC/F,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS,0DAA0D;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;;AAE7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;;AAE1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,qDAAqD;AACpE,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,mBAAmB,SAAS;AAC7D;AACA;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,aAAa;AACrE,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,UAAU,SAAS;AACpD,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA,mEAAmE,oBAAoB;AACvF;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wDAAwD;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,kBAAkB;AACxF;AACA,wCAAwC,oBAAoB;AAC5D;AACA,kDAAkD,SAAS;AAC3D,uEAAuE;AACvE;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF,sCAAsC,YAAY;AAClD;AACA,4CAA4C,aAAa,sCAAsC,aAAa;AAC5G,4CAA4C,aAAa;AACzD;AACA,qFAAqF,qBAAW;AAChG,oCAAoC,qBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,qBAAqB;AACpC,eAAe,WAAW;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA,wDAAwD,qBAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,8BAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD,wEAAwE,oBAAoB;AAC5F;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA,6EAA6E,kBAAkB;AAC/F,0DAA0D,gBAAgB;AAC1E;AACA,4BAA4B,aAAa;AACzC,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,kBAAkB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,gCAAgC,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD,sCAAsC,YAAY;AAClD;AACA;AACA,wBAAwB,SAAS;AACjC;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,iDAAiD,aAAa,uCAAuC,aAAa;AAClH,wCAAwC,IAAI,mBAAmB,SAAS;AACxE;AACA,yFAAyF,qBAAW;AACpG,wCAAwC,qBAAW;AACnD;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,IAAI,mBAAmB,SAAS;AAC5E;AACA;AACA;AACA,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,eAAe,6BAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,YAAY;AACrF;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,gCAAgC,aAAa;AAC5E,yCAAyC,aAAa,uCAAuC,aAAa;AAC1G,gCAAgC,IAAI,mBAAmB,SAAS;AAChE;AACA,2DAA2D,qBAAW;AACtE,gCAAgC,qBAAW;AAC3C;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,QAAQ;AAClF,4CAA4C,qCAAqC;AACjF;AACA;AACA;AACA,oDAAoD,0EAA0E;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE,wCAAwC,iCAAiC;AACzE;AACA;AACA;AACA;AACA,gDAAgD,sEAAsE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA,wCAAwC,wCAAwC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA,qDAAqD,aAAa;AAClE,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4BAA4B;AAC3C,eAAe,QAAQ;AACvB;AACA;AACA,cAAc,UAAU,WAAW,cAAc,WAAW,eAAe;AAC3E;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,SAAS;AACpG;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe;AAChE;AACA;AACA,oDAAoD,IAAI,QAAQ,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,QAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;AACtF,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,UAAU;AACjE,mCAAmC,iBAAiB,eAAe;AACnE;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA,yCAAyC,IAAI,CAAC,cAAc;AAC5D;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,iBAAiB;AACtH,oCAAoC,6CAA6C;AACjF,iCAAiC,8BAA8B;AAC/D;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,gCAAgC,yCAAyC,aAAa,cAAc,iBAAiB;AACrH,8BAA8B;AAC9B,8BAA8B,6CAA6C;AAC3E,kFAAkF;AAClF;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA,wBAAwB,6BAAY;AACpC,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA,yJAAyJ,aAAa;AACtK;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,4BAA4B;AAC5F;AACA;AACA,qGAAqG,aAAa;AAClH;AACA;AACA;AACA;AACA,oDAAoD,IAAI,8CAA8C;AACtG;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;AACA,+DAA+D,gBAAgB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA,gBAAgB,eAAe;AAC/B,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,+DAA+D,gBAAgB;AAC/E;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,mCAAmC;AACtG;AACA;AACA;AACA;AACA,qFAAqF,4BAA4B;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8HAA8H;AAC9H,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6BAA6B;AACpG;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,uEAAuE,QAAQ;AAC/E;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,6DAA6D,oEAAoE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,wDAAwD;AACjH;AACA;AACA;AACA,2EAA2E,QAAQ;AACnF;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,iEAAiE,mEAAmE;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC,gBAAgB,gBAAgB;AAChC,gBAAgB,SAAS;AACzB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,kBAAkB,WAAW;AAC7B;AACA;AACA,2CAA2C,kBAAkB,qBAAqB,mBAAmB;AACrG;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kCAAkC;AACxD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qCAAqC;AAC3D,sBAAsB;AACtB;AACA,0CAA0C;AAC1C;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+BAA+B;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD,yBAAyB;AACzB;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,iCAAiC,qBAAqB;AACtD;AACA,gCAAgC,0BAA0B;AAC1D;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,wCAAwC,mEAAmE;AAC3G;AACA;AACA;AACA;AACA,yBAAyB;AACzB,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,oCAAoC,0CAA0C;AAC9E;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,kBAAkB;AAClC,kBAAkB;AAClB;AACA;AACA,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4BAA4B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wBAAwB;AACvF;AACA;AACA;AACA,+DAA+D,GAAG,GAAG,GAAG;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,8BAA8B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kCAAkC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kCAAkC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,sBAAsB;AACtB;AACA,oCAAoC;AACpC,sBAAsB;AACtB;AACA,mCAAmC;AACnC,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,gBAAgB,uBAAuB;AACvC,eAAe,gDAAgD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,0DAA0D;AAC/G;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,6BAA6B,SAAS;AACtC;AACA;AACA,oCAAoC,SAAS;AAC7C,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA,0CAA0C,aAAa,wCAAwC,aAAa;AAC5G;AACA,qFAAqF,qBAAW;AAChG,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,wBAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gBAAgB;AAC/B,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C,eAAe,mEAAmE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,+BAA+B,IAAI;AACnC,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA,sCAAsC,oCAAoC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA,wCAAwC,aAAa,sCAAsC,aAAa;AACxG;AACA,sFAAsF,qBAAW;AACjG,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,0EAA0E;AACzF,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,YAAY;AAC3B;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA,mCAAmC,WAAW,wBAAwB,kBAAkB;AACxF;AACA,oCAAoC,4BAA4B;AAChE;AACA,wDAAwD,aAAa;AACrE;AACA,sGAAsG,qBAAW;AACjH,gDAAgD,qBAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,uBAAuB;AACvC,eAAe,gDAAgD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA,oFAAoF,mDAAmD;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA,kCAAkC,WAAW;AAC7C;AACA,oCAAoC,sBAAsB;AAC1D;AACA,wDAAwD,aAAa;AACrE;AACA,qGAAqG,qBAAW;AAChH,gDAAgD,qBAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD,+CAA+C,8BAA8B;AAC7E,kCAAkC,kBAAkB,cAAc;AAClE,kCAAkC,sBAAsB,kBAAkB;AAC1E,6BAA6B,QAAQ,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB,iEAAiE;AACjE,qDAAqD,kBAAkB,gBAAgB;AACvF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oDAAoD,+BAA+B,0BAA0B,iBAAiB;AAC9H;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA,QAAQ,oBAAoB;AAC5B,8BAA8B,gBAAgB;AAC9C;AACA;AACA,SAAS;AACT;AACA,qBAAqB;AACrB,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,QAAQ,qCAAqC;AACnF,mBAAmB,gBAAgB;AACnC;AACA,SAAS;AACT,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe,eAAe,sBAAsB;AAC5D;AACA;AACA;AACA;AACA,oDAAoD,+BAA+B;AACnF;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB,QAAQ,yCAAyC;AAChG,sCAAsC,gBAAgB,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,YAAY,oBAAoB,uCAAuC,SAAS,QAAQ;AACxF;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ,SAAS,gBAAgB,oBAAoB;AAClG;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA,mDAAmD,+BAA+B;AAClF,SAAS;AACT,sBAAsB,iBAAiB;AACvC;AACA,mDAAmD,+BAA+B;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB,QAAQ,2CAA2C;AAC/F;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,QAAQ,4CAA4C;AAC9F;AACA,QAAQ,eAAe,kBAAkB,4BAA4B,GAAG;AACxE;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT;AACA;AACA,QAAQ,eAAe,gBAAgB,sBAAsB;AAC7D;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA,oDAAoD,+BAA+B,kBAAkB,QAAQ;AAC7G,0BAA0B,gBAAgB,oBAAoB;AAC9D;AACA,SAAS;AACT,2BAA2B,iBAAiB;AAC5C;AACA,wCAAwC,QAAQ,SAAS,mBAAmB;AAC5E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,QAAQ,qEAAqE,GAAG;AAC1H;AACA;AACA,QAAQ,eAAe,mBAAmB,iDAAiD;AAC3F;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe,WAAW,4CAA4C;AAC9E;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA,uEAAuE,SAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,mBAAmB,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,UAAU;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,cAAc;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA,gDAAgD,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,6EAA6E,eAAe,8BAA8B,eAAe;AACzI;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA,+FAA+F,eAAe,oCAAoC,eAAe;AACjK;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,mFAAmF;AACnF;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,gCAAgC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,4BAA4B,UAAU;AACtC,kCAAkC,gBAAgB;AAClD,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU,uCAAuC,UAAU;AAChG,0DAA0D,UAAU;AACpE,8CAA8C,aAAa,wCAAwC,aAAa;AAChH,mDAAmD,aAAa;AAChE,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA,0DAA0D,UAAU;AACpE,8CAA8C,aAAa,wCAAwC,aAAa;AAChH,mDAAmD,aAAa;AAChE,wCAAwC,UAAU;AAClD;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD,8CAA8C,MAAM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,YAAY;AACzF;AACA;AACA,wBAAwB,qEAAqE;AAC7F;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,2BAA2B;AACvC;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,IAAI;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,oBAAoB,aAAa,oBAAoB,iBAAiB,oBAAoB;AACvH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe,aAAa,eAAe,cAAc,eAAe;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA,4BAA4B,qCAAqC,QAAQ,iDAAiD;AAC1H;AACA;AACA;AACA;AACA,qBAAqB,yDAAyD,kEAAkE;AAChJ,yBAAyB,eAAe,aAAa,eAAe,cAAc,eAAe;AACjG;AACA;AACA,yBAAyB;AACzB,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B,oBAAoB,qBAAqB;AACzC;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,6HAA6H,SAAS;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI,wCAAwC;AACnF,qBAAqB,SAAS,qBAAW;AACzC,0BAA0B,YAAY;AACtC;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI;AACpC,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,KAAK;AACjF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,QAAQ;AACpF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,OAAO;AACnF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,OAAO;AACnF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,oBAAoB,YAAY;AACpE,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACzF,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,qBAAqB,YAAY;AACrE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,sBAAsB,YAAY;AACtE,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,mBAAmB,YAAY;AAC3G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,qBAAqB,YAAY;AAC7G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,qBAAqB,YAAY;AAC7G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,sBAAsB,YAAY;AAC9G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,4BAA4B,YAAY;AACpH,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,6BAA6B,YAAY;AACrH;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,+BAA+B;AAC/C,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,gCAAgC,iCAAiC;AACjE,mGAAmG,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,kCAAkC;AAClC,gCAAgC,iCAAiC;AACjE,mGAAmG,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,eAAe,2BAA2B;AAC1C,eAAe,KAAK;AACpB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC;AACnD,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,wBAAwB,+BAA+B;AACvD;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E,oBAAoB,aAAa,sCAAsC,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,iBAAiB;AACjC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,mBAAmB,SAAS,sBAAsB,OAAO;AACzF;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,sCAAsC,cAAc,2BAA2B,cAAc;AAC7F,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,aAAa,YAAY;AACzB,4BAA4B,+BAA+B;AAC3D;AACA,oCAAoC,IAAI;AACxC,8EAA8E,aAAa;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,iBAAiB,6BAA6B;AAC9C;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA,+CAA+C,IAAI;AACnD;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,WAAW;AAC3B,gBAAgB,UAAU;AAC1B,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,gCAAgC;AAChD,gBAAgB,kBAAkB;AAClC,gBAAgB,cAAc;AAC9B,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qDAAqD;AACrG,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D,uEAAuE,UAAU;AACjF;AACA,mDAAmD,UAAU;AAC7D,uEAAuE,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2DAA2D;AACvG;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,oCAAoC,kBAAkB;AACtD;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,YAAY,eAAe,CAAC,iBAAiB;AAC7C,YAAY,eAAe,CAAC,eAAe;AAC3C,6BAA6B,kBAAkB;AAC/C,YAAY,eAAe;AAC3B;AACA;AACA,4BAA4B,eAAe;AAC3C,YAAY,eAAe;AAC3B;AACA,YAAY,eAAe,CAAC,qBAAqB;AACjD;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe,kBAAkB,WAAW;AAC3E;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,qBAAqB,SAAS,8BAA8B,iBAAiB;AAC7E,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,sCAAsC,iBAAiB;AACrF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,sCAAsC,iBAAiB;AACrF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,uCAAuC,iBAAiB;AACtF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,uCAAuC,iBAAiB;AACtF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA,0DAA0D,iBAAiB;AAC3E;AACA,oBAAoB,gBAAgB;AACpC,0DAA0D,iBAAiB;AAC3E;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA,oBAAoB,gBAAgB;AACpC,0DAA0D,iBAAiB;AAC3E;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA,qBAAqB,SAAS;AAC9B,4DAA4D,iBAAiB,mBAAmB,iBAAiB;AACjH,wBAAwB,iBAAiB,eAAe,iBAAiB,cAAc,iBAAiB;AACxG,wBAAwB,iBAAiB,eAAe,iBAAiB,mBAAmB,iBAAiB;AAC7G;AACA,qBAAqB,SAAS;AAC9B,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,cAAc;AAC/D,oDAAoD,cAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,yCAAyC,kBAAkB;AAC3D,8CAA8C,iBAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,IAAI;AAC1D;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA,+EAA+E,eAAe;AAC9F;AACA,iQAAiQ,OAAO;AACxQ;AACA,gEAAgE,SAAS,IAAI,aAAa;AAC1F;AACA,iSAAiS,mBAAmB;AACpT;AACA;AACA;AACA,2NAA2N,OAAO;AAClO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA,wBAAwB,+CAA+C;AACvE;AACA;AACA;AACA,gBAAgB,aAAa,qEAAqE,SAAS;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,6CAA6C,kBAAkB;AAC/D;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,mBAAmB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,SAAS,IAAI,aAAa;AACpF;AACA,sRAAsR,mBAAmB;AACzS;AACA,0DAA0D,IAAI;AAC9D;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA;AACA;AACA;AACA,kOAAkO,OAAO,sDAAsD,eAAe;AAC9S;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D,sGAAsG,cAAc;AACpH;AACA,0BAA0B,qBAAqB;AAC/C,sNAAsN,OAAO;AAC7N;AACA,mGAAmG,cAAc;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,UAAU;AACzB,eAAe,kCAAkC;AACjD;AACA;AACA;AACA;AACA;AACA,+NAA+N,OAAO;AACtO;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qCAAqC;AACvD,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB,gCAAgC,kBAAkB;AAClD,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,MAAM;AAC/C,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,4BAA4B;AAC3C,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,8EAA8E,MAAM;AACpF,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAS;AACxB;AACA,mBAAmB,iBAAW;AAC9B,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA,wBAAwB,6BAAY;AACpC,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA,qCAAqC,cAAc;AACnD,iCAAiC;AACjC;AACA;AACA;AACA,kEAAkE,IAAI;AACtE,oCAAoC,eAAe;AACnD,wDAAwD;AACxD,0CAA0C;AAC1C;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI;AAC5D,wCAAwC,eAAe;AACvD;AACA,kEAAkE;AAClE,kDAAkD;AAClD;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,WAAW,IAAI;AAChE,6DAA6D,iBAAiB,IAAI,iBAAiB;AACnG;AACA;AACA,6DAA6D,sBAAsB,IAAI,sBAAsB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAW;AAC1D;AACA;AACA,yEAAyE,oBAAoB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,4BAA4B;AAC3C,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,WAAW,IAAI;AACtD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,mCAAmC,aAAa,qCAAqC,aAAa;AAClG,qCAAqC,aAAa,wCAAwC,aAAa;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa,uCAAuC,aAAa;AACnG,yDAAyD,aAAa;AACtE;AACA,kCAAkC,aAAa,0CAA0C,aAAa;AACtG,yDAAyD,aAAa;AACtE;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA,4CAA4C,IAAI;AAChD;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD,sCAAsC,eAAe,aAAa,UAAU;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,gBAAgB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA,wFAAwF,QAAQ;AAChG;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,eAAe;AACnF,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH,iDAAiD,eAAe;AAChE;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA,uGAAuG,eAAe;AACtH,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D,wCAAwC,WAAW;AACnD;AACA,qGAAqG,eAAe;AACpH,uDAAuD,eAAe;AACtE;AACA;AACA,6GAA6G,eAAe;AAC5H,6DAA6D,eAAe;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS,gBAAgB,SAAS;AAChF,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa;AACnE,gBAAgB,YAAY;AAC5B;AACA,iEAAiE,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,eAAe;AACzF;AACA;AACA,+IAA+I,kDAAkD;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,6BAAQ;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,gBAAgB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,WAAW;AAC/G;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA,yGAAyG,aAAa;AACtH,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,iDAAiD,IAAI;AACrD;AACA;AACA,yCAAyC,aAAa,wCAAwC,aAAa;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,aAAa;AACrH,iCAAiC,aAAa;AAC9C,gBAAgB,0BAA0B;AAC1C;AACA;AACA,qBAAqB,YAAY,WAAW,YAAY;AACxD,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G,oDAAoD,aAAa;AACjE;AACA;AACA;AACA,wEAAwE,kBAAkB;AAC1F;AACA;AACA;AACA,gFAAgF,aAAa;AAC7F;AACA,0CAA0C,sBAAsB;AAChE;AACA,kDAAkD,SAAS;AAC3D,sGAAsG;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,MAAM,+CAA+C,WAAW;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU,8BAA8B;AACrE;AACA,4CAA4C;AAC5C;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,MAAM,qBAAqB,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,qDAAqD,iBAAiB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY,qDAAqD,gBAAgB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,qDAAqD,iBAAiB;AACvH;AACA;AACA,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY,qDAAqD,gBAAgB;AACrH;AACA;AACA,8DAA8D,YAAY;AAC1E;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA,oCAAoC,kBAAkB,yCAAyC,aAAa;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,YAAY,WAAW;AACvB;AACA;AACA,gBAAgB,uBAAuB;AACvC,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,aAAa;AACrH,sCAAsC,aAAa;AACnD;AACA;AACA;AACA,iBAAiB,YAAY,WAAW,YAAY;AACpD,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,0BAA0B,iBAAiB,qBAAqB,iBAAiB;AACjF;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD,4EAA4E,SAAS;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI,iDAAiD,SAAS;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,+BAA+B;AAC9C,eAAe,+BAA+B;AAC9C,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA,kDAAkD,wBAAwB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,iBAAiB;AAChC,eAAe,sBAAsB;AACrC,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,cAAc;AAC/D;AACA;AACA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,mDAAmD,qBAAqB;AACxE,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,0BAA0B;AACzC,eAAe,0BAA0B;AACzC,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA,oCAAoC,IAAI;AACxC;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oBAAoB,aAAa,cAAc;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA,mCAAmC,iBAAiB;AACpD,oCAAoC,iBAAiB;AACrD,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAA0C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD,oCAAoC,aAAa;AACjD;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oBAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA,uDAAuD,SAAS;AAChE,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAW;AACtD;AACA;AACA,sCAAsC,cAAc;AACpD,+EAA+E,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA,oFAAoF,SAAS;AAC7F,6CAA6C,SAAS;AACtD,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D,mDAAmD,IAAI;AACvD;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yDAAyD;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO,eAAS;AAChE;AACA,mBAAmB,iBAAW;AAC9B;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,IAAI,qBAAqB,sBAAsB;AACpH,mCAAmC,YAAY;AAC/C,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe,UAAU,cAAc;AACnG;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA,yFAAyF,IAAI;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yCAAyC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,cAAc;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa,aAAa,SAAS,KAAK,WAAW,iBAAiB,WAAW,IAAI,MAAM,iBAAiB;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,wBAAwB,aAAa,mBAAmB,SAAS,KAAK,WAAW,iBAAiB;AACvI,oBAAoB,MAAM,iBAAiB,gBAAgB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2BAA2B,sBAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,mBAAmB;AACvC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ,CAAC,kBAAkB;AACnC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ,CAAC,YAAY;AAC7B;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,YAAY;AAChC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,aAAa;AACjC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,YAAY;AAChC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,qBAAqB;AACzC;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,IAAI;AAC3B;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,kBAAkB;AACzC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,eAAe;AACnC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,QAAQ;AAC5B;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,KAAK;AAC5B;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA;AACA,CAAC,CAAC,0BAAS;AACQ;;;AC9qYnB;AACA;AACA;AACA;AACA;AACA;AAC+C;AACc;AACN;AACd;AACK;AAC4C;AACjD;AAC2B;AACZ;AACE;AACQ;AACI;AACnB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,4BAA4B,oBAAoB;AAChD,6EAA6E,kCAAkC;AAC/G,oBAAoB,wBAAO;AAC3B;AACA;AACA;AACA,8BAA8B,iBAAiB,QAAQ,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,sEAAsE,kCAAkC;AACxG,gBAAgB,wBAAO;AACvB;AACA;AACA;AACA,oCAAoC,iBAAiB,QAAQ,uCAAuC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA,oEAAoE,oBAAoB,uBAAuB,kBAAkB;AACjI,sEAAsE,kBAAkB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB,QAAQ,mDAAmD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB,QAAQ,iDAAiD;AACzF;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,0DAA0D,UAAU,WAAW;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,oBAAoB;AAClG;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB,iBAAiB;AACnC,uBAAuB,iBAAiB;AACxC,iBAAiB;AACjB,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,cAAc,eAAe;AACpG,0BAA0B,yBAAyB,kCAAkC,0BAA0B;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,eAAe;AACzG;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB;AAC1E,sBAAsB,0BAA0B;AAChD,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;;;;;AC/4Ba;AACU;AACS;AACG;AACD;AACE;AACd;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU,6BAAQ,aAAa,iBAAiB,WAAW;AACvG;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAAW,qCAAqC,0BAAW;AACzG;AACA,oDAAoD,sBAAK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU,6BAAQ,aAAa,iBAAiB,WAAW;AAC/G;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4H;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD,gCAAgC,yDAAyD;AACzF;AACA;AACA;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,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,iBAAiB;AAChC,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,uCAAuC,qCAAqC;AAC5E;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,kEAAkE,2BAA2B;AAC7F;AACA,2CAA2C,gCAAgC;AAC3E;AACA;AACA,oFAAoF,sCAAsC;AAC1H;AACA;AACA;AACA;AACA,2CAA2C,gEAAgE;AAC3G;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;AACsB;;;;;AC7hBvB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,IAAI,sBAAW,IAAI,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC8C;AACoB;AAC4B;AAC3B;AACnE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB,SAAS,6CAA6C;AAC9F;AACA;AACA,+BAA+B,+BAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,+BAAI;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,eAAe;AAC9B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAS;AACxB;AACA,mBAAmB,sBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,QAAQ,2BAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAC6B;;;ACvd9B;AACA;AACA;AACA;AACA;AACyC;AAC2B;AACf;AACM;AACG;AACA;AACK;AACJ;AACb;AACT;AAC0B;AACvB;AACG;AACD;AACJ;AACA;AACc;AACR;AACI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO,8BAA8B,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM;AACxC;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,MAAM;AACzC;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C,yCAAyC,MAAM;AAC/C,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI,UAAU,4BAA4B;AACxF;AACA;AACA,8CAA8C,IAAI,UAAU,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA,2DAA2D,sBAAsB;AACjF,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6EAA6E;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAuD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,qCAAqC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAA4B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,SAAS;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS,KAAK;AAC/C,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,IAAI,yBAAyB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,IAAI,cAAc;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW,8CAA8C,SAAS,MAAM,6BAAQ;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAAQ;AACnC;AACA;AACA;AACA;AACA,gCAAgC,6BAAQ;AACxC,2BAA2B,6BAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA,YAAY,WAAW,GAAG,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA,qEAAqE,IAAI,yBAAyB;AAClG;AACA;AACA;AACA;AACA,qEAAqE,IAAI,wBAAwB;AACjG;AACA;AACA;AACA;AACA,qEAAqE,IAAI,yBAAyB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,OAAO;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB,eAAe,yBAAyB;AACpG,mCAAmC,eAAe;AAClD,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD,mCAAmC,yBAAyB,eAAe,yBAAyB;AACpG,mCAAmC;AACnC,aAAa;AACb,8BAA8B,WAAW;AACzC,8BAA8B,WAAW;AACzC;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD,mCAAmC,yBAAyB,eAAe,yBAAyB;AACpG,mCAAmC,kDAAkD;AACrF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD,mCAAmC,eAAe;AAClD,mCAAmC;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD,mCAAmC,2CAA2C;AAC9E,mCAAmC;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD,mCAAmC,2CAA2C;AAC9E,mCAAmC,oDAAoD;AACvF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,mBAAmB,0BAA0B,eAAe,yBAAyB,qBAAqB,yBAAyB,mBAAmB;AACzN;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC,qBAAqB,KAAK;AAC1B;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACliFA;AACA;AAC4C;AACF;AACW;AACG;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sEAAsE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gBAAgB;AAC/B,eAAe,UAAU;AACzB,eAAe,OAAO;AACtB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA,4BAA4B,2BAA2B;AACvD,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;;;AC1da;AACkB;AACb;AACP;AACG;AACQ;AACD;AACE;AACQ;AACO;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,gBAAgB,eAAe;AAC7D;AACA;AACA;AACA,wDAAwD,eAAe;AACvE,kBAAkB,eAAe;AACjC,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,qBAAqB,SAAS;AAC9B,oCAAoC;AACpC,kCAAkC;AAClC,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,iCAAiC,IAAI;AACrC,iCAAiC,IAAI;AACrC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,+CAA+C,sFAAsF;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,mCAAmC,IAAI;AACvC,mCAAmC,IAAI;AACvC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,sHAAsH,SAAS;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA,0HAA0H,SAAS;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,uBAAuB,kBAAkB,KAAK,SAAS;AAC1G,YAAY,SAAS;AACrB;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,wBAAwB;AACnG,wBAAwB,oBAAoB;AAC5C;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD,oFAAoF,QAAQ;AAC5F,oBAAoB,SAAS;AAC7B;AACA,+DAA+D,QAAQ;AACvE,oBAAoB,SAAS;AAC7B,0BAA0B;AAC1B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE,2FAA2F,QAAQ;AACnG,oBAAoB,SAAS;AAC7B;AACA,sEAAsE,QAAQ;AAC9E,oBAAoB,SAAS;AAC7B;AACA,0BAA0B;AAC1B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,sBAAsB;AACtB;AACA,wBAAwB,sBAAsB;AAC9C;AACA,4BAA4B;AAC5B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB;AACpB;AACA,wBAAwB,sBAAsB;AAC9C;AACA,0BAA0B;AAC1B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D,4BAA4B,gCAAgC;AAC5D;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,+CAA+C,QAAQ;AACvD,8BAA8B,gCAAgC;AAC9D,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE,8BAA8B,4BAA4B;AAC1D,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD,wBAAwB,oBAAoB;AAC5C;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAA4D;AACzF,2BAA2B,kGAAkG;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iFAAiF;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAA4D;AACzF,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B,kFAAkF;AAC/G;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAA4D;AACzF,2BAA2B,gGAAgG;AAC3H;AACA;AACA;AACA;AACA;AACA,6BAA6B,iFAAiF;AAC9G;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,8DAA8D;AAC3F,2BAA2B,kGAAkG;AAC7H;AACA;AACA;AACA;AACA;AACA,6BAA6B,uFAAuF;AACpH;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,sFAAsF;AACnH;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;ACzyCU;AACU;AACK;AACuB;AACJ;AACG;AACd;AACuF;AAChG;AACI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAW;AAClC,sDAAsD,IAAI;AAC1D;AACA,yBAAyB,cAAc;AACvC;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC,wDAAwD;AACxD;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAW;AAClC;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA,6BAA6B,aAAa,eAAe,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA,8BAA8B,aAAa,YAAY,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA,iCAAiC,aAAa,eAAe,IAAI;AACjE,+CAA+C,mCAAmC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oEAAoE;AAChI;AACA;AACA;AACA,gFAAgF,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI,gCAAgC;AAC7F;AACA;AACA;AACA;AACA,yDAAyD,IAAI,gCAAgC;AAC7F;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI,wBAAwB;AACrF;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI,wBAAwB;AACrF;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;ACxwCqC;AACmB;AAChB;AACA;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA,6BAA6B,YAAY;AACzC;AACA;AACA;AACA,qBAAqB,iBAAiB,CAAC,qBAAK;AAC5C;AACA,6BAA6B,YAAY;AACzC,+DAA+D,kBAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,CAAC,qBAAK;AAChD;AACA,iCAAiC,YAAY;AAC7C,mEAAmE,kBAAkB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;ACrK8B;AAC+B;AACxC;AACJ;AACA;AACF;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA,gCAAgC,uBAAuB;AACvD;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sCAAsC;AACtC;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA,wCAAwC,+CAA+C;AACvF;AACA;AACA;AACA,oDAAoD,uCAAuC;AAC3F;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C,4BAA4B,oDAAoD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA,+BAA+B,YAAY;AAC3C,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,qBAAqB,oBAAoB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA,8BAA8B,SAAS;AACvC,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC;AACA,gFAAgF,mBAAmB,IAAI,kBAAkB;AACzH;AACA,6BAA6B,2BAA2B,IAAI,0BAA0B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,sCAAsC,0BAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iCAAiC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD,gCAAgC,mDAAmD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,gCAAgC,2DAA2D;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uCAAuC;AACpF;AACA,gCAAgC,+BAA+B;AAC/D;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,0BAA0B,gDAAgD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA,sCAAsC,uBAAuB;AAC7D;AACA;AACA,0CAA0C,+CAA+C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,sDAAsD,mCAAmC;AACzF;AACA;AACA,0DAA0D,6CAA6C;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iCAAiC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACrnC6C;AACH;AAC8B;AACrB;AACP;AACgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA,4DAA4D,WAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6CAA6C;AACrF,wBAAwB,mCAAmC;AAC3D;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA,mCAAmC,WAAW,sEAAsE;AACpH;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAoE;AAC5F;AACA;AACA;AACA;AACA,4BAA4B,iDAAiD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAoE;AAC5F;AACA;AACA,gCAAgC,iDAAiD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA,sEAAsE,6CAA6C;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,iBAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,aAAa;AAClG,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,iBAAiB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI,gCAAgC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB,yBAAyB;AAClF,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,aAAa,qBAAqB,gBAAgB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6CAA6C;AACtF;AACA;AACA;AACA;AACA;AACA,yCAAyC,6DAA6D;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0DAA0D,IAAI,yEAAyE,IAAI,kDAAkD;AACtO;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4DAA4D,IAAI,8EAA8E,IAAI,qDAAqD;AAChP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,0BAA0B,iBAAiB,0BAA0B,oBAAoB;AACzF,gCAAgC,KAAK;AACrC,6BAA6B,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,mCAAmC;AACnC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,oCAAoC;AACpC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,mCAAmC;AACnC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,kCAAkC;AAClC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAuD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;;;ACrpDc;AACS;AACI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,+CAA+C,WAAW;AAC1D,4DAA4D,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,WAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;;;AC5JnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oFAAoF,oBAAoB;AACxG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mEAAmE,mCAAmC;AACtG;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;ACnPoB;AACS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;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;AAC0B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA,4DAA4D,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC6B;AAC9B;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;;ACzvByD;AACF;AACX;AAC8C;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,SAAS;AACxB,mBAAmB;AACnB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAoD;AAChF;AACA;AACA,4BAA4B,sDAAsD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B,mBAAmB;AACnB,iBAAiB,IAAI;AACrB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8BAA8B;AAClE;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,eAAe,SAAS;AACxB,mBAAmB;AACnB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA,gDAAgD,yBAAyB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA,gCAAgC,uBAAuB;AACvD;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,oCAAoC,kDAAkD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C,gCAAgC,8CAA8C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gCAAgC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wBAAwB,0BAA0B;AAClD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA,qDAAqD,oBAAoB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,wBAAwB,oBAAoB;AAC5C;AACA,4BAA4B,6CAA6C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAM;AAC3B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gDAAgD;AACxH;AACA,gFAAgF,gDAAgD;AAChI;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,OAAO;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,kEAAkE,wDAAwD;AAC1H;AACA;AACA;AACA,4BAA4B;AAC5B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB,eAAe,oBAAoB;AACnC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB,mBAAmB;AACnB,eAAe,cAAc;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA,+CAA+C,eAAe;AAC9D;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA,wBAAwB,4CAA4C;AACpE;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD,4BAA4B,6DAA6D;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,kEAAkE;AAClE;AACA;AACA,sCAAsC,8BAA8B;AACpE;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2CAA2C;AAC5F;AACA,gDAAgD,4CAA4C;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,4BAA4B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0CAA0C;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,qCAAqC;AACvH;AACA;AACA;AACA,+EAA+E,yBAAyB;AACxG;AACA;AACA;AACA;AACA,gFAAgF,gCAAgC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,IAAS;AACxE;AACA;AACA,+DAA+D,IAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qCAAqC;AACjF;AACA;AACA,gDAAgD,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAgC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iCAAiC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAS;AAC5C;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uCAAuC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK,mBAAmB,KAAK;AACrD,yBAAyB,KAAK,kBAAkB,KAAK,4BAA4B,KAAK;AACtF;AACA;AACA;AACA;AACA,6BAA6B,KAAK,8BAA8B,KAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA,qBAAqB,KAAK;AAC1B,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA,+BAA+B,YAAY;AAC3C,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,qBAAqB,oBAAoB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;;;ACzuGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kCAAkC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB,eAAe,iBAAiB;AAChC;AACA;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;AChUmB;AAC7C,IAAI,wBAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,2DAA2D;AAChI;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,2DAA2D;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,2DAA2D;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oCAAoC;AACtG;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,2DAA2D;AACtI,sFAAsF,2DAA2D;AACjJ,oFAAoF,2DAA2D;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,qCAAqC;AACrC;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB;AACjF;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,IAAI;AACnE;AACA;AACA,+DAA+D,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,gBAAgB;AAChG;AACA,wEAAwE,2DAA2D;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,2CAA2C;AAC3C;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8BAA8B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,8CAA8C,iCAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C,mFAAmF,2DAA2D;AAC9I,gFAAgF,sCAAsC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qBAAqB;AACjG,4EAA4E,qBAAqB;AACjG;AACA;AACA,gFAAgF,qBAAqB;AACrG,gFAAgF,qBAAqB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,+BAA+B;AAChG,gEAAgE,0BAA0B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;ACjqBiB;AACK;AACO;AACP;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,+BAA+B;AAC7F;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA,kCAAkC,wBAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,SAAS;AACxB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kCAAkC;AACtG;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mCAAmC,IAAI,oCAAoC;AAC9G,mCAAmC,kCAAkC,IAAI,qCAAqC;AAC9G,mCAAmC,kCAAkC,IAAI,qCAAqC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kCAAkC,IAAI,qCAAqC;AAC9G,mCAAmC,mCAAmC,IAAI,oCAAoC;AAC9G,mCAAmC,mCAAmC,IAAI,oCAAoC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAA8C;AAC3F;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAA8C;AAC3F;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,mCAAmC;AACrE,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,mCAAmC;AACrE,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,8CAA8C,oEAAoE;AAClH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA,yBAAyB;AACzB;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B;AACtF;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gDAAgD;AAC7G;AACA,aAAa;AACb;AACA;AACA,uBAAuB,yGAAyG;AAChI,uBAAuB,mFAAmF;AAC1G,uBAAuB,mFAAmF;AAC1G,uBAAuB,yGAAyG;AAChI;AACA;AACA;AACA,6DAA6D,gDAAgD;AAC7G;AACA,aAAa;AACb;AACA;AACA,uBAAuB,2GAA2G;AAClI,uBAAuB,qFAAqF;AAC5G,uBAAuB,qFAAqF;AAC5G,uBAAuB,2GAA2G;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,uBAAuB;AACjG;AACA;AACA;AACA,qBAAqB;AACrB;AACA,0EAA0E,uBAAuB;AACjG;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uEAAuE,yBAAyB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,iBAAiB;AAChC,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;ACprByB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iDAAiD;AACvG,wDAAwD,mDAAmD;AAC3G,wDAAwD,mDAAmD;AAC3G;AACA,0DAA0D,2EAA2E;AACrI;AACA,0DAA0D,2EAA2E;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;;;AC9SsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;ACpJoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wDAAwD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,yBAAyB,wDAAwD;AACjF;AACA;AACA,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA,sCAAsC,kDAAkD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;ACvmBqC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;AC/F4E;AAC1C;AACR;AACF;AACA;AAClD;AACA;AACA,mCAAmC,eAAe;AAClD,uCAAuC,mBAAmB;AAC1D,kCAAkC,cAAc;AAChD,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,eAAe;AACvH;AACA;AACA,yGAAyG,eAAe;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kJAAkJ;AACxK;AACA;AACA;AACA;AACA,0BAA0B,yJAAyJ;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gIAAgI;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;;;ACvc5B;AACA;AACA;AAC0B;AACO;AACjC;AACkC;AACA;AACE;AACD;AACnC;AAC4B;AAC5B;AACkC;AACc;AACH;AACC;AACD;AACD;AACH;AACF;AACO;AAC9C;AACoC;AACA;AACA;AACG;AACvC;AAC4C;AACP;AACrC;AAC4C;AAC5C;AACkD;AACN;AACK;AACZ;AACN;AACQ;AACR;AACA;AACK;AACS;AACV;AACC;AACF;AACS;AACT;AACU;AAC5C;AACuC;AACJ;AACU;AACC;AACR;AACU;AACI;AACT;AACK;AACV;AACD;AACO;AACJ;AACD;AACvC;AACqC;AACH;AACS;AACN;AACO;AACO;AACE;AACF;AACJ;AACA;AACD;AACA;;;;;AC5E9C,IAAI,sBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,uBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC0I;AAC1F;AACoC;AACtC;AACU;AAC+C;AAC1D;AAC0B;AAChB;AACS;AACuD;AAC7B;AAC8C;AACtD;AACpB;AACV;AACkB;AACrB;AACjD;AACA,IAAI,4BAAa;AACjB;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA,2CAA2C,KAAK;AAChD,eAAe,IAAI;AACnB;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,sCAAiB,CAAC,4BAAa;AACvC;AACA;AACA,CAAC,CAAC,8BAAa;AACI;AACnB;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA;AACA,CAAC,CAAC,8BAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAsD;AAC9E,4BAA4B,+DAA+D;AAC3F;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,oBAAoB,mBAAmB,+BAA+B,IAAI;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,oBAAoB;AACnC,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6BAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA,6BAA6B,6BAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAAQ;AACzC;AACA;AACA;AACA;AACA,wGAAwG,6BAAQ;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA,gEAAgE,UAAU,aAAa,cAAc;AACrG;AACA;AACA,gEAAgE,UAAU,eAAe,cAAc;AACvG;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C,wCAAwC;AACxC,qCAAqC;AACrC,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,wBAAwB,qBAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAAQ;AAC1C;AACA;AACA;AACA,aAAa,6BAAQ;AACrB,+BAA+B,iBAAiB,UAAU,oCAAoC;AAC9F,wCAAwC,2BAAS;AACjD;AACA,aAAa;AACb;AACA,oDAAoD,UAAU,aAAa,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,mCAAmC,eAAe,sBAAsB,WAAW;AACnF,+BAA+B,eAAe,sBAAsB,WAAW;AAC/E;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,uCAAuC,QAAQ,aAAa,mCAAmC;AAC/F;AACA;AACA;AACA,wCAAwC,oCAAoC;AAC5E;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ,aAAa,mCAAmC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,2FAA2F,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,2CAA2C;AACzP,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,4FAA4F,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AAC3P,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,4FAA4F,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AAC3P,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,aAAa,+CAA+C,YAAY,sBAAsB,2BAA2B;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,uDAAuD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,UAAU,+DAA+D;AACnH;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,QAAQ;AACvB,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA,wBAAwB,qBAAW;AACnC;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,yEAAyE;AACzE;AACA,6DAA6D,4BAAa;AAC1E,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB,oCAAoC,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA,kCAAkC,MAAM;AACxC,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA,8DAA8D,QAAQ;AACtE,oFAAoF,WAAW;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,IAAI;AACxE;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B,gEAAgE,IAAI;AACpE,+BAA+B,iBAAiB,UAAU,6EAA6E;AACvI;AACA;AACA,gCAAgC;AAChC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA,aAAa;AACb,2BAA2B,gBAAgB,QAAQ,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA,4BAA4B,IAAI;AAChC;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,0CAA0C,wBAAwB,WAAW;AAC7E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA,aAAa;AACb,uBAAuB,gBAAgB,QAAQ,qBAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB,gBAAgB;AAClF;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA,iDAAiD;AACjD;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,UAAU,iEAAiE;AAC9G,wBAAwB,iBAAiB;AACzC;AACA,2DAA2D;AAC3D,wDAAwD;AACxD;AACA,SAAS;AACT,2BAA2B,iBAAiB;AAC5C;AACA,2DAA2D;AAC3D,wDAAwD;AACxD,SAAS;AACT;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,SAAS;AACT,wBAAwB,iBAAiB;AACzC;AACA,2DAA2D;AAC3D,wDAAwD;AACxD;AACA,SAAS;AACT,2BAA2B,iBAAiB;AAC5C;AACA,2DAA2D;AAC3D,wDAAwD;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB,gBAAgB;AAC9E;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,yCAAyC;AACzC,iBAAiB,cAAc;AAC/B;AACA;AACA,QAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,yHAAyH,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,yCAAyC;AACrR;AACA;AACA,0HAA0H,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AACzR;AACA;AACA,0HAA0H,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AACzR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC,eAAe,QAAQ;AACvB;AACA;AACA,8DAA8D,IAAI;AAClE,4CAA4C,eAAe;AAC3D,2CAA2C,SAAS;AACpD,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA,aAAa,6BAAQ;AACrB,oCAAoC,8BAAO;AAC3C;AACA,0BAA0B,8BAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD,uDAAuD,eAAe,YAAY,eAAe;AACjG;AACA;AACA,uDAAuD,0CAAqB;AAC5E;AACA,qBAAqB;AACrB;AACA;AACA,kDAAkD,SAAS;AAC3D,uDAAuD,oBAAoB,YAAY,oBAAoB;AAC3G;AACA,uDAAuD,0CAAqB;AAC5E;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA,iBAAiB;AACjB,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8BAA8B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI;AAC5D;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,UAAU,iCAAiC;AACpF,QAAQ,oBAAoB;AAC5B,mEAAmE;AACnE;AACA;AACA,sBAAsB,iBAAiB,YAAY;AACnD;AACA;AACA,QAAQ,oBAAoB,sBAAsB;AAClD,oDAAoD;AACpD;AACA;AACA,mBAAmB,iBAAiB,WAAW,oEAAoE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,2DAA2D;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB,UAAU,8CAA8C,oBAAoB;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB,UAAU,8CAA8C,cAAc,GAAG;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,wBAAwB,wBAAO;AAC/B;AACA;AACA;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,wBAAwB,wBAAO;AAC/B,0BAA0B,wBAAO;AACjC;AACA;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ,GAAG,WAAW;AAC9B;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,0CAA0C,EAAE,MAAM;AACpE;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,uBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,0BAAS;AACc;;;AC79DzB;AACA;AACA;AACiC;;;ACHjC;AACA;AACA;AAC2B;;;ACH3B;AACA;AACA;AACgC;AACO;AACT;AACG;;;ACNjC;AACA;AACA;AAC4B;;;;;;;;;;;;;;;;;ACHf;AACb;AACA,iBAAiB,mBAAO,CAAC,KAAgC;AACzD,YAAY,mBAAO,CAAC,KAAoB;AACxC,aAAa,mBAAO,CAAC,KAAqB;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AClBD,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,gBAAgB,mBAAO,CAAC,KAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,eAAe,mBAAO,CAAC,KAAY;AACnC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;AC3D6E;AACpB;AAClD,4CAA4C,qFAAkB;AACrE,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACO,kCAAkC,qFAAkB;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;AC/Ca;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3JD,eAAe,mBAAO,CAAC,KAAa;AACpC,UAAU,mBAAO,CAAC,KAAQ;AAC1B,cAAc,mBAAO,CAAC,KAAY;AAClC,UAAU,mBAAO,CAAC,KAAQ;AAC1B,cAAc,mBAAO,CAAC,KAAY;AAClC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACzDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACTA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC5HY;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;ACHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,YAAY;AACtC,sDAAsD,KAAK;AAC3D,sDAAsD,KAAK,mBAAmB,KAAK;AACnF,eAAe,UAAU,YAAY,4CAA4C,eAAe,KAAK,uBAAuB,eAAe,IAAI,iBAAiB,KAAK;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK;AAC9D,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK,KAAK,IAAI;AACzD;AACA,2CAA2C,MAAM,KAAK,KAAK,KAAK,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,yCAAyC,MAAM;AAC/C;AACA,2CAA2C,OAAO,KAAK,IAAI;AAC3D;AACA;AACA,2CAA2C,OAAO,IAAI,IAAI;AAC1D;AACA;AACA;AACA,+CAA+C,OAAO,KAAK,IAAI;AAC/D;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;AC9Fa;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;ACHA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACtCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC1HY;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRa;;AAEb,YAAY,mBAAO,CAAC,IAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;ACXa;AACb;AACA,oBAAoB,mBAAO,CAAC,IAA2C;;AAEvE;AACA;AACA;;;;;;;;;ACNa;;AAEb,eAAe,mBAAO,CAAC,KAAyB;AAChD,WAAW,mBAAO,CAAC,KAAM;;AAEzB;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,+BAA+B;;AAE1G;AACA;;AAEA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9GY;;AAEb,kBAAkB,mBAAO,CAAC,KAAe;;AAEzC;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,2BAA2B,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,8BAA8B;AAChV,kBAAkB,mBAAO,CAAC,KAAoB;AAC9C,eAAe,mBAAO,CAAC,KAAiB;AACxC,gBAAgB,mBAAO,CAAC,KAAkB;AAC1C,eAAe,mBAAO,CAAC,KAAiB;AACxC;AACA,YAAY,gBAAgB;AAC5B;AACA,wBAAwB,qCAAqC,KAAK,GAAG;AACrE;AACA,KAAK;AACL;AACA,8BAA8B;AAC9B,4BAA4B,iBAAiB,QAAQ;AACrD,uJAAuJ,SAAS,IAAI,KAAK;AACzK;AACA,wBAAwB;AACxB;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB;AACA,+BAA+B,iBAAiB,QAAQ,KAAK,IAAI,SAAS;AAC1E;AACA,qBAAqB;AACrB;AACA,qCAAqC,KAAK,EAAE,sCAAsC;AAClF,+CAA+C,MAAM,KAAK,mCAAmC;AAC7F;AACA,sBAAsB;AACtB;AACA,qCAAqC,KAAK,EAAE,sCAAsC;AAClF;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB;AACxB,4BAA4B,wBAAwB,0CAA0C,MAAM;AACpG,2DAA2D,WAAW,IAAI,KAAK,IAAI,aAAa,EAAE,WAAW;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc,IAAI,sBAAsB;AAC7E,2DAA2D,KAAK,QAAQ,QAAQ,IAAI,KAAK,yBAAyB,KAAK,GAAG,KAAK;AAC/H;AACA,wBAAwB;AACxB;AACA,sBAAsB,WAAW,QAAQ;AACzC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,kCAAkC,4EAA4E,GAAG,QAAQ,IAAI,EAAE;AAC/H,KAAK;AACL;AACA,kBAAkB;AAClB;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK;AAC9D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,OAAO,KAAK,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;;;;;;;AClIA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAqB,CAAC,0BAAoB,EAAE,0BAAiB,EAAE,0BAAgB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAClG,MAAM,KAAK,EAIN;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,QAAQ;AAC3B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,mBAAmB,UAAU;AAC7B,mBAAmB,UAAU;AAC7B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;AClOD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACnID,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC2F;AAC1D;AACS;AAC3C,eAAe,aAAa,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ;AACvB,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA,6CAA6C,iFAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,yBAAyB,oDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA,oDAAoD,iCAAiC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,uBAAuB,kDAAK;AAC5B;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA,2BAA2B,uBAAuB,oDAAQ,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,iBAAiB,oDAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA,4BAA4B,yBAAyB;AACrD,yCAAyC,oDAAQ;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B,gCAAgC,oDAAQ;AACxC;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,cAAc;AAC9B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,WAAW,oDAAQ;AAC1C;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,UAAU;AACzB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,mBAAmB,oDAAQ;AAC3B,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAQ,oBAAoB,oDAAQ;AAC5D;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAQ;AACnC;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAQ;AAChC;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,YAAY,oDAAQ;AAC3C;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA,oBAAoB,eAAe;AACnC,gBAAgB,oDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,kBAAkB,wEAAQ;AAC1B;AACA,oBAAoB,eAAe;AACnC,iBAAiB,iFAAiB,eAAe,wEAAQ;AACzD;AACA;AACA;AACA,+BAA+B,qEAAK;AACpC;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,mBAAmB,oDAAQ;AAC3B,mBAAmB,oDAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,mBAAmB,oDAAQ;AAC3B,+BAA+B,oDAAQ,2CAA2C,qDAAqD;AACvI;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAQ;AAC7C;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD,sBAAsB,oDAAQ;AAC9B;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA,8CAA8C,oBAAoB;AAClE;AACA,oBAAoB,oDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA,kCAAkC,oDAAQ;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,wBAAwB,2BAA2B;AACnD,gCAAgC,oDAAQ;AACxC;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,sCAAsC,wBAAwB,oDAAQ,8BAA8B;AACpG;AACA;AACA;AACA;AACA,QAAQ,oDAAQ,0CAA0C,sDAAsD;AAChH;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA,gBAAgB,oDAAQ;AACxB;AACA;AACA;AACA;AACA,gCAAgC,oDAAQ;AACxC,gCAAgC,oDAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAQ;AAClD;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oDAAQ;AAChE;AACA;AACA;AACA,gBAAgB,oDAAQ,yCAAyC,SAAS,oDAAQ,uEAAuE;AACzJ;AACA;AACA,YAAY,oDAAQ,uCAAuC,oDAAQ;AACnE,qDAAqD,oDAAQ;AAC7D,wDAAwD,oDAAQ;AAChE;AACA,YAAY,oDAAQ,qCAAqC,oDAAQ;AACjE;AACA,YAAY,oDAAQ,qCAAqC,oDAAQ;AACjE;AACA,YAAY,oDAAQ;AACpB,qDAAqD,oDAAQ;AAC7D,qDAAqD,oDAAQ;AAC7D;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA,gBAAgB,oDAAQ;AACxB;AACA,mBAAmB,oDAAQ;AAC3B,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA,uEAAuE,iFAAiB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,sCAAsC;AAC7D;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,iFAAiB;AAC9F;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,wBAAwB,oDAAQ;AAChC;AACA;AACA;AACA;AACA,+BAA+B,sDAAS;AACxC;AACA,eAAe,sDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,iFAAiB;AACrG;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,qBAAqB,iFAAiB;AACtC,8BAA8B,oDAAQ;AACtC;AACA,iCAAiC,kDAAK;AACtC,wBAAwB,oDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB,kDAAK;AACzB,qBAAqB,kDAAK;AAC1B,sBAAsB,kDAAK;AAC3B,uBAAuB,kDAAK;AAC5B,yBAAyB,kDAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC;AACA,sCAAsC,YAAY,qBAAqB,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,wEAAwE;AACxE;AACA,SAAS;AACT,QAAQ,sEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,oDAAQ,4BAA4B,oDAAQ;AAChH;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,uBAAuB,oDAAQ;AAC/B;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,iCAAiC,oDAAQ;AACzE;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,iCAAiC,oDAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA,wCAAwC,iFAAiB;AACzD,gCAAgC,oDAAQ,+BAA+B,oDAAQ;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAiB;AAC7C,oBAAoB,oDAAQ,+BAA+B,oDAAQ;AACnE;AACA;AACA;AACA;AACA;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,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA,wBAAwB,qBAAqB;AAC7C,4BAA4B,sDAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,0BAA0B,sDAAS;AACnC;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA,iBAAiB,iFAAiB;AAClC,gCAAgC,qBAAqB;AACrD,yBAAyB,iFAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oDAAQ,iCAAiC;AACxD;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iFAAiB,6CAA6C,gBAAgB;AAC7G;AACA;AACA,mCAAmC,oDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,0CAA0C,oDAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iFAAiB;AACrE;AACA;AACA;AACA,oDAAoD,oDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mCAAmC,oDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAQ;AAC1B;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,cAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAQ;AAClC,+CAA+C,oDAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yEAAyE,OAAO,oDAAQ,yBAAyB,oDAAQ,4BAA4B,eAAe;AAC5M;AACA;AACA;AACA,wDAAwD,oDAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA,6CAA6C,oDAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA,8BAA8B,oDAAQ,qBAAqB,IAAI;AAC/D,oBAAoB,sEAAM,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA,iFAAiF,gCAAgC;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,wEAAwE;AACxE;AACA;AACA;AACA,SAAS;AACT,QAAQ,sEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kDAAK;AAClC;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2FAA2F;AAC3F,SAAS;AACT,sDAAsD,kCAAkC;AACxF;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,2DAA2D,sCAAsC;AACjG;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,+EAA+E,kCAAkC;AACjH;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA,eAAe,oDAAQ,iCAAiC;AACxD;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE,iDAAiD;AACjD;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE,iDAAiD;AACjD;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAQ;AAC1C,uDAAuD,oDAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iDAAiD;AACjD;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,iCAAiC;AACxD;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAQ;AAC3B;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oDAAQ;AACjD;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC,oCAAoC;AACpC,sCAAsC;AACtC,yCAAyC;AACzC,yCAAyC;AACzC;AACA,SAAS;AACT,QAAQ,sEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wEAAQ;AAC7B;AACA,oBAAoB,wEAAQ;AAC5B;AACA;AACA,yBAAyB,wEAAQ;AACjC,0BAA0B,iFAAiB,eAAe,oDAAQ;AAClE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB,YAAY,4DAA4D;AACzG;AACA;AACA;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,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B,oBAAoB;AACpB;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA,2BAA2B,oDAAQ;AACnC;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,6BAA6B,iCAAiC;AAC9D;AACA;AACA;AACA;AACA,gCAAgC,uCAAuC;AACvE,4CAA4C,+EAA+E;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA,aAAa,iFAAiB,qCAAqC,oDAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;ACvuFX;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;;AAEA;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK,IAAI,iBAAiB;AAC1B;AACA;AACA;AACA,CAAC;;;;;;;;AC/BD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9ED,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AAC5E;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;ACRa;;AAEb,WAAW,mBAAO,CAAC,KAAgB;;AAEnC;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,4BAA4B;AAC5B,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,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;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;;;;;;;;;AC5Va;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBa;;AAEb;AACA;AACA,WAAW,mBAAO,CAAC,KAAe;;AAElC,WAAW,aAAa;AACxB;;;;;;;;ACPA,YAAY,mBAAO,CAAC,KAAU;AAC9B,gBAAgB,mBAAO,CAAC,KAAc;AACtC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,gBAAgB,mBAAO,CAAC,KAAc;AACtC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,IAAW;AAChC,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,YAAY,mBAAO,CAAC,KAAS;AAC7B,eAAe,mBAAO,CAAC,KAAY;AACnC,YAAY,mBAAO,CAAC,KAAS;AAC7B,WAAW,mBAAO,CAAC,KAAQ;AAC3B,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;ACrKa;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;;ACHa;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,aAAa,mBAAO,CAAC,KAA+B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,aAAa;AAC5D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACZa;AACb,iBAAiB,mBAAO,CAAC,KAA2B;AACpD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;ACbA,yBAAyB,mBAAO,CAAC,KAAuB;AACxD,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACvBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,qBAAqB,mBAAO,CAAC,KAA0B;AACvD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA,oEAAoE,KAAK,+BAA+B,mDAAmD,GAAG,KAAK;AACnK,0CAA0C,KAAK,EAAE,IAAI,EAAE,WAAW;AAClE,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;AC1Ba;;AAEb,WAAW,2BAA2B;AACtC;;;;;;;;ACHA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iCAAiC;AACjC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC7ID,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7DA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;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;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AClLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxGD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;;;;;;;AC3IA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AClGD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,kBAAkB,GAAG,4BAA4B;AACnE,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,mBAAmB,mBAAO,CAAC,KAAY;AACvC,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,mBAAmB,mBAAO,CAAC,KAAY;AACvC,mBAAmB,mBAAO,CAAC,KAAY;AACvC,kBAAkB,mBAAO,CAAC,KAAW;AACrC,oBAAoB,mBAAO,CAAC,KAAa;AACzC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC,iBAAiB,mBAAO,CAAC,KAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B,4CAA4C;AACxE;AACA,mDAAmD,qBAAqB,IAAI,uBAAuB;AACnG,qDAAqD,EAAE,4BAA4B;AACnF;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD,qBAAqB,IAAI,wBAAwB;AACpG;AACA;AACA;AACA,8BAA8B,EAAE,6BAA6B,OAAO,2BAA2B,IAAI,mCAAmC,IAAI,yBAAyB,GAAG,qBAAqB,EAAE,wCAAwC,+BAA+B,GAAG,mBAAmB,GAAG;AAC7R;AACA;AACA;AACA,kEAAkE,uBAAuB,GAAG,6BAA6B;AACzH,gEAAgE,uBAAuB,GAAG,2BAA2B;AACrH,wEAAwE,uBAAuB,GAAG,mCAAmC;AACrI,8DAA8D,uBAAuB,GAAG,yBAAyB;AACjH;AACA,wEAAwE,uBAAuB,GAAG,+BAA+B;AACjI,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE,KAAK;AACL;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,8DAA8D,aAAa;AAC3E,+BAA+B,aAAa,qDAAqD,aAAa;AAC9G,+BAA+B,aAAa,qDAAqD,aAAa;AAC9G;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW,MAAM,uBAAuB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAoC;AAChD;AACA,sEAAsE,cAAc;AACpF;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6CAA6C;AACvE;AACA;AACA,qCAAqC,qBAAqB,cAAc,IAAI;AAC5E;AACA;AACA,iDAAiD,cAAc;AAC/D,kDAAkD,qBAAqB;AACvE,qCAAqC,qBAAqB,iBAAiB,IAAI,IAAI,WAAW,IAAI,SAAS;AAC3G;AACA;AACA;AACA,YAAY,sDAAsD;AAClE;AACA;AACA,mCAAmC,wBAAwB,wFAAwF,gBAAgB,GAAG,wBAAwB;AAC9L;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA,uCAAuC,UAAU;AACjD;AACA,uCAAuC,UAAU;AACjD;AACA;AACA,YAAY,2CAA2C;AACvD,YAAY,QAAQ;AACpB;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB,MAAM,eAAe;AACpF;AACA;AACA;AACA,YAAY,qBAAqB,aAAa,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,EAAE,4BAA4B,uBAAuB;AAC/F;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,sDAAsD,eAAe,iBAAiB,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS,gBAAgB,+BAA+B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,sCAAsC,YAAY,oBAAoB,kDAAkD;AACxH;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC;AACnD,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iGAAiG;AAC5I;AACA;AACA;AACA;AACA;AACA,4EAA4E,yBAAyB,GAAG;AACxG,4CAA4C,kBAAkB,GAAG,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mCAAmC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK,EAAE,qEAAqE;AACnH,uCAAuC,MAAM,KAAK,KAAK;AACvD;AACA;AACA;AACA;AACA,gCAAgC,aAAa,EAAE,IAAI,8BAA8B,UAAU;AAC3F;AACA;AACA,eAAe;AACf;;;;;;;;ACvgBa;AACb,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;;;;;;;;ACRY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,8BAA8B,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,gBAAgB;AAC5K,gBAAgB,mBAAO,CAAC,KAAU;AAClC,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,iBAAiB,mBAAO,CAAC,KAAW;AACpC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B,oEAAoE,KAAK;AACzE;AACA;AACA,mCAAmC,UAAU,+BAA+B,KAAK,OAAO,KAAK;AAC7F,8CAA8C,KAAK;AACnD,yDAAyD,KAAK;AAC9D;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gDAAgD,UAAU,iBAAiB,UAAU;AACrF,8DAA8D,KAAK;AACnE,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA,gDAAgD,UAAU,kBAAkB,MAAM;AAClF,oBAAoB,UAAU,iBAAiB,MAAM,KAAK,MAAM,MAAM,KAAK;AAC3E,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,gDAAgD,UAAU,mBAAmB,MAAM;AACnF,oBAAoB,UAAU,kBAAkB,MAAM,KAAK,MAAM,MAAM,MAAM,OAAO,MAAM;AAC1F,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,gDAAgD,MAAM,iBAAiB,MAAM,WAAW,MAAM;AAC9F;AACA,gDAAgD,MAAM,gBAAgB,MAAM;AAC5E;AACA;AACA;AACA,+CAA+C,MAAM,YAAY,MAAM,WAAW,MAAM;AACxF;AACA;AACA;AACA;AACA,gDAAgD,UAAU,kBAAkB,UAAU;AACtF,mBAAmB,UAAU,mBAAmB,MAAM;AACtD,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA,+BAA+B,YAAY,qDAAqD,WAAW,GAAG,mBAAmB;AACjI;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM,EAAE,IAAI;AACnD;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA,uCAAuC,MAAM,YAAY,MAAM,gCAAgC,KAAK;AACpG;AACA;AACA,iDAAiD,MAAM,iBAAiB,KAAK;AAC7E;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,EAAE,IAAI,EAAE,SAAS;AACrE;AACA;AACA;AACA,6DAA6D,MAAM,+DAA+D,KAAK;AACvI;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD,0DAA0D,MAAM,KAAK,OAAO;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB,QAAQ,gBAAgB,OAAO;AAC/C,eAAe,qBAAqB,oDAAoD,QAAQ,QAAQ,uBAAuB,QAAQ,aAAa;AACpJ;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;;;;;;AC1MA,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;AC5BA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC6H;AAC7C;AACqC;AAClB;AACrB;AACgD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAO,GAAG,oDAAoD;AACtE;AACA;AACA,QAAQ,uEAAO,GAAG,sDAAsD;AACxE;AACA;AACA,CAAC,CAAC,yEAAa;AACuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2EAAe;AAC7C;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0EAAU;AAC9B,qBAAqB,0EAAU;AAC/B,QAAQ,iFAAQ,iBAAiB,kCAAkC;AACnE,YAAY,iFAAK;AACjB;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,4DAA4D,sEAAM;AAClE;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB;AACA,sCAAsC,4EAAY,iBAAiB,4BAA4B;AAC/F;AACA;AACA,iCAAiC,0EAAc;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAgB;AAC3C;AACA;AACA,2BAA2B,uEAAgB;AAC3C;AACA;AACA;AACA,uBAAuB,uEAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,kDAAkD,0BAA0B;AAC5E,sDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,oBAAoB,wEAAY;AAChC,oBAAoB,wEAAY;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAY;AACpC,wBAAwB,wEAAY;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uEAAO;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,uEAAO;AAC/B,uBAAuB,uEAAO;AAC9B,uBAAuB,uEAAO;AAC9B,0BAA0B,iFAAK,cAAc,iFAAK;AAClD;AACA;AACA;AACA;AACA,sBAAsB,sEAAM;AAC5B;AACA;AACA;AACA,2BAA2B,uEAAO;AAClC;AACA;AACA,2BAA2B,uEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iFAAK;AAC7B,yBAAyB,iFAAK,eAAe,iFAAK,CAAC,sEAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iFAAK,CAAC,sEAAM;AACpD;AACA,0CAA0C,iFAAK,CAAC,sEAAM,+BAA+B,iFAAK,CAAC,uEAAO;AAClG,wCAAwC,iFAAK,CAAC,sEAAM,iCAAiC,uEAAO;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK,gBAAgB,iFAAK;AACvC,6BAA6B,sEAAM;AACnC,4BAA4B,uEAAO;AACnC;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,sEAAM;AAC7C;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B,2EAAW,kBAAkB;AACzG;AACA;AACA;AACA,QAAQ,0EAAU;AAClB;AACA;AACA;AACA;AACA,gDAAgD,2EAAW;AAC3D,SAAS;AACT;AACA;AACA,qDAAqD,0BAA0B;AAC/E;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAkB;AAC3C;AACA;AACA,qDAAqD,0BAA0B;AAC/E;AACA;AACA;AACA;AACA,kBAAkB,sEAAM;AACxB,8BAA8B,iFAAK;AACnC;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,wDAAwD,0BAA0B;AAClF,oDAAoD,sCAAsC;AAC1F;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iFAAK;AACpC;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAgB;AAC7C;AACA;AACA;AACA;AACA,2DAA2D,8EAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAgB;AAC7C;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,aAAa,iFAAK,yCAAyC,iFAAK;AAChE;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uDAAuD,8EAAkB;AACzE;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAM;AAC3B,sBAAsB,sEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA,kDAAkD,gDAAgD,2EAAW,iBAAiB;AAC9H,QAAQ,0EAAU,YAAY,uBAAuB;AACrD,8CAA8C,sBAAsB;AACpE,aAAa,iFAAK;AAClB;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uEAAO;AACjC,YAAY,iFAAK,WAAW,yEAAS;AACrC;AACA;AACA,wBAAwB,uEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA,kDAAkD,yEAAa,mBAAmB,yEAAa;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,yEAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAQ,SAAS,iCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU,gCAAgC,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA,0BAA0B,uEAAO;AACjC,YAAY,iFAAK,WAAW,yEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yEAAa,mBAAmB,yEAAa;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,yEAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAQ,SAAS,gDAAgD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU,gCAAgC,0BAA0B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAA+D;AAC/E,gBAAgB,QAAQ;AACxB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,uBAAuB,yEAAS;AAChC,yBAAyB,sEAAM;AAC/B,0BAA0B,sEAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK,SAAS,iFAAK,CAAC,sEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU,cAAc,2CAA2C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAM;AACjC;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,sEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAkB,iFAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB,SAAS;AACT;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,yBAAyB,sEAAM;AAC/B,0BAA0B,sEAAM;AAChC;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAuD;AACvF;AACA,kCAAkC,uEAAO;AACzC,qBAAqB,iFAAK,gDAAgD,iFAAK;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA,kCAAkC,uEAAO;AACzC,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA,4CAA4C,qBAAqB;AACjE,2CAA2C,yEAAS;AACpD;AACA;AACA;AACA,8CAA8C,sEAAM;AACpD;AACA;AACA;AACA,4FAA4F,iFAAK;AACjG;AACA,wCAAwC,2EAAW;AACnD;AACA;AACA,wCAAwC,wEAAQ;AAChD;AACA;AACA,2FAA2F,iFAAK;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,iFAAK;AACjG;AACA;AACA;AACA,wCAAwC,iFAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sEAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iFAAQ,iBAAiB,UAAU,0EAAU,kBAAkB;AACnF;AACA;AACA,oBAAoB,iFAAQ,iBAAiB,SAAS,0EAAU,iBAAiB;AACjF;AACA;AACA,4DAA4D,iFAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAU;AAClB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACU;;;;;;;;AC33CrB,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACjBA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACtBa;;AAEb,WAAW,mBAAO,CAAC,KAAe;;AAElC,aAAa,mBAAO,CAAC,KAAiB;AACtC,YAAY,mBAAO,CAAC,KAAgB;AACpC,oBAAoB,mBAAO,CAAC,KAAgB;;AAE5C,WAAW,yBAAyB;AACpC;;;;;;;;ACTA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC3Ba;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,qBAAqB,mBAAO,CAAC,KAAmC;AAChE,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,2FAA2F;AAC/F;AACA,CAAC;;;;;;;;;;;;;;;;;ACT4E;AACpB;AAClD,sBAAsB,qFAAkB;AAC/C,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qBAAqB,qFAAkB;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACtBA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAA6B,CAAC,0BAAY,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC7D,MAAM,KAAK,EAIN;AACL,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;ACzMD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnBa;AACb,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,eAAe,mBAAO,CAAC,GAAwB;AAC/C,8BAA8B,mBAAO,CAAC,KAAwC;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,sBAAsB,kBAAkB;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI,gCAAgC;AACvC;;;;;;;;;;;;;;;;;AChDa;;AAEb,cAAc,mBAAO,CAAC,KAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,KAAgB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA,YAAY,uBAAuB;AACnC;AACA;AACA,QAAQ,4BAA4B;AACpC;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA,WAAW,+BAA+B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+BAA+B;AAC1C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,4BAA4B,0DAA0D,MAAM;AAC5F;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,WAAW,+BAA+B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,aAAa;AACxB;AACA,eAAe,uCAAuC;AACtD,eAAe,+BAA+B;AAC9C,eAAe,+BAA+B;;AAE9C,YAAY,kDAAkD;;AAE9D,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;AACA;;;;;;;;;AChHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,YAAY,iCAAiC;AAC7C;AACA;AACA,0CAA0C,KAAK,EAAE,iCAAiC;AAClF;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA,wCAAwC,WAAW;AACnD;AACA,wCAAwC,WAAW,KAAK,WAAW,cAAc,WAAW;AAC5F;AACA,UAAU,WAAW;AACrB,8CAA8C,WAAW,cAAc,WAAW;AAClF,0CAA0C,WAAW,IAAI,uCAAuC;AAChG;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACpBA,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AChBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC8F;AACN;AACpB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;AAC7B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,mEAAO;AAC9B;AACA,wBAAwB,mEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,yBAAyB,2EAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,iEAAK,iBAAiB,2EAA2E;AAChI,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2BAA2B;AAC/E,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yEAAS;AAC3B,sBAAsB,yEAAS;AAC/B;AACA,YAAY,sEAAM;AAClB,SAAS;AACT,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA,YAAY,sEAAM;AAClB,iBAAiB,iFAAiB;AAClC,gBAAgB,sEAAM;AACtB;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,KAAK;AACtB;AACA;AACA,sBAAsB,yEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0DAA0D,iDAAiD;AAC3G;AACA,mDAAmD,8CAA8C;AACjG,kDAAkD,gEAAgE;AAClH;AACA,kDAAkD,gDAAgD;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,8CAA8C,6CAA6C;AAC3F;AACA,kDAAkD,gEAAgE;AAClH;AACA,+BAA+B;AAC/B,iDAAiD,+DAA+D;AAChH;AACA,sDAAsD,+DAA+D;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAK,OAAO,kEAAkE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,wEAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yEAAS;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAiB;AAC5C;AACA,gBAAgB,iFAAiB;AACjC,gBAAgB,yEAAS;AACzB;AACA;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,gBAAgB,cAAc;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACQ;;;;;;;;AClfnB,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,0BAA0B,mBAAO,CAAC,KAAwB;AAC1D,eAAe,mBAAO,CAAC,KAAY;AACnC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC9BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC5ED,aAAa,mBAAO,CAAC,IAAW;AAChC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjBa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;;AAEA,6BAA6B,uCAAuC;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;ACfA,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,SAAS,mBAAO,CAAC,KAAM;;AAEvB;AACA;;AAEA;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;;;;;;;;AC3BA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACjLY;AACb;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,+CAA+C,WAAW;AACtF,eAAe,YAAY,wBAAwB,cAAc,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA,sDAAsD,IAAI,MAAM,IAAI,SAAS,KAAK;AAClF,kCAAkC,KAAK,eAAe,IAAI;AAC1D,2CAA2C,YAAY,YAAY,KAAK,IAAI,KAAK,GAAG,WAAW,IAAI,QAAQ;AAC3G,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACzBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,mBAAO,CAAC,KAAU;AAC9B;AACA,kBAAe;AACf;;;;;;;ACLA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxGD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,IAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAmB;;;;;;;;AC9EnB,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3ID,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;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;;;;;;;;;ACzCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA,gDAAgD,QAAQ;AACxD,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACZA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/EY;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,0BAA0B,mBAAO,CAAC,KAAuC;AACzE,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,gGAAgG;AACpG;AACA,CAAC;;;;;;;;;ACTY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,wBAAwB;AAC3G,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC,eAAe,mBAAO,CAAC,IAAyB;AAChD,iBAAiB,mBAAO,CAAC,KAAW;AACpC;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,GAAG,QAAQ;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,gDAAgD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,GAAG,aAAa,mBAAmB,kDAAkD,EAAE;AAC5M;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO,EAAE,oEAAoE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,gBAAgB;AAC5B,qEAAqE,cAAc,GAAG,sBAAsB;AAC5G;AACA;AACA,YAAY,MAAM;AAClB,6CAA6C,KAAK;AAClD;AACA,iEAAiE,yBAAyB,aAAa,MAAM,IAAI,wBAAwB,UAAU,KAAK;AACxJ,gEAAgE,wBAAwB;AACxF;AACA,KAAK;AACL;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,qEAAqE,cAAc,IAAI,qDAAqD;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ,IAAI,eAAe;AAC9F;AACA;AACA;AACA;AACA,oCAAoC,QAAQ,8BAA8B,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;;;;;;AC3HA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxHD;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAyB,CAAC,0BAAY,EAAE,0BAAY,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACvE,MAAM,KAAK,EAIN;AACL,CAAC;AACD;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,MAAM,aAAa,KAAK;AACxC;AACA,yBAAyB,KAAK,EAAE,KAAK;AACrC;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,6FAA6F;AAC7F,gBAAgB,MAAM;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,cAAc;AACd;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,gCAAgC,sBAAsB;AACtD,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sBAAsB;AACtB,8DAA8D,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,yBAAyB;AACzB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;;ACrVY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,KAAwB;AACnD,eAAe,mBAAO,CAAC,IAAS;AAChC,eAAe,mBAAO,CAAC,KAAoB;AAC3C,+BAA+B,mBAAO,CAAC,KAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACrDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1Ba;AACb,0BAA0B,mBAAO,CAAC,KAAqC;;AAEvE;;AAEA;AACA;AACA;AACA,kFAAkF;AAClF;;;;;;;;;ACTa;;AAEb,YAAY,mBAAO,CAAC,IAAS;AAC7B,WAAW,mBAAO,CAAC,KAAgB;AACnC,YAAY,mBAAO,CAAC,KAAc;AAClC,kBAAkB,mBAAO,CAAC,KAAoB;AAC9C,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,KAAiB;AACxC,oBAAoB,mBAAO,CAAC,IAAsB;AAClD,iBAAiB,mBAAO,CAAC,KAAmB;;AAE5C;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,KAAkB;;AAEzC;AACA,qBAAqB,mBAAO,CAAC,KAAwB;;AAErD;;AAEA;AACA,yBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDgC;AACjB;AACA;AACrC;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,2CAA2C,mCAAmC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAO,GAAG,sBAAsB;AACxD,+BAA+B,2BAAM;AACrC;AACA;AACA,wBAAwB,uBAAO,GAAG,sBAAsB;AACxD,+BAA+B,2BAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACO;AACP;AACA,mBAAmB,2BAAM;AACzB;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;;;ACtGA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC2G;AACzB;AACjC;AAC2E;AACe;AAC1F;AACmD;AAC1C;AACG;AAChB;AACA;AACuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,+BAAU;AAClB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA,8BAA8B,0BAAS,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAW;AACnC,iBAAiB;AACjB,6BAA6B,6BAAQ;AACrC,gBAAgB,gCAAW;AAC3B;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA,gDAAgD,IAAI,gCAAW,wBAAwB;AACvF,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6BAAQ;AACrC;AACA,2DAA2D,qDAAqD;AAChH,2DAA2D,WAAW;AACtE;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,kCAAkC,gCAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kDAAkD,qDAAqD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAAQ,uCAAuC,UAAU,kBAAkB;AACnG,iCAAiC,cAAc;AAC/C,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAAS;AACvC,sDAAsD,SAAS;AAC/D;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,wBAAwB,wBAAO;AAC/B,4BAA4B,sBAAK,WAAW,uCAAuC;AACnF;AACA;AACA,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAY;AAC5B,sCAAsC,qCAAmB,sBAAsB,gBAAgB;AAC/F;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA;AACA,aAAa,wBAAO;AACpB;AACA;AACA,YAAY,6BAAY;AACxB,YAAY,6BAAY;AACxB;AACA,gBAAgB,6BAAY;AAC5B;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA,wBAAwB,iCAAY,YAAY,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAAc;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,4BAAO;AACnB,iBAAiB,4BAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4BAAO;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iEAAiE,8BAAS;AAC1E;AACA,2BAA2B,8BAAS;AACpC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,sCAAiB,iBAAiB,2BAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2BAAM;AACxD,kBAAkB,8BAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAAO;AAC9C;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,uBAAuB,uBAAO;AACnF,uCAAuC,gCAAW,WAAW,mBAAK;AAClE;AACA;AACA;AACA,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sCAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D;AACA;AACA,wDAAwD,8BAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+FAA+F,8BAAS;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,oBAAoB,4BAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B,4BAA4B;AAC5B,iCAAiC;AACjC;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA,gCAAgC,wBAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,iEAAiE,kEAAkE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,uEAAuE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kCAAgB;AACtD,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAK;AAChC;AACA;AACA,8CAA8C,uBAAuB,IAAI;AACzE,gEAAgE;AAChE,sEAAsE,uBAAuB,IAAI,wBAAwB;AACzH;AACA;AACA;AACA;AACA,gCAAgC,2BAAM;AACtC;AACA;AACA;AACA;AACA,yBAAyB,2BAAM;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oDAAoD,oDAAoD;AACxG,qDAAqD,mCAAkB;AACvE;AACA;AACA,SAAS;AACT;AACA,+EAA+E;AAC/E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,2CAA2C,8DAA8D;AACzG;AACA,SAAS;AACT;AACA;AACA,eAAe,yBAAG,kBAAkB,YAAY,IAAI,sBAAsB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAAM;AAC9B;AACA;AACA,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAY,uBAAuB,sBAAsB;AACrF;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,+BAAS;AAC3B;AACA;AACA;AACA,2BAA2B,4BAAO;AAClC;AACA,iCAAiC,qCAAiB;AAClD;AACA;AACA,kBAAkB,+BAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gDAAgD;AACzF,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAiB,qBAAqB,4BAAO;AACpE,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAO;AACvB;AACA;AACA;AACA;AACA;AACA,6BAA6B,qCAAiB;AAC9C;AACA;AACA,8BAA8B,+BAAS;AACvC;AACA;AACA,6BAA6B,qCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gCAAW;AACtE;AACA,oBAAoB,sCAAiB;AACrC;AACA;AACA,oBAAoB,wBAAO;AAC3B;AACA;AACA;AACA;AACA,iEAAiE,kCAAkC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gCAAgC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA,iBAAiB,0BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,4BAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAAM;AAC3B;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAAO;AACtC;AACA;AACA,YAAY,wBAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD,wBAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA,wCAAwC,wBAAO;AAC/C,oHAAoH,4BAAO;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,4BAAO;AACtF,+BAA+B,4BAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAAO;AAClC;AACA;AACA,2BAA2B,4BAAO;AAClC;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAAO;AACtB;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAW;AACnC;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,mCAAmC,2BAAM;AACzC,4BAA4B,YAAY;AACxC,yBAAyB;AACzB;AACA;AACA;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,OAAO,uBAAO;AACnE;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,OAAO,uBAAO;AACnE;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,OAAO,uBAAO;AACnE;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA,+EAA+E,WAAW;AAC1F,gCAAgC,2BAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,CAAC,gCAAW,MAAM,uBAAO;AAC1D;AACA;AACA,oBAAoB,aAAa,CAAC,gCAAW,MAAM,uBAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,8BAA8B,8BAAS;AACvC,sDAAsD,SAAS;AAC/D;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,wBAAwB,wBAAO;AAC/B,sCAAsC,gCAAW,SAAS,sBAAK;AAC/D;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA,gBAAgB,6BAAY;AAC5B,sCAAsC,qCAAmB,sBAAsB,gBAAgB;AAC/F;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA;AACA,aAAa,wBAAO;AACpB,YAAY,6BAAY;AACxB,YAAY,6BAAY;AACxB;AACA,gBAAgB,6BAAY;AAC5B;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA,6BAA6B,gCAAW,UAAU,+BAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA,gCAAgC,wBAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,eAAe,4BAAO;AACtB;AACA;AACA,gCAAgC;AAChC,iCAAiC;AACjC,qCAAqC;AACrC,gCAAgC;AAChC;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;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,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,+DAA+D,WAAW;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA,uCAAuC,2BAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAAM;AAC9B,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,4BAAO,GAAG,6HAA6H;AAC/I;AACA;AACA,QAAQ,+BAAU;AAClB;AACA;AACA,QAAQ,4BAAO,GAAG,oDAAoD;AACtE;AACA;AACA,QAAQ,sCAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0BAAS;AACS;;;;;;;;AC12EpB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;ACZ6E;AACpB;AAClD,uBAAuB,qFAAkB;AAChD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sBAAsB,qFAAkB;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;AC3Da;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,aAAa,mBAAO,CAAC,IAA4B;AACjD,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,qBAAqB,mBAAO,CAAC,KAA+B;AAC5D,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,0BAA0B,mBAAO,CAAC,KAA6B;AAC/D,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,wBAAwB,8CAAwD;AAChF,6BAA6B,mBAAO,CAAC,KAAwC;AAC7E,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;AC3EA,eAAe,mBAAO,CAAC,KAAY;AACnC,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;ACrBa;AACb,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,wBAAwB,mBAAO,CAAC,KAAmC;;AAEnE,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,gBAAgB;AACjC;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;;;;;;;;;;;;;;ACvBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AAC4G;AAClD;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU,aAAa,IAAI,cAAc,GAAG,eAAe,qBAAqB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6CAA6C,2EAAW;AACxD;AACA;AACA;AACA;AACA,QAAQ,0EAAU,iBAAiB,oCAAoC;AACvE,oCAAoC,kFAAgB;AACpD;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,0EAAU,KAAK,iEAAQ;AAC/B;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,iEAAQ;AACa;;;;;;;;;ACpIV;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,mBAAmB,mBAAO,CAAC,KAA2B;;AAEtD;;AAEA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA,0EAAqF;AACrF,wEAAkF;AAClF,0DAA4D;;;;;;;;ACP5D;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;ACjBa;AACb,iBAAiB,mBAAO,CAAC,KAA2B;;AAEpD;;;;;;;;;;;;;;;;;ACHA;AACA;AAC6C;AACoB;AAC/B;AACS;AACgE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,OAAO;AACtB,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kEAAiB,kCAAkC,kEAAiB;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA,kDAAkD,oDAAQ;AAC1D,kCAAkC,iFAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6DAAY;AACtD;AACA,wDAAwD,kDAAK;AAC7D;AACA;AACA;AACA;AACA,oCAAoC,4DAAW;AAC/C,aAAa;AACb;AACA;AACA,8CAA8C,4DAAW,SAAS,6DAAY;AAC9E;AACA,mDAAmD,6DAAY;AAC/D;AACA;AACA;AACA;AACA,+BAA+B,6DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,8BAA8B;AAC7H,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sDAAS;AACxD,iCAAiC;AACjC,0EAA0E,sDAAS,yBAAyB,sDAAS;AACrH;AACA;AACA;AACA;AACA,2CAA2C,sDAAS;AACpD;AACA,yBAAyB;AACzB,sCAAsC,sDAAS;AAC/C;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb,2BAA2B,sEAAM,KAAK,kDAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,qDAAqD,kDAAK;AAC1D,YAAY,oDAAQ;AACpB;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAQ;AACxB;AACA,4BAA4B,gBAAgB;AAC5C;AACA,6BAA6B,sEAAM,GAAG,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kDAAK;AACpC,YAAY,oDAAQ;AACpB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB,iFAAiB;AAClC;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA,sBAAsB,iFAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;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,sEAAM,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAQ;AAChC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAM,GAAG;AACnC;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iEAAK;AACnC;AACA;AACA;AACA;AACA,qCAAqC,cAAc,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0DAA0D,sCAAsC;AAChG;AACA;AACA;AACA;AACA,qCAAqC,uBAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kDAAK;AACnF;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA,8BAA8B,iEAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA,gDAAgD,cAAc,GAAG;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;AACA;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,cAAc;AAC9B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;AACA;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAM,GAAG;AAC/B;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA,8CAA8C,oDAAQ;AACtD;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,cAAc,sEAAM,GAAG;AACvB;AACA,4CAA4C;AAC5C;AACA,SAAS;AACT;AACA;AACA,8BAA8B,iEAAK;AACnC;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc,GAAG;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;AC9qBP;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,0BAA0B,mBAAO,CAAC,KAAoC;AACtE,mCAAmC,mBAAO,CAAC,KAA+C;;AAE1F;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACvBA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtHD,eAAe,mBAAO,CAAC,KAAa;AACpC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;ACpCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC1FY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM,kBAAkB,KAAK;AAC7F;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,QAAQ,IAAI;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,uDAAuD,MAAM,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC1EA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,cAAc,mBAAO,CAAC,KAAY;AAClC,cAAc,mBAAO,CAAC,KAAY;AAClC,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,aAAa,gBAAgB;AAC7B;AACO;AACP;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,QAAQ,iFAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,aAAa,gBAAgB;AAC7B;AACO;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;;;;;;;ACvLA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC1ED,aAAa,mBAAO,CAAC,KAAW;AAChC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,SAAS,mBAAO,CAAC,KAAM;AACvB,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC/GA,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClDA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtEY;AACb;;AAEA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnBa;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,qBAAqB,mBAAO,CAAC,KAAsC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,oCAAoC;AAC7C;AACA,CAAC;;;;;;;;;ACnBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,IAAS;AAChC,0BAA0B,mBAAO,CAAC,KAAmB;AACrD;AACA,gBAAgB,UAAU,OAAO,mDAAmD,KAAK;AACzF,eAAe,UAAU,OAAO,wBAAwB,SAAS,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC7BA;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;;;;;;;;AC9BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9JD,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtFY;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM,gBAAgB,qBAAM;AAC3C;AACA;AACA,iBAAiB,cAAc;;;;;;;;ACf/B;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AClEY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,QAAQ,uCAAuC,gBAAgB;AAC/E,eAAe,QAAQ,wBAAwB,kBAAkB,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA,6DAA6D,QAAQ;AACrE;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACjEA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;AClBa;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,qBAAqB,mBAAO,CAAC,KAA6B;AAC1D,8BAA8B,mBAAO,CAAC,KAAsC;AAC5E,eAAe,mBAAO,CAAC,KAAwB;AAC/C,oBAAoB,mBAAO,CAAC,KAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;;;;;;;;;AC3Ca;AACb,0BAA0B,mBAAO,CAAC,KAA6C;AAC/E,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;;;;;;;;ACNA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,eAAe;AACf,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACjFY;AACb;AACA,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,6BAA6B,mBAAO,CAAC,KAAuC;;AAE5E;AACA;AACA;;;;;;;;;ACPa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAQ;AAC/B,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,iBAAiB,mBAAO,CAAC,KAAU;AACnC,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;AChBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,8BAA8B,cAAc;AAC5C,6BAA6B,aAAa;AAC1C,sCAAsC;AACtC,wCAAwC;AACxC,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC;AAClC,iCAAiC;AACjC,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA,gCAAgC;AAChC,oCAAoC;AACpC,mCAAmC;AACnC,mCAAmC,UAAU;AAC7C;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,yBAAyB;AACzB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,QAAQ;AACR,eAAe;AACf;AACA;;AAEA;AACA;AACA,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,cAAc;AACd,QAAQ;AACR,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChda;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,mBAAmB,mBAAO,CAAC,KAAiC;AAC5D,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,yFAAyF;AAC7F;AACA,CAAC;;;;;;;;;ACTY;AACb,cAAc,mBAAO,CAAC,KAAsB;AAC5C,YAAY,mBAAO,CAAC,KAA2B;;AAE/C;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACZD,eAAe,mBAAO,CAAC,KAAa;AACpC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnFA,SAAS,mBAAO,CAAC,KAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACzFY;AACb,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;AACb;;;;;;;;ACDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChFD,eAAe,KAAmD,kBAAkB,mBAAO,CAAC,KAAK,GAAG,CAAqJ,CAAC,mDAAmD,mBAAmB,SAAS,cAAc,4BAA4B,YAAY,qBAAqB,2DAA2D,uCAAuC,qCAAqC,oBAAoB,EAAE,iBAAiB,6FAA6F,eAAe,wCAAwC,SAAS,EAAE,mBAAmB,8BAA8B,sDAAsD,0BAA0B,6CAA6C,sBAAsB,6DAA6D,YAAY,eAAe,SAAS,iBAAiB,iCAAiC,oBAAoB,YAAY,UAAU,sBAAsB,mBAAmB,iDAAiD,sBAAsB,EAAE,uBAAuB,wCAAwC,4CAA4C,wBAAwB,gBAAgB,0BAA0B,4BAA4B,UAAU,yBAAyB,kBAAkB,0BAA0B,oBAAoB,4BAA4B,sBAAsB,8BAA8B,wBAAwB,kBAAkB,8BAA8B,wBAAwB,0HAA0H,sBAAsB,0BAA0B,cAAc,UAAU,yCAAyC,wBAAwB,wCAAwC,6BAA6B,8CAA8C,eAAe,UAAU,IAAI,GAAG,wBAAwB,oDAAoD,gBAAgB,4BAA4B,wBAAwB,iBAAiB,SAAS,cAAc,wBAAwB,aAAa,8EAA8E,sCAAsC,yDAAyD,sBAAsB,0BAA0B,6EAA6E,UAAU,wBAAwB,gBAAgB,0CAA0C,sBAAsB,sBAAsB,wEAAwE,UAAU,wBAAwB,qCAAqC,IAAI,WAAW,gBAAgB,OAAO,YAAY,mBAAmB,OAAO,gBAAgB,YAAY,0BAA0B,QAAQ,GAAG,UAAU,wBAAwB,mBAAmB,SAAS,IAAI,SAAS,gBAAgB,OAAO,gBAAgB,OAAO,aAAa,MAAM,UAAU,UAAU,wBAAwB,gBAAgB,qDAAqD,sBAAsB,sBAAsB,wDAAwD,UAAU,sBAAsB,4FAA4F,6BAA6B,iCAAiC,iCAAiC,SAAS,KAAK,yEAAyE,SAAS,sBAAsB,IAAI,mEAAmE,iBAAiB,YAAY,SAAS,+FAA+F,kBAAkB,mBAAmB,oBAAoB,wBAAwB,sCAAsC,wBAAwB,WAAW,4BAA4B,wBAAwB,0FAA0F,wBAAwB,+CAA+C,uBAAuB,WAAW,0BAA0B,yGAAyG,gCAAgC,OAAO,iDAAiD,wBAAwB,6DAA6D,4CAA4C,eAAe,sBAAsB,aAAa,mEAAmE,sBAAsB,iBAAiB,oBAAoB,+BAA+B,aAAa,GAAG,wBAAwB,mMAAmM,sCAAsC,wBAAwB,WAAW,iBAAiB,eAAe,kBAAkB,MAAM,eAAe,UAAU,eAAe,4CAA4C,qBAAqB,aAAa,gDAAgD,yBAAyB,qDAAqD,QAAQ,eAAe,YAAY,+BAA+B,iBAAiB,wBAAwB,YAAY,sMAAsM,yCAAyC,0BAA0B,aAAa,mBAAmB,sDAAsD,eAAe,wBAAwB,sEAAsE,sIAAsI,wBAAwB,gBAAgB,yCAAyC,wBAAwB,wDAAwD,sBAAsB,oDAAoD,wBAAwB,oDAAoD,kDAAkD,KAAK,4BAA4B,+BAA+B,UAAU,wBAAwB,gBAAgB,sBAAsB,6EAA6E,UAAU,sBAAsB,aAAa,sBAAsB,aAAa,4BAA4B,GAAG,6CAA6C,EAAE,UAAU,EAAE,wBAAwB,gBAAgB,YAAY,wBAAwB,uCAAuC,wBAAwB,2CAA2C,eAAe,4CAA4C,QAAQ,wBAAwB,gBAAgB,wBAAwB,gBAAgB,4DAA4D,sBAAsB,uDAAuD,wBAAwB,yBAAyB,+CAA+C,sBAAsB,gBAAgB,yDAAyD,wBAAwB,GAAG,wBAAwB,sDAAsD,uBAAuB,oCAAoC,YAAY,oCAAoC,UAAU,IAAI,4CAA4C,eAAe,WAAW,8BAA8B,wBAAwB,2BAA2B,sBAAsB,uCAAuC,oBAAoB,QAAQ,gBAAgB,wBAAwB,oBAAoB,sBAAsB,4BAA4B,yBAAyB,kCAAkC,EAAE,uBAAuB,wFAAwF,EAAE,wBAAwB,oDAAoD,8CAA8C,sBAAsB,2BAA2B,oBAAoB,0DAA0D,wBAAwB,+FAA+F,mBAAmB,mBAAmB,6DAA6D,WAAW,+BAA+B,sBAAsB,wBAAwB,OAAO,gEAAgE,wBAAwB,uDAAuD,wBAAwB,MAAM,iKAAiK,wBAAwB,wHAAwH,uBAAuB,EAAE,eAAe,mBAAmB,MAAM,qFAAqF,WAAW,MAAM,oCAAoC,gBAAgB,uBAAuB,eAAe,uBAAuB,eAAe,oBAAoB,KAAK,iBAAiB,wBAAwB,kBAAkB,eAAe,sBAAsB,eAAe,eAAe,WAAW,yCAAyC,wBAAwB,iIAAiI,6BAA6B,mEAAmE,4LAA4L,4CAA4C,uDAAuD,GAAG,sBAAsB,4BAA4B,0BAA0B,QAAQ,mGAAmG,oBAAoB,iCAAiC,oBAAoB,wHAAwH,wBAAwB,gBAAgB,sBAAsB,qBAAqB,wBAAwB,6JAA6J,eAAe,yBAAyB,eAAe,yBAAyB,4BAA4B,gBAAgB,cAAc,mCAAmC,iJAAiJ,cAAc,IAAI,iDAAiD,UAAU,aAAa,eAAe,4BAA4B,YAAY,+CAA+C,MAAM,gFAAgF,wBAAwB,wCAAwC,0DAA0D,wBAAwB,gBAAgB,sBAAsB,wDAAwD,UAAU,wBAAwB,gBAAgB,yBAAyB,kCAAkC,IAAI,eAAe,UAAU,KAAK,GAAG,sBAAsB,sBAAsB,0DAA0D,sBAAsB,UAAU,eAAe,0EAA0E,8CAA8C,aAAa,gEAAgE,wFAAwF,sEAAsE,IAAI,gBAAgB,SAAS,kPAAkP,2EAA2E,YAAY,gFAAgF,YAAY,WAAW,KAAK,+CAA+C,4BAA4B,gEAAgE,aAAa,SAAS,GAAG,sBAAsB,oCAAoC,iEAAiE,iBAAiB,4BAA4B,sBAAsB,YAAY,sBAAsB,wBAAwB,sBAAsB,mEAAmE,sBAAsB,wCAAwC,4BAA4B,uBAAuB,iBAAiB,iBAAiB,wBAAwB,oDAAoD,cAAc,mDAAmD,2BAA2B,8CAA8C,YAAY,iCAAiC,YAAY,wBAAwB,gBAAgB,4BAA4B,IAAI,8BAA8B,SAAS,kBAAkB,mCAAmC,wBAAwB,4EAA4E,wBAAwB,6BAA6B,gBAAgB,UAAU,mEAAmE,qCAAqC,wBAAwB,eAAe,cAAc,iBAAiB,qBAAqB,kBAAkB,SAAS,wBAAwB,+BAA+B,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,IAAI,QAAQ,WAAW,2CAA2C,YAAY,iCAAiC,QAAQ,WAAW,kBAAkB,GAAG,2BAA2B,aAAa,GAAG,sBAAsB,aAAa,gBAAgB,wBAAwB,YAAY,yBAAyB,0BAA0B,QAAQ,IAAI,IAAI,oBAAoB,6BAA6B,sBAAsB,mCAAmC,sBAAsB,aAAa,kPAAkP,8BAA8B,8EAA8E,gDAAgD,gBAAgB,wBAAwB,yBAAyB,MAAM,0BAA0B,MAAM,iBAAiB,gCAAgC,IAAI,8CAA8C,qBAAqB,UAAU,0CAA0C,wBAAwB,oCAAoC,wCAAwC,kBAAkB,oCAAoC,sMAAsM,WAAW,wCAAwC,wCAAwC,sBAAsB,oEAAoE,eAAe,SAAS,wBAAwB,sBAAsB,QAAQ,EAAE,mFAAmF,gCAAgC,kBAAkB,OAAO,WAAW,SAAS,oBAAoB,uBAAuB,IAAI,sBAAsB,aAAa,4BAA4B,cAAc,qBAAqB,8BAA8B,sBAAsB,oNAAoN,iBAAiB,QAAQ,0BAA0B,SAAS,gBAAgB,IAAI,IAAI,SAAS,wBAAwB,sBAAsB,gBAAgB,cAAc,+DAA+D,iBAAiB,eAAe,YAAY,0DAA0D,YAAY,eAAe,YAAY,2BAA2B,OAAO,kBAAkB,gCAAgC,sBAAsB,8HAA8H,sBAAsB,+DAA+D,sBAAsB,wFAAwF,iDAAiD,yBAAyB,yFAAyF,IAAI,sDAAsD,oBAAoB,gBAAgB,gBAAgB,gBAAgB,mBAAmB,mBAAmB,uBAAuB,WAAW,iFAAiF,sBAAsB,gBAAgB,wBAAwB,kBAAkB,QAAQ,iEAAiE,6DAA6D,kEAAkE,4DAA4D,oBAAoB,aAAa,oBAAoB,QAAQ,UAAU,sBAAsB,8BAA8B,sBAAsB,iEAAiE,EAAE,YAAY,oBAAoB,MAAM,aAAa,YAAY,GAAG,IAAI,mCAAmC,SAAS,qCAAqC,YAAY,sBAAsB,4DAA4D,wBAAwB,sBAAsB,sCAAsC,qDAAqD,UAAU,sBAAsB,oEAAoE,sBAAsB,gCAAgC,sBAAsB,wCAAwC,wBAAwB,yCAAyC,yBAAyB,uBAAuB,sBAAsB,4BAA4B,wBAAwB,IAAI,SAAS,SAAS,OAAO,UAAU,oBAAoB,aAAa,oBAAoB,sBAAsB,IAAI,YAAY,SAAS,WAAW,sBAAsB,0CAA0C,qCAAqC,wBAAwB,yEAAyE,sBAAsB,aAAa,QAAQ,sEAAsE,IAAI,IAAI,kBAAkB,gBAAgB,wBAAwB,GAAG,sBAAsB,4BAA4B,iDAAiD,YAAY,gBAAgB,IAAI,sGAAsG,UAAU,qBAAqB,gDAAgD,WAAW,sBAAsB,wCAAwC,oCAAoC,UAAU,EAAE,sBAAsB,6DAA6D,0BAA0B,mCAAmC,wBAAwB,GAAG,sBAAsB,aAAa,kBAAkB,2BAA2B,8KAA8K,uBAAuB,sBAAsB,4BAA4B,mCAAmC,eAAe,sBAAsB,gBAAgB,0BAA0B,6BAA6B,UAAU,oBAAoB,sBAAsB,IAAI,OAAO,oBAAoB,SAAS,OAAO,oBAAoB,sBAAsB,aAAa,gmBAAgmB,uBAAuB,OAAO,mBAAmB,yDAAyD,uCAAuC,yCAAyC,iCAAiC,eAAe,eAAe,GAAG,oBAAoB,oCAAoC,gBAAgB,0BAA0B,+BAA+B,GAAG,kBAAkB,MAAM,gDAAgD,oBAAoB,gBAAgB,cAAc,kBAAkB,cAAc,+BAA+B,kBAAkB,qEAAqE,IAAI,iLAAiL,SAAS,sBAAsB,sDAAsD,IAAI,oBAAoB,QAAQ,+FAA+F,mBAAmB,8DAA8D,kBAAkB,qBAAqB,wBAAwB,uBAAuB,6CAA6C,oDAAoD,GAAG,gBAAgB,kCAAkC,kBAAkB,qBAAqB,+CAA+C,GAAG,sBAAsB,mBAAmB,YAAY,sBAAsB,4DAA4D,sBAAsB,YAAY,mBAAmB,IAAI,qDAAqD,YAAY,gBAAgB,OAAO,SAAS,IAAI,oCAAoC,SAAS,aAAa,oCAAoC,SAAS,MAAM,QAAQ,SAAS,mBAAmB,8BAA8B,cAAc,IAAI,+BAA+B,SAAS,cAAc,eAAe,QAAQ,oFAAoF,EAAE,4BAA4B,mBAAmB,6BAA6B,kKAAkK,mBAAmB,4BAA4B,eAAe,mBAAmB,8DAA8D,mBAAmB,kCAAkC,kFAAkF,WAAW,4BAA4B,cAAc,aAAa,GAAG,UAAU,2BAA2B,kCAAkC,EAAE,kBAAkB,kCAAkC,OAAO,4BAA4B,EAAE,UAAU,8BAA8B,2BAA2B,EAAE,mBAAmB,cAAc,0CAA0C,KAAK,8BAA8B,EAAE,oBAAoB,gCAAgC,KAAK,2BAA2B,EAAE,gBAAgB,yDAAyD,gCAAgC,iBAAiB,eAAe,iDAAiD,2BAA2B,KAAK,aAAa,GAAG,qCAAqC,kBAAkB,6CAA6C,mBAAmB,iBAAiB,8BAA8B,GAAG,GAAG,sCAAsC,EAAE,sBAAsB,oDAAoD,wBAAwB,+BAA+B,WAAW,KAAK,WAAW,wBAAwB,sBAAsB,gBAAgB,qCAAqC,qBAAqB,sBAAsB,8DAA8D,sBAAsB,4CAA4C,sBAAsB,aAAa,8BAA8B,QAAQ,kCAAkC,qEAAqE,QAAQ,uCAAuC,wBAAwB,iBAAiB,sBAAsB,uFAAuF,iBAAiB,oBAAoB,IAAI,YAAY,YAAY,0BAA0B,UAAU,2JAA2J,sBAAsB,wCAAwC,sBAAsB,0BAA0B,sBAAsB,aAAa,0CAA0C,SAAS,gCAAgC,gDAAgD,kFAAkF,MAAM,EAAE,gDAAgD,cAAc,gBAAgB,wBAAwB,gEAAgE,qBAAqB,kCAAkC,mCAAmC,aAAa,kDAAkD,4BAA4B,2DAA2D,iCAAiC,sBAAsB,KAAK,wBAAwB,SAAS,iCAAiC,QAAQ,iCAAiC,OAAO,8CAA8C,aAAa,WAAW,cAAc,+BAA+B,yBAAyB,OAAO,0FAA0F,iBAAiB,kBAAkB,4BAA4B,IAAI,MAAM,oEAAoE,kEAAkE,SAAS,oBAAoB,WAAW,iKAAiK,MAAM,uFAAuF,IAAI,GAAG,gCAAgC,sBAAsB,GAAG,kEAAkE,qBAAqB,KAAK,MAAM,2KAA2K,iDAAiD,iDAAiD,UAAU,sBAAsB,WAAW,gEAAgE,gGAAgG,oBAAoB,kCAAkC,0BAA0B,GAAG,2BAA2B,iCAAiC,qCAAqC,4CAA4C,kCAAkC,yCAAyC,qBAAqB,0BAA0B,yBAAyB,iCAAiC,EAAE,8BAA8B,MAAM,0DAA0D,+BAA+B,MAAM,2DAA2D,+BAA+B,MAAM,2DAA2D,gCAAgC,MAAM,4DAA4D,+BAA+B,MAAM,2DAA2D,gCAAgC,MAAM,4DAA4D,sBAAsB,MAAM,kDAAkD,uBAAuB,MAAM,mDAAmD,sBAAsB,MAAM,kDAAkD,sBAAsB,MAAM,kDAAkD,sBAAsB,MAAM,kDAAkD,0BAA0B,MAAM,sDAAsD,yBAAyB,MAAM,qDAAqD,iBAAiB,MAAM,6CAA6C,mBAAmB,MAAM,+CAA+C,oBAAoB,2CAA2C,uBAAuB,MAAM,mDAAmD,sBAAsB,6CAA6C,4BAA4B,mDAAmD,6BAA6B,MAAM,yDAAyD,sCAAsC,8DAA8D,qBAAqB,MAAM,iDAAiD,wBAAwB,MAAM,oDAAoD,mCAAmC,0DAA0D,2BAA2B,4DAA4D,2BAA2B,kDAAkD,+BAA+B,8DAA8D,gCAAgC,MAAM,4DAA4D,sCAAsC,8DAA8D,wBAAwB,+CAA+C,wBAAwB,gDAAgD,8BAA8B,sDAAsD,wBAAwB,gDAAgD,6BAA6B,qDAAqD,QAAQ,iBAAiB,MAAM,wEAAwE,mBAAmB,MAAM,wEAAwE,gBAAgB,iEAAiE,0BAA0B,MAAM,iDAAiD,MAAM,WAAW,QAAQ,eAAe,sBAAsB,4BAA4B,sBAAsB,gBAAgB,oBAAoB,WAAW,qfAAqf,sBAAsB,gBAAgB,4DAA4D,sBAAsB,gBAAgB,qBAAqB,aAAa;AACtkhC;;;;;;;ACDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC5FD;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACba;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;ACjB6E;AACpB;AAClD,8BAA8B,qFAAkB;AACvD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,qFAAkB;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3DA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwG;AACnC;AACtB;AACwC;AACV;AAChB;AACT;AACuE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa,YAAY;AACrE,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,SAAS,0EAAU,iBAAiB;AAC1F;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,UAAU,0EAAU,kBAAkB;AAC5F;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,0BAA0B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0EAAU;AACrC;AACA;AACA,4BAA4B,0EAAU;AACtC;AACA,QAAQ,iFAAiB;AACzB;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAO;AACnB,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gBAAgB;AACvG;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA,YAAY,mEAAO;AACnB,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gBAAgB;AACvG;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA,sDAAsD,iFAAiB;AACvE;AACA,6BAA6B,2BAA2B;AACxD;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;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,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iFAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,YAAY,iFAAiB,aAAa,iFAAiB;AAC3D;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,wBAAwB,4EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,wBAAwB,yFAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gFAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yEAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAI;AACZ;AACA;AACA,YAAY,sEAAS;AACrB,gBAAgB,iFAAiB;AACjC,2BAA2B,gEAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,iFAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe,gBAAgB;AAC/B,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB,4BAA4B,mEAAO;AACjE;AACA;AACA,qCAAqC,iFAAiB;AACtD,iCAAiC,iFAAiB;AAClD;AACA,YAAY,iFAAiB,iBAAiB,uBAAuB;AACrE;AACA,6BAA6B,iFAAiB;AAC9C;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA,oBAAoB,2EAAW;AAC/B,oBAAoB,wEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAS;AACzB;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B,iFAAiB;AAC9C;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA,oBAAoB,2EAAW;AAC/B,oBAAoB,wEAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,qEAAS;AACzB;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,iFAAiB;AAC7G;AACA;AACA,oBAAoB,0EAAU;AAC9B,sBAAsB,0EAAU;AAChC;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB,kBAAkB,iFAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ,GAAG,sBAAsB;AACzC;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACM;AACjB;AACA;AACA;AACA,YAAY,cAAc;AAC1B,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,cAAc;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iFAAiB;AAC1B;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,cAAc;AAC1B;AACA;AACO;AACP,8BAA8B;AAC9B;AACA,oBAAoB,oBAAoB;AACxC;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC90BA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACZA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC1ED,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,sDAAsD,KAAK,WAAW,IAAI,EAAE,WAAW;AACvF,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACvBa;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,UAAU,gCAAuC;AACjD,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;AClBa;AACb,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACVA,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9ED,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;;AAEA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACxJY;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA,aAAa,mBAAO,CAAC,IAAW;AAChC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACjBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACnED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACpID;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrBA;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;;;;;;;;AClCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChGD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb;;;;;;;;ACDA,cAAc,mBAAO,CAAC,KAAY;AAClC,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACfa;;AAEb,WAAW,aAAa;AACxB;AACA;AACA;AACA,oBAAoB,SAAS,UAAU;AACvC,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;ACba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,KAAiC;AAC5D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,IAAqB;AAC7C;AACA,gBAAgB,UAAU,QAAQ,mEAAmE,GAAG,MAAM,GAAG;AACjH,eAAe,UAAU,QAAQ,wBAAwB,KAAK,EAAE,OAAO,GAAG;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAyD;AACzE;AACA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA,uDAAuD,KAAK;AAC5D;AACA,4BAA4B,MAAM;AAClC;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,uCAAuC,EAAE,EAAE,GAAG;AAC9C,kDAAkD,KAAK,GAAG,EAAE;AAC5D;AACA;AACA,sDAAsD,MAAM,kCAAkC,MAAM;AACpG;AACA,mDAAmD,QAAQ,GAAG,KAAK;AACnE,sDAAsD,QAAQ,GAAG,KAAK;AACtE;AACA;AACA,iBAAiB;AACjB,8CAA8C,QAAQ,GAAG,KAAK,MAAM,EAAE;AACtE,aAAa;AACb;AACA;AACA;AACA;AACA,oDAAoD,EAAE,EAAE,GAAG,qCAAqC,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,oCAAoC,IAAI,GAAG,KAAK,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE;AACtL;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC/DA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;;AAEA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtIY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAwB;AAChD,kBAAkB,mBAAO,CAAC,EAAe;AACzC,oBAAoB,mBAAO,CAAC,KAAyB;AACrD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,uBAAuB;AACjD,kBAAkB,QAAQ;AAC1B,2BAA2B,QAAQ;AACnC,eAAe,UAAU,4BAA4B,wBAAwB,SAAS,WAAW,SAAS,QAAQ,cAAc,KAAK;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK,EAAE,oCAAoC;AACpG,0CAA0C,KAAK,gEAAgE,kDAAkD;AACjK;AACA;AACA;AACA;AACA;AACA,+CAA+C,KAAK,MAAM,SAAS;AACnE;AACA;AACA;AACA,+BAA+B,sDAAsD;AACrF;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,QAAQ;AAC7H;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACvGA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;;;;;;;ACzBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtID,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,KAAW;AAChC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5BA,cAAc,mBAAO,CAAC,KAAW;AACjC,YAAY,mBAAO,CAAC,KAAU;AAC9B,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;AClBa;;AAEb;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;AClBa;;AAEb;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACxIY;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAoC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;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,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,4CAA4C,6CAA6C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,CAAC;AACD;AACA;AACA,8BAA8B;AAC9B,wCAAwC;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS,mBAAmB,aAAa;AAC1E,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,mBAAmB,aAAa;AACzF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD,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,qFAAqF,wBAAwB;AAC7G,oEAAoE;AACpE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAC3C,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAe,aAAa,EAAC;AAC7B;;;;;;;;;ACnoBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,sBAAsB,2BAA2B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW,MAAM,uBAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,KAAK,MAAM,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA,wGAAwG,+BAA+B,QAAQ,IAAI;AACnJ;AACA;AACA;AACA;AACA,gDAAgD,KAAK,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACzGa;AACb,eAAe,mBAAO,CAAC,GAAwB;;AAE/C;AACA;AACA;;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACNA,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9ED,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnCa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACnEY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,sBAAsB,GAAG,6BAA6B;AAC9E,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;AClBa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,YAAY,mBAAO,CAAC,KAA2B;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACda;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;;;;;;;;ACRa;AACb;AACA,SAAS;;;;;;;;;ACFI;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C,SAAS;;AAET;AACA,4DAA4D,wBAAwB;AACpF;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kCAAkC;AAClC,gCAAgC,cAAc;AAC9C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACpDA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC2G;AACQ;AAC/C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;AAC7B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,mEAAO;AAC9B;AACA,wBAAwB,mEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,qBAAqB,2EAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,iEAAK,iBAAiB,2EAA2E;AAChI,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4EAAQ,UAAU,2BAA2B;AACrE,wBAAwB,4EAAQ,UAAU,2BAA2B;AACrE;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,2EAAW;AACnB,mBAAmB,yEAAS;AAC5B,uBAAuB,yEAAS;AAChC;AACA,YAAY,sEAAM;AAClB,SAAS;AACT,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA,YAAY,sEAAM;AAClB,iBAAiB,iFAAiB;AAClC,gBAAgB,sEAAM;AACtB;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,KAAK;AACtB;AACA;AACA,qBAAqB,yEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,4EAAQ,UAAU,gDAAgD;AAC/F;AACA,sBAAsB,4EAAQ,UAAU,2CAA2C;AACnF,sBAAsB,4EAAQ,UAAU,+DAA+D;AACvG;AACA,oBAAoB,4EAAQ,UAAU,8CAA8C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4EAAQ,UAAU,4CAA4C;AAChF;AACA,sBAAsB,4EAAQ,UAAU,+DAA+D;AACvG;AACA,yBAAyB,4EAAQ,UAAU,4DAA4D;AACvG;AACA,wBAAwB,4EAAQ,UAAU,6DAA6D;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAK,QAAQ,kEAAkE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,wEAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yEAAS;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAiB;AAC5C;AACA,gBAAgB,iFAAiB;AACjC,gBAAgB,yEAAS;AACzB;AACA;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,gBAAgB,cAAc;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACQ;;;;;;;;;ACtdN;AACb,cAAc,mBAAO,CAAC,KAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACR0B;;AAE1B,IAAI,UAAM;AACV;AACA,WAAW,yDAAS;;AAEpB;;AAEO,SAAS,OAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEmB;AAOlB;;;;;ACjCD;AACA;AACA;AACA;AACA;AAC8O;AACtL;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAqC,IAAI,CAAe;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,CAAC,oCAAoC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAA0J,IAAI,CAAS;;AAE5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,qBAAqB,kBAAkB,IAAI;AAC3C;AACA;AACA;AACA,6DAA6D;AAC7D,+DAA+D,iBAAiB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,SAAS,QAAQ;AACjB;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;;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,8BAA8B;AAC9B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+BAA+B;AAChE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB,SAAS;AACT;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,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mCAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAK;AAChD;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAe;AACjE;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA,wBAAwB,OAAO;AAC/B;AACA,mEAAmE,QAAQ,MAAM,KAAK;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,mCAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB,SAAS;AACT,KAAK;AACL;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,YAAY,yBAAK,OAAO,yBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,aAAa,IAAI,YAAY;AAC7B,SAAS;AACT,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS,IAAI,+BAA+B;AAC5C;AACA,2BAA2B,2BAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAK;AACxC;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,+BAAW;AAC7B;AACA;AACA,kCAAkC,uBAAG,GAAG;AACxC;AACA;AACA;AACA,kBAAkB,2BAAO;AACzB;AACA;AACA;AACA;AACA,iBAAiB,UAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,UAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAwC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,oBAAoB,QAAQ,GAAG;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mCAAe;AACpC,QAAQ,kCAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yBAAK;AAClB,aAAa,8BAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAqC;AAChE,MAAM,CAA6B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAM;AACjB;AACA;AACA;AACA,QAAQ,MAAM,iBAAG;AACjB;AACA,cAAc,yBAAK;AACnB;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA,8BAA8B,KAAwC,IAAI,CAAI;AAC9E;AACA,gBAAgB,UAAM;AACtB,gBAAgB,OAAG,4CAA4C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAA8C;AACzE;AACA,gBAAgB,CAAuC;AACvD,cAAc,0BAAM;AACpB,eAAe,YAAM,+CAA+C;AACpE,gBAAgB,KAA6D,EAAE,EAElE;AACb,oCAAoC,2BAAO,CAAC,4BAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,6BAA6B,YAAM,GAAG,aAAa;AACnD;AACA,QAAQ,KAA2D,EAAE,EAEhE;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkD,EAAE,EAkBvD;AACL;AACA,qBAAqB;AACrB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,KAAwC,IAAI,CAAI;AAC7F;AACA,YAAY,UAAM;AAClB,YAAY,OAAG,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAG,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAqC,GAAG,EAE5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAAQ;AAChB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,YAAM;AACtB,aAAa;AACb;AACA;AACA,aAAa,MAAqC;AAClD,kBAAkB,CAED;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,2BAAO;AAC7C,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,gDAAgD,yBAAK;AACrD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa,EAAE,YAAM,GAAG;AACxB;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,UAAM;AACd;AACA;AACA;AACA,kBAAkB,4BAAQ,EAAE,MAAqC;AACjE,UAAU,YAAM;AAChB;AACA,+BAA+B,2BAAO;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,+BAAW;AACnF;AACA;AACA;AACA,aAAa,yBAAK,gCAAgC,8BAAU;AAC5D;AACA,gBAAgB,KAA8C,EAAE,EAInD;AACb;AACA;AACA;AACA,wBAAwB,yBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAM;AAC1B,oBAAoB,OAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA,gCAAgC,MAA8C,GAAG,CAAI;AACrF;AACA;AACA;AACA,gBAAgB,UAAM;AACtB,gBAAgB,OAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA,kBAAkB,KAAqC,GAAG,EAcjD;AACT;AACA;AACA;AACA,QAAQ,UAAM;AACd;AACA,YAAY,OAAG;AACf,SAAS;AACT;AACA;AACA,QAAQ,YAAM;AACd;AACA;AACA,QAAQ,YAAM,CAAC,yBAAK;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAA8C,GAAG,CAAc;AACnF;AACA;AACA,gBAAgB,KAA8C,EAAE,EAEnD;AACb;AACA,gBAAgB,YAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,SAAS,KAAqC,GAAG,EAoE5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAM,GAAG,iBAAiB;AACtE,SAAS;AACT;AACA;AACA,QAAQ,UAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wCAAwC;AACxC,YAAY,YAAM;AAClB;AACA;AACA,YAAY,YAAM;AAClB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,QAAQ,KAI8D,EAAE,EAInE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAiE,EAAE,EAEtE;AACT;AACA;AACA,2BAA2B,uCAAmB;AAC9C;AACA;AACA;AACA,aAAa,MAAwE,GAAG,CAAI;AAC5F,8BAA8B,0BAAM;AACpC;AACA;AACA,YAAY,KAAuD,EAAE,EAI5D;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAG5C;AACb;AACA;AACA,YAAY,KAA8C,EAAE,EASnD;AACT,YAAY,KAAoD,EAAE,EAWzD;AACT;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,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAmE,EAAE,EAQxE;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS,IAAI;AACb;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAE+N;;;;;;;;;ACp9DlN;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,cAAc,mBAAO,CAAC,KAAuB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS;AACvS,eAAe,mBAAO,CAAC,KAAQ;AAC/B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,aAAa,mBAAO,CAAC,KAAQ;AAC7B,qCAAoC,EAAE,qCAAqC,oBAAoB,EAAC;AAChG,uCAAsC,EAAE,qCAAqC,sBAAsB,EAAC;AACpG,6CAA4C,EAAE,qCAAqC,4BAA4B,EAAC;AAChH,uCAAsC,EAAE,qCAAqC,sBAAsB,EAAC;AACpG,+CAA8C,EAAE,qCAAqC,8BAA8B,EAAC;AACpH,6CAA4C,EAAE,qCAAqC,4BAA4B,EAAC;AAChH,8CAA6C,EAAE,qCAAqC,6BAA6B,EAAC;AAClH,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG,cAAc,mBAAO,CAAC,KAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,kDAAiD,EAAE,qCAAqC,kCAAkC,EAAC;AAC3H,4CAA2C,EAAE,qCAAqC,4BAA4B,EAAC;AAC/G,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,wDAAwD,SAAS;AACjE,kBAAkB,SAAS,EAAE,UAAU,EAAE,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,UAAU,IAAI,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,UAAU,EAAE,QAAQ,IAAI,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,uCAAuC,WAAW;AAClD,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,WAAW;AAC7B;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,sBAAsB,SAAS,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,WAAW,UAAU,GAAG,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,sBAAsB;AACtB;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D,gDAAgD,IAAI,GAAG,EAAE;AACzD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,IAAI;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS,KAAK,WAAW;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ,QAAQ,GAAG,QAAQ,YAAY;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,qFAAqF,QAAQ,EAAE,IAAI,EAAE,OAAO;AAC5G;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;;;;;;;;ACxrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,sBAAsB,GAAG,aAAa,GAAG,gBAAgB,GAAG,sBAAsB;AACvG,eAAe,mBAAO,CAAC,KAAQ;AAC/B;AACA;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,EAAE,WAAW;AACtC;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,2CAA2C,0BAA0B,GAAG,UAAU;AAClF;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,KAAK;AACvD,oCAAoC,UAAU,EAAE,eAAe;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA,kDAAkD,KAAK;AACvD;AACA,SAAS;AACT;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,aAAa;AACtF;AACA;AACA,4CAA4C,KAAK,EAAE,EAAE,EAAE,aAAa;AACpE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;AC9IY;;AAEZ,QAAQ,MAAM,EAAE,mBAAO,CAAC,KAAe;;AAEvC,8CAA8C,EAAE,gBAAgB,EAAE,wBAAwB,EAAE;;AAE5F;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,aAAa;AACb;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,wBAAwB;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,mBAAmB,oBAAoB;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnPA;AACA,wBAAwB,qBAAM,gBAAgB,qBAAM,IAAI,qBAAM,sBAAsB,qBAAM;;AAE1F;;;;;;;;;ACHa;;AAEb,UAAU,mBAAO,CAAC,KAAsB;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;;AAEA;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;;;;;;;;;ACxGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,kBAAkB,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gDAAgD,UAAU,KAAK,MAAM;AACrE;AACA,8DAA8D,QAAQ,IAAI,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACpBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,kBAAkB,mBAAO,CAAC,KAAW;AACrC,0BAA0B,mBAAO,CAAC,KAAmB;AACrD,mBAAmB,mBAAO,CAAC,KAAY;AACvC,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,gBAAgB,mBAAO,CAAC,IAAS;AACjC,eAAe,mBAAO,CAAC,KAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kDAAkD;AACxD,MAAM,4CAA4C;AAClD;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;AChCa;AACb,iBAAiB,mBAAO,CAAC,KAA2B;AACpD,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,gCAAgC,mBAAO,CAAC,KAA4C;AACpF,kCAAkC,mBAAO,CAAC,KAA8C;AACxF,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACda;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,eAAe,mBAAO,CAAC,KAAqB;AAC5C,yBAAyB,mBAAO,CAAC,KAAsB;AACvD,sBAAsB,mBAAO,CAAC,KAAmB;AACjD,kBAAkB,mBAAO,CAAC,KAAe;AACzC,gBAAgB,mBAAO,CAAC,KAAsB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;ACnJa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;ACHA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,aAAa,mBAAO,CAAC,IAAkB;AACvC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,eAAe,mBAAO,CAAC,KAAuB;AAC9C,oBAAoB,mBAAO,CAAC,KAAuB;AACnD,mBAAmB,mBAAO,CAAC,KAA2B;AACtD,sBAAsB,mBAAO,CAAC,KAA8B;AAC5D,kBAAkB,mBAAO,CAAC,KAAqB;;AAE/C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;AC5La;AACb,0BAA0B,mBAAO,CAAC,KAAqC;;AAEvE;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,+CAA+C,WAAW;AACtF,eAAe,YAAY,wBAAwB,WAAW,YAAY;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA,+DAA+D,WAAW,IAAI,EAAE;AAChF,2CAA2C,OAAO,QAAQ,KAAK;AAC/D,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACvBa;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,YAAY,mBAAO,CAAC,KAAoB;AACxC,oBAAoB,mBAAO,CAAC,IAAsC;;AAElE;AACA;AACA;AACA;AACA,uBAAuB;AACvB,GAAG;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXD;AACA;AACA;AACO;AACP;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;;ACrCO,SAAS,sBAAW;AAC3B;AACA;AACO,SAAS,uBAAY;AAC5B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4D;AACf;;AAE7C;AACA;AACA;AACA;AACO;AACP,MAAM,sBAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,SAAS,uBAAY;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,QAAQ,uBAAY;AACpB;AACA,MAAM,SAAS,sBAAW;AAC1B;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAY,YAAY,sBAAW;AACzC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,UAAU,sBAAW;AACrB;AACA;AACA,UAAU,uBAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;ACjRsF;AACd;AACpB;;AAEpD;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kBAAkB,uBAAuB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP,SAAS,KAAK;AACd;;AAEA;AACA;AACA;AACO;AACP,SAAS,QAAQ;AACjB;;AAEA;AACA;AACA;AACO;AACP;AACA,WAAW,QAAQ;AACnB,IAAI;AACJ,WAAW,KAAK;AAChB;AACA;;AAEA;AACA;AACA;AACO;AACP,gBAAgB,KAAK;AACrB;AACA,WAAW,QAAQ;AACnB,IAAI;AACJ,kBAAkB,KAAK;AACvB,WAAW,KAAK;AAChB;AACA;;AAEA;AACA;AACA;AACO;AACP,gBAAgB,KAAK;AACrB;AACA;AACA,sBAAsB,QAAQ;AAC9B,0CAA0C,QAAQ,6BAA6B,KAAK;AACpF;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA,8DAA8D,kBAAkB,OAAO;AACvF;AACA,OAAO,QAAQ;AACf,2DAA2D,kBAAkB,OAAO;AACpF;AACA,sBAAsB,KAAK;AAC3B,OAAO,OAAO;AACd,0DAA0D,kBAAkB,OAAO;AACnF;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,KAAK,WAAW,OAAO;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP,MAAM,IAAI;AACV;AACA;AACA,qBAAqB,OAAO;AAC5B,iBAAiB,KAAK;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,gBAAgB;AACpD;AACO;AACP,SAAS,gBAAgB;AACzB;AACA;;AChL2D;AACqC;AAC1C;AACd;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN,oDAAoD,SAAS;AAC7D,MAAM;AACN;AACA,MAAM;AACN;AACA;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,kBAAkB;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,KAAK;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,KAAK;AAChB,GAAG;AACH;AACA;AACA,MAAM,WAAW,qBAAqB,QAAQ;AAC9C;AACA;AACA,YAAY,kBAAkB;AAC9B,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,UAAU,kBAAkB;AAC5B;AACA,OAAO,WAAW,oBAAoB,QAAQ;AAC9C;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;AC5GO;AACP;AACA;AACA;AACA;AACA;AACA;;ACNA,wBAAwB;AACxB,yBAAyB;AACzB,qBAAqB;AACrB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP,6CAA6C,MAAM,OAAO,OAAO;AACjE;AACA,QAAQ,OAAO;AACf;AACA;AACO;AACP,iBAAiB;AACjB;AACO;AACP;AACA;AACO;AACP;AACA;;AAEA;AACO;;AAEP;AACO,mDAAmD;AACnD;AACP,gBAAgB;AAChB;AACO;AACP;AACA;;AAEA;AACA,+BAA+B;AACxB;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;;AClJ8D;AAC4Y;AAC1c;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA,cAAc,eAAe;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACO;AACP,aAAa;AACb,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,aAAa,sBAAsB;AACvD;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA,IAAI;AACJ;AACA,aAAa,mBAAmB;AAChC;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wCAAwC,YAAY,GAAG,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,mBAAmB;AACpC;AACA;AACA;AACA,QAAQ;AACR;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC;AACA,kCAAkC,kBAAkB;AACpD;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,qBAAqB,mBAAmB;AACxC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA,qBAAqB,0BAA0B;AAC/C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oBAAoB;AACpB;AACA,QAAQ;AACR;AACA,iBAAiB,0BAA0B,WAAW;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;;AAEA;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,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA,yBAAyB,aAAa,YAAY,aAAa,GAAG,aAAa,YAAY,aAAa,GAAG,iBAAiB,YAAY,iBAAiB,GAAG,iBAAiB;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW,aAAa,OAAO,aAAa,OAAO;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,4BAA4B,yBAAyB;AAC/D;AACA;;AAEA;AACA,qCAAqC,aAAa;AAClD,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS,kBAAkB;AACvC;AACA;AACA;AACA,YAAY;AACZ,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B,QAAQ;AACR;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAuB;AAC/B,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB,cAAc,OAAO;AAC7E;AACA;;AAEA;AACA,+BAA+B,aAAa;AAC5C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW,aAAa,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;;ACztBA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACHgB;;AAE1C;AACA;;AAEA;AACA,WAAW,WAAU;;AAErB,0CAAe,IAAI,EAAC;;;ACRU;;AAE9B;AACA,IAAI,cAAM,GAAG,KAAI;;AAEjB,4CAAe,cAAM,EAAC;;;ACLY;;AAElC;AACA;;AAEA;AACA,IAAI,yBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,OAAM,GAAG,OAAM;;AAEpC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,cAAc,yBAAc;AAC5B;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;AC7CzB;AACA,IAAI,2BAAW;;AAEf;AACA;AACA;AACA;AACA;AACA,IAAI,oCAAoB,GAAG,2BAAW;;AAEtC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,oCAAoB;AAC7B;;AAEA,oDAAe,cAAc,EAAC;;;ACrBI;AACM;AACU;;AAElD;AACA;AACA;;AAEA;AACA,IAAI,0BAAc,GAAG,OAAM,GAAG,OAAM;;AAEpC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,UAAU,0BAAc,IAAI,0BAAc;AAC1C,MAAM,UAAS;AACf,MAAM,eAAc;AACpB;;AAEA,gDAAe,UAAU,EAAC;;;AC3B1B;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,2DAAe,YAAY,EAAC;;;AC5Bc;AACG;;AAE7C;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,KAAK,sBAAY,WAAW,WAAU;AACtC;;AAEA,uDAAe,QAAQ,EAAC;;;AC5Ba;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAQ;AACd;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACvB5B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACpBxB;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,sDAAe,OAAO,EAAC;;;ACzBW;AACI;AACH;AACE;;AAErC;AACA;;AAEA;AACA,kBAAkB,OAAM,GAAG,OAAM;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAO;AACb;AACA,WAAW,SAAQ;AACnB;AACA,MAAM,kBAAQ;AACd;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpCkB;AACA;;AAE9C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAY;AAC5B,gBAAgB,aAAY;AAC5B,QAAQ;AACR,gBAAgB,aAAY;AAC5B,gBAAgB,aAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAe,mBAAmB,EAAC;;;ACrCyB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI,OAAG,GAAG,oBAAmB;AAC7B;AACA,CAAC;;AAED,kDAAe,OAAG,EAAC;;;ACrBnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AClBqB;;AAEpD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,sBAAsB,gBAAe;AACrC;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;AClBxB;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,uDAAe,QAAQ,EAAC;;;AC9Bc;AACD;AACA;;AAErC;AACA,IAAI,YAAG;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAQ;AACd,WAAW,YAAG;AACd;AACA,MAAM,kBAAQ;AACd;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA;AACA,UAAU,SAAQ;AAClB;AACA;AACA;AACA,gCAAgC,YAAG;AACnC;;AAEA,uDAAe,QAAQ,EAAC;;;AC/Da;;AAErC;AACA,IAAI,iBAAQ;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAQ;AAClB,gBAAgB,iBAAQ,eAAe,iBAAQ;AAC/C;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACzCa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAQ;AACvB;;AAEA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACnCc;;AAEvC;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,gCAAgC;AACjD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAS;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACzCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACpBkB;AACL;;AAErC;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,OAAO,kBAAQ;AACf;AACA;AACA;AACA;AACA,YAAY,WAAU;AACtB;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACpCI;;AAE9B;AACA,iBAAiB,KAAI;;AAErB,gDAAe,UAAU,EAAC;;;ACLgB;;AAE1C;AACA;AACA,0BAA0B,WAAU,IAAI,WAAU,SAAS,WAAU;AACrE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACnBxB;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,8CAAe,QAAQ,EAAC;;;ACzBiB;AACH;AACD;AACC;;AAEtC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA,IAAI,uBAAS;AACb,IAAI,yBAAW;;AAEf;AACA,IAAI,0BAAY,GAAG,uBAAS;;AAE5B;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA;AACA,EAAE,0BAAY,MAAM,4BAAc;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,OAAO,kBAAQ,WAAW,SAAQ;AAClC;AACA;AACA,gBAAgB,oBAAU;AAC1B,sBAAsB,SAAQ;AAC9B;;AAEA,kDAAe,YAAY,EAAC;;;AC9C5B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACZsB;AACR;;AAEtC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA,cAAc,SAAQ;AACtB,SAAS,aAAY;AACrB;;AAEA,+CAAe,SAAS,EAAC;;;AChBe;AACV;;AAE9B;AACA,IAAI,gBAAO,GAAG,UAAS,CAAC,KAAI;;AAE5B,6CAAe,gBAAO,EAAC;;;ACNa;;AAEpC;AACA,cAAc,QAAO,QAAQ,QAAO;;AAEpC,6CAAe,OAAO,EAAC;;;ACLc;AACD;;AAEpC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA,mBAAmB,QAAO,GAAG,kBAAQ;AACrC,EAAE,QAAO;AACT;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AChBU;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,gDAAe,UAAU,EAAC;;;AC7BgB;AACL;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAU;AAChC;;AAEA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpCgB;AACZ;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA,aAAa,WAAU;;AAEvB;AACA,+BAA+B,KAAI;AACnC;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC3B1B;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAAe,KAAK,EAAC;;;ACpBrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACtC3B;AACA,IAAI,2BAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAS;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACxChC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpB5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACTgB;AACA;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,WAAU,CAAC,WAAU;AAC7C;;AAEA,iDAAe,WAAW,EAAC;;;AC3B3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;AChBgB;AACP;;AAE7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA,eAAe,QAAO,GAAG,cAAI;AAC7B,SAAS,QAAO;AAChB;;AAEA,6CAAe,OAAO,EAAC;;;ACdvB;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACHe;;AAExC;AACA,IAAI,wBAAW;;AAEf;AACA,IAAI,2BAAc,GAAG,wBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc,UAAS;AACvB,eAAe,2BAAc,MAAM,UAAS;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC9Be;AACA;;AAE1C;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,WAAU,CAAC,WAAU;AAC/C;;AAEA,mDAAe,aAAa,EAAC;;;ACrB7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACnBmB;AACI;AACR;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,yBAAyB,YAAW;AACpC;AACA;AACA,mBAAmB,cAAa;AAChC,uBAAuB,UAAS;AAChC;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACtBgB;AACI;AACN;AACP;AACU;AACC;;AAE9C;AACA,IAAI,yBAAW;;AAEf;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAY,YAAY,iBAAO,8BAA8B,YAAW;AAC9E,yBAAyB,cAAa;AACtC;AACA;AACA,QAAQ,4BAAc;AACtB,aAAa,aAAY;AACzB;AACA;AACA,aAAa,cAAa;AAC1B;;AAEA;AACA,mBAAmB,WAAU;AAC7B;;AAEA,kDAAe,MAAM,EAAC;;;AClJsB;AACR;AACQ;AACJ;;AAExC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA,iBAAiB,YAAW;AAC5B,cAAc,aAAM;;AAEpB,kDAAkD,YAAW;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa,QAAO;AACpB;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC3B1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACpCoB;AACN;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA,cAAc,SAAQ,CAAC,YAAW;;AAElC,6CAAe,OAAO,EAAC;;;ACnBvB;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AChB9B;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA,uDAAe,iBAAiB,EAAC;;;ACtBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACzBgB;;AAExC;AACA;AACA,eAAe,UAAS;AACxB,WAAW,QAAQ;AACnB;AACA,IAAI;AACJ,CAAC;;AAED,oDAAe,cAAc,EAAC;;;ACVO;AACa;AACb;;AAErC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA,uBAAuB,eAAc,GAAG,kBAAQ;AAChD,SAAS,eAAc;AACvB;AACA;AACA,aAAa,kBAAQ;AACrB;AACA,GAAG;AACH;;AAEA,qDAAe,eAAe,EAAC;;;ACrBqB;AACd;;AAEtC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA,kBAAkB,SAAQ,CAAC,gBAAe;;AAE1C,iDAAe,WAAW,EAAC;;;ACb3B;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,+CAAe,SAAS,EAAC;;;ACrBzB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACvB7B;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACXzB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACtBmB;AACR;AACQ;;AAEhD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,MAAM,cAAa;AACnB,MAAM,cAAa,QAAQ,UAAS;AACpC;;AAEA,iDAAe,WAAW,EAAC;;;ACnBiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,qBAAqB,YAAW;AAChC;;AAEA,mDAAe,aAAa,EAAC;;;AChBW;AACQ;;AAEhD;AACA,IAAI,iCAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iCAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,EAAE,UAAS;AACX;AACA,gCAAgC,cAAa;AAC7C;AACA;AACA,GAAG;AACH;AACA;;AAEA,uDAAe,iBAAiB,EAAC;;;AC7CiB;AACM;AACZ;AACY;;AAExD;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,SAAS,YAAW,UAAU,kBAAiB,SAAS,kBAAiB,CAAC,eAAc;AACxF;;AAEA,qDAAe,eAAe,EAAC;;;ACpBW;AACN;AACgB;;AAEpD;AACA,IAAI,6BAAc;AAClB,IAAI,iCAAkB;AACtB;AACA,IAAI,8BAAe;AACnB,IAAI,gCAAiB;AACrB,IAAI,sCAAuB;;AAE3B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,0BAA0B,8BAAe;AACzC;AACA;AACA;AACA;;AAEA,wBAAwB,gCAAiB,GAAG,sCAAuB;AACnE,yBAAyB,sCAAuB,GAAG,gCAAiB;;AAEpE;AACA,iBAAiB,6BAAc,GAAG,iCAAkB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,WAAU;AAChB,IAAI,QAAO;AACX;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,mDAAe,aAAa,EAAC;;;ACvD7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACZzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACxBiB;AACJ;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,iBAAiB,UAAS;;AAE1B;AACA;AACA,oBAAoB,QAAO;AAC3B;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;AC5BvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC5Bc;AACU;AACR;AACJ;AACM;AACR;AACJ;AACc;AACpB;;AAE9B;AACA,IAAI,4BAAc;AAClB,IAAI,gCAAkB;AACtB,IAAI,6BAAe;AACnB,IAAI,mCAAqB;AACzB,IAAI,2BAAa;AACjB,IAAI,4BAAc;;AAElB;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,wBAAwB,2BAAa;AACrC,yBAAyB,4BAAc;AACvC,4BAA4B,gCAAkB;AAC9C,6BAA6B,6BAAe,GAAG,mCAAqB;AACpE,yBAAyB,4BAAc;AACvC,qCAAqC,WAAU;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,UAAS;AACjC,yBAAyB,aAAY;AACrC;AACA;AACA,aAAa,YAAW;AACxB;AACA;AACA,aAAa,iBAAgB;AAC7B;AACA;AACA;AACA,uBAAuB,eAAc;AACrC,aAAa,cAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAO;AACpB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAI;AAC7B,mBAAmB,WAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;AC3FI;AACU;AACI;AACE;AACR;AACU;AACpB;;AAE9B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,aAAa,WAAU;;AAEvB;AACA;AACA;AACA;AACA,sBAAsB,UAAS;;AAE/B;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAc;;AAEtB;AACA;AACA,aAAa,cAAa;AAC1B,uBAAuB,aAAY;AACnC;AACA;AACA,+BAA+B,KAAI;AACnC,WAAW,MAAK;AAChB;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC7CK;AACU;AACZ;;AAE9B;AACA,IAAI,6BAAc;;AAElB;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB;AACA,aAAa,UAAU;AACvB;AACA;AACA,yBAAyB,6BAAc;AACvC,aAAa,WAAU;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAI;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAK;AAChB;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AC1Ce;AACU;AACJ;;AAElD;AACA,IAAI,sBAAW;;AAEf;AACA,IAAI,yBAAc;AAClB,IAAI,6BAAkB;AACtB,IAAI,gCAAqB;AACzB,IAAI,0BAAe;AACnB,IAAI,wBAAa;AACjB,IAAI,0BAAe;;AAEnB;AACA,IAAI,oBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAc,GAAG,6BAAkB,GAAG,wBAAa;;AAElF;AACA,oBAAoB,wBAAa,iBAAiB,0BAAe;AACjE,oBAAoB,wBAAa,iBAAiB,0BAAe;AACjE,qBAAqB,wBAAa,GAAG,0BAAe,qDAAqD,0BAAe;;AAExH;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAc;AACjC;AACA;AACA,4BAA4B,yBAAc,OAAO,gCAAqB;AACtE;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAW;AACpC,yBAAyB,eAAc,UAAU,sBAAW;AAC5D;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAgB;AACzC,yBAAyB,eAAc,UAAU,sBAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAa;AAChC,4CAA4C,oBAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACzFmB;AACF;AACE;AACE;AACE;AACZ;AACI;AACJ;AACgB;AACb;;AAEvC;AACA,IAAI,2BAAe;;AAEnB;AACA,IAAI,0BAAc;AAClB,IAAI,8BAAkB;AACtB,IAAI,2BAAe;AACnB,IAAI,iCAAqB;AACzB,IAAI,6BAAiB;AACrB,IAAI,mCAAuB;;AAE3B;AACA,IAAI,qBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,4BAA4B,8BAAkB;AAC9C;AACA,wBAAwB,2BAAe;AACvC;AACA;AACA;AACA,iBAAiB,6BAAiB,GAAG,mCAAuB;AAC5D;AACA;AACA,kCAAkC,qBAAS,CAAC,mBAAS;AACrD,wCAAwC,mBAAS;AACjD;;AAEA,gBAAgB,mCAAuB;AACvC;AACA;;AAEA;AACA;AACA,qCAAqC,QAAO;;AAE5C;AACA;AACA;AACA;;AAEA;AACA,IAAI,UAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAS;;AAEf,2BAA2B,2BAAe,GAAG,iCAAqB;AAClE,iBAAiB,2BAAe,GAAG,iCAAqB;AACxD;AACA,6BAA6B,0BAAc;AAC3C,iBAAiB,WAAU;AAC3B,IAAI,oBAAoB,2BAAe,eAAe,iCAAqB;AAC3E,aAAa,YAAW;AACxB,IAAI,qBAAqB,6BAAiB,gBAAgB,0BAAc,GAAG,6BAAiB;AAC5F,aAAa,cAAa;AAC1B,IAAI;AACJ,aAAa,aAAY;AACzB;AACA,sBAAsB,YAAW,GAAG,QAAO;AAC3C,SAAS,gBAAe;AACxB;;AAEA,gDAAe,UAAU,EAAC;;;ACzGgB;;AAE1C;AACA,IAAI,iBAAa;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAU,OAAO,iBAAa;AACvC;;AAEA,kDAAe,GAAG,EAAC;;;AC5B+B;;AAElD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA,4BAA4B,eAAc;AAC1C,IAAI,eAAc;AAClB;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACxB/B;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,iDAAe,EAAE,EAAC;;;ACpCkC;AAC3B;;AAEzB;AACA,IAAI,wBAAW;;AAEf;AACA,IAAI,2BAAc,GAAG,wBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA,QAAQ,2BAAc,sBAAsB,YAAE;AAC9C;AACA,IAAI,gBAAe;AACnB;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC3BiB;AACQ;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,gBAAe;AACrB,MAAM;AACN,MAAM,YAAW;AACjB;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACvCM;;AAEhC;AACA,IAAI,mBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,UAAU,mBAAS;AACnB;AACA;AACA;AACA,iBAAiB,mBAAS;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAK;AAChB;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACnCa;AACC;AACM;;AAE5C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,YAAW,CAAC,SAAQ,cAAc,kBAAQ;AACnD;;AAEA,8CAAe,QAAQ,EAAC;;;AChBxB;AACA,IAAI,yBAAgB;;AAEpB;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,6CAA6C,yBAAgB;AAC7D;;AAEA,uDAAe,QAAQ,EAAC;;;AClCiB;AACJ;;AAErC;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,0BAA0B,kBAAQ,mBAAmB,oBAAU;AAC/D;;AAEA,0DAAe,WAAW,EAAC;;;AChCF;AACkB;AACP;AACC;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA;AACA;AACA,WAAW,qBAAW,YAAY,QAAO;AACzC;AACA;AACA,WAAW,YAAE;AACb;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC7BQ;AACY;;AAElD;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,SAAQ;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,eAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,oDAAe,cAAc,EAAC;;;ACpC9B;AACA,IAAI,wBAAW;;AAEf;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,+DAA+D,wBAAW;;AAE1E;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACnBiB;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU;AAC1C;;AAEA,qDAAe,eAAe,EAAC;;;ACjBqB;AACP;;AAE7C;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,0BAAc,GAAG,uBAAW;;AAEhC;AACA,2BAA2B,uBAAW;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAe,cAAc,mBAAmB,MAAM,gBAAe;AACvF,SAAS,sBAAY,WAAW,0BAAc;AAC9C;AACA;;AAEA,0DAAe,WAAW,EAAC;;;ACnC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACjBK;AACS;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,KAAI;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAS;;AAE1C,uDAAe,QAAQ,EAAC;;;ACrCkB;AACL;AACQ;;AAE7C;AACA,IAAI,yBAAO;AACX;AACA;AACA;AACA;AACA,IAAI,yBAAO;AACX;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,eAAe,yBAAO;AACtB;AACA;AACA,0CAA0C,yBAAO;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY;AACrB,IAAI,kBAAQ,mCAAmC,WAAU;AACzD;;AAEA,sDAAe,gBAAgB,EAAC;;;AC3DhC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACbiB;;AAE1C;AACA,IAAI,qBAAW;;AAEf;AACA,IAAI,oBAAU,GAAG,qBAAW;;AAE5B;AACA,IAAI,uBAAa,GAAG,oBAAU,IAAI,oBAAU,aAAa,qBAAW;;AAEpE;AACA,kBAAkB,uBAAa,IAAI,WAAU;;AAE7C;AACA;AACA;AACA;AACA,gBAAgB,oBAAU,IAAI,oBAAU,YAAY,oBAAU;;AAE9D;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,CAAC;;AAED,8CAAe,QAAQ,EAAC;;;AC7B8B;AACd;AACF;;AAEtC;AACA,uBAAuB,SAAQ,IAAI,SAAQ;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAS,qBAAqB,iBAAgB;;AAEpF,2DAAe,YAAY,EAAC;;;AC1BY;AACG;AACR;AACE;AACD;AACS;;AAE7C;AACA,IAAI,0BAAW;;AAEf;AACA,IAAI,6BAAc,GAAG,0BAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,cAAc,iBAAO;AACrB,wBAAwB,qBAAW;AACnC,mCAAmC,kBAAQ;AAC3C,8CAA8C,sBAAY;AAC1D;AACA,6BAA6B,UAAS;AACtC;;AAEA;AACA,sBAAsB,6BAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AChD7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACda;;AAEpC;AACA,iBAAiB,QAAO;;AAExB,gDAAe,UAAU,EAAC;;;ACLkB;AACF;;AAE1C;AACA,IAAI,qBAAW;;AAEf;AACA,IAAI,wBAAc,GAAG,qBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,OAAO,YAAW;AAClB,WAAW,WAAU;AACrB;AACA;AACA;AACA,QAAQ,wBAAc;AACtB;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;AC7BwB;AACV;AACK;;AAE3C;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,SAAS,qBAAW,WAAW,cAAa,WAAW,SAAQ;AAC/D;;AAEA,mDAAe,IAAI,EAAC;;;ACpCwB;AACF;AACQ;AACP;AACC;AACf;;AAE7B;AACA,IAAI,kBAAW;;AAEf;AACA,IAAI,qBAAc,GAAG,kBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,IAAI,aAAM,GAAG,eAAc;AAC3B,MAAM,YAAW,YAAY,qBAAW;AACxC,IAAI,WAAU,SAAS,cAAI;AAC3B;AACA;AACA;AACA,QAAQ,qBAAc;AACtB,MAAM,YAAW;AACjB;AACA;AACA,CAAC;;AAED,qDAAe,aAAM,EAAC;;;ACzDtB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACnBS;AACO;AACE;;AAE9C;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,0BAAc,GAAG,uBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,OAAO,kBAAQ;AACf,WAAW,aAAY;AACvB;AACA,gBAAgB,YAAW;AAC3B;;AAEA;AACA,+CAA+C,0BAAc;AAC7D;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AChCsB;AACN;AACC;;AAE3C;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,SAAS,qBAAW,WAAW,cAAa,iBAAiB,WAAU;AACvE;;AAEA,qDAAe,MAAM,EAAC;;;AC/BoB;AACQ;AACjB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,WAAW;AACX;AACA,eAAe,eAAc;AAC7B,EAAE,WAAU,SAAS,gBAAM;AAC3B,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;ACvCkB;AACQ;AACjB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC9C,WAAW;AACX;AACA,mBAAmB,eAAc;AACjC,EAAE,WAAU,SAAS,gBAAM;AAC3B,CAAC;;AAED,2DAAe,YAAY,EAAC;;;ACrCc;AACQ;AACrB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC9C,WAAW;AACX;AACA,iBAAiB,eAAc;AAC/B,EAAE,WAAU,SAAS,cAAI;AACzB,CAAC;;AAED,yDAAe,UAAU,EAAC;;;ACpCS;AACE;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,MAAM,iBAAO;AACb;AACA;AACA;AACA;AACA,uBAAuB,kBAAQ;AAC/B;AACA;AACA;AACA;AACA;;AAEA,2CAAe,KAAK,EAAC;;;AC5BmB;;AAExC;AACA,mBAAmB,UAAS;;AAE5B,kDAAe,YAAY,EAAC;;;ACLkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAY,GAAG,aAAY;AAC7C;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACdzB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AChBoB;;AAE9C;AACA;;AAEA;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,MAAM,aAAY;AAClB;AACA;AACA;AACA,SAAS,uBAAc;AACvB;;AAEA,6CAAe,OAAO,EAAC;;;AC7BuB;;AAE9C;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,SAAS,aAAY,+BAA+B,uBAAc;AAClE;;AAEA,6CAAe,OAAO,EAAC;;;ACtBuB;;AAE9C;AACA,IAAI,uBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,eAAe,aAAY,2BAA2B,uBAAc;AACpE;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACtBiB;AACE;AACN;AACA;AACA;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,UAAS;AAChC,2BAA2B,WAAU;AACrC,qBAAqB,QAAO;AAC5B,qBAAqB,QAAO;AAC5B,qBAAqB,QAAO;;AAE5B,0CAAe,IAAI,EAAC;;;AC/BpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACZL;;AAEzB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,QAAQ,YAAE;AACV;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpBkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AClCe;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;;AAEA,kDAAe,YAAY,EAAC;;;AClBkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,aAAY;AACrB;;AAEA,kDAAe,YAAY,EAAC;;;ACfkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACzBsB;AACE;AACN;AACA;AACA;;AAE9C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,eAAc;AAC1C,gCAAgC,gBAAe;AAC/C,0BAA0B,aAAY;AACtC,0BAA0B,aAAY;AACtC,0BAA0B,aAAY;;AAEtC,+CAAe,SAAS,EAAC;;;AC/Be;AACV;;AAE9B;AACA,IAAI,QAAG,GAAG,UAAS,CAAC,KAAI;;AAExB,yCAAe,QAAG,EAAC;;;ACNW;AACU;AACZ;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAI;AACpB,gBAAgB,IAAG,IAAI,UAAS;AAChC,kBAAkB,KAAI;AACtB;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACpB7B;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACde;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,SAAS,UAAS;AAClB;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,eAAe,WAAU;AACzB;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACjBY;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,WAAU;AACnB;;AAEA,iDAAe,WAAW,EAAC;;;ACfe;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,WAAU;AACnB;;AAEA,iDAAe,WAAW,EAAC;;;ACfe;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,aAAa,WAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACrBqB;AACE;AACN;AACA;AACA;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,cAAa;AACxC,+BAA+B,eAAc;AAC7C,yBAAyB,YAAW;AACpC,yBAAyB,YAAW;AACpC,yBAAyB,YAAW;;AAEpC,8CAAe,QAAQ,EAAC;;;AC/Bc;;AAEtC;AACA,IAAI,uBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAe;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAQ;AACjD;AACA;;AAEA;AACA,gBAAgB,SAAQ;;AAExB,sDAAe,OAAO,EAAC;;;ACxEY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,eAAe,iBAAO;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACzBmB;;AAEhD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,mBAAmB,cAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED,kDAAe,YAAY,EAAC;;;AC1BkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAQ;AACjB,8BAA8B,aAAY;AAC1C;;AAEA,uDAAe,iBAAQ,EAAC;;;AC3BW;AACH;AACc;AACT;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,MAAM,iBAAO;AACb;AACA;AACA,SAAS,MAAK,4BAA4B,aAAY,CAAC,kBAAQ;AAC/D;;AAEA,8CAAe,QAAQ,EAAC;;;ACpBa;;AAErC;AACA,IAAI,eAAQ;;AAEZ;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,eAAe;AAC5B;AACA;AACA,kCAAkC,kBAAQ;AAC1C;AACA;AACA;AACA,2CAA2C,eAAQ;AACnD;;AAEA,2CAAe,KAAK,EAAC;;;ACpBiB;AACN;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;;AAEA;AACA,oBAAoB,MAAK;AACzB;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACvBa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAO;AACnD;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AChCQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,aAAG;AAC1C;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACtBtB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACnBS;AACS;AACR;;AAEnC;AACA,uBAAuB,OAAM,GAAG,OAAM;;AAEtC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,iBAAO,WAAW,qBAAW;AACtC;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACnBW;AACQ;;AAEhD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,4BAA4B,cAAa;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ,UAAS;AACjB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACrCiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAW;AAC7B;;AAEA,sDAAe,OAAO,EAAC;;;ACrBY;AACG;AACM;;AAE5C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,YAAW,CAAC,SAAQ,kBAAkB,iBAAO;AACtD;;AAEA,8CAAe,QAAQ,EAAC;;;ACfU;AACI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,OAAO;AACpB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA,SAAS,SAAQ,CAAC,OAAM;;AAExB,iDAAe,EAAE,EAAC;;;ACtBkB;;AAEpC;AACA,mBAAmB,QAAO;;AAE1B,kDAAe,YAAY,EAAC;;;ACLc;AACI;AACD;;AAE7C;AACA,IAAI,uBAAS;;AAEb;AACA,IAAI,uBAAS;AACb,IAAI,yBAAW;;AAEf;AACA,IAAI,0BAAY,GAAG,uBAAS;;AAE5B;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA,uBAAuB,0BAAY;;AAEnC;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,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,sBAAY,WAAW,WAAU,WAAW,uBAAS;AAC5D;AACA;AACA,cAAc,aAAY;AAC1B;AACA;AACA;AACA,aAAa,4BAAc;AAC3B;AACA,IAAI,0BAAY;AAChB;;AAEA,4DAAe,aAAa,EAAC;;;AC7Da;AACG;AACE;;AAE/C;AACA;AACA,IAAI,gBAAQ;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,sBAAY;AACnB;AACA;AACA,YAAY,WAAU;AACtB,gBAAgB,gBAAQ;AACxB,2EAA2E,uBAAa;AACxF;;AAEA,sDAAe,OAAO,EAAC;;;ACnCS;AACM;AACH;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB;AACA,WAAW,MAAK;AAChB,IAAI;AACJ,WAAW,iBAAO;AAClB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;AClCgB;;AAEvC;AACA,IAAI,sBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAe;AACvC;AACA,MAAM,mBAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvCgB;AACI;AACF;AACU;;AAElD;AACA,IAAI,mBAAc;AAClB,IAAI,sBAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAQ;AACnB,gBAAgB,mBAAc;AAC9B;AACA,kBAAkB,eAAc,WAAW,UAAS;AACpD,eAAe,sBAAiB;AAChC;AACA,SAAS,WAAU;AACnB,CAAC;;AAED;AACA;;AAEA,mDAAe,IAAI,EAAC;;;ACxDoB;AACY;AACvB;AACS;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB,EAAE,UAAS;AACX,UAAU,MAAK;AACf,IAAI,gBAAe,cAAc,cAAI;AACrC,GAAG;AACH;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACxCe;AACI;AACF;AACU;;AAElD;AACA,IAAI,sBAAc;AAClB,IAAI,0BAAkB;AACtB,IAAI,yBAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;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,SAAQ;AACtB,gBAAgB,sBAAc,GAAG,0BAAkB;AACnD;AACA,kBAAkB,eAAc,WAAW,UAAS;AACpD,eAAe,yBAAiB;AAChC;AACA,SAAS,WAAU;AACnB,CAAC;;AAED;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACnEvB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;AC9Be;;AAExC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,6CAA6C,UAAS;AACtD;;AAEA,+CAAe,SAAS,EAAC;;;ACjBzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACzB1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACX5B;AACA,IAAI,6BAAa;AACjB,IAAI,iCAAiB;AACrB,IAAI,qCAAqB;AACzB,IAAI,mCAAmB;AACvB,IAAI,4BAAY,GAAG,iCAAiB,GAAG,qCAAqB,GAAG,mCAAmB;AAClF,IAAI,0BAAU;;AAEd;AACA,qBAAqB,6BAAa;AAClC,oBAAoB,4BAAY;AAChC;AACA;AACA,yBAAyB,6BAAa;AACtC,+CAA+C,EAAE;AACjD;AACA,IAAI,qBAAK;;AAET;AACA;AACA,qBAAqB,0BAAU;AAC/B,wBAAwB,qBAAK;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACvCgB;AACJ;AACQ;;AAElD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,WAAU;AACnB,MAAM,eAAc;AACpB,MAAM,aAAY;AAClB;;AAEA,mDAAe,aAAa,EAAC;;;ACjBW;AACE;AACM;AACX;;AAErC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,aAAa,kBAAQ;;AAErB,qBAAqB,WAAU;AAC/B,QAAQ,cAAa;AACrB;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,UAAS;AACjB;;AAEA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AChCqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAe;;AAEhC,yDAAe,UAAU,EAAC;;;ACrBW;AACI;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAU,CAAC,kBAAQ;AAC5B;;AAEA,yDAAe,UAAU,EAAC;;;ACtB1B;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,iDAAe,WAAW,EAAC;;;ACzB3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACboB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,mBAAmB,eAAc;;AAEjC,kDAAe,YAAY,EAAC;;;ACtEkB;AACT;;AAErC;AACA;;AAEA;AACA,IAAI,wBAAiB;AACrB,IAAI,4BAAqB;AACzB,IAAI,0BAAmB;AACvB,IAAI,mBAAY,GAAG,wBAAiB,GAAG,4BAAqB,GAAG,0BAAmB;;AAElF;AACA,IAAI,cAAO,SAAS,mBAAY;;AAEhC;AACA;AACA;AACA;AACA,yBAAyB,cAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,2CAA2C,aAAY;AACvD;;AAEA,qDAAe,MAAM,EAAC;;;AC5CtB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACd1B;AACA,yCAAyC,EAAE;;AAE3C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACd9B;AACA,IAAI,2BAAa;AACjB,IAAI,+BAAiB;AACrB,IAAI,mCAAqB;AACzB,IAAI,iCAAmB;AACvB,IAAI,0BAAY,GAAG,+BAAiB,GAAG,mCAAqB,GAAG,iCAAmB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAU;AACd;;AAEA;AACA;AACA;AACA,IAAI,qBAAO,SAAS,0BAAY;AAChC;AACA;AACA;AACA,oBAAoB,2BAAa;AACjC,IAAI,oBAAM;AACV,IAAI,wBAAU,WAAW,qBAAO,SAAS,oBAAM;AAC/C,IAAI,yBAAW,UAAU,2BAAa;AACtC,IAAI,wBAAU,iCAAiC,EAAE;AACjD,IAAI,wBAAU;AACd;AACA,IAAI,mBAAK;;AAET;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAQ,GAAG,wBAAU;AACzB,IAAI,sBAAQ,SAAS,wBAAU;AAC/B,IAAI,uBAAS,WAAW,mBAAK,YAAY,yBAAW,EAAE,wBAAU,EAAE,wBAAU,oBAAoB,sBAAQ,GAAG,sBAAQ;AACnH;AACA;AACA,IAAI,mBAAK,GAAG,sBAAQ,GAAG,sBAAQ,GAAG,uBAAS;AAC3C,kCAAkC,wBAAU,EAAE,wBAAU,oBAAoB,mBAAK;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpEc;AACQ;AACb;AACS;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;;AAEA;AACA,WAAW,eAAc,WAAW,aAAY,WAAW,WAAU;AACrE;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;AClCuB;AACX;AACF;;AAE/B;AACA,IAAI,wBAAM;;AAEV;AACA,oBAAoB,wBAAM;;AAE1B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,WAAW,YAAW,CAAC,eAAK,CAAC,gBAAM;AACnC;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACvBS;AACa;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,2BAA2B,oBAAU;AACrC,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC5BU;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAO;AAChB;;AAEA,wDAAe,SAAS,EAAC;;;AC3CK;AACS;AACF;AACA;;AAErC;AACA,qBAAqB,KAAI;AACzB,IAAI,sBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,aAAa,kBAAQ;AACrB,wCAAwC,sBAAS,CAAC,mBAAS;AAC3D;AACA;AACA;AACA,kBAAkB,kBAAQ;AAC1B;;AAEA,cAAc,kBAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClCiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAW;;AAEtB,mDAAe,IAAI,EAAC;;;ACzBoB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,8BAA8B;AACrC,OAAO,8BAA8B;AACrC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,aAAM;AACrB;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACrCmB;AACU;AACX;;AAEvC;AACA;AACA,IAAI,eAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA,IAAI;AACJ,WAAW,eAAS,CAAC,mBAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,UAAS;AAClC;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACjDrB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACrBe;AACH;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA,SAAS,UAAS,CAAC,kBAAQ;AAC3B;;AAEA,oDAAe,KAAK,EAAC;;;ACtCmB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAS;AAC/B;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACd1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACbxB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACbgB;AACZ;AACU;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA,sBAAsB,UAAS;AAC/B;AACA,SAAS,IAAG;AACZ;AACA;AACA;AACA;AACA,+BAA+B,SAAQ;AACvC;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACjCgB;AACE;AACE;AACN;AACA;AACA;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA,iCAAiC,UAAS;AAC1C;AACA;;AAEA;AACA,wBAAwB,WAAU;AAClC,4BAA4B,YAAW;AACvC,sBAAsB,SAAQ;AAC9B,sBAAsB,SAAQ;AAC9B,sBAAsB,SAAQ;;AAE9B,2CAAe,KAAK,EAAC;;;AC1BqB;AACb;;AAE7B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,WAAU,SAAS,cAAI;AAC1C;;AAEA,gDAAe,UAAU,EAAC;;;AChBgB;AACT;;AAEjC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,WAAU,SAAS,gBAAM;AAC5C;;AAEA,kDAAe,YAAY,EAAC;;;AChBE;;AAE9B;AACA,IAAI,wBAAW;;AAEf;AACA,IAAI,uBAAU,GAAG,wBAAW;;AAE5B;AACA,IAAI,0BAAa,GAAG,uBAAU,IAAI,uBAAU,aAAa,wBAAW;;AAEpE;AACA,IAAI,mBAAM,GAAG,0BAAa,GAAG,KAAI;AACjC,kBAAkB,mBAAM,GAAG,mBAAM;;AAEjC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClC3B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACxB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACtBmB;AACL;;AAEvC;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,gCAAoB,GAAG,uBAAW;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,qCAAqC,mBAAS;AAC9C;AACA;AACA;AACA;AACA,SAAS,YAAW;AACpB,WAAW,gCAAoB;AAC/B,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AC7BgB;AACA;;AAE1C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU,SAAS,WAAU;AACtC;;AAEA,iDAAe,WAAW,EAAC;;;ACfa;AACM;AACJ;AACH;;AAEvC;AACA,IAAI,8BAAgB;;AAEpB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,oBAAoB,8BAAgB,GAAG,mBAAS;AAChD;AACA;AACA,IAAI,UAAS,SAAS,WAAU;AAChC,aAAa,aAAY;AACzB;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACxBc;AACI;;AAE9C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU,SAAS,aAAY;AACxC;;AAEA,mDAAe,aAAa,EAAC;;;ACfW;AACL;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,SAAS,iBAAO,oBAAoB,UAAS;AAC7C;;AAEA,oDAAe,cAAc,EAAC;;;ACnBoB;AACR;AACb;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,eAAc,SAAS,cAAI,EAAE,WAAU;AAChD;;AAEA,gDAAe,UAAU,EAAC;;;ACfwB;AACJ;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,eAAc,SAAS,gBAAM,EAAE,aAAY;AACpD;;AAEA,kDAAe,YAAY,EAAC;;;AChBY;AACV;;AAE9B;AACA,eAAe,UAAS,CAAC,KAAI;;AAE7B,8CAAe,QAAQ,EAAC;;;ACNgB;AACV;;AAE9B;AACA,IAAI,gBAAO,GAAG,UAAS,CAAC,KAAI;;AAE5B,6CAAe,gBAAO,EAAC;;;ACNiB;AACV;;AAE9B;AACA,IAAI,QAAG,GAAG,UAAS,CAAC,KAAI;;AAExB,yCAAe,QAAG,EAAC;;;ACNmB;AACV;AACQ;AACR;AACQ;AACM;AACJ;;AAEtC;AACA,IAAI,cAAM;AACV,IAAI,iBAAS;AACb;AACA,IAAI,cAAM;AACV,IAAI,kBAAU;;AAEd,IAAI,mBAAW;;AAEf;AACA,yBAAyB,SAAQ,CAAC,SAAQ;AAC1C,oBAAoB,SAAQ,CAAC,IAAG;AAChC,wBAAwB,SAAQ,CAAC,QAAO;AACxC,oBAAoB,SAAQ,CAAC,IAAG;AAChC,wBAAwB,SAAQ,CAAC,QAAO;;AAExC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA,aAAa,WAAU;;AAEvB;AACA,KAAK,SAAQ,eAAe,SAAQ,yBAAyB,mBAAW;AACxE,KAAK,IAAG,eAAe,IAAG,KAAK,cAAM;AACrC,KAAK,QAAO,WAAW,QAAO;AAC9B,KAAK,IAAG,eAAe,IAAG,KAAK,cAAM;AACrC,KAAK,QAAO,eAAe,QAAO,KAAK,kBAAU;AACjD;AACA,iBAAiB,WAAU;AAC3B,yBAAyB,iBAAS;AAClC,4BAA4B,SAAQ;;AAEpC;AACA;AACA,wCAAwC,mBAAW;AACnD,mCAAmC,cAAM;AACzC;AACA,mCAAmC,cAAM;AACzC,uCAAuC,kBAAU;AACjD;AACA;AACA;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACzDtB;AACA,IAAI,2BAAW;;AAEf;AACA,IAAI,8BAAc,GAAG,2BAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,8BAAc;AAC7D;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACzBA;;AAE9B;AACA,IAAI,sBAAU,GAAG,KAAI;;AAErB,gDAAe,sBAAU,EAAC;;;ACLgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,MAAM,WAAU,iBAAiB,WAAU;AAC3C;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACfsB;;AAEtD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB,iBAAgB;AACxC;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACf7B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AChBO;;AAElC;AACA,IAAI,wBAAW,GAAG,OAAM,GAAG,OAAM;AACjC,oBAAoB,wBAAW,GAAG,wBAAW;;AAE7C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACjB2B;;AAEtD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB,iBAAgB;AACxC;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACfuB;AACN;AACJ;AACA;AACQ;;AAEpD;AACA,IAAI,uBAAO;AACX,IAAI,uBAAO;AACX,IAAI,sBAAM;AACV,IAAI,yBAAS;AACb,IAAI,yBAAS;AACb,IAAI,sBAAM;AACV,IAAI,yBAAS;AACb,IAAI,yBAAS;;AAEb,IAAI,8BAAc;AAClB,IAAI,2BAAW;AACf,IAAI,0BAAU;AACd,IAAI,0BAAU;AACd,IAAI,uBAAO;AACX,IAAI,wBAAQ;AACZ,IAAI,wBAAQ;AACZ,IAAI,wBAAQ;AACZ,IAAI,+BAAe;AACnB,IAAI,yBAAS;AACb,IAAI,yBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,SAAS,8BAAc;AACvB,aAAa,iBAAgB;;AAE7B,SAAS,uBAAO;AAChB,SAAS,uBAAO;AAChB;;AAEA,SAAS,2BAAW;AACpB,aAAa,cAAa;;AAE1B,SAAS,0BAAU,OAAO,0BAAU;AACpC,SAAS,uBAAO,OAAO,wBAAQ,OAAO,wBAAQ;AAC9C,SAAS,wBAAQ,OAAO,+BAAe,OAAO,yBAAS,OAAO,yBAAS;AACvE,aAAa,gBAAe;;AAE5B,SAAS,sBAAM;AACf;;AAEA,SAAS,yBAAS;AAClB,SAAS,yBAAS;AAClB;;AAEA,SAAS,yBAAS;AAClB,aAAa,YAAW;;AAExB,SAAS,sBAAM;AACf;;AAEA,SAAS,yBAAS;AAClB,aAAa,YAAW;AACxB;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC5EY;AACI;AACF;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,sDAAsD,YAAW;AACjE,MAAM,WAAU,CAAC,aAAY;AAC7B;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACjBG;AACW;;AAE7C;AACA,IAAI,iBAAM;;AAEV;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,OAAM,WAAW,iBAAM;AACvD;;AAEA,+CAAe,SAAS,EAAC;;;ACjBe;AACA;AACF;;AAEtC;AACA,gBAAgB,SAAQ,IAAI,SAAQ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAS,cAAc,UAAS;;AAExD,oDAAe,KAAK,EAAC;;;AC1Ba;AACW;;AAE7C;AACA,IAAI,iBAAM;;AAEV;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,OAAM,WAAW,iBAAM;AACvD;;AAEA,+CAAe,SAAS,EAAC;;;ACjBe;AACA;AACF;;AAEtC;AACA,gBAAgB,SAAQ,IAAI,SAAQ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAS,cAAc,UAAS;;AAExD,oDAAe,KAAK,EAAC;;;AC1BW;AACQ;AACI;AACF;AACI;AACF;AACJ;AACI;AACI;AACN;AACI;AACZ;AACgB;AACA;AACE;AACjB;AACE;AACN;AACM;AACN;AACF;AACI;;AAEjC;AACA;AACA;AACA;;AAEA;AACA,IAAI,kBAAO;AACX,IAAI,mBAAQ;AACZ,IAAI,kBAAO;AACX,IAAI,kBAAO;AACX,IAAI,mBAAQ;AACZ,IAAI,kBAAO;AACX,IAAI,iBAAM;AACV,IAAI,iBAAM;AACV,IAAI,oBAAS;AACb,IAAI,oBAAS;AACb,IAAI,oBAAS;AACb,IAAI,iBAAM;AACV,IAAI,oBAAS;AACb,IAAI,oBAAS;AACb,IAAI,qBAAU;;AAEd,IAAI,yBAAc;AAClB,IAAI,sBAAW;AACf,IAAI,qBAAU;AACd,IAAI,qBAAU;AACd,IAAI,kBAAO;AACX,IAAI,mBAAQ;AACZ,IAAI,mBAAQ;AACZ,IAAI,mBAAQ;AACZ,IAAI,0BAAe;AACnB,IAAI,oBAAS;AACb,IAAI,oBAAS;;AAEb;AACA;AACA,cAAc,kBAAO,kBAAkB,mBAAQ;AAC/C,cAAc,yBAAc,kBAAkB,sBAAW;AACzD,cAAc,kBAAO,kBAAkB,kBAAO;AAC9C,cAAc,qBAAU,kBAAkB,qBAAU;AACpD,cAAc,kBAAO,kBAAkB,mBAAQ;AAC/C,cAAc,mBAAQ,kBAAkB,iBAAM;AAC9C,cAAc,oBAAS,kBAAkB,oBAAS;AAClD,cAAc,oBAAS,kBAAkB,iBAAM;AAC/C,cAAc,oBAAS,kBAAkB,oBAAS;AAClD,cAAc,mBAAQ,kBAAkB,0BAAe;AACvD,cAAc,oBAAS,kBAAkB,oBAAS;AAClD,cAAc,mBAAQ,kBAAkB,kBAAO;AAC/C,cAAc,qBAAU;;AAExB;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA,cAAc,iBAAO;AACrB;AACA,aAAa,eAAc;AAC3B;AACA,aAAa,UAAS;AACtB;AACA,IAAI;AACJ,cAAc,OAAM;AACpB,wBAAwB,kBAAO,WAAW,iBAAM;;AAEhD,QAAQ,kBAAQ;AAChB,aAAa,YAAW;AACxB;AACA,eAAe,oBAAS,WAAW,kBAAO;AAC1C,uCAAuC,EAAE,gBAAe;AACxD;AACA;AACA,YAAY,cAAa,QAAQ,aAAY;AAC7C,YAAY,YAAW,QAAQ,WAAU;AACzC;AACA,MAAM;AACN;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA;AACA;AACA,wBAAwB,MAAK;AAC7B;AACA;AACA;AACA;AACA;;AAEA,MAAM,eAAK;AACX;AACA;AACA,KAAK;AACL,IAAI,SAAS,eAAK;AAClB;AACA;AACA,KAAK;AACL;;AAEA;AACA,gBAAgB,aAAY,GAAG,WAAU;AACzC,gBAAgB,gBAAM,GAAG,cAAI;;AAE7B;AACA,EAAE,UAAS;AACX;AACA;AACA;AACA;AACA;AACA,IAAI,YAAW;AACf,GAAG;AACH;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACrKe;;AAExC;AACA,IAAI,wBAAkB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS,UAAS,QAAQ,wBAAkB;AAC5C;;AAEA,oDAAe,KAAK,EAAC;;;ACnCmB;;AAExC;AACA,IAAI,yBAAe;AACnB,IAAI,4BAAkB;;AAEtB;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,SAAS,UAAS,QAAQ,yBAAe,GAAG,4BAAkB;AAC9D;;AAEA,wDAAe,SAAS,EAAC;;;AC5Be;;AAExC;AACA,IAAI,6BAAe;AACnB,IAAI,gCAAkB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAS,QAAQ,6BAAe,GAAG,gCAAkB;AAC9D;;AAEA,4DAAe,aAAa,EAAC;;;ACvCW;;AAExC;AACA,IAAI,4BAAkB;;AAEtB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAS,QAAQ,4BAAkB;AAC5C;;AAEA,wDAAe,SAAS,EAAC;;;ACzCuB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAa;AAC1B;;AAEA,2CAAe,aAAa,EAAC;;;AChC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,OAAO,EAAC;;;AC9BiB;AACI;AACJ;AACL;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,UAAS,CAAC,iBAAO,UAAU,UAAS,mBAAmB,YAAW;AAC3E;;AAEA,qDAAe,MAAM,EAAC;;;AC1CtB;AACA,IAAI,2BAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,2BAA2B,2BAAc;AACzC;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClB3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACbW;AACM;AACA;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA,sBAAsB,SAAQ;AAC9B;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,YAAW;AAC9D,yBAAyB,YAAW;;AAEpC,8CAAe,QAAQ,EAAC;;;AC1BxB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACtBzB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACZc;AACE;AACF;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAQ;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAS;AACpB,iBAAiB,SAAQ;AACzB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACnF3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjB1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjBQ;AACQ;AACjB;AACmB;AACF;AACA;;AAE1C;AACA,IAAI,gCAAoB;AACxB,IAAI,kCAAsB;;AAE1B;AACA,IAAI,mBAAO;AACX,IAAI,mBAAO;AACX,IAAI,oBAAQ;AACZ,IAAI,kBAAM;AACV,IAAI,qBAAS;AACb,IAAI,qBAAS;AACb,IAAI,kBAAM;AACV,IAAI,qBAAS;AACb,IAAI,qBAAS;;AAEb,IAAI,0BAAc;AAClB,IAAI,uBAAW;;AAEf;AACA,IAAI,uBAAW,GAAG,OAAM,GAAG,OAAM;AACjC,IAAI,yBAAa,GAAG,uBAAW,GAAG,uBAAW;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,SAAS,uBAAW;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,0BAAc;AACvB;AACA,yBAAyB,WAAU,cAAc,WAAU;AAC3D;AACA;AACA;;AAEA,SAAS,mBAAO;AAChB,SAAS,mBAAO;AAChB,SAAS,qBAAS;AAClB;AACA;AACA,aAAa,YAAE;;AAEf,SAAS,oBAAQ;AACjB;;AAEA,SAAS,qBAAS;AAClB,SAAS,qBAAS;AAClB;AACA;AACA;AACA;;AAEA,SAAS,kBAAM;AACf,oBAAoB,WAAU;;AAE9B,SAAS,kBAAM;AACf,gCAAgC,gCAAoB;AACpD,4BAA4B,WAAU;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kCAAsB;;AAEvC;AACA;AACA,mBAAmB,YAAW;AAC9B;AACA;;AAEA,SAAS,qBAAS;AAClB,UAAU,yBAAa;AACvB,eAAe,yBAAa,iBAAiB,yBAAa;AAC1D;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC/GgB;;AAE1C;AACA,IAAI,kCAAoB;;AAExB;AACA,IAAI,yBAAW;;AAEf;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,4BAA4B,kCAAoB;AAChD,iBAAiB,WAAU;AAC3B;AACA,iBAAiB,WAAU;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4BAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACzFI;AACY;AACF;AACI;AACZ;AACC;AACE;AACQ;;AAE7C;AACA,IAAI,qCAAoB;;AAExB;AACA,IAAI,wBAAO;AACX,IAAI,yBAAQ;AACZ,IAAI,0BAAS;;AAEb;AACA,IAAI,4BAAW;;AAEf;AACA,IAAI,+BAAc,GAAG,4BAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB,iBAAO;AACxB,iBAAiB,iBAAO;AACxB,0BAA0B,yBAAQ,GAAG,OAAM;AAC3C,0BAA0B,yBAAQ,GAAG,OAAM;;AAE3C,qBAAqB,wBAAO,GAAG,0BAAS;AACxC,qBAAqB,wBAAO,GAAG,0BAAS;;AAExC,2BAA2B,0BAAS;AACpC,2BAA2B,0BAAS;AACpC;;AAEA,mBAAmB,kBAAQ;AAC3B,SAAS,kBAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAK;AAC/B,wBAAwB,sBAAY;AACpC,QAAQ,YAAW;AACnB,QAAQ,WAAU;AAClB;AACA,kBAAkB,qCAAoB;AACtC,mCAAmC,+BAAc;AACjD,mCAAmC,+BAAc;;AAEjD;AACA;AACA;;AAEA,4BAA4B,MAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAK;AAC7B,SAAS,aAAY;AACrB;;AAEA,qDAAe,eAAe,EAAC;;;AClFqB;AACP;;AAE7C;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAY,YAAY,sBAAY;AAC9E;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,iDAAe,WAAW,EAAC;;;AC3BK;AACY;;AAE5C;AACA,IAAI,iCAAoB;AACxB,IAAI,mCAAsB;;AAE1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,sBAAsB,MAAK;AAC3B;AACA;AACA;AACA;AACA,cAAc,YAAW,qBAAqB,iCAAoB,GAAG,mCAAsB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC7DU;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,6BAA6B,kBAAQ;AACrC;;AAEA,wDAAe,kBAAkB,EAAC;;;ACdwB;AAC7B;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,eAAe,cAAI;AACnB;;AAEA;AACA;AACA;;AAEA,kCAAkC,mBAAkB;AACpD;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACvB5B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAAe,uBAAuB,EAAC;;;ACnBK;AACE;AACsB;;AAEpE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB,aAAY;AAC9B;AACA,WAAW,wBAAuB;AAClC;AACA;AACA,gCAAgC,YAAW;AAC3C;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACrB3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACZa;AACK;AACR;AACC;AACC;AACL;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;AACA;;AAEA;AACA,cAAc,MAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAQ,YAAY,QAAO;AAChD,KAAK,iBAAO,YAAY,qBAAW;AACnC;;AAEA,6CAAe,OAAO,EAAC;;;ACtCiB;AACJ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,gBAAgB,QAAQ,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAO,eAAe,UAAS;AAC1D;;AAEA,oDAAe,KAAK,EAAC;;;ACjCuB;AACjB;AACI;AACC;AAC0B;AACU;AACpC;;AAEhC;AACA,IAAI,yCAAoB;AACxB,IAAI,2CAAsB;;AAE1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,MAAM,MAAK,UAAU,mBAAkB;AACvC,WAAW,wBAAuB,CAAC,MAAK;AACxC;AACA;AACA,mBAAmB,aAAG;AACtB;AACA,QAAQ,eAAK;AACb,QAAQ,YAAW,qBAAqB,yCAAoB,GAAG,2CAAsB;AACrF;AACA;;AAEA,yDAAe,mBAAmB,EAAC;;;AChCnC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACbQ;;AAEpC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,WAAW,QAAO;AAClB;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACfc;AACQ;AACtB;AACA;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,UAAU;AACxB,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAK,SAAS,aAAY,CAAC,MAAK,UAAU,iBAAgB;AACnE;;AAEA,uDAAe,QAAQ,EAAC;;;AC/BoB;AACgB;AACvB;AACF;AACE;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA;AACA,WAAW,iBAAO;AAClB,QAAQ,oBAAmB;AAC3B,QAAQ,YAAW;AACnB;AACA,SAAS,kBAAQ;AACjB;;AAEA,kDAAe,YAAY,EAAC;;;AC9BI;AACM;AACQ;AACR;;AAEtC;AACA,IAAI,oBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,UAAU;AACvB;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA,mBAAmB,aAAY;;AAE/B,yBAAyB,SAAQ;AACjC;AACA,0BAA0B,oBAAe;AACzC;AACA;AACA,GAAG;;AAEH,SAAS,SAAQ;AACjB;AACA;AACA;AACA,UAAU,MAAK;AACf,eAAe,MAAK;AACpB;AACA;AACA,GAAG;AACH;;AAEA,mDAAe,IAAI,EAAC;;;AC3DpB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC1BoB;AACrB;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,cAAc,cAAI;AAClB;AACA,WAAW,eAAc;AACzB;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACjBY;AACM;;AAE9C;AACA,IAAI,wBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,gBAAgB;AACvB,OAAO;AACP;AACA;AACA,kCAAkC,mBAAmB,iBAAiB;AACtE,YAAY,gBAAgB;AAC5B;AACA;AACA,SAAS,aAAY,CAAC,UAAS,SAAS,wBAAe;AACvD;;AAEA,uDAAe,QAAQ,EAAC;;;AClC0B;AACrB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB;AACA,0BAA0B,mBAAmB,iBAAiB;AAC9D;AACA;AACA,0BAA0B,mBAAmB,iBAAiB;AAC9D;AACA;AACA;AACA,2BAA2B,eAAc,iBAAiB,cAAI;AAC9D;;AAEA,yDAAe,UAAU,EAAC;;;AC/B1B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACrB/B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACxBmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA,cAAc,cAAa;;AAE3B,6CAAe,OAAO,EAAC;;;ACfa;AACP;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,QAAO,mBAAmB,cAAI;AACjD;;AAEA,gDAAe,UAAU,EAAC;;;ACfiB;;AAE3C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAW;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC/BY;AACQ;;AAElD;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA,eAAe,eAAc,CAAC,WAAU;;AAExC,8CAAe,QAAQ,EAAC;;;ACbc;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,EAAE,SAAQ;AACV;AACA,GAAG;AACH;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACpBsB;AACF;AACJ;AACX;;AAEnC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,eAAe,iBAAO,eAAe,gBAAe,GAAG,eAAc;AACrE;;AAEA,oCAAoC,aAAY;AAChD;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACtBoB;AACE;;AAEtD;AACA,IAAI,mBAAW;;AAEf;AACA,IAAI,sBAAc,GAAG,mBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,cAAc,iBAAgB;AAC9B,MAAM,sBAAc;AACpB;AACA,IAAI;AACJ,IAAI,gBAAe;AACnB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACvCmB;AACA;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAU;AACzB,uCAAuC,WAAU;AACjD;;AAEA,qDAAe,MAAM,EAAC;;;AC1CoB;;AAE1C;AACA,IAAI,qBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAU,OAAO,qBAAe;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACxDqB;;AAE1C;AACA,IAAI,gCAAqB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAU,OAAO,gCAAqB;AACrD;AACA;AACA;;AAEA;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACrDI;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,SAAS,KAAI;AACb;;AAEA,kDAAe,GAAG,EAAC;;;ACtBkB;AACV;AACU;;AAErC;AACA,IAAI,wBAAe;;AAEnB;AACA,IAAI,kBAAS;AACb,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,SAAS;AACpB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wBAAe;AACvC;AACA,SAAS,kBAAQ;AACjB,MAAM,kBAAQ;AACd;AACA;AACA,uBAAuB,kBAAS,CAAC,kBAAQ;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,kBAAS;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,aAAG;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,aAAG;AAC5D;;AAEA;AACA,eAAe,aAAG;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC9LxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACxBa;AACb;AACyB;AACjB;;AAEjC;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,gBAAgB,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChD,WAAW;AACX;AACA,eAAe,SAAQ;AACvB;;AAEA;AACA;AACA;;AAEA,eAAe,eAAc;AAC7B;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAM;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAE,QAAQ,oBAAW,WAAW,uBAAc;AACzD;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;AC/D4B;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA,+BAA+B,YAAE;AACjC;AACA,IAAI,gBAAe;AACnB;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACnBW;AACE;;AAE7C;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,SAAS,sBAAY,WAAW,qBAAW;AAC3C;;AAEA,gEAAe,iBAAiB,EAAC;;;AChCjC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACpBmB;AACT;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA;AACA,SAAS,WAAU,QAAQ,gBAAM;AACjC;;AAEA,4DAAe,aAAa,EAAC;;;AC/ByB;AACV;AACQ;AACZ;AACY;AACT;AACR;AACoB;AAClB;AACI;AACJ;AACU;AACF;AACT;AACW;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,iBAAiB,QAAO;AACxB,iBAAiB,QAAO;AACxB;;AAEA;AACA,IAAI,iBAAgB;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,iBAAO;AACvB,2BAA2B,kBAAQ;AACnC,uCAAuC,sBAAY;;AAEnD;AACA;AACA,UAAU,iBAAO;AACjB;AACA;AACA,eAAe,2BAAiB;AAChC,mBAAmB,UAAS;AAC5B;AACA;AACA;AACA,mBAAmB,YAAW;AAC9B;AACA;AACA;AACA,mBAAmB,gBAAe;AAClC;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAa,cAAc,qBAAW;AACnD;AACA,UAAU,qBAAW;AACrB,mBAAmB,uBAAa;AAChC;AACA,gBAAgB,kBAAQ,cAAc,oBAAU;AAChD,mBAAmB,gBAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,iBAAgB;AAClB;;AAEA,mDAAe,aAAa,EAAC;;;AC7FG;AACsB;AAClB;AACY;AACX;AACJ;AACG;;AAEpC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAO;AACT,0BAA0B,MAAK;AAC/B,QAAQ,kBAAQ;AAChB,MAAM,cAAa;AACnB;AACA;AACA;AACA,qBAAqB,QAAO;AAC5B;;AAEA;AACA;AACA;AACA,MAAM,iBAAgB;AACtB;AACA,GAAG,EAAE,gBAAM;AACX;;AAEA,+CAAe,SAAS,EAAC;;;ACzCe;AACH;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,GAAG;AAChB;AACA;AACA,MAAM,kBAAQ,cAAc,kBAAQ;AACpC;AACA;AACA,IAAI,UAAS;AACb;AACA;AACA;AACA;;AAEA,yDAAe,mBAAmB,EAAC;;;AC3BK;AACU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA,WAAW;AACX;AACA,gBAAgB,eAAc;AAC9B,EAAE,UAAS;AACX,CAAC;;AAED,wDAAe,SAAS,EAAC;;;ACtCO;AACM;AACsB;AACrB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,OAAO,UAAU,IAAI,OAAO,kBAAkB;AAClE,WAAW,OAAO;AAClB;AACA,mBAAmB,SAAQ;AAC3B,uBAAuB,oBAAmB;AAC1C,SAAS,MAAK,CAAC,mBAAS;AACxB,CAAC;;AAED,2DAAe,YAAY,EAAC;;;AC7B5B;AACA,IAAI,0BAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,eAAe;AAC5B;AACA;AACA;AACA,wBAAwB,0BAAe;AACvC;AACA,iCAAiC,8BAA8B;AAC/D;;AAEA,+CAAe,SAAS,EAAC;;;ACpBe;AACF;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,UAAS;AAClB,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACzBmB;AACF;AACD;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,UAAS,OAAO,kBAAQ;AACjC,CAAC;;AAED,oDAAe,KAAK,EAAC;;;AC3BrB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,iBAAiB,EAAC;;;ACrBK;AACU;AACQ;AAClB;AACE;AACF;;AAEtC;AACA,IAAI,gCAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB,cAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAQ,SAAS,UAAS;AACvC;AACA;AACA,eAAe,kBAAiB;AAChC;AACA;AACA,4BAA4B,gCAAgB;AAC5C,eAAe,SAAQ;AACvB;AACA,iBAAiB,SAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AClEoB;AACN;AACN;AACiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAQ;AACzB,SAAS,2BAAiB;AAC1B,MAAM,eAAc,QAAQ,YAAW,YAAY,2BAAiB;AACpE;AACA,CAAC;;AAED,yDAAe,UAAU,EAAC;;;AChC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,SAAI;AACb;AACA;AACA;;AAEA,mDAAe,SAAI,EAAC;;;ACnB8B;AACN;AACE;AACR;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AACvD,YAAY,QAAQ;AACpB;AACA,mBAAmB,SAAQ;AAC3B,iBAAiB,cAAI;AACrB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,2BAAiB;AAC1B,MAAM,eAAc,QAAQ,YAAW,YAAY,2BAAiB,SAAS,aAAY;AACzF;AACA,CAAC;;AAED,2DAAe,YAAY,EAAC;;;AC3CsB;AACN;AACN;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD;AACA,gCAAgC,gBAAgB;AAChD,YAAY,gBAAgB;AAC5B;AACA,qBAAqB,SAAQ;AAC7B,mBAAmB,cAAI;AACvB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,2BAAiB;AAC1B,MAAM,eAAc,QAAQ,YAAW,YAAY,2BAAiB;AACpE;AACA,CAAC;;AAED,6DAAe,cAAc,EAAC;;;ACvC8B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAmB;AAChC;AACA,CAAC;;AAED,qDAAe,MAAM,EAAC;;;ACrBkB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD,SAAS,UAAS;AAClB;;AAEA,mDAAe,IAAI,EAAC;;;ACrCoB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD;AACA,SAAS,UAAS;AAClB;;AAEA,wDAAe,SAAS,EAAC;;;ACtCe;;AAExC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,UAAS;AACf,MAAM,UAAS;AACf;;AAEA,+CAAe,SAAS,EAAC;;;ACzBqB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,6DAAe,cAAc,EAAC;;;AC5CgB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC5CY;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,8CAA8C,kBAAQ;AACtD;;AAEA,kDAAe,YAAY,EAAC;;;ACbY;AACF;AACQ;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,UAAS,GAAG,SAAQ;AACvD,0BAA0B,aAAY;AACtC;;AAEA,sDAAe,OAAO,EAAC;;;ACxCvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACpBkB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA,mBAAmB,cAAa;;AAEhC,kDAAe,YAAY,EAAC;;;ACdkB;AACjB;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,aAAY,mBAAmB,cAAI;AACtD;;AAEA,qDAAe,eAAe,EAAC;;;ACfqB;AACF;;AAElD;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA,oBAAoB,eAAc,CAAC,gBAAe;;AAElD,mDAAe,aAAa,EAAC;;;ACbqB;AACF;AACF;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,eAAc,GAAG,cAAa;AACjE,0BAA0B,aAAY;AACtC;;AAEA,2DAAe,YAAY,EAAC;;;AC9BY;AACM;AACP;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,aAAY;;AAEvB;AACA;AACA;AACA,MAAM,UAAS,CAAC,mBAAS;;AAEzB;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC1Cc;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,SAAQ;AACjB;AACA,GAAG;AACH;;AAEA,iDAAe,WAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjBkB;AACV;AACQ;AACA;;AAE1C;AACA,IAAI,qBAAM;AACV,IAAI,qBAAM;;AAEV;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,cAAc,OAAM;AACpB,eAAe,qBAAM;AACrB,aAAa,WAAU;AACvB;AACA,eAAe,qBAAM;AACrB,aAAa,WAAU;AACvB;AACA,WAAW,YAAW;AACtB;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AC7BmB;AACnB;;AAE7B;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,cAAc,cAAa,CAAC,cAAI;;AAEhC,sDAAe,OAAO,EAAC;;;AC7ByB;AACf;;AAEjC;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,gBAAgB,cAAa,CAAC,gBAAM;;AAEpC,wDAAe,SAAS,EAAC;;;AC7ByB;;AAElD;AACA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,qBAAqB,eAAc;;AAEnC,oDAAe,cAAc,EAAC;;;ACpBoB;AACb;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,SAAS,aAAM;AACf,WAAW,kBAAQ;AACnB;AACA,sCAAsC,eAAc;AACpD;AACA;;AAEA,qDAAe,aAAM,EAAC;;;AC1Ce;;AAErC;AACA;AACA;AACA;AACA,IAAI,yBAAY,oBAAoB;AACpC,6BAA6B,yBAAY;;AAEzC;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,qBAAqB,yBAAY;AACjC;AACA;;AAEA,2DAAe,YAAY,EAAC;;;AC/B5B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACtBY;;AAEtC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,EAAE,SAAQ;AACV;AACA;AACA,GAAG;AACH;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACpBiB;AACF;AACM;AACX;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO;AACP;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,WAAU,GAAG,UAAS;AACzD,eAAe,eAAc;AAC7B;AACA;AACA,0BAA0B,aAAY;AACtC;;AAEA,oDAAe,KAAK,EAAC;;;ACvDmB;AACD;;AAEvC;AACA,IAAI,yBAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAS,CAAC,mBAAS,YAAY,yBAAgB;AAChE;;AAEA,uDAAe,QAAQ,EAAC;;;ACrCe;AACF;;AAErC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA,UAAU,mBAAS;AACnB;AACA;AACA;AACA,uDAAuD,mBAAS;AAChE;AACA;AACA;AACA,0BAA0B,kBAAQ;AAClC;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;AC/Bc;AACY;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAc;AACzD;AACA;AACA;AACA,SAAS,SAAQ;AACjB;;AAEA,mDAAe,IAAI,EAAC;;;AC5CkB;;AAEtC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,EAAE,SAAQ;AACV;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpBkB;AACF;AACI;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,OAAO,6CAA6C;AACpD,OAAO;AACP;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D,0BAA0B,aAAY;AACtC;;AAEA,qDAAe,MAAM,EAAC;;;ACnDwB;AACH;AACd;;AAE7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,SAAS,qBAAW;AACpB,qBAAqB,aAAY;AACjC,mBAAmB,cAAI;AACvB,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACxBsB;AACF;AACP;;AAEvC;AACA,IAAI,mBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAS;AAC/C;AACA,YAAY,mBAAS;AACrB;AACA,SAAS,cAAa,QAAQ,aAAY;AAC1C;;AAEA,wDAAe,SAAS,EAAC;;;ACtDiB;AACH;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO,+CAA+C;AACtD,OAAO;AACP;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAU,CAAC,mBAAS;;AAE/B,mDAAe,IAAI,EAAC;;;ACzCpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACtBiB;AACF;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,kBAAkB,4BAA4B;AAC9C,kBAAkB;AAClB;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,SAAS,aAAY,gBAAgB,WAAU;AACnE;;AAEA,sDAAe,OAAO,EAAC;;;AC3CyB;AACF;AACP;;AAEvC;AACA,IAAI,uBAAS;AACb,IAAI,uBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,wCAAwC,6BAA6B;AACrE;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAS;AACrB;AACA,QAAQ,uBAAS;AACjB,QAAQ,uBAAS;AACjB;AACA,SAAS,cAAa,QAAQ,aAAY;AAC1C;;AAEA,4DAAe,aAAa,EAAC;;;AC1Da;AACK;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,WAAU,CAAC,uBAAa;;AAEvC,uDAAe,QAAQ,EAAC;;;ACxBoB;AACQ;AACN;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,kBAAkB,4BAA4B;AAC9C,kBAAkB;AAClB;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,SAAS,aAAY,gBAAgB,gBAAe;AACxE;;AAEA,0DAAe,WAAW,EAAC;;;AC3C3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;ACtBkB;AACK;;AAE3C;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,eAAe,qBAAW;;AAE1B,EAAE,SAAQ;AACV;AACA,GAAG;AACH;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACrBe;AACQ;AACV;AACD;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,OAAO,kBAAkB;AACzB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,SAAQ,GAAG,QAAO;AACrD,0BAA0B,aAAY;AACtC;;AAEA,kDAAe,GAAG,EAAC;;;ACpDyB;AACjB;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,CAAC,aAAG;AACxB;;AAEA,sDAAe,OAAO,EAAC;;;AC5BqB;AACjB;;AAE3B;AACA,IAAI,oBAAQ;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,CAAC,aAAG,wBAAwB,oBAAQ;AACxD;;AAEA,0DAAe,WAAW,EAAC;;;AC9BiB;AACjB;AACY;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAS;AAC7C,SAAS,YAAW,CAAC,aAAG;AACxB;;AAEA,2DAAe,YAAY,EAAC;;;AC9BgB;;AAE5C;AACA,IAAI,oBAAQ;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAW,QAAQ,oBAAQ;AAC7C;;AAEA,0DAAe,WAAW,EAAC;;;ACxBiB;AACL;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAS;AAC7C,SAAS,YAAW;AACpB;;AAEA,2DAAe,YAAY,EAAC;;;AChCc;;AAE1C;AACA,IAAI,mBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,WAAU,OAAO,mBAAc;AACxC;;AAEA,mDAAe,IAAI,EAAC;;;AC3BwB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAW;;AAEvB,oDAAe,KAAK,EAAC;;;ACzB2B;AACV;AACF;AACQ;AACT;AACO;;AAE1C;AACA,IAAI,2BAAe;;AAEnB;AACA,IAAI,2BAAe;AACnB,IAAI,6BAAiB;AACrB,IAAI,yBAAa;AACjB,IAAI,2BAAe;;AAEnB;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,SAAQ;AACjB;AACA;AACA,iBAAiB,cAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAAe;AAC3C;AACA,gCAAgC,YAAW;AAC3C,0BAA0B,cAAa;AACvC;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,YAAW;AAChC,yCAAyC,QAAO;;AAEhD,kBAAkB,WAAU;AAC5B,wBAAwB,yBAAa,GAAG,2BAAe,GAAG,6BAAiB,GAAG,2BAAe;AAC7F;AACA;AACA,0BAA0B,YAAW;AACrC,QAAQ;AACR,uCAAuC,WAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,iBAAO;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AC7EgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAU;;AAErB,mDAAe,IAAI,EAAC;;;AC1BsB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAU;;AAE1B,wDAAe,SAAS,EAAC;;;ACzBW;AACU;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,QAAO,SAAS,aAAY,YAAY,gBAAM;AACpD;;AAEA,oDAAe,KAAK,EAAC;;;ACtCyB;AACA;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,aAAY,SAAS,aAAY,YAAY,gBAAM;AACzD;;AAEA,yDAAe,UAAU,EAAC;;;ACpCgB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,mBAAmB,WAAU,SAAS,aAAY;AAClD;;AAEA,qDAAe,MAAM,EAAC;;;ACnC8B;AACN;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,mBAAmB,gBAAe,SAAS,aAAY;AACvD;;AAEA,0DAAe,WAAW,EAAC;;;ACjC3B;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC3BmB;AACH;;AAEzC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW;AACpB,WAAW,oBAAU;AACrB,GAAG;AACH;;AAEA,mDAAe,aAAa,EAAC;;;AClBmB;AACnB;;AAE7B;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,+BAA+B,cAAa,SAAS,cAAI;AACzD;;AAEA,wDAAe,SAAS,EAAC;;;AC9BuB;AACf;;AAEjC;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,+BAA+B,cAAa,SAAS,gBAAM;AAC3D;;AAEA,0DAAe,WAAW,EAAC;;;AC9ByB;AACE;;AAEtD;AACA,IAAI,mBAAW;;AAEf;AACA,IAAI,sBAAc,GAAG,mBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,cAAc,iBAAgB;AAC9B,MAAM,sBAAc;AACpB;AACA,IAAI;AACJ,IAAI,gBAAe;AACnB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACxCvB;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACbe;;AAErC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,cAAc,kBAAQ;AACtB,cAAc,kBAAQ;AACtB;AACA;AACA;AACA;;AAEA,+DAAe,yBAAyB,EAAC;;;ACnBP;AACsC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0BAAyB,CAAC,OAAM;;AAEzC,iDAAe,EAAE,EAAC;;;AC5BsD;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAAyB;AACnC;AACA,CAAC;;AAED,kDAAe,GAAG,EAAC;;;AC7BnB;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,uBAAc;AACzC;;AAEA,6CAAe,OAAO,EAAC;;;AClBa;AACA;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB,OAAO;AACzB,0BAA0B,gBAAgB,QAAQ,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAO,eAAe,QAAO;AACxD;;AAEA,kDAAe,GAAG,EAAC;;;AClCnB;AACA,IAAI,sBAAS;AACb,IAAI,sBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,mBAAmB,sBAAS,yBAAyB,sBAAS;AAC9D;;AAEA,iDAAe,WAAW,EAAC;;;ACjBiB;AACP;AACA;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAQ;AAClB;AACA;AACA;AACA,IAAI;AACJ,UAAU,kBAAQ;AAClB;AACA,WAAW,kBAAQ;AACnB,SAAS,YAAW;AACpB;;AAEA,sDAAe,OAAO,EAAC;;;ACtDmB;AACP;AACU;;AAE7C;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAO,WAAW,sBAAY,WAAW,WAAU,WAAW,kBAAS;AAC7E;;AAEA,uDAAe,QAAQ,EAAC;;;AC7Bc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,SAAQ;AACjB;AACA,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AClBgB;AACb;;AAE7B;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,+BAA+B,WAAU,SAAS,cAAI;AACtD;;AAEA,qDAAe,MAAM,EAAC;;;ACjCsB;AACD;AACN;AACE;AACN;;AAEjC;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAW,4BAA4B,gBAAM;AAC5D,sCAAsC,mBAAS;;AAE/C;AACA;AACA,gBAAgB,kBAAS;AACzB;AACA,SAAS,kBAAQ;AACjB;AACA,mBAAmB,YAAW;AAC9B;;AAEA,uDAAe,QAAQ,EAAC;;;ACpDoB;AACL;;AAEvC;AACA,IAAI,iBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAS;AAC/C;AACA,YAAY,iBAAS;AACrB;AACA,SAAS,YAAW;AACpB;;AAEA,sDAAe,OAAO,EAAC;;;ACzCiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS,eAAO;AAChB;AACA,kBAAkB,UAAS;AAC3B;;AAEA,sDAAe,eAAO,EAAC;;;ACrBe;AACU;AACQ;AAClB;AACE;AACF;;AAEtC;AACA,IAAI,2BAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,8BAA8B,kBAAiB,GAAG,cAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,SAAQ,QAAQ,UAAS;AACvC;AACA,gBAAgB,2BAAS;AACzB;AACA,YAAY,SAAQ;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,SAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACzEuB;;AAEvD;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,cAAc;AAC3B;AACA;AACA,SAAS,2BAAiB;AAC1B;;AAEA,yDAAe,mBAAmB,EAAC;;;ACbG;AACgB;AAChB;AACsB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAQ;AAC3B,eAAe,SAAQ,SAAS,oBAAmB;AACnD;AACA,MAAM,iBAAgB;AACtB;AACA,CAAC;;AAED,2DAAe,YAAY,EAAC;;;AC7BU;AACgB;AACR;AACR;AACsB;AAC/B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,MAAM,QAAQ,IAAI,QAAQ;AACzD,YAAY,QAAQ;AACpB;AACA,qBAAqB,SAAQ;AAC7B,iBAAiB,cAAI;AACrB,eAAe,SAAQ,SAAS,oBAAmB;;AAEnD,mBAAmB,cAAI;AACvB;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM,iBAAgB,SAAS,aAAY;AAC3C;AACA,CAAC;;AAED,6DAAe,cAAc,EAAC;;;AC5CQ;AACgB;AAChB;AACsB;AAC/B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD,mBAAmB,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA,uBAAuB,SAAQ;AAC/B,mBAAmB,cAAI;AACvB,eAAe,SAAQ,SAAS,oBAAmB;;AAEnD;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAgB;AACtB;AACA,CAAC;;AAED,+DAAe,gBAAgB,EAAC;;;ACxCU;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,EAAE,WAAU;AACZ;AACA,GAAG;AACH;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpBkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,WAAW,aAAY,yCAAyC;AAChE;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AChBO;AACa;AACb;;AAErC;AACA,IAAI,kBAAW;;AAEf;AACA;AACA;AACA;AACA;AACA,IAAI,2BAAoB,GAAG,kBAAW;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA,aAAa,eAAc;AAC3B;AACA;AACA,YAAY,2BAAoB;AAChC;;AAEA;AACA,CAAC,EAAE,kBAAQ,CAAC,kBAAQ;;AAEpB,qDAAe,MAAM,EAAC;;;ACzCwB;AACI;;AAElD;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA,IAAI,6BAAoB,GAAG,oBAAW;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,IAAI;AACJ,WAAW;AACX;AACA,eAAe,eAAc;AAC7B;AACA;AACA,YAAY,6BAAoB;AAChC;;AAEA,MAAM,uBAAc;AACpB;AACA,IAAI;AACJ;AACA;AACA,CAAC,EAAE,aAAY;;AAEf,uDAAe,QAAQ,EAAC;;;ACvDY;AACI;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA,SAAS,cAAM;AACf,oCAAoC,QAAO,SAAS,UAAS;AAC7D;;AAEA,4CAAe,cAAM,EAAC;;;ACfU;AACM;AACT;AACK;AACF;;AAEhC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,SAAQ;AACjB,WAAW,OAAM;AACjB,8CAA8C,MAAK,CAAC,cAAI;AACxD,oCAAoC,MAAK;AACzC;;AAEA,gDAAe,UAAU,EAAC;;;ACvBgB;AACJ;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,qBAAqB;AACtD;AACA;AACA;AACA;AACA,aAAa,SAAQ,CAAC,WAAU;;AAEhC,qDAAe,MAAM,EAAC;;;ACvBU;AACM;AACI;AACJ;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,uBAAuB;AAClC;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB;AACA;AACA,eAAe,qBAAW;;AAE1B,EAAE,SAAQ;AACV,+BAA+B,MAAK,sBAAsB,WAAU;AACpE,GAAG;AACH;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;ACxCiB;AACG;;AAE7C,IAAI,iCAAc;;AAElB;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU,WAAW,iCAAc;AACnE;;AAEA,uDAAe,iBAAiB,EAAC;;;AChBuB;AAChB;AACF;;AAEtC;AACA,wBAAwB,SAAQ,IAAI,SAAQ;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAS,sBAAsB,kBAAiB;;AAExF,4DAAe,aAAa,EAAC;;;AC1Ba;AACG;;AAE7C;AACA,IAAI,iBAAO;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,sBAAY,WAAW,WAAU,WAAW,iBAAO;AACxD;;AAEA,wDAAe,SAAS,EAAC;;;AC5BiB;AACG;;AAE7C;AACA,IAAI,mBAAO;;AAEX;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU,WAAW,mBAAO;AAC5D;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACF;AACF;;AAEtC;AACA,iBAAiB,SAAQ,IAAI,SAAQ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAS,eAAe,WAAU;;AAE5D,qDAAe,MAAM,EAAC;;;AC1BuB;AACE;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,oCAAoC,uBAAa;AACtE;;AAEA,wDAAe,SAAS,EAAC;;;ACxBa;AACJ;AACS;AACR;AACQ;AACN;AACO;AACC;;AAE7C;AACA,IAAI,cAAM;AACV,IAAI,cAAM;;AAEV;AACA,IAAI,mBAAW;;AAEf;AACA,IAAI,sBAAc,GAAG,mBAAW;;AAEhC;AACA;AACA;AACA;AACA;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,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAW;AACjB,OAAO,iBAAO;AACd,QAAQ,kBAAQ,WAAW,sBAAY,WAAW,qBAAW;AAC7D;AACA;AACA,YAAY,OAAM;AAClB,aAAa,cAAM,WAAW,cAAM;AACpC;AACA;AACA,MAAM,YAAW;AACjB,YAAY,SAAQ;AACpB;AACA;AACA,QAAQ,sBAAc;AACtB;AACA;AACA;AACA;AACA;;AAEA,sDAAe,OAAO,EAAC;;;AC5EqB;;AAE5C;AACA;AACA;AACA;AACA;AACA;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,SAAS,eAAO;AAChB,SAAS,YAAW;AACpB;;AAEA,sDAAe,eAAO,EAAC;;;AClCqB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAW;AAC3C;;AAEA,0DAAe,WAAW,EAAC;;;ACxCG;;AAE9B;AACA,IAAI,uBAAc,GAAG,KAAI;;AAEzB;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,SAAS,iBAAQ;AACjB,qCAAqC,uBAAc;AACnD;;AAEA,uDAAe,iBAAQ,EAAC;;;ACnCe;;AAEvC;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,8CAA8C,mBAAS;AACvD;;AAEA,wDAAe,SAAS,EAAC;;;AChCmB;AACE;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA,8BAA8B,YAAW,iBAAiB,aAAY;AACtE;;AAEA,sDAAe,OAAO,EAAC;;;ACnCqB;AACE;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,iBAAiB,aAAY;AACjD;;AAEA,0DAAe,WAAW,EAAC;;;ACxCe;AACG;;AAE7C;AACA,IAAI,kBAAS;;AAEb;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,KAAK,sBAAY,WAAW,WAAU,WAAW,kBAAS;AAC1D;;AAEA,uDAAe,QAAQ,EAAC;;;ACrCa;;AAErC;AACA;AACA;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,SAAS,WAAK;AACd;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,oDAAe,WAAK,EAAC;;;ACrCqB;AACD;AACF;;AAEvC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA,iBAAiB,WAAU,GAAG,oBAAU,GAAG,mBAAS;;AAEpD,gDAAe,UAAU,EAAC;;;ACboB;AACJ;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,MAAM,WAAU;AAChB;AACA;AACA,SAAS,aAAY;AACrB;;AAEA,uDAAe,QAAQ,EAAC;;;ACvCxB;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,oDAAe,KAAK,EAAC;;;ACxBrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACrBoB;AACG;;AAE7C;AACA,IAAI,uBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU,WAAW,uBAAS;AAC9D;;AAEA,kDAAe,YAAY,EAAC;;;ACjBkB;AACN;AACF;;AAEtC;AACA,mBAAmB,SAAQ,IAAI,SAAQ;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAS,iBAAiB,aAAY;;AAEpE,uDAAe,QAAQ,EAAC;;;AC1Be;;AAEvC;AACA,IAAI,8BAAgB;;AAEpB;AACA;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,SAAS,mBAAS,qBAAqB,8BAAgB,aAAa,8BAAgB;AACpF;;AAEA,4DAAe,aAAa,EAAC;;;ACpC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAe,WAAW,EAAC;;;ACrBO;AACW;;AAE7C;AACA,IAAI,oBAAU;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,WAAW,OAAM,WAAW,oBAAU;AAC3D;;AAEA,wDAAe,SAAS,EAAC;;;AC3BiB;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,WAAW,WAAU;AAC1C;;AAEA,wDAAe,SAAS,EAAC;;;AC3Be;AACM;;AAE9C;AACA,IAAI,wBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,6CAA6C;AACpD,OAAO;AACP;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE,YAAY,6CAA6C;AACzD;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,aAAY,oCAAoC,UAAS,OAAO,wBAAe;AACxF;;AAEA,uDAAe,QAAQ,EAAC;;;ACpDxB;AACA,IAAI,eAAU;;AAEd;AACA,iBAAiB,eAAU;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;ACzBkC;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC3B2B;AACE;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,2BAA2B;AAClC,OAAO;AACP;AACA;AACA;AACA;AACA,IAAI;AACJ,WAAW,OAAO,2BAA2B,SAAS;AACtD;AACA;AACA,WAAW,UAAU,2BAA2B,aAAa;AAC7D;AACA,YAAY,iBAAgB;AAC5B,EAAE,gBAAe;AACjB,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACnCrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,iBAAiB,EAAC;;;ACpBe;AACR;AACgB;AACjB;;AAEvC;AACA,IAAI,qBAAS;AACb,IAAI,qBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAS;AACrB,wBAAwB,qBAAS,sBAAsB,qBAAS;AAChE;AACA;AACA,MAAM,kBAAiB;AACvB,MAAM,cAAa,QAAQ,UAAS;AACpC;;AAEA,0DAAe,WAAW,EAAC;;;AC7C2B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC1B2B;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAe;;AAEhC,yDAAe,UAAU,EAAC;;;ACrB1B;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACbY;AACsC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0BAAyB,CAAC,OAAM;;AAEzC,iDAAe,EAAE,EAAC;;;AC5BsD;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAAyB;AACnC;AACA,CAAC;;AAED,kDAAe,GAAG,EAAC;;;AC7BiC;AACV;AACI;;AAE9C;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA,IAAI;AACJ,WAAW;AACX;AACA;AACA;AACA,aAAa,aAAY;;AAEzB,EAAE,WAAU;AACZ,IAAI,gBAAe;AACnB,GAAG;AACH;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACnC6B;AACV;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD,kBAAkB;AAClB;AACA;AACA,oCAAoC,eAAe;AACnD,WAAW,2BAA2B;AACtC;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA;AACA;AACA,aAAa,aAAY;;AAEzB,EAAE,WAAU;AACZ,IAAI,gBAAe;AACnB,GAAG;AACH;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC1Ce;AACI;;AAE5C;AACA,IAAI,uBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,wBAAwB;AAC/B,OAAO;AACP;AACA;AACA,iCAAiC,gBAAgB;AACjD,YAAY,wBAAwB;AACpC;AACA;AACA,6CAA6C,QAAQ,eAAe,QAAQ;AAC5E,YAAY,wBAAwB,IAAI,wBAAwB;AAChE;AACA;AACA,SAAS,YAAW,CAAC,UAAS,SAAS,uBAAe;AACtD;;AAEA,sDAAe,OAAO,EAAC;;;AC7CiB;AACoB;;AAE5D;AACA,IAAI,+BAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,wBAAwB;AAC/B,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,YAAY,wBAAwB,IAAI,wBAAwB;AAChE;AACA;AACA,SAAS,oBAAmB,OAAO,UAAS,WAAW,+BAAe;AACtE;;AAEA,8DAAe,eAAe,EAAC;;;AC3CM;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,kBAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;AC/BkB;AACZ;AACG;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAY,QAAQ,kBAAQ,EAAE,OAAM;AAC1C;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AC5B2B;AACZ;AACY;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,aAAa;AAC/C,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM,aAAY,QAAQ,aAAY,eAAe,OAAM;AAC3D;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACjCrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACvBa;;AAEpC;AACA,IAAI,aAAG;;AAEP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,mBAAmB,QAAO,8BAA8B,aAAG;AAC3D;;AAEA,8CAAe,QAAQ,EAAC;;;ACnBc;AACD;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAQ,QAAQ,kBAAQ;AACjC;;AAEA,mDAAe,IAAI,EAAC;;;ACrB0B;AACR;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChE;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAQ,QAAQ,aAAY;AACrC;;AAEA,qDAAe,MAAM,EAAC;;;AC9BkB;AACU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,WAAW,QAAQ,gBAAgB,IAAI,gBAAgB;AACvD;AACA,YAAY,eAAc;AAC1B,EAAE,UAAS;AACX,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACtCqB;AACJ;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,sBAAsB;AACpC,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAQ;AACrB;AACA,WAAW,WAAU;AACrB;AACA,CAAC;;AAED,qDAAe,MAAM,EAAC;;;ACjCoB;AACJ;;AAEtC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAQ;AACvB;AACA,WAAW,WAAU;AACrB;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;AChCsB;AACZ;AACG;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAY,QAAQ,kBAAQ,EAAE,OAAM;AAC1C;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AC5B2B;AACA;AACZ;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,aAAa;AAC/C,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM,aAAY,QAAQ,aAAY,eAAe,OAAM;AAC3D;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACjCmB;AACA;AACQ;AACR;AACC;AACJ;AACR;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,SAAS;AACpB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB,IAAI,gBAAgB;AACnD;AACA;AACA;AACA;AACA,cAAc,cAAI;AAClB,oBAAoB,cAAa;;AAEjC,gBAAgB,kBAAQ;AACxB,eAAe,oBAAU;;AAEzB,EAAE,UAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAS;;AAEtD,yBAAyB,oDAAoD;AAC7E;AACA;AACA;AACA,kCAAkC,UAAS;AAC3C;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACzEuC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAmB;AAClC;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;ACrBxB;AACA,IAAI,sBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvCtB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACjBG;AACM;AACN;AACS;AACN;AACe;AACV;AACA;AACM;AACf;;AAEjC;AACA,IAAI,cAAM;AACV,IAAI,cAAM;;AAEV;AACA,kBAAkB,OAAM,GAAG,OAAM;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAW;AACjB,WAAW,kBAAQ,UAAU,cAAa,UAAU,UAAS;AAC7D;AACA;AACA,WAAW,gBAAe;AAC1B;AACA,YAAY,OAAM;AAClB,oBAAoB,cAAM,GAAG,WAAU,WAAW,cAAM,GAAG,WAAU,GAAG,gBAAM;;AAE9E;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACzDY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,sBAAsB,iBAAO;AAC7B;AACA;AACA;;AAEA,WAAW;AACX;;AAEA,yCAAe,WAAW,EAAC;;;AClCS;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAO;AAChB;;AAEA,6CAAe,OAAO,EAAC;;;ACnBa;AACG;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAO,QAAQ,mBAAS;AAC3D;;AAEA,kDAAe,GAAG,EAAC;;;AC5BiB;AACE;AACC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAS;AACf,SAAS,SAAQ;AACjB,WAAW,QAAO;AAClB,GAAG;AACH;;AAEA,qDAAe,MAAM,EAAC;;;AC/BgB;AACT;AACK;AACF;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,SAAQ;AACjB,WAAW,OAAM;AACjB,yCAAyC,MAAK,CAAC,cAAI;AACnD;;AAEA,+CAAe,SAAS,EAAC;;;ACnBsB;;AAE/C;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,uBAAa;AACtB;;AAEA,qDAAe,eAAe,EAAC;;;ACfO;AACE;AACA;AACF;AACI;AACU;AACd;AACQ;;AAE9C;AACA,IAAI,oBAAe;AACnB,IAAI,oBAAe;AACnB,IAAI,uBAAkB;;AAEtB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA,WAAW,SAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,UAAU,SAAQ;AAClB,WAAW,SAAQ;AACnB;AACA;AACA,GAAG;AACH,EAAE,WAAU,SAAS,aAAY;AACjC;AACA,aAAa,UAAS,SAAS,oBAAe,GAAG,oBAAe,GAAG,uBAAkB,EAAE,gBAAe;AACtG;AACA;AACA;AACA,IAAI,UAAS;AACb;AACA;AACA,CAAC;;AAED,mDAAe,IAAI,EAAC;;;ACxDwB;AACN;AACF;AACC;AACL;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;AACA;AACA;;AAEA;AACA,cAAc,MAAK;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,kBAAQ;AAC3B;AACA,aAAa,QAAO,2BAA2B;AAC/C;AACA;AACA,IAAI,YAAW;AACf;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;AClDa;AACA;AACE;;AAEtC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAO;;AAEvB;AACA,MAAM,QAAO,SAAS,SAAQ;AAC9B;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC7BY;AACQ;AACJ;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ,CAAC,aAAY;AACnC;AACA,GAAG;AACH,cAAc,aAAY;AAC1B,SAAS,WAAU;AACnB;AACA,GAAG;AACH;;AAEA,qDAAe,MAAM,EAAC;;;ACpCwB;AACb;AACA;;AAEjC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,gBAAM,SAAS,gBAAM,CAAC,aAAY;AAC3C;;AAEA,qDAAe,MAAM,EAAC;;;AC5BW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAM;AACf;;AAEA,mDAAe,IAAI,EAAC;;;ACxBpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpBW;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACxCsB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AC3CO;AACF;AACU;AACV;AACM;AACF;AACY;AACf;AACF;;AAEnC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,8BAA8B;AACzC,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB,UAAU,iBAAO;AACjB;AACA,iBAAiB,QAAO;AACxB;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ,iBAAiB,kBAAQ;AACzB;;AAEA;AACA,cAAc,SAAQ,YAAY,UAAS,CAAC,aAAY;;AAExD,eAAe,QAAO;AACtB,mBAAmB,SAAQ;AAC3B;AACA,KAAK;AACL,aAAa;AACb,GAAG;;AAEH,SAAS,WAAU;AACnB,WAAW,gBAAe;AAC1B,GAAG;AACH;;AAEA,iDAAe,WAAW,EAAC;;;AChDiB;AACT;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,sCAAsC;AACjD;AACA,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iBAAO;AACd;AACA;AACA;AACA,OAAO,iBAAO;AACd;AACA;AACA,SAAS,YAAW;AACpB;;AAEA,sDAAe,OAAO,EAAC;;;AC9CS;AACM;AACQ;AACR;AACE;AACF;;AAEtC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,SAAQ;AACjB,gBAAgB,SAAQ,YAAY,UAAS,CAAC,aAAY;AAC1D,WAAW,SAAQ;AACnB;AACA;AACA,eAAe,MAAK;AACpB,OAAO;AACP,KAAK;AACL,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AC1BY;AACI;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAU,CAAC,SAAQ;;AAE9B,mDAAe,IAAI,EAAC;;;ACvBkB;;AAEtC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA,eAAe,SAAQ;;AAEvB,8CAAe,QAAQ,EAAC;;;ACbQ;AACM;AACM;AACE;AACR;AACE;AACF;AACH;;AAEnC;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAQ;AACvB,0CAA0C,iBAAO;AACjD,MAAM,SAAQ,gBAAgB,UAAS,CAAC,aAAY;AACpD,MAAM,SAAQ,CAAC,YAAW,iBAAiB,UAAS,CAAC,aAAY;;AAEjE;AACA,SAAS,SAAQ;AACjB;AACA,iBAAiB,kBAAS;;AAE1B;AACA;AACA;AACA,WAAW,MAAK;AAChB,GAAG;AACH,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;AC5DkB;AACA;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAU,CAAC,WAAU;;AAErC,wDAAe,SAAS,EAAC;;;ACjCe;AACE;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,IAAI,QAAQ;AACvD;AACA;AACA,eAAe,WAAU,CAAC,UAAS;;AAEnC,uDAAe,QAAQ,EAAC;;;ACpCxB;AACA,IAAI,4BAAgB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA8B,4BAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AClCoB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,gBAAgB,aAAY;;AAE5B,+CAAe,SAAS,EAAC;;;ACXzB;AACA,IAAI,0BAAa;AACjB,IAAI,8BAAiB;AACrB,IAAI,kCAAqB;AACzB,IAAI,gCAAmB;AACvB,IAAI,yBAAY,GAAG,8BAAiB,GAAG,kCAAqB,GAAG,gCAAmB;AAClF,IAAI,uBAAU;;AAEd;AACA,IAAI,qBAAQ,SAAS,0BAAa;AAClC,IAAI,oBAAO,SAAS,yBAAY;AAChC,IAAI,mBAAM;AACV,IAAI,uBAAU,WAAW,oBAAO,SAAS,mBAAM;AAC/C,IAAI,wBAAW,UAAU,0BAAa;AACtC,IAAI,uBAAU,iCAAiC,EAAE;AACjD,IAAI,uBAAU;AACd,IAAI,kBAAK;;AAET;AACA,IAAI,qBAAQ,GAAG,uBAAU;AACzB,IAAI,qBAAQ,SAAS,uBAAU;AAC/B,IAAI,sBAAS,WAAW,kBAAK,YAAY,wBAAW,EAAE,uBAAU,EAAE,uBAAU,oBAAoB,qBAAQ,GAAG,qBAAQ;AACnH,IAAI,kBAAK,GAAG,qBAAQ,GAAG,qBAAQ,GAAG,sBAAS;AAC3C,IAAI,qBAAQ,YAAY,wBAAW,GAAG,oBAAO,QAAQ,oBAAO,EAAE,uBAAU,EAAE,uBAAU,EAAE,qBAAQ;;AAE9F;AACA,IAAI,sBAAS,UAAU,mBAAM,WAAW,mBAAM,UAAU,qBAAQ,GAAG,kBAAK;;AAExE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,eAAe,sBAAS;AACxB,SAAS,sBAAS;AAClB;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC3Ca;AACE;AACE;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU;AACnB,MAAM,YAAW;AACjB,MAAM,UAAS;AACf;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACI;AACN;AACE;AACA;AACM;;AAEhD;AACA,IAAI,yBAAU;;AAEd;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,sCAAsC,aAAY;;AAElD;AACA;AACA,yBAAyB,WAAU;AACnC;AACA,eAAe,WAAU,QAAQ,yBAAU,UAAU,WAAU;AAC/D,SAAS,WAAU;AACnB,MAAM,UAAS,CAAC,cAAa;AAC7B;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AChCmB;AACN;AACH;AACF;;AAErC;AACA,IAAI,cAAU;AACd,IAAI,eAAW;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,mBAAS;;AAEpB,2BAA2B,WAAU;AACrC;AACA;AACA;AACA;AACA;AACA,IAAI,cAAa,CAAC,eAAW;AAC7B;AACA,IAAI,cAAa,CAAC,cAAU;AAC5B;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AChD6B;AACN;AACH;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,mBAAS;;AAEpB,2BAA2B,WAAU;AACrC;AACA,gBAAgB,cAAa;AAC7B;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACtC0B;AACN;AACH;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,mBAAS;;AAEpB,2BAA2B,WAAU;AACrC;AACA,OAAO,cAAa;AACpB;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACtCM;AACO;;AAErC;AACA,IAAI,oBAAW;;AAEf;AACA,qBAAqB,KAAI;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAQ;AACjB;AACA;AACA,IAAI;AACJ;AACA;AACA,wBAAwB,kBAAQ,iBAAiB,oBAAW;AAC5D;;AAEA,uDAAe,iBAAQ,EAAC;;;AC1Cc;AACI;AACF;AACU;;AAElD;AACA,IAAI,yBAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB,gBAAgB,eAAc,WAAW,UAAS;AAClD,SAAS,WAAU,OAAO,yBAAiB;AAC3C,CAAC;;AAED;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACjDe;AACI;AACF;AACU;;AAElD;AACA,IAAI,oCAAuB;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAQ;AAC3B,gBAAgB,eAAc,WAAW,UAAS;AAClD,SAAS,WAAU,OAAO,oCAAuB;AACjD,CAAC;;AAED;AACA;;AAEA,2DAAe,YAAY,EAAC;;;AChD0B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,+CAA+C;AACtD,OAAO,8CAA8C;AACrD,OAAO;AACP;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC,eAAe,kBAAkB;;AAElC,wDAAe,SAAS,EAAC;;;AC1CiB;AACX;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU;AACnB,WAAW,eAAK;AAChB,GAAG;AACH;;AAEA,8CAAe,QAAQ,EAAC;;;AClBc;AACA;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA,WAAW,SAAQ;AACnB,6BAA6B,EAAE,SAAQ;AACvC,CAAC;;AAED,mDAAe,IAAI,EAAC;;;ACxBsB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,WAAU;AACrC,gBAAgB,aAAY;AAC5B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAe,YAAY,EAAC;;;AC/CQ;;AAEpC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAO;AAC/C;AACA;;AAEA,yDAAe,UAAU,EAAC;;;AC7B1B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACtBO;AACM;AACQ;AACZ;AACA;;AAExC;AACA,IAAI,uBAAU;;AAEd;AACA,IAAI,mBAAM,GAAG,uBAAU;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,6BAA6B,gBAAe,GAAG,YAAW;AAC1D;AACA;AACA;;AAEA;AACA,aAAa,UAAS;AACtB;AACA;AACA,WAAW,SAAQ,QAAQ,UAAS;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,mBAAM;AACd;AACA,MAAM,mBAAM;AACZ;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClDiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAW;AACjB;AACA;;AAEA,sDAAe,OAAO,EAAC;;;AC5Be;AACH;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAQ,CAAC,iBAAO;;AAE3B,mDAAe,IAAI,EAAC;;;AC5B0B;AACF;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,kBAAkB,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC9D;AACA,yBAAyB,QAAQ,IAAI,QAAQ;AAC7C;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,MAAM,YAAW,gBAAgB,aAAY;AAC7C;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AChCmB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,kBAAkB,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AAC1E;AACA,2BAA2B,gBAAgB;AAC3C;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA;AACA;AACA,MAAM,YAAW;AACjB;AACA;;AAEA,0DAAe,WAAW,EAAC;;;AC/Ba;AACJ;;AAEpC;AACA,IAAI,sBAAU;;AAEd;AACA,IAAI,kBAAM,GAAG,sBAAU;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,QAAO;AACjB,QAAQ,kBAAM;AACd,QAAQ;AACR,QAAQ,UAAS;AACjB;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpCY;AACJ;AACQ;AACY;AAChB;AACF;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,sBAAsB;AACjC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAQ;AACrB;AACA,eAAe,OAAM;;AAErB,EAAE,WAAU,QAAQ,SAAQ;AAC5B,WAAW,QAAO;AAClB,GAAG,OAAO,iBAAgB;;AAE1B;AACA,CAAC;;AAED,qDAAe,MAAM,EAAC;;;AC1CtB;AACA,IAAI,uBAAW;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB,uBAAW;AAC5B;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACQ;AACb;;AAErC;AACA;;AAEA;AACA,IAAI,gBAAS;AACb,IAAI,mBAAY;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA,MAAM;AACN,cAAc,kBAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAY;AAC3B,WAAW,gBAAS;AACpB;AACA,SAAS,WAAU;AACnB;;AAEA,qDAAe,MAAM,EAAC;;;ACjFtB;AACA,IAAI,qBAAU;AACd,IAAI,oBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,eAAe,oBAAS,CAAC,qBAAU;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;AC3Be;AACU;AACb;;AAErC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA,2CAA2C,eAAc;AACzD;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA,MAAM;AACN,YAAY,kBAAQ;AACpB;AACA,yDAAyD,kBAAQ;AACjE,WAAW,UAAS;AACpB;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC7BiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAW;;AAEvB,oDAAe,KAAK,EAAC;;;AC7CuB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAW;;AAE5B,yDAAe,UAAU,EAAC;;;ACxCgB;AACJ;;AAEtC;AACA,IAAI,qBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,sBAAsB;AACjC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,WAAU,OAAO,qBAAe;AACzC,CAAC;;AAED,oDAAe,KAAK,EAAC;;;AChCrB;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACtBkB;AACN;AACQ;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA,IAAI,IAAI;AACR,WAAW,8BAA8B;AACzC;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D;;AAEA,0BAA0B,aAAY,uCAAuC,SAAQ;AACrF;;AAEA,qDAAe,MAAM,EAAC;;;AClDtB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACvBsB;AACN;AACF;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,iBAAgB,GAAG,WAAU;AAChE;;AAEA,0BAA0B,aAAY,uCAAuC,cAAa;AAC1F;;AAEA,0DAAe,WAAW,EAAC;;;ACnCiB;AACF;AACI;AACX;AACF;;AAEjC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO;AACP;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D,0BAA0B,gBAAM,CAAC,aAAY;AAC7C;;AAEA,qDAAe,MAAM,EAAC;;;AC7CwB;AACJ;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAM;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,aAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAU;AACZ;AACA;;AAEA,qDAAe,aAAM,EAAC;;;ACpDoB;AACQ;AACX;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA,IAAI;AACJ,QAAQ,mBAAS;AACjB;AACA,SAAS,WAAU,CAAC,kBAAQ;AAC5B;;AAEA,qDAAe,MAAM,EAAC;;;ACpCe;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,iBAAiB;AAC5B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,eAAO;AAChB;AACA,eAAe,kBAAQ;;AAEvB;AACA;;AAEA,sDAAe,eAAO,EAAC;;;AC5Be;AACC;;AAEvC;AACA,IAAI,oBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA,wCAAwC,mBAAS;AACjD,SAAS,SAAQ;AACjB;;AAEA,mDAAe,IAAI,EAAC;;;ACvCkB;AACG;AACT;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,gCAAgC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAK;AACzD;AACA;AACA;AACA;AACA,aAAa,oBAAU;AACvB;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvDtB;AACA,IAAI,kBAAU;;AAEd;AACA,oBAAoB,kBAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACjCqB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAW;;AAEvB,oDAAe,KAAK,EAAC;;;ACzBqB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA,wBAAwB,WAAU;AAClC;;AAEA,iDAAe,WAAW,EAAC;;;ACdiB;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,YAAW,CAAC,gBAAM;AAC3B;;AAEA,gDAAe,UAAU,EAAC;;;ACdkB;AACF;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvBoB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,WAAU;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC3Ba;AACA;AACI;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW,CAAC,UAAS,SAAS,UAAS;AAChD;;AAEA,qDAAe,eAAe,EAAC;;;AChBS;AACI;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,cAAc,gBAAM;AACpB,SAAS,YAAW,QAAQ,UAAS;AACrC;;AAEA,oDAAe,cAAc,EAAC;;;ACjBsB;AACF;AACf;AACe;AACX;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA,IAAI;AACJ,QAAQ,mBAAS;AACjB;AACA,aAAa,iBAAO,eAAe,gBAAe,GAAG,eAAc;AACnE;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACpCU;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAO;AAC1C;;AAEA,kDAAe,GAAG,EAAC;;;AClCiB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,mCAAmC,QAAO;AAC1C;;AAEA,sDAAe,OAAO,EAAC;;;AC/BiB;AACI;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW,CAAC,UAAS;AAC9B;;AAEA,kDAAe,YAAY,EAAC;;;ACdgB;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW,CAAC,gBAAM;AAC3B;;AAEA,iDAAe,WAAW,EAAC;;;ACdmB;AACF;AACT;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,aAAY,GAAG,YAAW;AAC7D;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACxBe;AACJ;AACS;AACN;AACK;;AAE1C;AACA,IAAI,WAAM;AACV,IAAI,WAAM;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAW;AACjB,WAAW,kBAAQ,eAAe,WAAU;AAC5C;AACA,YAAY,OAAM;AAClB,aAAa,WAAM,WAAW,WAAM;AACpC;AACA;AACA,SAAS,SAAQ;AACjB;;AAEA,mDAAe,IAAI,EAAC;;;AC7CoB;AACU;AACX;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAc;AACrD;AACA;AACA;AACA;AACA,gCAAgC,mBAAS;AACzC,uCAAuC,mBAAS;AAChD;AACA,SAAS,UAAS;AAClB;;AAEA,oDAAe,KAAK,EAAC;;;ACpCiC;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC3Ba;;AAEtC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,EAAE,SAAQ;AACV;AACA;AACA,GAAG;AACH;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACrBgB;AACM;AACR;AACH;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kCAAkC;AACzC,OAAO;AACP;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,UAAS,GAAG,SAAQ;AACvD,eAAe,eAAc;AAC7B;AACA;AACA,0BAA0B,aAAY;AACtC;;AAEA,mDAAe,IAAI,EAAC;;;AClDwB;AACA;AACN;AACY;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,0BAA0B;AACrC;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA,aAAa,SAAQ;AACrB;AACA;AACA;AACA;AACA,oBAAoB,eAAc;AAClC;AACA,IAAI,uBAAuB,eAAc;AACzC;AACA;AACA,SAAS,YAAW,aAAa,YAAW;AAC5C,CAAC;;AAED,qDAAe,MAAM,EAAC;;;AC/Ce;;AAErC;AACA,IAAI,mCAAgB;AACpB,sBAAsB,mCAAgB;;AAEtC;AACA,IAAI,8BAAW;AACf,IAAI,4BAAS;;AAEb;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,kBAAQ;AAC5B;;AAEA;AACA,cAAc,8BAAW;AACzB;AACA;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,SAAS,4BAAS;AAClB;;AAEA,uDAAe,iBAAiB,EAAC;;;AClEuB;AACnB;AACA;;AAErC;AACA,IAAI,iCAAgB;AACpB,4BAA4B,iCAAgB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,kBAAQ;AACxC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAiB,eAAe,kBAAQ;AACjD;;AAEA,qDAAe,eAAe,EAAC;;;ACzCqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,0DAAe,WAAW,EAAC;;;ACvBmB;AACU;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,8BAA8B,QAAQ,gBAAgB,aAAa;AACnE;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA,SAAS,kBAAiB,eAAe,aAAY;AACrD;;AAEA,4DAAe,aAAa,EAAC;;;AChCuB;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAe;AAC/B,0BAA0B,YAAE;AAC5B;AACA;AACA;AACA;AACA;;AAEA,4DAAe,aAAa,EAAC;;;AC9BuB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,8DAAe,eAAe,EAAC;;;ACxBe;AACU;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,QAAQ,gBAAgB,aAAa;AACvE;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA,SAAS,kBAAiB,eAAe,aAAY;AACrD;;AAEA,gEAAe,iBAAiB,EAAC;;;AChCmB;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAe;AAC/B,QAAQ,YAAE;AACV;AACA;AACA;AACA;AACA;;AAEA,gEAAe,iBAAiB,EAAC;;;AC9BR;;AAEzB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,YAAE;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC7BoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAc;AACpB;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACvBoB;AACI;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAc,QAAQ,aAAY;AACxC;AACA;;AAEA,2DAAe,YAAY,EAAC;;;ACzBkB;AACN;AACE;AACQ;AACb;AACW;AACX;;AAErC;AACA,IAAI,sBAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAc;AACzD;AACA;AACA,gCAAgC,sBAAgB;AAChD;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA;AACA,+BAA+B,kBAAQ;AACvC;AACA,gBAAgB,aAAY;AAC5B,sBAAsB,WAAU;AAChC,aAAa,UAAS,CAAC,cAAa;AACpC;AACA;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACnDW;AACQ;AACF;AACE;AACD;;AAEvC;AACA,IAAI,sBAAe;;AAEnB;AACA,IAAI,gBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,wBAAwB,sBAAe;AACvC;AACA,8BAA8B,gBAAS,CAAC,mBAAS;AACjD,SAAS,SAAQ;AACjB;AACA,oBAAoB,UAAS;;AAE7B;AACA,MAAM,UAAS;AACf;AACA,WAAW,MAAK;AAChB,GAAG;AACH;;AAEA,qDAAe,MAAM,EAAC;;;AC9DgC;AACb;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC,uCAAuC,oBAAU;AACjD,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC5Be;AACM;AACP;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAU;AACnB,WAAW,kBAAQ;AACnB;AACA;AACA,MAAM,UAAS,CAAC,mBAAS;;AAEzB,WAAW,aAAY;AACvB;AACA;;AAEA,yDAAe,qBAAU,EAAC;;;ACtC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACtB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACjB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACjBoC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAmB;AAClC;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;ACrBY;AACC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAO,QAAQ,kBAAQ;AAC7B;AACA;;AAEA,kDAAe,GAAG,EAAC;;;ACvB2B;AACV;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChE;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAO,QAAQ,aAAY;AACjC;AACA;;AAEA,oDAAe,KAAK,EAAC;;;AChCmB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAS;AAC3B;;AAEA,mDAAe,IAAI,EAAC;;;ACrBoB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD,SAAS,UAAS;AAClB;;AAEA,mDAAe,IAAI,EAAC;;;ACpCoB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD;AACA,SAAS,UAAS;AAClB;;AAEA,wDAAe,SAAS,EAAC;;;ACtCqB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,6DAAe,cAAc,EAAC;;;AC5CgB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC5CzB;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AC5BM;;AAEzB;AACA,IAAI,mCAAW;;AAEf;AACA,IAAI,sCAAc,GAAG,mCAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,OAAO,YAAE,WAAW,mCAAW,WAAW,sCAAc;AACxD;AACA;AACA;AACA;;AAEA,4DAAe,sBAAsB,EAAC;;;AC5BtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACrBhC;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACH7B;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACHxB;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACHO;AACK;AACI;AACM;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY,SAAQ;;AAEpB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,cAAc,WAAU;;AAExB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,iBAAiB,cAAa;;AAE9B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,WAAW,UAAU,gBAAM;AAC3B;AACA;;AAEA,+DAAe,gBAAgB,EAAC;;;AClEa;AACV;AACO;AACwB;AACZ;AACnB;AACe;AACrB;AACmB;AACK;AAChB;;AAErC;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA,wBAAwB,MAAM,aAAa,OAAO;;AAElD;AACA;;AAEA;AACA;;AAEA;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC,iBAAiB,UAAU;AAC3B;AACA;AACA,mEAAmE,0BAA0B,GAAG;AAChG,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA,yDAAyD;AACzD,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA,uCAAuC,MAAM;AAC7C,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA,kDAAkD,0BAA0B,GAAG;AAC/E,qCAAqC,aAAa,gBAAgB;AAClE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA,qDAAqD,oCAAoC;AACzF;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD,uCAAuC,OAAO;AAC9C,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0BAAgB,+BAA+B,0BAAgB;;AAEhF,eAAe,eAAc;AAC7B;AACA;AACA,WAAW,kBAAQ;AACnB,YAAY,sBAAY,GAAG,qBAAqB,uBAAsB;;AAEtE,gBAAgB,sBAAY,GAAG,qCAAqC,uBAAsB;AAC1F,oBAAoB,cAAI;AACxB,sBAAsB,WAAU;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,cAAa;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,uBAAc;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,iBAAgB;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,eAAe;;AAEf;AACA;AACA,iBAAiB,uBAAc;AAC/B;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,mDAAmD;AACnD;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,4BAA4B,gCAAgC;AAC5D,UAAU;AACV;AACA;AACA,kBAAkB;;AAElB,eAAe,iBAAO;AACtB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,MAAM,iBAAO;AACb;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC/Qa;AACA;;AAErC;AACA,IAAI,wBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mBAAmB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wBAAe;AACvC;AACA,MAAM,kBAAQ;AACd;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;AACA;AACA;AACA,GAAG;AACH;;AAEA,uDAAe,QAAQ,EAAC;;;ACpExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;AC3BoB;AACM;AACP;;AAEvC;AACA,IAAI,sBAAgB;;AAEpB;AACA,IAAI,sBAAgB;;AAEpB;AACA,IAAI,eAAS;;AAEb;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAS;AACf,mBAAmB,sBAAgB;AACnC;AACA;AACA,cAAc,sBAAgB;AAC9B,eAAe,eAAS,IAAI,sBAAgB;;AAE5C,aAAa,aAAY;AACzB,OAAO,sBAAgB;;AAEvB,eAAe,UAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;AClDrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,iBAAiB,EAAC;;;ACtBW;AACJ;AACI;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA,wBAAwB,YAAW;AACnC;AACA;AACA,SAAS,YAAW;AACpB,6CAA6C,UAAS;AACtD,GAAG;AACH;;AAEA,sDAAe,gBAAgB,EAAC;;;ACxBsB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAgB;AACzB;;AAEA,2DAAe,YAAY,EAAC;;;ACpBS;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,sDAAe,OAAO,EAAC;;;AC3Be;AACE;AACL;AACE;AACS;AACd;AACK;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAO;AACb,WAAW,SAAQ,QAAQ,MAAK;AAChC;AACA,SAAS,kBAAQ,oBAAoB,UAAS,CAAC,aAAY,CAAC,kBAAQ;AACpE;;AAEA,qDAAe,MAAM,EAAC;;;AChCkB;AACD;;AAEvC;AACA,IAAI,8BAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,CAAC,mBAAS,UAAU,8BAAgB,EAAE,8BAAgB;AACrE;AACA;;AAEA,4DAAe,aAAa,EAAC;;;ACpCQ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,sDAAe,OAAO,EAAC;;;AC3BiB;AACE;AACA;AACI;AACA;AACX;AACE;AACI;AACJ;AACQ;;AAE7C;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA,IAAI,IAAI;AACR,WAAW;AACX;AACA,SAAS,mBAAS;AAClB,cAAc,iBAAO;AACrB,2BAA2B,kBAAQ,YAAY,sBAAY;;AAE3D,aAAa,aAAY;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAQ;AACrB,oBAAoB,oBAAU,SAAS,WAAU,CAAC,aAAY;AAC9D;AACA;AACA;AACA;AACA;AACA,eAAe,UAAS,GAAG,WAAU;AACrC;AACA,GAAG;AACH;AACA;;AAEA,wDAAe,mBAAS,EAAC;;;AChEmB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA,oBAAoB,YAAW;AAC/B;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AClBe;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,6BAA6B,YAAW;AACxC;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACnBe;AACR;AACE;AACQ;AACI;AACJ;AACX;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,WAAW,SAAQ;AACnB;AACA,2BAA2B,aAAY;AACvC;AACA;AACA,mBAAmB,cAAa;AAChC,mBAAmB,cAAa;AAChC,cAAc,gBAAe;AAC7B,YAAY,cAAa;;AAEzB,SAAS,UAAS;AAClB;;AAEA,mDAAe,IAAI,EAAC;;;AC9C0B;AACN;AACQ;AACA;AACX;AACe;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,2BAA2B,gBAAe;AAC1C;AACA,2BAA2B,aAAY;AACvC;AACA;AACA,mBAAmB,cAAa;AAChC,YAAY,cAAa,aAAa,cAAa;;AAEnD,SAAS,UAAS;AAClB;;AAEA,sDAAe,OAAO,EAAC;;;ACxCuB;AACN;AACY;AACJ;AACX;;AAErC;AACA,IAAI,qBAAW;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,0BAA0B,qBAAW;AACrC;AACA,2BAA2B,aAAY;AACvC;AACA;AACA,mBAAmB,cAAa;AAChC,cAAc,gBAAe,aAAa,cAAa;;AAEvD,SAAS,UAAS;AAClB;;AAEA,wDAAe,SAAS,EAAC;;;AC1CqB;AACN;AACE;AACL;AACA;AACK;AACM;AACT;AACF;;AAErC;AACA;AACA;;AAEA;AACA,IAAI,gBAAO;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,MAAM,kBAAQ;AACd;AACA,mCAAmC,mBAAS;AAC5C,uCAAuC,aAAY;AACnD;AACA,WAAW,kBAAQ;;AAEnB;AACA,MAAM,WAAU;AAChB,qBAAqB,cAAa;AAClC;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAU;AAC/B;AACA;AACA;AACA;AACA,MAAM,UAAS;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAQ;AACd;AACA;AACA;;AAEA;AACA,6CAA6C,kBAAQ,CAAC,gBAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,aAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC9GG;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAG;AACZ;;AAEA,oDAAe,KAAK,EAAC;;;ACrB6B;;AAElD;AACA;AACA,QAAQ;AACR,OAAO;AACP,OAAO;AACP,SAAS;AACT,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,uBAAuB,eAAc;;AAErC,sDAAe,gBAAgB,EAAC;;;ACpBK;AACiB;;AAEtD;AACA,6CAA6C;AAC7C;;AAEA;AACA,8BAA8B;AAC9B,SAAS,QAAQ,QAAQ,UAAU,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,mCAAmC;AACnC;AACA;AACA,SAAS,iBAAQ;AACjB,WAAW,kBAAQ;AACnB;AACA,oCAAoC,iBAAgB;AACpD;AACA;;AAEA,uDAAe,iBAAQ,EAAC;;;ACjCI;AACC;AACa;;AAE1C;AACA,IAAI,mBAAQ;;AAEZ;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA,kBAAkB,IAAG,SAAS,WAAU,KAAK,IAAG,gBAAgB,mBAAQ,IAAI,cAAI;AAChF,aAAa,IAAG;AAChB;;AAEA,+CAAe,SAAS,EAAC;;;AClBa;AACU;AACQ;AAClB;AACE;AACE;;AAE1C;AACA,IAAI,0BAAgB;;AAEpB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB,cAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,kBAAiB;AAChC;AACA,qBAAqB,0BAAgB;AACrC,gCAAgC,UAAS;AACzC;AACA,aAAa,WAAU;AACvB;AACA;AACA,eAAe,SAAQ;AACvB,eAAe,SAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACvEoB;AACN;AACA;AACiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,SAAQ,CAAC,YAAW,YAAY,2BAAiB;AAC1D,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACzBuB;AACE;AACR;AACA;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ,MAAM,QAAQ,IAAI,QAAQ;AAClD,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA,cAAc,SAAQ;AACtB,iBAAiB,cAAI;AACrB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,SAAQ,CAAC,YAAW,YAAY,2BAAiB,SAAS,aAAY;AAC/E,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACtCqB;AACN;AACA;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD,mBAAmB,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AACpE;AACA,gBAAgB,SAAQ;AACxB,mBAAmB,cAAI;AACvB;AACA,SAAS,SAAQ,CAAC,YAAW,YAAY,2BAAiB;AAC1D,CAAC;;AAED,wDAAe,SAAS,EAAC;;;ACjCa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAQ;AAC3C;;AAEA,mDAAe,IAAI,EAAC;;;ACxB0B;AACR;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC/C,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA,mCAAmC,SAAQ,QAAQ,aAAY;AAC/D;;AAEA,qDAAe,MAAM,EAAC;;;AC9BgB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AAC5E;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA;AACA;AACA,mCAAmC,SAAQ;AAC3C;;AAEA,uDAAe,QAAQ,EAAC;;;AC3Ba;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,uDAAe,QAAQ,EAAC;;;AC3BgB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA,WAAW,QAAQ,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ,SAAS;AAC5B;AACA;AACA,iCAAiC,UAAS;AAC1C;;AAEA,oDAAe,KAAK,EAAC;;;ACjCuB;AACN;AACQ;AACN;AACe;;AAEvD;AACA,IAAI,eAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAW;AACrB,QAAQ,2BAAiB;AACzB,eAAe,eAAS;AACxB;AACA;AACA,GAAG;AACH,SAAS,UAAS;AAClB,WAAW,SAAQ,QAAQ,aAAY;AACvC,GAAG;AACH;;AAEA,oDAAe,KAAK,EAAC;;;AC5CW;AACM;AACP;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAK;AACpB;AACA;AACA;AACA,SAAS,SAAQ;AACjB,WAAW,MAAK;AAChB,GAAG;AACH;;AAEA,wDAAe,SAAS,EAAC;;;ACtCW;AACA;;AAEpC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,QAAO,uBAAuB,QAAO;AAC9C;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA,mCAAmC,WAAU,eAAe,aAAY;AACxE;;AAEA,qDAAe,MAAM,EAAC;;;AClCoB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,mCAAmC,WAAU,eAAe,aAAY;AACxE;;AAEA,yDAAe,UAAU,EAAC;;;AChC4B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC1BiB;AACT;;AAEjC;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,+BAA+B,WAAU,SAAS,gBAAM;AACxD;;AAEA,uDAAe,QAAQ,EAAC;;;AC/B0B;AACZ;AACiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB,SAAS,2BAAiB;AAC1B,MAAM,eAAc;AACpB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;AC9BuB;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,iBAAO,CAAC,aAAY;AAC7B;;AAEA,mDAAe,IAAI,EAAC;;;AC7BwB;AACI;AACd;AACI;AACF;AACP;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB;AACA;AACA;AACA,uCAAuC,OAAO,OAAM;;AAEpD;AACA,yBAAyB,YAAW,MAAM,QAAO;AACjD;AACA;AACA;AACA;AACA,YAAY,cAAI;AAChB;AACA;AACA,GAAG;AACH,aAAa,cAAa;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC/CM;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,eAAK;AACd;;AAEA,2DAAe,YAAY,EAAC;;;ACjCgB;AACI;AACb;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAW;AAClC;AACA;AACA,oBAAoB,YAAW;AAC/B;AACA;AACA;AACA,cAAc,cAAI;AAClB,eAAe,iBAAO;AACtB;AACA,KAAK;AACL,eAAe,cAAa;AAC5B;AACA,mBAAmB,iBAAO;AAC1B;;AAEA,6DAAe,cAAc,EAAC;;;AC3CoB;AACN;AACN;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,oBAAoB,SAAQ;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,eAAc;AACtC;AACA;AACA;AACA,SAAS,SAAQ,CAAC,YAAW;AAC7B;;AAEA,6CAAe,OAAO,EAAC;;;ACnCqB;AACN;AACF;AACmB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAQ;AAClB,SAAS,QAAO,CAAC,YAAW,SAAS,2BAAiB;AACtD,CAAC;;AAED,kDAAe,GAAG,EAAC;;;AC3ByB;AACE;AACR;AACF;AACmB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,MAAM,QAAQ,IAAI,QAAQ;AAChD,YAAY,QAAQ;AACpB;AACA,YAAY,SAAQ;AACpB,iBAAiB,cAAI;AACrB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,QAAO,CAAC,YAAW,SAAS,2BAAiB,GAAG,aAAY;AACrE,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACtCuB;AACN;AACF;AACmB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD,mBAAmB,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA,cAAc,SAAQ;AACtB,mBAAmB,cAAI;AACvB;AACA,SAAS,QAAO,CAAC,YAAW,SAAS,2BAAiB;AACtD,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACjCe;AACP;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,UAAU,SAAQ,CAAC,eAAK;;AAExB,kDAAe,GAAG,EAAC;;;ACrBnB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACtBe;AACI;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,cAAa,4BAA4B,YAAW;AAC7D;;AAEA,wDAAe,SAAS,EAAC;;;ACvBW;AACY;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW,OAAO,QAAQ,QAAQ,IAAI,QAAQ;AAC9C;AACA;AACA,SAAS,cAAa,4BAA4B,QAAO;AACzD;;AAEA,4DAAe,aAAa,EAAC;;;ACtBS;AACC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,SAAQ;AACtB;AACA;;AAEA;AACA,SAAS,mBAAS;AAClB,CAAC;;AAED,sDAAe,OAAO,EAAC;;;AC/BQ;AACI;AACF;AACQ;AACI;AACI;AACpB;AACU;AACU;AACV;AACV;AACU;AACQ;AAChB;AACI;AACQ;AACE;AACN;AACV;AACM;AACA;AACU;AACI;AACI;AACxB;AACA;AACc;AAChB;AACE;AACM;AACI;AACI;AACV;AACA;AACE;AACJ;AACY;AACI;AACA;AACI;AACI;AACA;AACd;AACI;AAChB;AACA;AACU;AACU;AACV;AACR;AACI;AACI;AACV;AACI;AACI;AACN;AACQ;AACJ;AACR;AACI;AACI;AACR;AACY;AACQ;AACZ;;AAEnC,kDAAe;AACf,OAAO,0BAAS,2BAAQ,8BAAY,oCAAc;AAClD,gBAAgB,gCAAM,2BAAW,qCAAgB,qCAAW;AAC5D,MAAM,2BAAW,oCAAe,gCAAO,yBAAS;AAChD,aAAa,qCAAc,mCAAW,2BAAM,yBAAS;AACrD,SAAS,iCAAc,wCAAgB,4CAAkB,kCAAM;AAC/D,MAAM,6BAAa,4BAAK,qBAAM,yBAAS;AACvC,WAAW,kCAAa,+BAAQ,0BAAQ,2BAAS;AACjD,OAAO,8BAAa,sCAAe,wCAAe,0CAAiB;AACnE,mBAAmB,gDAAmB,yCAAY,oCAAc,8BAAM;AACtE,MAAM,2BAAW,qCAAgB,qCAAW,4BAAO;AACnD,SAAS,8BAAW,2BAAM,wBAAQ,4BAAU;AAC5C,OAAO,4BAAW,8BAAS,wBAAK,sBAAO;AACvC,SAAS,wBAAK,0BAAW,oCAAe,kCAAS;AACjD,CAAC,EAAC;;;AChFiC;AACN;AACU;AACR;AACE;AACJ;AACQ;AACF;AACQ;AACE;AACV;AACU;AACV;AACE;AACE;AACR;AACJ;AACQ;AACI;AACN;AACU;AACV;AACA;AACQ;AACN;AACN;AACA;AACI;;AAEjC,uDAAe;AACf,SAAS,yBAAM,8BAAW,+BAAO,yBAAQ;AACzC,MAAM,0BAAU,6BAAS,gCAAa,qCAAc;AACpD,SAAS,iCAAc,iCAAS,6BAAU,+BAAW;AACrD,OAAO,sBAAK,wBAAS,8BAAW,6BAAQ;AACxC,aAAa,+BAAQ,0BAAQ,8BAAY,+BAAS;AAClD,MAAM,sBAAM,wBAAQ;AACpB,CAAC,EAAC;;;ACpCyB;;AAE3B,iDAAe;AACf,KAAK;AACL,CAAC,EAAC;;;ACJ6B;AACJ;AACM;AACJ;AACM;AACJ;AACU;AACJ;AACN;AACA;AACF;AACM;AACF;AACJ;AACQ;AACF;AACU;AACd;AACF;AACI;AACI;AACN;AACF;;AAE7B,qDAAe;AACf,OAAO,sBAAK,uBAAQ,wBAAM,yBAAS;AACnC,OAAO,6BAAY,gCAAU,2BAAO,wBAAO;AAC3C,MAAM,yBAAS,2BAAQ,wBAAM,0BAAU;AACvC,SAAS,iCAAc,+BAAO,uBAAM,wBAAQ;AAC5C,UAAU,2BAAO,uBAAM;AACvB,CAAC,EAAC;;;AC9BqC;AACR;AACQ;AACQ;AACR;AACE;AAChB;AACA;AACE;AACgB;AACR;AACY;AACJ;AACY;AAChB;AACF;AACJ;AACM;AACJ;AACA;AACQ;AACR;AACE;AACI;AACF;AACF;AACN;AACI;AACQ;AACZ;AACM;AACN;AACE;AACI;AACA;AACQ;AACE;AACV;AACU;AAChB;AACM;AACA;AACQ;AACF;AACJ;AACA;AACd;AACE;AACQ;AACE;AACE;AACF;AACA;AACU;AACA;AACV;;AAErC,iDAAe;AACf,WAAW,4BAAO,4BAAW,oCAAe,oCAAW;AACvD,YAAY,0BAAI,kBAAI,mBAAK,4BAAa;AACtC,SAAS,kCAAe,sCAAa,0CAAmB,wCAAW;AACnE,UAAU,4BAAQ,6BAAW,8BAAS,4BAAS;AAC/C,aAAa,gCAAS,6BAAU,gCAAY,iCAAW;AACvD,UAAU,2BAAO,0BAAS,gCAAa,8BAAO;AAC9C,UAAU,2BAAO,yBAAQ,4BAAU,8BAAU;AAC7C,cAAc,uCAAe,mCAAU,mCAAe,gCAAO;AAC7D,UAAU,8BAAU,kCAAc,qCAAa,kCAAW;AAC1D,WAAW,yBAAI,mBAAK,wBAAS,6BAAU;AACvC,WAAW,+BAAU,8BAAU,mCAAe,wCAAe;AAC7D,UAAU;AACV,CAAC,EAAC;;;ACtEyB;AACE;AACI;AACF;AACJ;AACI;AACF;AACI;AACN;AACI;AACM;AACN;AACM;AACV;AACI;;AAE/B,iDAAe;AACf,KAAK,qBAAM,wBAAQ,yBAAO,sBAAK;AAC/B,OAAO,uBAAM,wBAAQ,uBAAK,sBAAO;AACjC,UAAU,2BAAO,2BAAU,yBAAK,sBAAO;AACvC,CAAC,EAAC;;;ACpB6B;AACI;AACF;;AAEjC,mDAAe;AACf,OAAO,0BAAS,2BAAQ;AACxB,CAAC,EAAC;;;ACN+B;AACI;AACQ;AACJ;AAChB;AACQ;AACI;AACQ;AACV;AACI;AACN;AACQ;AACN;AACQ;AACZ;AACU;AACR;AACU;AACJ;AACI;AAChB;AACA;AACI;AACE;AACI;AACJ;AACJ;AACI;AACE;AACI;AACR;AACQ;AACV;AACI;AACJ;AACI;AACA;AACN;AACQ;AACA;AACI;AACA;AACR;AACE;AACQ;AACR;AACI;;AAErC,mDAAe;AACf,QAAQ,4BAAU,kCAAc,oCAAY,0BAAI;AAChD,QAAQ,4BAAU,kCAAc,iCAAS,8BAAW;AACpD,QAAQ,gCAAY,iCAAS,gCAAa,8BAAO;AACjD,YAAY,8BAAQ,+BAAa,kCAAW,kCAAa;AACzD,KAAK,oBAAK,sBAAO,yBAAQ,4BAAU;AACnC,QAAQ,wBAAM,wBAAQ,2BAAS,8BAAW;AAC1C,OAAO,4BAAW,2BAAM,wBAAQ,wBAAM;AACtC,QAAQ,0BAAQ,uBAAK,wBAAS,4BAAS;AACvC,WAAW,gCAAW,4BAAO,yBAAQ,8BAAY;AACjD,QAAQ,4BAAU;AAClB,CAAC,EAAC;;;AC3D8B;AACD;AACE;AACO;AACX;AACE;AACW;AACf;AACE;AACY;AACR;AACK;AACH;AACU;;AAE7C,gDAAe;AACf,IAAI,4BAAO,yBAAQ,gBAAQ,qBAAM;AACjC,OAAO,gBAAS,+BAAK,qBAAM,4BAAY;AACvC,QAAQ,+BAAO,iCAAS,sCAAc;AACtC,CAAC,EAAC;;;ACnBqC;AACE;AACR;AACI;AACJ;AACY;AACN;AACA;AACE;AACd;AACM;AACI;AACA;AACJ;AACE;AACI;AACR;AACQ;AACE;AACJ;AACgB;AAClB;AACA;AACN;AACM;AACI;AACF;AACA;AACE;AACE;AACV;;AAE/B,mDAAe;AACf,WAAW,iCAAY,8BAAQ,4BAAU,4BAAQ;AACjD,cAAc,mCAAW,gCAAW,iCAAY,2BAAK;AACrD,QAAQ,4BAAU,8BAAU,4BAAQ,2BAAS;AAC7C,WAAW,4BAAO,4BAAW,iCAAY,gCAAU;AACnD,kBAAkB,qCAAS,4BAAS,yBAAM,yBAAS;AACnD,WAAW,+BAAU,8BAAU,+BAAW,iCAAY;AACtD,OAAO;AACP,CAAC,EAAC;;;ACxCiC;AACA;AACN;AACQ;AACA;AACE;AACV;AACU;AACF;AACA;AACF;AACgB;AAClB;AACI;AACN;AACF;AACI;AACJ;AACU;AACF;AACA;AACI;AACV;AACU;AACF;AACA;AACE;AACA;AACJ;AACN;AACE;AACI;;AAErC,iDAAe;AACf,SAAS,4BAAS,yBAAM,0BAAU,8BAAU;AAC5C,WAAW,2BAAM,2BAAW,+BAAU,8BAAU;AAChD,SAAS,oCAAiB,mCAAQ,4BAAU,2BAAO;AACnD,MAAM,wBAAQ,wBAAM,2BAAW,+BAAU;AACzC,UAAU,gCAAY,6BAAO,6BAAY,iCAAW;AACpD,WAAW,iCAAY,kCAAY,gCAAU,2BAAO;AACpD,QAAQ,4BAAU;AAClB,CAAC,EAAC;;;ACzC0C;AACJ;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,YAAW;AAC9B,uBAAuB,UAAS;AAChC;AACA;AACA,yBAAyB,UAAS;AAClC;AACA,qBAAqB,UAAS;AAC9B;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACtBmB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,qBAAqB,YAAW;AAChC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACtB3B;AACA,IAAI,kBAAS;AACb,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC,qCAAqC;AACrC,8BAA8B,kBAAS,qBAAqB;AAC5D,gCAAgC,kBAAS,qBAAqB;AAC9D;AACA;AACA,WAAW;AACX;;AAEA,6CAAe,OAAO,EAAC;;;AChC+B;AAClB;AACD;;AAEnC;AACA;AACA;;AAEA;AACA,IAAI,oBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA,cAAc,iBAAO;AACrB;AACA;AACA,aAAa,QAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAS;;AAE3B;AACA,WAAW,iBAAgB;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACpEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AACU;AACZ;AACI;AACJ;AACA;AACI;AACA;AACN;AACM;AACJ;AACe;AACI;AACd;AACM;AACA;AACE;AACM;AACN;AACI;AACR;AACQ;AACT;AACF;AACE;AACR;AACA;AACW;AACI;AACJ;AACR;AACC;AACO;AACX;AACU;AACC;;AAExC;AACA;;AAEA;AACA,IAAI,iCAAkB;;AAEtB;AACA,IAAI,+BAAgB;AACpB;;AAEA;AACA,IAAI,+BAAgB;;AAEpB;AACA,IAAI,yBAAU;AACd,IAAI,0BAAW;;AAEf;AACA,IAAI,6BAAc,GAAG,0BAAW;;AAEhC;AACA,IAAI,0BAAW,GAAG,OAAM,GAAG,OAAM;;AAEjC;AACA,IAAI,wBAAS;AACb,IAAI,wBAAS;;AAEb;AACA,IAAI,oBAAK;AACT;AACA;AACA,kBAAkB,kBAAQ;AAC1B,2BAA2B,cAAI;AAC/B,iDAAiD,cAAa;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,eAAM;;AAER;AACA,aAAM,SAAS,gBAAI;AACnB,aAAM,OAAO,gBAAI;AACjB,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,gBAAgB,cAAM;AAC5B,aAAM,cAAc,cAAM;AAC1B,aAAM,MAAM,cAAM;AAClB,aAAM,UAAU,gBAAI;AACpB,aAAM,QAAQ,gBAAI;AAClB,aAAM,WAAW,YAAI;AACrB,aAAM,WAAW,gBAAI;AACrB,aAAM,aAAa,YAAI;AACvB,aAAM,SAAS,WAAG;AAClB,aAAM,SAAS,aAAK;AACpB,aAAM,WAAW,aAAK;AACtB,aAAM,UAAU,aAAK;AACrB,aAAM,QAAQ,YAAI;AAClB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,kBAAU;AAC3B,aAAM,UAAU,cAAM;AACtB,aAAM,SAAS,gBAAI;AACnB,aAAM,cAAc,gBAAI;AACxB,aAAM,YAAY,gBAAI;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,gBAAgB,cAAM;AAC5B,aAAM,SAAS,gBAAI;AACnB,aAAM,SAAS,gBAAI;AACnB,aAAM,cAAc,aAAK;AACzB,aAAM,gBAAgB,aAAK;AAC3B,aAAM,kBAAkB,aAAK;AAC7B,aAAM,QAAQ,aAAK;AACnB,aAAM,aAAa,aAAK;AACxB,aAAM,kBAAkB,aAAK;AAC7B,aAAM,aAAa,aAAK;AACxB,aAAM,QAAQ,aAAK;AACnB,aAAM,UAAU,kBAAU;AAC1B,aAAM,WAAW,kBAAU;AAC3B,aAAM,eAAe,kBAAU;AAC/B,aAAM,gBAAgB,kBAAU;AAChC,aAAM,WAAW,aAAK;AACtB,aAAM,eAAe,aAAK;AAC1B,aAAM,gBAAgB,aAAK;AAC3B,aAAM,QAAQ,gBAAI;AAClB,aAAM,QAAQ,YAAI;AAClB,aAAM,aAAa,YAAI;AACvB,aAAM,aAAa,aAAK;AACxB,aAAM,aAAa,cAAM;AACzB,aAAM,eAAe,cAAM;AAC3B,aAAM,WAAW,kBAAU;AAC3B,aAAM,WAAW,aAAK;AACtB,aAAM,gBAAgB,aAAK;AAC3B,aAAM,kBAAkB,aAAK;AAC7B,aAAM,oBAAoB,aAAK;AAC/B,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,aAAa,kBAAU;AAC7B,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,kBAAU;AACzB,aAAM,QAAQ,cAAI;AAClB,aAAM,UAAU,cAAM;AACtB,aAAM,OAAO,kBAAU;AACvB,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,WAAW,YAAI;AACrB,aAAM,mBAAmB,YAAI;AAC7B,aAAM,WAAW,gBAAI;AACrB,aAAM,SAAS,cAAM;AACrB,aAAM,aAAa,cAAM;AACzB,aAAM,UAAU,YAAI;AACpB,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,oBAAK;AACpB,aAAM,UAAU,gBAAM;AACtB,aAAM,UAAU,YAAI;AACpB,aAAM,QAAQ,cAAM;AACpB,aAAM,UAAU,cAAM;AACtB,aAAM,QAAQ,gBAAI;AAClB,aAAM,WAAW,kBAAU;AAC3B,aAAM,QAAQ,YAAI;AAClB,aAAM,YAAY,gBAAI;AACtB,aAAM,aAAa,YAAI;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,gBAAI;AACrB,aAAM,gBAAgB,gBAAI;AAC1B,aAAM,aAAa,kBAAU;AAC7B,aAAM,QAAQ,cAAM;AACpB,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,cAAc,YAAI;AACxB,aAAM,QAAQ,aAAK;AACnB,aAAM,WAAW,aAAK;AACtB,aAAM,aAAa,aAAK;AACxB,aAAM,eAAe,aAAK;AAC1B,aAAM,UAAU,aAAK;AACrB,aAAM,SAAS,YAAI;AACnB,aAAM,cAAc,YAAI;AACxB,aAAM,SAAS,gBAAI;AACnB,aAAM,UAAU,kBAAU;AAC1B,aAAM,UAAU,aAAK;AACrB,aAAM,QAAQ,gBAAI;AAClB,aAAM,WAAW,aAAK;AACtB,aAAM,cAAc,kBAAU;AAC9B,aAAM,OAAO,cAAM;AACnB,aAAM,WAAW,cAAM;AACvB,aAAM,WAAW,kBAAU;AAC3B,aAAM,SAAS,aAAK;AACpB,aAAM,UAAU,kBAAU;AAC1B,aAAM,cAAc,aAAK;AACzB,aAAM,gBAAgB,aAAK;AAC3B,aAAM,SAAS,cAAM;AACrB,aAAM,UAAU,gBAAI;AACpB,aAAM,QAAQ,aAAK;AACnB,aAAM,QAAQ,aAAK;AACnB,aAAM,aAAa,aAAK;AACxB,aAAM,kBAAkB,aAAK;AAC7B,aAAM,aAAa,aAAK;AACxB,aAAM,OAAO,WAAG;AAChB,aAAM,YAAY,gBAAI;AACtB,aAAM,QAAQ,cAAI;AAClB,aAAM,WAAW,YAAI;AACrB,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,UAAU,YAAI;AACpB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,aAAa,cAAM;AACzB,aAAM,SAAS,gBAAI;AACnB,aAAM,SAAS,aAAK;AACpB,aAAM,WAAW,aAAK;AACtB,aAAM,aAAa,aAAK;AACxB,aAAM,QAAQ,aAAK;AACnB,aAAM,UAAU,aAAK;AACrB,aAAM,YAAY,aAAK;AACvB,aAAM,SAAS,cAAM;AACrB,aAAM,SAAS,aAAK;AACpB,aAAM,aAAa,aAAK;AACxB,aAAM,UAAU,cAAM;AACtB,aAAM,cAAc,cAAM;AAC1B,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,WAAW,aAAK;AACtB,aAAM,SAAS,cAAM;AACrB,aAAM,QAAQ,gBAAI;AAClB,aAAM,OAAO,aAAK;AAClB,aAAM,SAAS,aAAK;AACpB,aAAM,WAAW,aAAK;AACtB,aAAM,OAAO,aAAK;AAClB,aAAM,aAAa,aAAK;AACxB,aAAM,iBAAiB,aAAK;AAC5B,aAAM,WAAW,aAAK;;AAEtB;AACA,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,UAAU,cAAM;AACtB,aAAM,cAAc,cAAM;;AAE1B;AACA,oBAAK,CAAC,aAAM,EAAE,aAAM;;AAEpB;AACA,aAAM,OAAO,YAAI;AACjB,aAAM,WAAW,YAAI;AACrB,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;AAC1B,aAAM,QAAQ,YAAI;AAClB,aAAM,SAAS,cAAM;AACrB,aAAM,SAAS,YAAI;AACnB,aAAM,aAAa,YAAI;AACvB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,aAAa,YAAI;AACvB,aAAM,cAAc,YAAI;AACxB,aAAM,UAAU,cAAM;AACtB,aAAM,aAAa,YAAI;AACvB,aAAM,UAAU,YAAI;AACpB,aAAM,YAAY,cAAM;AACxB,aAAM,MAAM,YAAI;AAChB,aAAM,UAAU,cAAM;AACtB,aAAM,gBAAgB,cAAM;AAC5B,aAAM,SAAS,kBAAU;AACzB,aAAM,QAAQ,kBAAU;AACxB,aAAM,aAAa,aAAK;AACxB,aAAM,WAAW,cAAM;AACvB,aAAM,YAAY,kBAAU;AAC5B,aAAM,iBAAiB,aAAK;AAC5B,aAAM,eAAe,cAAM;AAC3B,aAAM,SAAS,YAAI;AACnB,aAAM,WAAW,kBAAU;AAC3B,aAAM,gBAAgB,kBAAU;AAChC,aAAM,SAAS,cAAM;AACrB,aAAM,cAAc,cAAM;AAC1B,aAAM,UAAU,cAAM;AACtB,aAAM,eAAe,cAAM;AAC3B,aAAM,OAAO,cAAM;AACnB,aAAM,MAAM,YAAI;AAChB,aAAM,OAAO,YAAI;AACjB,aAAM,OAAO,cAAM;AACnB,aAAM,SAAS,cAAM;AACrB,aAAM,QAAQ,aAAK;AACnB,aAAM,YAAY,kBAAQ;AAC1B,aAAM,YAAY,kBAAU;AAC5B,aAAM,WAAW,aAAK;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,UAAU,cAAM;AACtB,aAAM,eAAe,YAAI;AACzB,aAAM,WAAW,iBAAO;AACxB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,eAAe,YAAI;AACzB,aAAM,qBAAqB,YAAI;AAC/B,aAAM,aAAa,YAAI;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,UAAU,YAAI;AACpB,aAAM,aAAa,YAAI;AACvB,aAAM,WAAW,YAAI;AACrB,aAAM,WAAW,YAAI;AACrB,aAAM,eAAe,YAAI;AACzB,aAAM,WAAW,YAAI;AACrB,aAAM,YAAY,YAAI;AACtB,aAAM,cAAc,YAAI;AACxB,aAAM,aAAa,YAAI;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,YAAI;AACnB,aAAM,WAAW,YAAI;AACrB,aAAM,eAAe,YAAI;AACzB,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,YAAI;AACnB,aAAM,UAAU,YAAI;AACpB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,kBAAQ;AAC1B,aAAM,gBAAgB,YAAI;AAC1B,aAAM,iBAAiB,YAAI;AAC3B,aAAM,YAAY,YAAI;AACtB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,gBAAgB,YAAI;AAC1B,aAAM,eAAe,YAAI;AACzB,aAAM,aAAa,YAAI;AACvB,aAAM,aAAa,YAAI;AACvB,aAAM,QAAQ,aAAK;AACnB,aAAM,aAAa,cAAM;AACzB,aAAM,QAAQ,cAAI;AAClB,aAAM,eAAe,aAAK;AAC1B,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;AAC1B,aAAM,MAAM,YAAI;AAChB,aAAM,OAAO,YAAI;AACjB,aAAM,OAAO,YAAI;AACjB,aAAM,SAAS,YAAI;AACnB,aAAM,QAAQ,YAAI;AAClB,aAAM,UAAU,YAAI;AACpB,aAAM,OAAO,YAAI;AACjB,aAAM,SAAS,YAAI;AACnB,aAAM,aAAa,YAAI;AACvB,aAAM,aAAa,YAAI;AACvB,aAAM,cAAc,YAAI;AACxB,aAAM,cAAc,YAAI;AACxB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,OAAO,aAAK;AAClB,aAAM,QAAQ,YAAI;AAClB,aAAM,OAAO,YAAI;AACjB,aAAM,OAAO,cAAM;AACnB,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,YAAY,cAAM;AACxB,aAAM,UAAU,cAAM;AACtB,aAAM,UAAU,kBAAU;AAC1B,aAAM,eAAe,kBAAU;AAC/B,aAAM,UAAU,cAAM;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,UAAU,cAAM;AACtB,aAAM,SAAS,YAAI;AACnB,aAAM,UAAU,kBAAU;AAC1B,aAAM,QAAQ,kBAAU;AACxB,aAAM,aAAa,cAAM;AACzB,aAAM,QAAQ,kBAAU;AACxB,aAAM,eAAe,aAAK;AAC1B,aAAM,iBAAiB,aAAK;AAC5B,aAAM,iBAAiB,aAAK;AAC5B,aAAM,mBAAmB,aAAK;AAC9B,aAAM,qBAAqB,aAAK;AAChC,aAAM,qBAAqB,aAAK;AAChC,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;AAC1B,aAAM,YAAY,YAAI;AACtB,aAAM,OAAO,YAAI;AACjB,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,cAAM;AACxB,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,YAAI;AACtB,aAAM,aAAa,mBAAS;AAC5B,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,QAAQ,cAAM;AACpB,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,YAAY,cAAM;AACxB,aAAM,YAAY,cAAM;AACxB,aAAM,YAAY,YAAI;AACtB,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;;AAE1B;AACA,aAAM,QAAQ,kBAAU;AACxB,aAAM,aAAa,kBAAU;AAC7B,aAAM,SAAS,aAAK;;AAEpB,oBAAK,CAAC,aAAM;AACZ;AACA,EAAE,WAAU,CAAC,aAAM;AACnB,SAAS,6BAAc,MAAM,aAAM;AACnC;AACA;AACA,GAAG;AACH;AACA,CAAC,OAAO,gBAAgB;;AAExB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,aAAM;AACN,CAAC,aAAM,oBAAoB,cAAM,+BAA+B,aAAM;;AAEtE;AACA,UAAS;AACT,EAAE,aAAM,2BAA2B,aAAM;AACzC,CAAC;;AAED;AACA,UAAS;AACT,EAAE,YAAW;AACb,8BAA8B,wBAAS,CAAC,mBAAS;;AAEjD;AACA,YAAY,YAAW;AACvB;;AAEA;AACA,6BAA6B,wBAAS;AACtC,MAAM;AACN;AACA,gBAAgB,wBAAS,IAAI,+BAAgB;AAC7C;AACA,OAAO;AACP;AACA;AACA;;AAEA,EAAE,YAAW;AACb;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT;AACA,yBAAyB,+BAAgB;;AAEzC,EAAE,YAAW;AACb;AACA;AACA,kBAAkB,aAAY;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT;;AAEA,EAAE,YAAW;AACb;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT;;AAEA,EAAE,YAAW;AACb,mCAAmC,YAAW;AAC9C;AACA,CAAC;;AAED,YAAW;AACX,qBAAqB,kBAAQ;AAC7B;;AAEA,YAAW;AACX;AACA;;AAEA,YAAW;AACX;AACA;;AAEA,YAAW,uBAAuB,SAAQ;AAC1C;AACA,eAAe,YAAW;AAC1B;AACA;AACA,WAAW,WAAU;AACrB,GAAG;AACH,CAAC;;AAED,YAAW;AACX,qBAAqB,gBAAM,CAAC,aAAY;AACxC;;AAEA,YAAW;AACX,UAAU,mBAAS;;AAEnB;AACA;AACA,eAAe,YAAW;AAC1B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,UAAU,mBAAS;AACnB;AACA;AACA;AACA;;AAEA,YAAW;AACX;AACA;;AAEA,YAAW;AACX,mBAAmB,+BAAgB;AACnC;;AAEA;AACA,WAAU,CAAC,YAAW;AACtB;AACA;AACA,mBAAmB,aAAM;AACzB;;AAEA;AACA;AACA;AACA,EAAE,aAAM;AACR;AACA;AACA,kCAAkC,YAAW;AAC7C;AACA,4BAA4B,iBAAO;;AAEnC;AACA,oCAAoC,aAAM,EAAE,UAAS;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,YAAW;AAChD;AACA,gCAAgC,QAAQ,cAAI,+CAA+C;AAC3F,iBAAiB,cAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT,aAAa,yBAAU;AACvB;AACA;;AAEA,EAAE,aAAM;AACR;AACA;AACA;AACA,wBAAwB,iBAAO;AAC/B;AACA;AACA,wBAAwB,iBAAO;AAC/B,KAAK;AACL;AACA,CAAC;;AAED;AACA,WAAU,CAAC,YAAW;AACtB,mBAAmB,aAAM;AACzB;AACA;AACA,SAAS,6BAAc,MAAM,UAAS;AACtC,MAAM,UAAS;AACf;AACA,IAAI,UAAS,aAAa,wCAAwC;AAClE;AACA,CAAC;;AAED,UAAS,CAAC,aAAY,YAAY,iCAAkB;AACpD;AACA;AACA,CAAC;;AAED;AACA,YAAW,mBAAmB,UAAS;AACvC,YAAW,qBAAqB,YAAW;AAC3C,YAAW,mBAAmB,UAAS;;AAEvC;AACA,aAAM,gBAAgB,WAAG;AACzB,aAAM,mBAAmB,WAAG;AAC5B,aAAM,oBAAoB,WAAG;AAC7B,aAAM,kBAAkB,WAAG;AAC3B,aAAM,mBAAmB,WAAG;AAC5B,aAAM,qBAAqB,WAAG;AAC9B,aAAM,oBAAoB,aAAM,qBAAqB,aAAM,mBAAmB,WAAG;;AAEjF;AACA,aAAM,mBAAmB,aAAM;;AAE/B,IAAI,0BAAW;AACf,EAAE,aAAM,WAAW,0BAAW,IAAI,WAAG;AACrC;;AAEA,mDAAe,aAAM,EAAC;;;ACloBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0C;AACI;AACJ;AACM;AACI;AACQ;AACJ;AAChB;AACU;AACF;AACJ;AACM;AACA;AACI;AACE;AACF;AACV;AACE;AACA;AACA;AACA;AACQ;AACQ;AACR;AACN;AACE;AACF;AACJ;AACQ;AACI;AACJ;AACF;AACF;AACF;AACU;AACJ;AACJ;AACM;AACF;AACQ;AACd;AACA;AACU;AACI;AACI;AAChB;AACJ;AACU;AACU;AACV;AACV;AACU;AACF;AACF;AACI;AACd;AACQ;AACY;AACd;AACE;AACQ;AACZ;AACI;AACJ;AACU;AACJ;AACE;AACU;AACJ;AACZ;AACI;AACQ;AACE;AACV;AACQ;AACE;AAChB;AACE;AACF;AACU;AACJ;AACU;AACd;AACU;AACR;AACU;AACJ;AACA;AACI;AAChB;AACQ;AACV;AACE;AACA;AACI;AACF;AACQ;AACF;AACE;AACF;AACA;AACU;AACI;AACI;AACpB;AACI;AACJ;AACM;AACI;AACR;AACY;AACJ;AACY;AAChB;AACF;AACJ;AACM;AACJ;AACA;AACQ;AACR;AACE;AACI;AACF;AACF;AACN;AACI;AACQ;AACZ;AACM;AACN;AACE;AACI;AACA;AACQ;AACE;AACV;AACU;AAChB;AACM;AACA;AACQ;AACF;AACJ;AACA;AACF;AACR;AACU;AACR;AACF;AACI;AACJ;AACc;AACH;AACD;AACE;AAChB;AACE;AACA;AACQ;AACI;AACJ;AACgB;AACxB;AACI;AACF;AACI;AACE;AACJ;AACQ;AACN;AACI;AACV;AACI;AACA;AACM;AACJ;AACJ;AACA;AACF;AACA;AACM;AACJ;AACI;AACJ;AACM;AACN;AACQ;AACE;AACF;AACV;AACM;AACI;AACA;AACF;AACU;AACN;AACV;AACI;AACF;AACM;AACI;AACZ;AACM;AACI;AACI;AACV;AACA;AACF;AACU;AACV;AACE;AACU;AACV;AACA;AACA;AACE;AACN;AACI;AACE;AACJ;AACE;AACQ;AACd;AACQ;AACA;AACN;AACE;AACQ;AACV;AACI;AACU;AACI;AACA;AACI;AACI;AACA;AACd;AACI;AACd;AACE;AACM;AACE;AACF;AACA;AACE;AACA;AACJ;AACA;AACV;AACI;AACF;AACA;AACU;AACU;AACV;AACZ;AACU;AACgB;AAChB;AACR;AACE;AACI;AACE;AACE;AACE;AACR;AACI;AACF;AACE;AACF;AACI;AACN;AACc;AACA;AACV;AACF;AACI;AACV;AACM;AACI;AACF;AACN;AACM;AACN;AACI;AACI;AACV;AACI;AACI;AACA;AACN;AACA;AACQ;AACN;AACQ;AACF;AACE;AACV;AACI;AACF;AACI;AACF;AACJ;AACF;AACU;AACM;AACL;AACO;AACX;AACE;AACW;AACD;AACH;AAClB;AACI;AACI;AACR;AACY;AACQ;AACZ;AACJ;;;AC1U9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;AAC5D;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA,cAAc,oDAAoD;AAClE;AACA;AACA,qCAAqC,IAAI,qBAAqB,kBAAkB;AAChF;AACA;AACA;AACA;AACA,QAAQ;AACR,+BAA+B,mBAAmB;AAClD;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,cAAc,2CAA2C;AACzD;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,2EAA2E,EAAE;AAC7E;AACA,WAAW,8BAA8B;AACzC;AACA;AACA,GAAG;AACH,mBAAmB;AACnB;AACA;AACA;AACA,aAAa,2BAA2B,GAAG;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,+CAA+C,eAAe;AAC9D,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,kCAAkC,EAAE;AACpC,GAAG;AACH,6BAA6B,GAAG,QAAQ,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,EAAE;AACJ;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,EAAE,GAAG,EAAE,EAAE;AAC7B;AACA;AACA,kDAAkD,EAAE,EAAE,KAAK;AAC3D;AACA,UAAU,EAAE;AACZ,2BAA2B,EAAE;AAC7B,EAAE,EAAE,cAAc,EAAE;AACpB,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ;AACA,GAAG;AACH,8DAA8D,KAAK,IAAI,QAAQ;AAC/E;AACA;AACA,UAAU,YAAY;AACtB;AACA,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE,GAAG;AACL;AACA,GAAG,8BAA8B,KAAK;AACtC;AACA;AACA;AACA;AACA;AAOE;AACF;;;AC7XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE+jH;;;ACvpC/jH;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,+BAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,8BAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,gCAAW;AAC7B,MAAM,+BAAU,GAAG,gCAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,mCAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,4BAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2CAAsB;AAC5B;AACA;AACA;AACA;AACA,MAAM,uCAAkB,GAAG,2CAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,kCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAkB;AACxB;AACA;AACA;AACA;AACA,MAAM,uCAAkB,GAAG,uCAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,sCAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,gCAAW;AAC/B,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,6BAAQ;AAC7B,MAAM,iCAAY,GAAG,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,kCAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,oCAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,2BAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,+BAAU;AACzB;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,qCAAgB;AACrC,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,mCAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;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,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,6BAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,sCAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,oCAAe;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,+BAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC,MAAM,4BAAO,GAAG,kCAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,kCAAa;AACvC,MAAM,0CAAqB,GAAG,kCAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,iCAAY;AAClC,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wCAAmB;AACzB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,wCAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,qCAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,0CAAqB,GAAG,kCAAa;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,sCAAiB;AAC1C,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;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,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,uCAAkB,GAAG,+BAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,qCAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,6BAAQ,GAAG,iCAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;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,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,iCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,kCAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,qCAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,oCAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;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,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,gCAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,0BAAK,GAAG,gCAAW;AACzB,MAAM,0CAAqB;AAC3B;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,0CAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,oCAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,yCAAoB,GAAG,iCAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,mCAAc,GAAG,iCAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,4BAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAkB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;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,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,+BAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA,MAAM,0BAAK,GAAG,8BAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,6BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,yCAAoB,GAAG,iCAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,iCAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,+BAAU;AAChC,MAAM,mCAAc,GAAG,+BAAU;AACjC;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,qCAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wCAAmB;AACzB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,wCAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;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,MAAM,yCAAoB;AAC1B;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,yCAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,qCAAgB;AACzC,MAAM,qCAAgB,GAAG,qCAAgB;AACzC,MAAM,kCAAa,GAAG,qCAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;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,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,kCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,kCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0BAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,WAAW;AACX,cAAc;AACd;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,SAAS;AACT,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA,WAAW;AACX,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,UAAU;AACV,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,QAAQ;AACR;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,QAAQ;AACR,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY;AACZ,QAAQ;AACR;AACA,kBAAkB;AAClB,cAAc;AACd,eAAe;AACf,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,eAAe;AACf;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,UAAU;AACV,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;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;AACd;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB,iBAAiB;AACjB;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,aAAa;AACb,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACd,eAAe;AACf,eAAe;AACf,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,eAAe;AACf,mBAAmB;AACnB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,YAAY;AACZ,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe;AACf,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,uBAAuB;AACvB;AACA,mBAAmB;AACnB,kBAAkB;AAClB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;AACA;AACA,kBAAkB;AAClB,cAAc;AACd;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,OAAO;AACP,uBAAuB;AACvB,mBAAmB;AACnB;AACA,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,cAAc;AACd,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gBAAgB;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,SAAS;AACT,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,cAAc;AACd,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,eAAe;AACf,gBAAgB;AAChB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE242B;;;;;AC70S342B;AACA;AACA;AACA;AACA,SAAS,uBAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,aAAa,uBAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEiC;;;;;;;AClDjC;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,sBAAsB;AACnC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,2EAA2E,aAAa;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,GAAG;AAChB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;;AAEA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,uBAAuB;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,eAAe;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,QAAQ;AACR,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;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;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,CAAC;AACD,kBAAkB,sBAAsB,OAAO;;AAE/C;AACA;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;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA,wBAAwB;AACxB,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,sBAAsB;AACtB,uBAAuB;;AAEvB,MAAM,wBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAM,wDAAwD,wBAAM;AACxE;AACA;AACA,UAAU,wBAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,wBAAM;AAClB;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,wBAAM;AAChB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B,wBAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;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,GAAG;AACH;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA,oBAAoB;AACpB,aAAa,eAAe,GAAG,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK,YAAY,KAAK;AACzE;AACA;AACA,mDAAmD,KAAK,YAAY,KAAK;AACzE;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD,uFAAuF;AAC7I;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA,aAAa,gDAAgD;AAC7D;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,cAAc;AACzB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,aAAa,qBAAqB;AAClC,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA,UAAU,eAAe;AACzB,UAAU,oBAAoB;AAC9B,UAAU,cAAc;AACxB,YAAY;AACZ;;AAEA;AACA;AACA,UAAU,YAAY;AACtB,UAAU,QAAQ;AAClB,UAAU,qBAAqB;AAC/B,UAAU,QAAQ;AAClB,YAAY;AACZ;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA;AACA,UAAU,QAAQ;AAClB,UAAU,aAAa;AACvB,YAAY;AACZ;;AAEA;AACA,aAAa,mBAAmB;AAChC;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc,MAAM;AACpB,cAAc,iBAAiB;AAC/B,cAAc;AACd,YAAY;AACZ,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,QAAQ,WAAW;AACjC,cAAc;AACd,cAAc;AACd,cAAc,0BAA0B;AACxC,cAAc,aAAa;AAC3B,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC;AACA,cAAc,SAAS;AACvB;;AAEA;AACA,WAAW,wBAAwB;AACnC,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,kBAAkB;AAC7B;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;;AAEA;;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;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,GAAG;AAC3H;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB,EAAE;AACvB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,aAAa,yBAAyB,OAAO;AAC7C,GAAG;AACH;AACA,kBAAkB,GAAG,OAAO,GAAG;AAC/B;AACA,gBAAgB;AAChB,sCAAsC;AACtC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,WAAW,mBAAmB;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,KAAK;AACL;;AAEA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEoB;;;AC7mEpB;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA,CAAC;;AAEM;AACP;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;;AAEO,SAAS,oBAAgB;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,mEAAmE,eAAe;AAClF;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B,6BAA6B;AAC7B,+BAA+B;;;ACtFqD;;AAEpF;AACA;AACA;AACA,MAAM,SAAI;AACV;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK,wBAAwB,YAAY;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,GAAG,KAAK,WAAW;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,qBAAqB;AACrB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;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,SAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,IAAI,SAAI,4CAA4C;AACpD;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAgB;AACzB,WAAW,oBAAkB;AAC7B;AACA,SAAS,iBAAY,OAAO;AAC5B,SAAS,kBAAa,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAW;AACpB;AACA,SAAS,kBAAa;AACtB;AACA;AACA,SAAS,iBAAY;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAa,SAAS;;AAE/B;AACA;AACA;AACA;AACA,IAAI,YAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE,YAAO,KAAK,YAAO,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,mCAAmC,YAAO;AAC1C;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAO;AACnC,6BAA6B,YAAO;AACpC,gCAAgC,YAAO;AACvC,gCAAgC,YAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,KAAK,0CAA0C,KAAK;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAI;AACtC,gEAAgE,SAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,YAAY,aAAa,OAAO;AAC9G;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA,iEAAiE,MAAM,KAAK,IAAI,oBAAoB,OAAO;AAC3G,wCAAwC,SAAI,qCAAqC,SAAI;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAI;AACtC,8BAA8B,SAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAI;AACrD,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA,cAAc,WAAW;AACzB,0CAA0C,SAAI;AAC9C;AACA;AACA,cAAc,WAAW;AACzB,kDAAkD,SAAI;AACtD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,oBAAe;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe,EAAE,oBAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAe,mBAAmB,oBAAe;AACnH;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,4CAA4C,uCAAuC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAO;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,kFAAkF,IAAI;AACtF;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,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;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;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;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,gBAAgB,WAAW,gBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,gBAAW;AAC/F;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAW,4BAA4B,gBAAW;AAClD;AACA;AACA;AACA,gBAAW,6BAA6B,gBAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAW;AAC1D,kDAAkD,gBAAW;AAC7D;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAW,uCAAuC,gBAAW;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAW;AACpD;AACA;AACA;AACA,0CAA0C,oBAAe,SAAS,oBAAe;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW,gEAAgE,gBAAW;AACnG;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA,gCAAgC,gBAAW;AAC3C;AACA,2FAA2F,gBAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,iBAAY,KAAK,iBAAY,KAAK;AACxD;AACA;AACA;AACA,6CAA6C,WAAW,IAAI,OAAO;AACnE;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAY;AAC/B;AACA,mBAAmB,iBAAY;AAC/B,wBAAwB,sBAAsB;AAC9C;AACA,uBAAuB,iBAAY;AACnC,eAAe,iBAAY;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,WAAW,8CAA8C;AACvG,mBAAmB,oBAAe,mCAAmC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA,sBAAsB,gBAAW,uCAAuC,gBAAW;AACnF;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,wCAAwC,SAAI;AAC5C,cAAc,SAAI;AAClB,4CAA4C,oBAAe;AAC3D,0CAA0C,oBAAe;AACzD,kBAAkB,oBAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;AACnC;AACA;AACA;AACA,uBAAuB,qBAAgB;AACvC,gDAAgD,iBAAY;AAC5D;AACA;AACA;AACA;AACA,uBAAuB,qBAAgB;AACvC,8CAA8C,iBAAY;AAC1D;AACA;AACA;AACA,qCAAqC,oBAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,gBAAW;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,+BAA+B,YAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oIAAoI,OAAO;AAC3I;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAQ;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,mBAAmB,aAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iEAAiE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,aAAQ;AACrF,sCAAsC,0CAA0C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAQ,2BAA2B,aAAQ;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAQ;AAC3B;AACA,sCAAsC,QAAQ;AAC9C,sCAAsC,SAAS,aAAQ,QAAQ;AAC/D,6BAA6B,aAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAQ,0BAA0B,aAAQ;AAC1C;AACA;AACA,0CAA0C,mBAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAQ,mBAAmB,aAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB,aAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAQ;AAC7B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB;AACpB;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAM;AACd,QAAQ,WAAM;AACd,QAAQ,WAAM;AACd;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,+BAA+B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,SAAS,WAAM;AACf,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAgB;AAC5B;AACA;AACA;;AAEkX;;;ACxyHlX,MAAM,WAAC;AACP,oDAAoD,WAAC,cAAc,WAAC;AACpE;AACA,MAAM,aAAG;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;;AAEjB;AACA;AACA;;AAEA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV,8GAA8G;AAC9G;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,aAAa,aAAG;AAChB,IAAI,aAAG;AACP,WAAW,WAAC;AACZ;;AAEA,2EAA2E,eAAe;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,IAAI,iBAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,yBAAyB,KAAK;;;AC3KvB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,0EAA0E,GAAG;;AAE7E;AACA,gBAAgB,QAAQ;;AAExB;AACA,gBAAgB,SAAS;;AAEzB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtHqS;AAC7P;AACW;;AAEnD;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sCAAsC,aAAa;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,MAAM;AACN;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,WAAW,yGAAyG;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,2BAA2B;AAC3B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D;AAC1D,wDAAwD,mBAAmB;AAC3E;AACA;AACA,mDAAmD,GAAG;AACtD,MAAM,OAAE;AACR,eAAe,OAAE;AACjB,gBAAgB,OAAE;AAClB;AACA,gBAAgB,OAAE;AAClB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,yBAAyB;AACzB;AACA;AACA,mBAAmB,SAAI;AACvB;AACA;AACA;AACA,cAAc,OAAO;AACrB,+DAA+D,SAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,oBAAoB;AACpB,wBAAwB;AACxB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,eAAe,SAAI;AACnB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,4BAA4B,WAAW;AACvC,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;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,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAQ;AACvB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB,aAAQ;AAC1B;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAO,6BAA6B,YAAO,eAAe,YAAO;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2CAA2C;AACrD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA,wCAAwC,YAAY,kBAAkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,SAAI;AACpG;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,yBAAyB;AACzB,uBAAuB;AACvB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,4BAA4B;AAC5B,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,cAAc;AACd,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;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,qBAAqB;AACrB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,MAAM;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B,WAAW,oBAAe;AAC1B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,KAAK;AAClD,0CAA0C,KAAK;AAC/C,yCAAyC,KAAK;AAC9C,mCAAmC,KAAK;AACxC,oCAAoC,KAAK;AACzC,kCAAkC,KAAK;AACvC,uCAAuC,KAAK;AAC5C,0CAA0C,KAAK;AAC/C,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA,CAAC;AACD,2CAA2C,KAAK;AAChD;AACA,CAAC;AACD,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAe;AAC5C;AACA;AACA,oCAAoC,gBAAW,UAAU,2BAA2B;AACpF,8CAA8C,gBAAW;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK,UAAU,qDAAqD;AAClG;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAA4D;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,uCAAuC,KAAK;AAC5C;AACA,iCAAiC,KAAK;AACtC,sCAAsC,KAAK;AAC3C,kCAAkC,KAAK;AACvC,wCAAwC,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAQ;AACZ,mBAAmB;AACnB;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA,8CAA8C,2DAA2D;AACzG;AACA;AACA;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,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0DAA0D;AACpH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4CAA4C;AAC/D;AACA;AACA,kBAAkB,qBAAqB;AACvC,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,cAAc,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAgB;AAClC;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;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,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,aAAQ;AACjC;AACA;AACA;AACA;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,QAAQ;AACtB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,yBAAyB,qCAAqC;AAC9D;AACA,qBAAqB;AACrB;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB,GAAG;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;AACA;AACA,IAAI,aAAQ;AACZ;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAgB;AAC/B;AACA,aAAa,qBAAgB;AAC7B;AACA;AACA,mBAAmB,qBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAgB;AACnC;AACA;AACA;AACA;AACA,WAAW,oBAAe;AAC1B;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+DAA+D;AAC7F;AACA;AACA,oCAAoC,4DAA4D;AAChG;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,eAAe;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,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA,mBAAmB,4CAA4C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iDAAiD;AACjD;AACA,mBAAmB,oBAAe;AAClC;AACA,WAAW,oBAAe;AAC1B;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sCAAsC,0BAA0B;AAChE;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAe;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAiD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAe;AACzC;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,wBAAwB,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAe;AACpC,mBAAmB,0CAA0C,SAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAe;AACpC,mBAAmB,oCAAoC,SAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8CAA8C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,wDAAwD,iCAAiC;AACzF;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAiC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAU,mDAAmD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAe;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6BAA6B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAkE;AACxE,MAAM,yDAAyD;AAC/D,MAAM,yDAAyD;AAC/D,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,8BAA8B,oBAAe;AAC7C;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB,WAAW,yBAAyB;AACzD,uBAAuB,oBAAe;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,WAAW,mDAAmD;AACnF,uBAAuB,oBAAe;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,eAAe,oBAAe;AAC9B;AACA,0BAA0B;AAC1B;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oCAAoC;AACrE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAe,mBAAmB,oBAAe;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,cAAc,WAAW;AACzB;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA,UAAU,aAAa,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAoC;AACzE,UAAU,iBAAiB;AAC3B;AACA,YAAY,mDAAmD;AAC/D,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qBAAqB,uEAAuE;AAC5F;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,8BAA8B,8DAA8D;AAC5F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8CAA8C;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,mBAAmB,SAAI;AACvB;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC;AACpC;AACA;AACA,yCAAyC,QAAQ;AACjD,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAO;AACxB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;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,SAAS,YAAO;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,iBAAiB,gBAAgB,YAAY;AAC7C;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B;AAC/B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY,EAAE,sCAAsC,EAAE,iDAAiD;AAC9H;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAA8B;AAC5C,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAO;AAC3B,qBAAqB,YAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI,aAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,6BAA6B;AAC7B,gCAAgC;AAChC,kCAAkC;AAClC,mCAAmC;AACnC,+BAA+B;AAC/B,8BAA8B;AAC9B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,SAAI;AAC5E,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD,wBAAwB,QAAQ;AAChC;AACA,mCAAmC,UAAU;AAC7C,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wJAAwJ,SAAS;AACjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,SAAI;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA,cAAc,MAAM;AACpB,cAAc,SAAS;AACvB,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAe;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAQ;AAChB,6BAA6B,cAAc,UAAU,IAAI;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAoE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAQ;AACZ,kBAAkB;AAClB;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA,KAAK,OAAO;AACZ;AACA,sBAAsB,eAAe;AACrC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,KAAK,UAAU,iCAAiC;AAC3E,+BAA+B,KAAK,UAAU,8CAA8C;AAC5F,iCAAiC,WAAW,uCAAuC,WAAW,sCAAsC,WAAW;AAC/I,uBAAuB;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,kEAAkE,EAAE;AACpE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B,qBAAqB;AACjD,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6BAA6B,QAAQ,WAAW,YAAY,cAAc;AAC1E,8BAA8B,QAAQ,WAAW,YAAY,cAAc;AAC3E;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B;AAC3B,KAAK;AACL,+BAA+B,8BAA8B;AAC7D,8BAA8B,8BAA8B;AAC5D,gCAAgC,cAAc;AAC9C,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,sBAAsB;AACvC;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,wBAAwB,eAAe;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oDAAoD,eAAe;AACnE;AACA;AACA,mCAAmC;AACnC,2BAA2B,kBAAkB,SAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAe;AAC5C;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB,SAAI;AACjD;AACA;AACA;AACA,kDAAkD,oBAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,2EAA2E,EAAE,4BAA4B;AAC3K,oDAAoD,cAAc,SAAS;AAC3E;AACA;AACA;AACA,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAU;AAChB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,8BAA8B,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC,wEAAwE,oBAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,IAAI,mBAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAU;AAC/C,QAAQ,WAAW,6EAA6E,QAAQ;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,2EAA2E,oBAAe;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA,kDAAkD,oBAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC,sEAAsE,OAAO;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA,eAAU,yBAAyB,KAAK,UAAU,mDAAmD;AACrG;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU,6BAA6B,eAAU,wBAAwB,4BAA4B;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU,yBAAyB,gBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,QAAQ;AAChF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI,sBAAsB,eAAU;AACzE;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK,UAAU,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,+CAA+C;AAC/C,sDAAsD;AACtD;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sBAAsB,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,mBAAmB,gBAAW,oBAAoB,kBAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA,oDAAoD,KAAK;AACzD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D,mCAAmC,4BAA4B;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AAC/B;AACA;AACA;AACA,gDAAgD,WAAW,IAAI,WAAW;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA,SAAS,UAAK;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,KAAK;AAC1C;AACA,eAAe,aAAa;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,UAAK;AACtC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAe;AAC1D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,oCAAoC,UAAK;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,yCAAyC,2CAA2C;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI,sBAAsB,eAAU;;AAE7E,sCAAsC,gBAAW;AACjD,wBAAwB;AACxB,CAAC;AACD,mCAAmC,UAAU;AAC7C,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA,CAAC;AACD;AACA;AACA,oDAAoD,oCAAoC;AACxF,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,qBAAqB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAA2D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+FAA+F;AACpI;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM;AAChC,+BAA+B,gBAAW;AAC1C;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA,yBAAyB;AACzB;AACA;AACA,2EAA2E,2CAA2C;AACtH,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,MAAM,WAAM,gBAAgB;AAC5B;AACA;AACA,uBAAuB;AACvB;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B,OAAO;AAC5D;AACA;AACA,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,WAAM,iCAAiC,QAAQ,0BAA0B,WAAM,4DAA4D;AACvJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,2CAA2C;AACjG;AACA;AACA,4BAA4B;AAC5B,KAAK,IAAI,iCAAiC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA,wBAAwB,UAAU;AAClC;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA,0BAA0B,UAAU;AACpC,4BAA4B,oBAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA,cAAc,WAAW;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAU;AACrB;AACA,MAAM,SAAI;AACV;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,yBAAyB,SAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,QAAQ,eAAU,gCAAgC,QAAQ,4GAA4G;AACtK;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,mDAAmD,KAAK;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iCAAiC;AAC/C;AACA,wBAAwB,kCAAkC;AAC1D,4FAA4F,MAAM;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wCAAwC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,mBAAmB;AACnB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAU;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB,mBAAmB;AACtC,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C,4BAA4B,mBAAmB;AAC/C,SAAS;AACT;AACA,wBAAwB,mBAAmB;AAC3C;AACA,8BAA8B,mBAAmB;AACjD,aAAa;AACb;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA,SAAS;AACT;AACA,qBAAqB,mBAAmB;AACxC;AACA,iCAAiC,mBAAmB;AACpD,aAAa;AACb;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB;AACnB;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA,CAAC;AACD,sCAAsC,KAAK;AAC3C;AACA,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,mBAAmB;AACnB,sBAAsB;AACtB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ,6DAA6D;AAClH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;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,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,wCAAwC,sEAAsE;AAC9G;AACA,aAAa;AACb;AACA;AACA,4BAA4B,gEAAgE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,cAAc,kBAAkB;AAChC;AACA,kBAAkB,MAAM;AACxB;AACA;AACA,qCAAqC,+BAA+B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA,qCAAqC,+BAA+B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+BAA+B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,mBAAmB,gBAAW;AAC9B,qBAAqB,UAAU;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,YAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAW;AACxD;AACA;AACA;AACA,wCAAwC,gFAAgC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,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;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uBAAuB,eAAU;AACjC;AACA,0BAA0B;AAC1B,KAAK;AACL,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,+BAA+B,KAAK;AACpC;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C,MAAM,aAAQ;AACd;AACA;AACA;AACA,mBAAmB,aAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE,aAAQ;AAChF;AACA,kCAAkC,KAAK;AACvC;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACD,uBAAuB,eAAU;AACjC;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB,KAAK;AACL,CAAC;AACD,SAAS,YAAO,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAQ;AAC9B;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,YAAO;AAC9B;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,uBAAuB,YAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA,4CAA4C,KAAK;AACjD,sCAAsC,KAAK;AAC3C;AACA,eAAe,aAAa,WAAW,4CAA4C;AACnF;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6CAA6C;AACjE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAQ;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;AACA,+CAA+C,0BAA0B;AACzE,iDAAiD,4BAA4B;AAC7E;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAE2rB;;;AC95V3rB;AACA;AACA;AACA;AACA;AACA,MAAM,UAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,kCAAkC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4BAA4B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2CAA2C;AACzD;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;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,SAAS;AACvB,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,eAAe;AACf;AACA,gCAAgC;AAChC,uBAAuB,sBAAsB,oDAAoD,QAAQ;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,8EAA8E,MAAM;AACpF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,eAAe,UAAU,yBAAyB;AAClD;AACA,2FAA2F,QAAQ;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,OAAO;AAC7E,oCAAoC,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,iBAAiB,QAAQ;AAChD,oEAAoE,QAAQ;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4GAA4G;AACtH;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,KAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,kBAAkB,uBAAuB;AACzC,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oDAAoD,kBAAkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAK,yDAAyD,UAAK,uBAAuB,UAAK;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB;;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,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uBAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAK;AAC7D;AACA;AACA;AACA;AACA,mGAAmG,UAAK;AACxG;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,gCAAgC,UAAK;AACrC;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kNAAkN,UAAK;AACvN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD;AACA;AACA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAK;AACnC;AACA,8CAA8C,UAAK;AACnD;AACA;AACA,gCAAgC,UAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAK;AACrC;AACA;AACA;AACA;AACA;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,mBAAmB;AAClC;AACA;AACA;AACA,qDAAqD,UAAK;AAC1D;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgK;;;ACvnEvH;;AAEzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA,0BAA0B,SAAS,GAAG,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,cAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAS;AAClB;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAI,qBAAqB,SAAI,oBAAoB,SAAI;AAC1E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,QAAQ;AACR;AACA;AACA;AACA,oBAAoB,SAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM,yCAAyC;AAC/C,MAAM,2CAA2C;AACjD,MAAM,uCAAuC;AAC7C,MAAM,yCAAyC;AAC/C,MAAM,mCAAmC;AACzC,MAAM,mCAAmC;AACzC,MAAM,iCAAiC;AACvC,MAAM,6CAA6C;AACnD,MAAM,2CAA2C;AACjD,MAAM,yCAAyC;AAC/C,MAAM,yCAAyC;AAC/C,MAAM,uCAAuC;AAC7C,MAAM,uCAAuC;AAC7C,MAAM,kFAAkF;AACxF,MAAM,mDAAmD;AACzD,MAAM,yEAAyE;AAC/E,MAAM,mFAAmF;AACzF,MAAM,kEAAkE;AACxE,MAAM,mFAAmF;AACzF,MAAM,2CAA2C;AACjD,MAAM,6CAA6C;AACnD,MAAM,6CAA6C;AACnD,MAAM,6CAA6C;AACnD,MAAM,mDAAmD;AACzD,MAAM,2CAA2C;AACjD,MAAM,yCAAyC;AAC/C,MAAM,mCAAmC;AACzC,MAAM,yCAAyC;AAC/C,MAAM;AACN;;AAE8G;;;ACv4BZ;AAC2C;AACZ;AAC/C;AAC1C;;AAExC;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,kCAAkC,WAAW,sBAAsB,QAAQ,OAAO,eAAU,WAAW;AACvG;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA,0CAA0C,sCAAsC;AAChF;AACA,sCAAsC,oCAAoC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,gBAAgB,eAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,iCAAiC,gBAAW;AAC5C;AACA,gDAAgD,eAAU;AAC1D;AACA,8BAA8B,MAAM,6BAA6B,QAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAU;AACnB;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAU;AAC7B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAA4C;AACjF;AACA;AACA,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8CAA8C;AAC5D;AACA;AACA;AACA,gFAAgF,wBAAwB;AACxG,wBAAwB,YAAY;AACpC,mBAAmB,IAAI;AACvB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI,CAAC,QAAQ;AAChD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,WAAW,YAAY,4BAA4B,4CAA4C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,mBAAmB;AACvG;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,4DAA4D;AAC/G,SAAS;AACT;AACA;AACA;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;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,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA,oBAAoB;AACpB,cAAc,mBAAmB,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,iEAAiE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB,UAAU;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC,yBAAyB,gDAAgD;AACzE;AACA;AACA;AACA,QAAQ,eAAU;AAClB;AACA,yCAAyC,6BAA6B;AACtE,SAAS;AACT;AACA,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,gHAAgH,qBAAqB,YAAY;AACjJ;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA,MAAM,eAAU,gBAAgB,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gCAAgC,QAAQ,qEAAqE;AAC1J;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAA2D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG;AACA,qCAAqC,QAAQ;AAC7C,sBAAsB;AACtB;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2DAA2D;AAC1F;AACA,uCAAuC,2BAA2B;AAClE,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8DAA8D;AAC3G;AACA;AACA,eAAe,eAAU;AACzB;AACA;AACA;AACA;AACA,2BAA2B,MAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAW,UAAU,eAAe;AACpE;AACA;AACA;AACA,kCAAkC,gBAAW,UAAU,eAAe;AACtE;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA,eAAe,UAAU;AACzB,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,oBAAoB,UAAU,WAAW,uEAAuE;AAChH,yCAAyC,+CAA+C;AACxF;AACA;AACA,yCAAyC;AACzC,oEAAoE;AACpE;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C,mDAAmD;AACnD,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL,kBAAkB,eAAU;AAC5B;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,uBAAuB;AACvB;AACA;AACA;AACA,gEAAgE,gBAAW;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qFAAqF;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA,WAAW,eAAU,gBAAgB,6DAA6D,EAAE,UAAU,EAAE,yBAAyB,EAAE,OAAO;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+BAA+B,UAAU,KAAK;AAC1G,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sDAAsD;AAC5D,MAAM,wDAAwD;AAC9D,MAAM,iCAAiC;AACvC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC,sBAAsB,OAAO,aAAa;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU,WAAW,uCAAuC,UAAU;AACtG,sBAAsB;AACtB,OAAO;AACP,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA,gBAAgB;AAChB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,mDAAmD;AACnD;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAU,uBAAuB,eAAU;AAC3D;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,mBAAmB;AAC7B;AACA;AACA,QAAQ,MAAM;AACd;AACA,4BAA4B,QAAQ,wFAAwF,aAAQ,SAAS;AAC7I;AACA;AACA,aAAa;AACb,4DAA4D,uBAAuB;AACnF;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC;AAC1E;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA,mBAAmB;AACnB,SAAS;AACT;AACA;AACA;AACA,MAAM,gBAAW,gBAAgB,eAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA,sDAAsD,WAAW,WAAW;AAC5E,SAAS;AACT;AACA,SAAS;AACT,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,sCAAsC,KAAK;AAC3C,yCAAyC,KAAK;AAC9C,sBAAsB;AACtB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAU;AAC/B;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAU;AACtD,+BAA+B,eAAU;AACzC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAU;AAC9B;AACA;AACA;AACA;AACA,mBAAmB,eAAU;AAC7B;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,0BAA0B,eAAe;AACzC,mBAAmB,WAAW;AAC9B,YAAY,aAAa;AACzB,wFAAwF,UAAU,QAAQ,cAAc;AACxH,aAAa;AACb;AACA;AACA;AACA;AACA,qCAAqC,IAAI,mBAAmB,UAAU;AACtE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,KAAK,IAAI;AACf,0BAA0B;AAC1B,MAAM,KAAK,IAAI;AACf,qCAAqC;AACrC,MAAM,KAAK,IAAI;AACf;AACA,4BAA4B;AAC5B,MAAM,KAAK,IAAI;AACf,6BAA6B;AAC7B,MAAM,KAAK,IAAI;AACf,4BAA4B;AAC5B,MAAM,KAAK,IAAI;AACf,wCAAwC;AACxC,MAAM,KAAK,IAAI;AACf,uBAAuB;AACvB,MAAM,MAAM,IAAI,OAAO,IAAI,OAAO,IAAI,MAAM,IAAI,mBAAmB,IAAI;AACvE,uBAAuB;AACvB,MAAM,MAAM,IAAI,UAAU,IAAI;AAC9B,uBAAuB;AACvB,MAAM,MAAM,IAAI,SAAS,IAAI;AAC7B,uBAAuB;AACvB,MAAM,MAAM,IAAI,SAAS,IAAI,sBAAsB,IAAI,SAAS,IAAI;AACpE,uBAAuB;AACvB,MAAM,kBAAkB,IAAI,YAAY,IAAI;AAC5C,uBAAuB;AACvB,MAAM,kBAAkB,IAAI,OAAO,IAAI;AACvC,uBAAuB;AACvB,MAAM,MAAM,IAAI,WAAW,IAAI;AAC/B,uBAAuB;AACvB,MAAM,KAAK,IAAI;AACf,uBAAuB;AACvB,MAAM,mBAAmB,IAAI,SAAS,IAAI,gBAAgB,IAAI;AAC9D,uBAAuB;AACvB,MAAM,kBAAkB,IAAI,YAAY,IAAI;AAC5C,uBAAuB;AACvB,MAAM,KAAK,IAAI;AACf,uBAAuB;AACvB,MAAM,KAAK,IAAI;AACf;AACA;;AAEA,MAAM,cAAS,gBAAgB,eAAU;AACzC,0CAA0C,8BAA8B;AACxE,6CAA6C;AAC7C,CAAC;AACD,wDAAwD;AACxD,2CAA2C,KAAK;AAChD;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD,kCAAkC,UAAU,QAAQ,6BAA6B,kCAAkC,UAAU,QAAQ,gCAAgC;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD,eAAe,OAAO,UAAU,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,KAAK;AACL,kBAAkB,eAAU;AAC5B,CAAC;AACD;AACA;AACA,IAAI,cAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA,qCAAqC,QAAQ,YAAY,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,eAAe,eAAU;AACzB,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAsC,yCAAyC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,yCAAyC;AACzH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,2BAA2B,mDAAmD;AAC9E;AACA;AACA;AACA;AACA,wFAAwF,YAAY;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,yBAAyB,0BAA0B,4CAA4C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oCAAoC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;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,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ,GAAG,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2CAA2C,QAAQ;AACnD;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa,yFAAyF,IAAI;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,eAAe;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,cAAc,YAAY,iCAAiC,eAAe;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA,8DAA8D,KAAK;AACnE;AACA;AACA;AACA,kDAAkD,MAAM;AACxD;AACA;AACA;AACA;AACA;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,gBAAgB,SAAS,GAAG,gBAAgB;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,QAAQ,UAAU;AACjC;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mCAAmC,KAAK,UAAU,wCAAwC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,kCAAkC,SAAS;AAC3C,6BAA6B,eAAU;AACvC;AACA,oBAAoB,eAAU;AAC9B,kGAAkG,UAAU;AAC5G;AACA;AACA;AACA,yCAAyC,SAAS;AAClD,+BAA+B,eAAU;AACzC;AACA;AACA;AACA;AACA,mBAAmB,eAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,0IAA0I,UAAU;AACpJ;AACA,gBAAgB,eAAU;AAC1B,YAAY,IAAI,QAAQ,eAAU;AAClC;AACA,CAAC;AACD;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU,QAAQ,gDAAgD,YAAY,eAAe,SAAS,MAAM;AAClI,sBAAsB,UAAU,QAAQ,gDAAgD,YAAY,eAAe,SAAS,MAAM;AAClI,uBAAuB,UAAU,QAAQ,gDAAgD,aAAa,qBAAqB;AAC3H;;AAEwyB;;;ACvmFlmB;AAC7I;AACgF;AAChG;;AAEzC;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yGAAyD;AAC1F;AACA;AACA;AACA,mCAAmC,2GAA2D;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0GAA0D;AAC5F;AACA;AACA;AACA,oCAAoC,4GAA4D;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ,mDAAmD;AAC5E,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,uFAAuF;AACvF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2EAA2E;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,gDAAgD,IAAI,+CAA+C;AAC7H,aAAa;AACb;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,yCAAyC,cAAc;AACvD,+BAA+B,gEAAgE,IAAI,oEAAoE;AACvK;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAoD;AACjF;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAqC;AACxD;AACA,+BAA+B,+CAA+C;AAC9E;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C,mCAAmC,KAAK;AACxC;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD,mCAAmC,UAAU;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAW;AACrC;AACA;AACA,iCAAiC,gBAAW,kCAAkC,gBAAW;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,SAAS,YAAO,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAa;AAClC;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAA8B;AAC7D;AACA;AACA;AACA,+BAA+B,gFAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS,4CAA4C,UAAU,+CAA+C,oBAAe,yDAAyD,oBAAe;AAClP;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6HAA6H,SAAI;AACjI;AACA;AACA,wCAAwC,SAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAI;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAI;AACjD;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAI;AACvE;AACA;AACA,0GAA0G,SAAI;AAC9G;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,gBAAW,+GAA+G,SAAI;AACnQ;AACA;AACA;AACA;AACA,sCAAsC,SAAI;AAC1C;AACA;AACA,wFAAwF,SAAI;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6CAA6C;AAC3F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mDAAmD,SAAI,EAAE,SAAI;AAC7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,mEAAmE;AACzE,MAAM,wDAAwD;AAC9D,MAAM,wDAAwD;AAC9D,MAAM;AACN;;AAEA;AACA,WAAW,oBAAe;AAC1B;AACA;AACA,0BAA0B,sDAAsD;AAChF;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAe;AAC1B;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,qBAAqB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,cAAc,eAAU;AACxB,gCAAgC,QAAQ,YAAY,QAAQ;AAC5D;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa,uBAAuB,aAAa;AACvF;AACA;AACA;AACA,WAAW,oBAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAU,uCAAuC,+CAA+C;AACrH;AACA,8CAA8C,iBAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAe;AACtE;AACA;AACA;AACA,qDAAqD,oBAAe;AACpE;AACA;AACA,uBAAuB,aAAa;AACpC,eAAe,aAAa;AAC5B,kCAAkC,aAAa;AAC/C,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA,wBAAwB,oBAAe,6BAA6B,oBAAe;AACnF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA,eAAe,oBAAe;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oBAAe;AACxE;AACA;AACA;AACA,uDAAuD,oBAAe;AACtE;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,6BAA6B,6DAA6D;AAC1F;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC,4BAA4B,aAAa,mCAAmC,uBAAuB;AACnG;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,kDAAkD,UAAU,KAAK,oBAAe;AAChF,4BAA4B,WAAW,oBAAe,sCAAsC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA,mBAAmB,eAAU;AAC7B;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA,oBAAoB,oBAAe,SAAS,oBAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ,IAAI,WAAW,UAAU,SAAS,oBAAe;AACvF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+CAA+C,eAAU;AACzD,KAAK;AACL;AACA;AACA;AACA,0BAA0B,eAAU;AACpC,8CAA8C,eAAU;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA,kBAAkB,WAAW,sCAAsC,aAAa,WAAW,aAAa;AACxG,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA;AACA,oBAAoB,qBAAgB;AACpC;AACA;AACA;AACA,wBAAwB,qBAAgB;AACxC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,+BAA+B,+CAA+C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,iBAAiB,WAAW,wCAAwC,SAAI,eAAe;AACvF,mBAAmB,oBAAe;AAClC,KAAK;AACL,qCAAqC,0CAA0C;AAC/E;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,gDAAgD,qBAAgB;AAChE,4CAA4C,qBAAgB;AAC5D,iBAAiB,WAAW,+EAA+E;AAC3G,mBAAmB,oBAAe;AAClC,KAAK;AACL;AACA;AACA,qCAAqC,mDAAmD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAuD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC,IAAI,2DAA2D;AAC3H;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA,2BAA2B,qCAAqC,IAAI,yDAAyD;AAC7H;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mFAAmF;AAC9G;AACA,2BAA2B,iFAAiF;AAC5G;AACA,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ,iEAAiE,UAAU;AAC7F;AACA;AACA;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,oEAAoE;AACxF;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,qEAAqE,0CAA0C;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA,uBAAuB,kEAAkE;AACzF;AACA;AACA,KAAK,KAAK,0CAA0C;AACpD;AACA;AACA;AACA,qBAAqB,EAAE;AACvB,iBAAiB;AACjB,kBAAkB,eAAU;AAC5B;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA,yBAAyB,aAAa,UAAU,qDAAqD;AACrG,yBAAyB,cAAc;AACvC;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA,4BAA4B,YAAY;AACxC,qBAAqB,WAAW,kBAAkB,SAAI,aAAa;AACnE,uBAAuB,oBAAe;AACtC,SAAS;AACT,yCAAyC,0CAA0C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mBAAmB,oBAAe;AAClC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA,sBAAsB,aAAa,UAAU;AAC7C;AACA;AACA,WAAW;AACX;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA,2BAA2B,2DAA2D;AACtF;AACA,KAAK;AACL;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA,uBAAuB,qCAAqC,eAAU,GAAG;AACzE,KAAK,KAAK,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,qBAAqB,YAAY,0BAA0B,aAAa;AACxE;AACA;AACA,uBAAuB,kFAAkF;AACzG,KAAK,KAAK,4BAA4B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,4BAA4B,iBAAiB;AAC7C,0DAA0D,0CAA0C;AACpG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iFAAiF;AACvF,MAAM,6DAA6D;AACnE,MAAM,uDAAuD;AAC7D,MAAM,2DAA2D;AACjE,MAAM,6DAA6D;AACnE,MAAM,yDAAyD;AAC/D,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAC9C,MAAM,qCAAqC;AAC3C,MAAM,6CAA6C;AACnD,MAAM,+BAA+B;AACrC,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAC1C;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,MAAM,oFAAoF;AAC1F,MAAM,gHAAgH;AACtH,MAAM,wGAAwG;AAC9G,MAAM,uFAAuF;AAC7F,MAAM,oHAAoH;AAC1H,MAAM,2GAA2G;AACjH,MAAM,8EAA8E;AACpF,MAAM,gEAAgE;AACtE,MAAM,6DAA6D;AACnE,MAAM,oFAAoF;AAC1F,MAAM,8DAA8D;AACpE,MAAM,mEAAmE;AACzE,MAAM,uDAAuD;AAC7D,MAAM,6DAA6D;AACnE,MAAM,uGAAuG;AAC7G,MAAM,6DAA6D;AACnE,MAAM,oGAAoG;AAC1G,MAAM,wDAAwD;AAC9D,MAAM,0EAA0E;AAChF,MAAM,8BAA8B;AACpC,MAAM,sEAAsE;AAC5E,MAAM,uCAAuC;AAC7C,MAAM,sEAAsE;AAC5E,MAAM,+DAA+D;AACrE,MAAM,uDAAuD;AAC7D,MAAM;AACN,mDAAmD,wCAAwC;AAC3F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6FAA6F;AACnG,MAAM,iGAAiG;AACvG,MAAM,qCAAqC;AAC3C,MAAM,2CAA2C;AACjD,MAAM,yCAAyC;AAC/C,MAAM,+CAA+C;AACrD,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAC9C,MAAM,8CAA8C;AACpD,MAAM,6DAA6D;AACnE,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;AACrC,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,iDAAiD;AACvD,MAAM,kCAAkC;AACxC,MAAM,uCAAuC;AAC7C,MAAM,4DAA4D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAEs8D;;;AC5sD/8D;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,KAAK,SAAG;AACvC;AACA;;AAEA,SAAS,SAAG;AACZ;AACA;AACA,IAAI;AACJ,IAAI;AACJ;AACA,IAAI;AACJ,oBAAoB,kBAAkB,KAAK,SAAG;AAC9C,IAAI;AACJ;AACA;AACA;;;AC3BsK;AACzD;AACrF;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,MAAM;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAW;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAW;AACrD,iCAAiC,gBAAW;AAC5C,wCAAwC,gBAAW;AACnD,+BAA+B,UAAU;AACzC;AACA,6BAA6B,UAAU;AACvC,KAAK;AACL;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,mBAAmB,SAAS;AAC5B,QAAQ,eAAU;AAClB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU,QAAQ,2CAA2C;AAC7F;AACA,UAAU,cAAc;AACxB;AACA,yFAAyF,MAAM;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,WAAW,KAAG,SAAS,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAA8D;AACtF,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,kCAAkC,wBAAwB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,aAAa,sIAAsI,wBAAwB;AAC/L;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,8DAA8D;AACpE,MAAM;AACN;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ,eAAe,UAAU;AACnD;AACA;AACA;AACA;AACA,iBAAiB,aAAa,YAAY,2BAA2B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC,KAAK;AACrC;AACA,+BAA+B,0DAA0D,EAAE,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAG,SAAS,6DAA6D,EAAE,KAAG,WAAW,4BAA4B;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,YAAY,KAAG;AACf;AACA,eAAe,KAAG;AAClB;AACA;AACA;AACA;AACA,sCAAsC,KAAK,EAAE,qCAAqC,QAAQ,IAAI;AAC9F,SAAS;AACT,KAAK,wBAAwB,KAAG,UAAU,8BAA8B;AACxE;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,eAAe,KAAG,WAAW,gDAAgD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,mEAAmE;AACnE;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,8FAA8F;AAC9F,sBAAsB,aAAa;AACnC,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA,oBAAoB,KAAG;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,KAAG,UAAU,wBAAwB,aAAa,KAAG;AACxE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA,4EAA4E,MAAM;AAClF;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4FAA4F;AAC3H,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,SAAS;AACT;AACA,wBAAwB;AACxB;AACA;AACA,8EAA8E,MAAM,GAAG,4BAA4B;AACnH;AACA;AACA,oEAAoE,MAAM;AAC1E;AACA,MAAM,mBAAS,gBAAgB,eAAU;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B,8BAA8B;AAC5D,gCAAgC,gCAAgC;AAChE,6BAA6B,8BAA8B;AAC3D,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,6BAA6B,iDAAiD;AAC9E,+BAA+B,mDAAmD;AAClF,4BAA4B,iDAAiD;AAC7E,4BAA4B,iDAAiD;AAC7E,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qBAAqB,wBAAwB;AAC7C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAwC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG;AACpB;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAQ;AACnB;AACA,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,uCAAuC,UAAU;AACjD;AACA,eAAe,aAAQ;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0CAA0C,gBAAW;AACrD,uCAAuC,UAAU;AACjD,eAAe,cAAc;AAC7B;AACA;AACA,sFAAsF,cAAc,qCAAqC;AACzI;AACA,KAAK;AACL,sBAAsB,WAAW;AACjC,CAAC;AACD,qCAAqC,eAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,CAAC;AACD;AACA;AACA,iBAAiB,eAAU;AAC3B,cAAc,kBAAkB;AAChC,qEAAqE,UAAU,QAAQ,UAAU;AACjG;AACA;AACA,KAAK;AACL,iBAAiB,YAAY,gBAAgB,qBAAqB;AAClE,IAAI,mBAAS;AACb;AACA,sCAAsC,KAAK;AAC3C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqM;;;AC93B5F;;AAEzG;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAA2D,IAAI,SAAS,EAAE,mCAAmC;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,uCAAuC,yCAAyC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA,gCAAgC,qEAAqE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kEAAkE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;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,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kBAAkB;AAClB,gBAAgB;AAChB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA,eAAe;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACvB,QAAQ,cAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,YAAY,cAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAS;AAClB,6CAA6C,UAAU;AACvD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,yCAAW,qBAAqB,yCAAW;AAC5F;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA,WAAW;AACX;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,aAAa,aAAa;AACjD;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,WAAW,SAAS,aAAa,OAAO;AAC9D,0BAA0B,SAAS;AACnC,+GAA+G;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAK;AACX;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,uBAAuB,UAAK;AAC5B;AACA,kBAAkB,mBAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA,4DAA4D,OAAO;AACnE;AACA,8EAA8E,QAAQ;AACtF;AACA;AACA,mFAAmF,+BAA+B;AAClH;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,6DAA6D;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,mCAAmC,sDAAsD,GAAG,MAAM,sBAAsB,IAAI,MAAM,EAAE,qCAAqC;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAA0D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,2BAA2B;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa,mCAAmC,sBAAsB;AAC1H;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO,4BAA4B,QAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,kDAAkD,WAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS;AACnC,mHAAmH;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,QAAQ,oBAAoB;AACrF;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,2DAA2D,6CAA6C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4F;;;AC11DvD;AACc;;AAEnD,yBAAyB,SAAS;AAClC,UAAU,IAAI;AACd,UAAU,IAAI;AACd,gBAAgB,IAAI;AACpB,gBAAgB,IAAI;AACpB,QAAQ,IAAI;AACZ,SAAS,IAAI;AACb,SAAS,IAAI;AACb,MAAM,GAAG,IAAI;AACb,CAAC;;AAED;AACA,eAAe,QAAQ;AACvB;AACA,iFAAiF;AACjF;AACA,8BAA8B;AAC9B,2DAA2D;AAC3D;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yCAAyC,GAAG,wBAAwB,yEAAyE,GAAG,KAAK,GAAG,aAAa,wJAAwJ,gBAAgB,4EAA4E,IAAI,2IAA2I;AACxiB;AACA,aAAa,iBAAiB;AAC9B;AACA,CAAC;;AAEiB;;;ACpCmB;AACyF;;AAE9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA,yBAAyB,MAAM;AAC/B;AACA,yBAAyB,cAAc;AACvC,qCAAqC,eAAe,GAAG,eAAe,GAAG;AACzE,oCAAoC,eAAe,GAAG,kBAAkB;AACxE,aAAa;AACb,yBAAyB,YAAY;AACrC,gCAAgC,UAAU;AAC1C,aAAa;AACb;AACA,KAAK;AACL;AACA,yBAAyB,kBAAkB,SAAS;AACpD,+BAA+B;AAC/B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;;AAE+C;;;AC/D8D;AACqG;AAC1L;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,8BAA8B,kBAAa;AAC3C;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;;AAE5D,gBAAgB;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,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,KAAG,YAAY,kDAAkD;AACjF,cAAc,KAAG;AACjB;AACA;AACA,uCAAuC;AACvC;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK,EAAE,KAAG,8DAA8D,KAAG,aAAa,oCAAoC,4BAA4B,KAAG;AAC3J;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA,8CAA8C,eAAU,kCAAkC,aAAa;AACvG;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,kCAAkC,gBAAW;AAC7C,iCAAiC,UAAU;AAC3C,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,SAAS;AAC3B,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,yBAAyB,gBAAW,+BAA+B,uBAAW;AAC9E,wBAAwB,SAAS;AACjC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAW,gBAAgB,eAAU;AAC3C;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,QAAQ,4BAA4B;AAC7E,mCAAmC,UAAU,QAAQ,mDAAmD;AACxG;AACA;AACA,kEAAkE,iBAAY;AAC9E,wEAAwE,iBAAY;AACpF;AACA;AACA;AACA,oDAAoD,iBAAY;AAChE,gDAAgD,iBAAY;AAC5D;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA,8DAA8D;AAC9D;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,CAAC;AACD;AACA,CAAC;AACD,kCAAkC,eAAU;AAC5C,4BAA4B,8BAA8B;AAC1D,4CAA4C;AAC5C,CAAC;AACD;AACA,sBAAsB,iBAAiB;AACvC,UAAU,YAAY;AACtB,iBAAiB,oBAAe,kEAAkE,oBAAe;AACjH;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD,UAAU,SAAS;AACnB;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAe;AAC3D,iBAAiB,eAAU;AAC3B,KAAK;AACL;AACA;;AAEA,uCAAuC,KAAK;AAC5C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAU;AAC9C,SAAS;AACT;AACA,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,qCAAqC,WAAW,UAAU,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,MAAM,cAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iBAAY;AAC3E,0DAA0D,iBAAY;AACtE,yDAAyD,iBAAY;AACrE,6DAA6D,iBAAY;AACzE;AACA;AACA,0BAA0B,cAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,qBAAgB;AACrC;AACA;AACA,4BAA4B,qBAAgB;AAC5C;AACA;AACA;AACA,8DAA8D,iBAAY;AAC1E,gEAAgE,iBAAY;AAC5E,mFAAmF,iBAAY;AAC/F,uFAAuF,iBAAY;AACnG;AACA,0BAA0B,cAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAW;AAC/C,MAAM,gBAAW,gBAAgB,gBAAW;AAC5C,iCAAiC,UAAU;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C;AACA;AACA;AACA,KAAK;AACL,kBAAkB,SAAS;AAC3B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,QAAQ,yBAAyB,oCAAoC,UAAU,QAAQ,iDAAiD;AACjL,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA,mBAAmB,UAAU;AAC7B,cAAc,OAAO;AACrB,0BAA0B,eAAe;AACzC,wEAAwE,OAAO;AAC/E,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D,UAAU,KAAK;AACf;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE,UAAU,QAAQ,UAAU,OAAO;AACnC;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;AACA,mBAAmB,oBAAe,wBAAwB,oBAAe;AACzE;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wDAAwD,OAAO;AAC/D,UAAU,QAAQ,UAAU,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAAmD;AAC1E;AACA,qBAAqB,eAAU;AAC/B;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA,cAAc,WAAW;AACzB,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAU;AAC3B;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gBAAgB,gBAAW;AAC3B,wFAAwF,gBAAW;AACnG,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,oBAAoB,SAAS,gBAAW,YAAY;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAkE;AACxE,MAAM,mGAAmG;AACzG,MAAM,sGAAsG;AAC5G,MAAM,oEAAoE;AAC1E,MAAM,iDAAiD;AACvD,MAAM,iCAAiC;AACvC,MAAM,+DAA+D;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B,KAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,KAAG;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,KAAG;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,KAAG;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,KAAG,aAAa,mDAAmD;AACtF;AACA,mBAAmB,KAAG,UAAU,uDAAuD;AACvF;AACA;AACA;AACA;AACA,YAAY,KAAG;AACf,YAAY,KAAG;AACf,YAAY,KAAG;AACf;AACA,gBAAgB,KAAG;AACnB;AACA;AACA;AACA;AACA,YAAY,KAAG;AACf;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB;AACA,gCAAgC;AAChC;AACA,uBAAuB;AACvB,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kCAAkC;AACxE;AACA;AACA;AACA;AACA;AACA,WAAW,eAAU,gBAAgB,mCAAmC,IAAI,MAAM,EAAE,8BAA8B,EAAE,YAAY;AAChI;AACA,MAAM,qBAAS,gBAAgB,eAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,8BAA8B;AAC9D,+BAA+B,8BAA8B;AAC7D,yCAAyC,8BAA8B;AACvE,wCAAwC;AACxC,CAAC;AACD;AACA;AACA,iBAAiB,IAAI;AACrB,IAAI,qBAAS;AACb;;AAEgT;;;ACluChF;AACpF;AAC9E;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAU;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;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,mBAAmB,EAAE,iCAAiC;AACrE;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA,6CAA6C,4DAA4D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA,yBAAyB,oBAAoB,KAAK,OAAO,GAAG,kBAAkB;AAC9E;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB,yCAAyC;AACzC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,uBAAuB,gGAAgG;AACvH,mBAAmB,oBAAe;AAClC;AACA,KAAK,MAAM,mDAAmD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAW;AACtD,2CAA2C,gBAAW;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,uBAAuB,gBAAW,qBAAqB,kBAAa;AACpE;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA,wBAAwB,gBAAW,uBAAuB,kBAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qBAAqB;AACjF,2BAA2B,gBAAW;AACtC;AACA;AACA,qBAAqB,kBAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,wBAAwB;AAC/G,uBAAuB,gBAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAa,CAAC,gBAAW;AACnE;AACA;AACA;AACA;AACA;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,sCAAsC,KAAK;AAC3C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK,IAAI,gBAAgB,IAAI,aAAa,kBAAkB;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC;AACzE,SAAS;AACT;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,KAAK;AACvE;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC,cAAc;AAC/C,kBAAkB,oBAAoB,gBAAgB,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA,6DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,4FAA4F,mBAAmB,uCAAuC;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAI;AACvC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,kBAAkB,sEAAsE,YAAO;AAC/F;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAI;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAW;AAChD,4BAA4B;AAC5B,CAAC;AACD,uCAAuC,gBAAW;AAClD,qCAAqC,UAAU;AAC/C,eAAe,iCAAiC;AAChD,wBAAwB,0BAA0B;AAClD;AACA,QAAQ,WAAW;AACnB,QAAQ,eAAU;AAClB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sEAAsE,qDAAqD;AAC/K;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yCAAyC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yCAAyC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;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,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,yCAAyC;AAC1E,YAAY,YAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA,0DAA0D,yCAAyC;AACnG;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,sDAAsD,0CAA0C;AAChG;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sCAAsC,IAAI,sBAAsB,eAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,MAAM,2BAAS,gBAAgB,eAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA,KAAK;AACL,mDAAmD,eAAe;AAClE,oDAAoD,cAAc;AAClE,0DAA0D,UAAU,qBAAqB,KAAK;AAC9F,2DAA2D,SAAS,qBAAqB,KAAK;AAC9F,iCAAiC,8BAA8B;AAC/D,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB,wBAAwB;AAC7C,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB,eAAe,KAAK,OAAO;AACzE;AACA,iDAAiD;AACjD,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,UAAU,uCAAuC,UAAU;AACpG;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,OAAO;AACP,8BAA8B,UAAU,QAAQ,0BAA0B;AAC1E;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C,0BAA0B;AAC1B,CAAC;AACD,iCAAiC,gBAAW;AAC5C,kCAAkC,UAAU;AAC5C,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,eAAU,6CAA6C,UAAU;AACnF,CAAC;AACD;AACA,WAAW,oBAAe,sDAAsD,oBAAe;AAC/F;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO,KAAK,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG;;AAEtE,SAAS,oCAAoC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,EAAE,QAAQ,cAAc;AACpD;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,cAAc,OAAO;AACrB;AACA,uBAAuB,iEAAiE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,2BAAS;AAC1H;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4DAA4D;AAClE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC,oBAAoB;AACpB,CAAC;AACD,sCAAsC,IAAI,sBAAsB,MAAM;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB,0BAA0B;AACpF;AACA,2CAA2C,eAAU;AACrD;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,gCAAgC,WAAW,IAAI,OAAO,GAAG,QAAQ;AACjE;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAmB;AACnD;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE,cAAc,QAAQ;AACtB;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA,MAAM,0BAAQ;AACd,2BAA2B;AAC3B,gBAAgB,EAAE;AAClB;AACA;AACA,wCAAwC,gBAAW;AACnD;AACA,+CAA+C,YAAO;AACtD;AACA;AACA,CAAC;AACD,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C,eAAe,OAAO,aAAQ,SAAS;AACvC;AACA;AACA;AACA;AACA,mCAAmC,sDAAsD;AACzF;AACA;AACA;AACA,uCAAuC,4DAA4D;AACnG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAY;AACxB;AACA,8BAA8B;AAC9B;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA,4DAA4D,0BAAQ;AACpE;AACA;AACA,MAAM,iBAAY,gBAAgB,eAAU;AAC5C;AACA;AACA;AACA,mDAAmD,kBAAa,CAAC,gBAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA,kCAAkC,0BAAQ;AAC1C;AACA;AACA;AACA;AACA,kFAAkF,gBAAW;AAC7F,6BAA6B,WAAW,gEAAgE;AACxG,+BAA+B,oBAAe;AAC9C;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA,yCAAyC,oDAAoD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAAQ;AAC1C;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA,gEAAgE,0BAAQ;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yBAAyB,kBAAa,CAAC,gBAAW;AAClD;AACA;AACA;AACA,WAAW,kBAAa,CAAC,gBAAW;AACpC;AACA;AACA;AACA;AACA,qBAAqB,YAAY,gCAAgC,IAAI,+BAA+B;AACpG;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA,qBAAqB,WAAW,wCAAwC;AACxE;AACA,uBAAuB,oBAAe;AACtC,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,WAAW,gEAAgE;AAChG,uBAAuB,oBAAe;AACtC,wBAAwB;AACxB,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kDAAkD,0BAAQ;AAC1D;AACA;AACA,qBAAqB,YAAY,iCAAiC,IAAI,+BAA+B;AACrG;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA,yBAAyB,WAAW,kCAAkC;AACtE;AACA,2BAA2B,oBAAe;AAC1C;AACA;AACA;AACA;AACA,yBAAyB,WAAW,sDAAsD;AAC1F,2BAA2B,oBAAe;AAC1C;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,kDAAkD;AAClF;AACA,uBAAuB,oBAAe;AACtC;AACA,qDAAqD,iBAAY;AACjE;AACA,yBAAyB,WAAW,kCAAkC;AACtE;AACA,2BAA2B,oBAAe;AAC1C;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,eAAU;AACzB;AACA;AACA;AACA,eAAe,eAAU;AACzB;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAY;AAC7D;AACA;AACA;AACA,iGAAiG,iBAAY;AAC7G;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yCAAyC;AAC/C,MAAM,oCAAoC;AAC1C,MAAM,qCAAqC;AAC3C,MAAM,mEAAmE;AACzE,MAAM,kEAAkE;AACxE,MAAM,0EAA0E;AAChF,MAAM,yEAAyE;AAC/E,MAAM;AACN;AACA,yCAAyC,IAAI,sBAAsB,MAAM;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6hB;;;AC9hExe;AACqB;AACJ;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,KAAK;AAClD;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,WAAW,eAAU;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,gEAAgE,kBAAkB,MAAM,UAAU,kBAAkB,UAAU,KAAK,YAAY;AAC/I;AACA,cAAc,UAAU,EAAE,0BAA0B,YAAY,sBAAsB;AACtF;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,UAAU;AACxD;AACA;AACA,gDAAgD,YAAY;AAC5D,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA,SAAS;AACT;AACA;;AAE8B;;;ACtZ9B,qHAAqH,oBAAC,oCAAoC,gBAAgB,oBAAoB,wBAAwB,oBAAoB,SAAS,oBAAoB,2BAA2B,8BAA8B,UAAU,SAAS,MAAM,iCAAiC,sCAAsC,QAAQ,WAAW,gCAAgC,6CAA6C,SAAS,gBAAgB,qBAAqB,iCAAiC,sCAAsC,4BAA4B,uDAAuD,sBAAsB,SAAS,cAAc,YAAY,mBAAmB,KAAK,yCAAyC,yCAAyC,YAAY,qIAAqI,gEAAgE,GAAG,SAAS,kBAAkB,qBAAqB,oBAAoB,mCAAmC,4BAA4B,eAAe,6BAA6B,+BAA+B,oEAAoE,sCAAsC,aAAa,gCAAgC,oCAAoC,kDAAkD,WAAW,SAAS,oBAAC,gBAAgB,IAAI,wBAAwB,SAAS,iBAAiB,yCAAyC,cAAc,kBAAkB,uBAAuB,kCAAkC,mBAAmB,cAAc,oBAAC,qBAAqB,cAAc,oBAAC,sBAAsB,UAAU,IAAyhG,+DAA+D,UAAU,cAAc,UAAU,MAAM,6NAA6N,qBAAE,wEAAwE,qBAAE,kGAAkG,eAAe,2BAA2B,eAAe,WAAW,eAAe,YAAY,WAAW,WAAW,UAAU,qBAAE,IAAI,cAAc,MAAM,MAAM,qBAAE,SAAS,qBAAE,UAAU,eAAe,+BAA+B,qBAAE,SAAS,eAAe,kBAAkB,iBAAiB,2EAA2E,iBAAiB,aAAa,eAAe,oBAAoB,iBAAiB,OAAO,4CAA4C,eAAe,0EAA0E,oGAAoG,SAAS,eAAe,mBAAmB,sDAAsD,SAAS,gEAAgE,iBAAiB,+BAA+B,iBAAiB,+EAA+E,8DAA8D,WAAW,iBAAiB,+GAA+G,KAAK,qBAAqB,eAAe,uFAAuF,iBAAiB,iBAAiB,kBAAkB,0CAA0C,IAAI,KAAK,iBAAiB,2DAA2D,eAAe,uCAAuC,mDAAmD,sGAAsG,eAAe,YAAY,qBAAqB,eAAe,gBAAgB,aAAa,eAAe,YAAY,WAAW,eAAe,eAAe,kBAAkB,WAAW,eAAe,mBAAmB,SAAS,EAAE,qBAAqB,WAAW,YAAY,KAAK,IAAI,cAAc,QAAQ,MAAM,SAAS,IAAI,uEAAuE,sBAAsB,eAAe,kDAAkD,YAAY,2BAA2B,gCAAgC,oDAAoD,sBAAsB,iFAAiF,gEAAgE,GAAG,eAAe,oEAAoE,qBAAqB,eAAe,sCAAsC,KAAK,0BAA0B,kCAAkC,oCAAoC,eAAe,SAAS,YAAY,MAAM,mBAAmB,wBAAwB,gHAAgH,YAAY,uBAAuB,0BAA0B,+BAA+B,4CAA4C,mBAAmB,eAAe,mBAAmB,oBAAoB,oCAAoC,6BAA6B,mDAAmD,SAAS,UAAU,MAAM,mBAAmB,wDAAwD,mJAAmJ,SAAS,cAAc,0BAA0B,+BAA+B,MAAM,MAAM,kBAAkB,qDAAqD,8HAA8H,4CAA4C,uCAAuC,0BAA0B,kCAAkC,uCAAuC,MAAM,SAAS,YAAY,MAAM,qCAAqC,eAAe,4BAA4B,GAAG,6CAA6C,SAAS,kBAAkB,YAAY,8DAA8D,IAAI,EAAE,eAAe,+DAA+D,YAAY,eAAe,qDAAqD,cAAc,gEAAgE,kCAAkC,eAAe,kBAAkB,eAAe,kBAAkB,iBAAiB,aAAa,iBAAiB,YAAY,iDAAiD,eAAe,uEAAuE,IAAI,SAAS,SAAS,+CAA+C,eAAe,KAAK,eAAe,KAAK,6BAA6B,eAAe,KAAK,YAAY,eAAe,KAAK,YAAY,yBAAyB,4BAA4B,cAAc,WAAW,eAAe,UAAU,iBAAiB,SAAS,wBAAwB,aAAa,kDAAkD,SAAS,mBAAmB,QAAQ,IAAI,KAAK,UAAU,4JAA4J,6CAA6C,QAAQ,IAAI,4CAA4C,6BAA6B,SAAS,qBAAqB,OAAO,iCAAiC,gDAAgD,YAAY,qCAAqC,YAAY,SAAS,EAAE,cAAc,oBAAoB,SAAS,QAAQ,WAAW,cAAc,MAAM,iBAAiB,+EAA+E,wBAAwB,WAAW,KAAK,WAAW,6DAA6D,eAAe,kDAAkD,iGAAiG,IAAI,0BAA0B,cAAc,MAAM,yDAAyD,YAAY,kBAAkB,iBAAiB,gBAAgB,WAAW,KAAK,QAAQ,sEAAsE,mDAAmD,uDAAuD,YAAY,gBAAgB,wBAAwB,QAAQ,0CAA0C,iBAAiB,kBAAkB,aAAa,mBAAmB,WAAW,iBAAiB,8CAA8C,2FAA2F,iBAAiB,aAAa,wBAAwB,WAAW,eAAe,eAAe,UAAU,YAAY,SAAS,cAAc,KAAK,IAAI,iBAAiB,cAAc,KAAK,SAAS,EAAE,aAAa,mBAAmB,gBAAgB,YAAY,+CAA+C,OAAO,GAAG,SAAS,mBAAmB,QAAQ,OAAO,cAAc,WAAW,KAAK,IAAI,YAAY,qEAAqE,GAAG,SAAS,qBAAqB,eAAe,KAAK,eAAe,eAAe,UAAU,KAAK,SAAS,MAAM,IAAI,YAAY,IAAI,KAAK,WAAW,6BAA6B,QAAQ,OAAO,eAAe,eAAe,qBAAqB,IAAI,KAAK,WAAW,oBAAoB,wGAAwG,SAAS,qBAAqB,cAAc,qBAAqB,SAAS,gCAAgC,eAAe,+CAA+C,YAAY,gBAAgB,EAAE,qBAAqB,SAAS,kBAAkB,SAAS,WAAW,eAAe,mBAAmB,OAAO,SAAS,EAAE,4CAA4C,eAAe,iBAAiB,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,SAAS,mBAAmB,QAAQ,MAAM,cAAc,aAAa,IAAI,UAAU,+BAA+B,SAAS,EAAE,iBAAiB,aAAa,aAAa,IAAI,WAAW,WAAW,IAAI,SAAS,eAAe,cAAc,IAAI,KAAK,SAAS,sBAAsB,yBAAyB,+DAA+D,QAAQ,WAAW,cAAc,gCAAgC,cAAc,yBAAyB,6BAA6B,0BAA0B,eAAe,gBAAgB,uCAAuC,uCAAuC,mBAAmB,6BAA6B,KAAK,sCAAsC,gEAAgE,GAAG,cAAc,uGAAuG,6BAA6B,eAAe,kBAAkB,wBAAwB,IAAI,uCAAuC,QAAQ,KAAK,SAAS,cAAc,kEAAkE,eAAe,eAAe,SAAS,IAAI,iBAAiB,QAAQ,MAAM,aAAa,iBAAiB,aAAa,eAAe,uEAAuE,0CAA0C,WAAW,uCAAuC,eAAe,qEAAqE,wEAAwE,2DAA2D,WAAW,UAAU,YAAY,wGAAwG,MAAM,qBAAE,IAAI,gBAAgB,eAAe,SAAS,UAAU,cAAc,eAAe,iCAAiC,sDAAsD,6CAA6C,kEAAkE,kBAAkB,2DAA2D,GAAG,mBAAmB,oFAAoF,2JAA2J,MAAM,SAAS,IAAI,wBAAwB,SAAS,cAAc,QAAQ,OAAO,qBAAqB,iIAAiI,aAAa,uDAAuD,0BAA0B,WAAW,0DAA0D,SAAS,eAAe,oBAAoB,+BAA+B,eAAe,iEAAiE,WAAW,4CAA4C,2BAA2B,EAAE,eAAe,kBAAkB,iBAAiB,YAAY,oBAAoB,iCAAiC,0CAA0C,GAAG,cAAc,SAAS,SAAS,eAAe,qBAAqB,eAAe,uCAAuC,aAAa,GAAG,eAAe,kBAAkB,eAAe,qIAAqI,iCAAiC,eAAe,8EAA8E,eAAe,8EAA8E,eAAe,iBAAiB,aAAa,cAAc,gBAAgB,IAAI,aAAa,QAAQ,cAAc,eAAe,wEAAwE,wBAAwB,SAAS,EAAE,aAAa,aAAa,eAAe,sEAAsE,0CAA0C,sCAAsC,SAAS,EAAE,uBAAuB,eAAe,KAAK,6BAA6B,oBAAoB,oCAAoC,MAAM,eAAe,0GAA0G,eAAe,iCAAiC,sGAAsG,iBAAiB,SAAS,sBAAsB,aAAa,GAAG,iBAAiB,eAAe,QAAQ,mBAAmB,wBAAwB,SAAS,mBAAmB,cAAc,uFAAuF,kBAAkB,SAAS,EAAE,aAAa,4CAA4C,eAAe,SAAS,iBAAiB,WAAW,kDAAkD,kBAAkB,SAAS,EAAE,aAAa,wCAAwC,6EAA6E,eAAe,oEAAoE,YAAY,eAAe,KAAK,eAAe,mBAAmB,eAAe,IAAI,0CAA0C,wEAAwE,8BAA8B,EAAE,eAAe,SAAS,aAAa,oBAAoB,UAAU,aAAa,cAAc,SAAS,IAAI,YAAY,WAAW,KAAK,WAAW,sCAAsC,QAAQ,aAAa,cAAc,aAAa,cAAc,kCAAkC,eAAe,QAAQ,iFAAiF,UAAU,KAAK,SAAS,EAAE,UAAU,qBAAqB,MAAM,YAAY,cAAc,gRAAgR,QAAQ,6VAA6V,kCAAkC,eAAe,sBAAsB,UAAU,eAAe,cAAc,kBAAkB,IAAI,WAAW,QAAQ,aAAa,mBAAmB,+DAA+D,kCAAkC,eAAe,gBAAgB,UAAU,6DAA6D,6BAA6B,uDAAuD,MAAM,4CAA4C,GAAG,GAAG,WAAW,GAAG,0BAA0B,mBAAmB,gEAAgE,cAAc,0FAA0F,4EAA4E,0BAA0B,+BAA+B,uBAAuB,OAAO,oBAAoB,eAAe,sDAAsD,6BAA6B,GAAG,eAAe,uIAAuI,MAAM,mBAAmB,8DAA8D,mBAAmB,iBAAiB,YAAY,2BAA2B,sBAAsB,6BAA6B,EAAE,cAAc,kBAAkB,IAAI,eAAe,SAAS,EAAE,iDAAiD,IAAI,gBAAgB,qCAAqC,cAAc,oBAAoB,iBAAiB,SAAS,gBAAgB,yCAAyC,IAAI,MAAM,kBAAkB,qBAAqB,QAAQ,IAAI,oBAAoB,SAAS,QAAQ,gDAAgD,eAAe,yCAAyC,+BAA+B,iBAAiB,SAAS,sDAAsD,iBAAiB,iDAAiD,WAAW,6CAA6C,sDAAsD,gCAAgC,UAAU,iBAAiB,iKAAiK,WAAW,OAAO,gBAAgB,6CAA6C,MAAM,sBAAsB,aAAa,sBAAsB,gCAAgC,UAAU,cAAc,yEAAyE,iBAAiB,cAAc,4EAA4E,+BAA+B,iBAAiB,sBAAsB,iBAAiB,6CAA6C,mFAAmF,iBAAiB,qBAAqB,IAAI,4BAA4B,+BAA+B,GAAG,YAAY,gBAAgB,iDAAiD,yCAAyC,mKAAmK,GAAG,oBAAoB,YAAY,WAAW,KAAK,WAAW,cAAc,SAAS,YAAY,yBAAyB,UAAU,EAAE,gBAAgB,4CAA4C,UAAU,gCAAgC,EAAE,qBAAE,gBAAgB,2BAA2B,kBAAkB,kBAAkB,gEAAgE,wBAAwB,mBAAmB,gBAAgB,qBAAqB,IAAI,OAAO,oCAAoC,gBAAgB,SAAS,UAAU,8BAA8B,SAAS,QAAQ,gBAAgB,4BAA4B,gBAAgB,qEAAqE,MAAM,+EAA+E,GAAG,qBAAqB,MAAM,eAAe,mBAAmB,iBAAiB,8CAA8C,qEAAqE,WAAW,2DAA2D,OAAO,iDAAiD,OAAO,MAAM,SAAS,0BAA0B,gEAAgE,mBAAmB,4BAA4B,SAAS,wCAAwC,GAAG,iBAAiB,SAAS,uBAAuB,yEAAyE,0BAA0B,gCAAgC,2BAA2B,UAAU,0BAA0B,qBAAE,IAAI,GAAG,SAAS,uBAAuB,2CAA2C,wFAAwF,aAAa,IAAI,MAAM,MAAM,4GAA4G,QAAQ,IAAI,6CAA6C,MAAM,8GAA8G,UAAU,yBAAyB,sBAAsB,aAAa,SAAS,2BAA2B,QAAQ,WAAW,kBAAkB,QAAQ,WAAW,oBAAoB,+DAA+D,6FAA6F,SAAS,cAAc,kBAAkB,2DAA2D,qBAAqB,IAAI,uBAAuB,KAAK,gGAAgG,yBAAyB,wBAAwB,qBAAE,IAAI,SAAS,8BAA8B,eAAe,QAAQ,wBAAwB,MAAM,QAAQ,IAAI,MAAM,MAAM,2CAA2C,QAAQ,IAAI,MAAM,MAAM,wCAAwC,mBAAmB,4BAA4B,IAAI,oBAAoB,kCAAkC,MAAM,mBAAmB,mEAAmE,WAAW,YAAY,IAAI,KAAK,WAAW,mDAAmD,GAAG,WAAW,YAAY,0BAA0B,MAAM,uCAAuC,GAAG,2CAA2C,+EAA+E,OAAO,WAAW,GAAG,qBAAqB,mCAAmC,iCAAiC,qDAAqD,yCAAyC,IAAI,kJAAkJ,UAAU,mBAAmB,gFAAgF,MAAM,EAAE,YAAY,iBAAiB,mBAAmB,mFAAmF,uBAAuB,eAAe,SAAS,MAAM,2FAA2F,WAAW,kCAAkC,YAAY,qDAAqD,MAAM,iBAAiB,iBAAiB,KAAK,GAAG,uBAAuB,0DAA0D,wFAAwF,mBAAmB,YAAY,SAAS,yDAAyD,MAAM,mBAAmB,SAAS,yCAAyC,GAAG,yBAAyB,cAAc,SAAS,UAAU,oCAAoC,QAAQ,4CAA4C,GAAG,eAAe,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,2CAA2C,yCAAyC,SAAS,eAAe,oCAAoC,wCAAwC,IAAI,oDAAoD,SAAS,iBAAiB,iBAAiB,kEAAkE,4GAA4G,qBAAqB,kEAAkE,6DAA6D,0HAA0H,qBAAqB,iIAAiI,wBAAwB,mCAAmC,6EAA6E,iFAAiF,eAAe,WAAW,gEAAgE,yBAAyB,wCAAwC,aAAa,QAAQ,uBAAuB,iBAAiB,sBAAsB,gBAAgB,gFAAgF,2CAA2C,oBAAoB,0CAA0C,gDAAgD,YAAY,WAAW,iBAAiB,qBAAqB,MAAM,KAAK,cAAc,kBAAkB,iBAAiB,mCAAmC,kDAAkD,uCAAuC,MAAM,oBAAoB,wBAAwB,sCAAsC,IAAI,eAAe,qFAAqF,0FAA0F,MAAM,8BAA8B,MAAM,0DAA0D,+IAA+I,8CAA8C,qBAAqB,gBAAgB,qBAAqB,iEAAiE,KAAK,uBAAuB,0DAA0D,0BAA0B,yBAAyB,2CAA2C,GAAG,oBAAoB,SAAS,eAAe,eAAe,2BAA2B,cAAc,wBAAwB,gCAAgC,MAAM,EAAE,eAAe,qBAAE,wBAAwB,QAAQ,SAAS,mBAAmB,oCAAoC,kCAAkC,MAAM,6EAA6E,mBAAmB,MAAM,kCAAkC,mBAAmB,KAAK,mCAAmC,uBAAuB,qBAAqB,0DAA0D,iFAAiF,iBAAiB,sEAAsE,kBAAkB,+BAA+B,wCAAwC,wCAAwC,+FAA+F,+DAA+D,UAAU,2FAA2F,GAAG,eAAe,aAAa,gCAAgC,eAAe,qBAAqB,mBAAmB,cAAc,2BAA2B,UAAU,IAAI,mBAAmB,mCAAmC,oDAAoD,MAAM,wBAAwB,YAAY,6DAA6D,QAAQ,oCAAoC,iBAAiB,oEAAoE,mBAAmB,kCAAkC,sDAAsD,KAAK,8FAA8F,WAAW,KAAK,YAAY,UAAU,4BAA4B,kCAAkC,yBAAyB,iBAAiB,eAAe,SAAS,iCAAiC,gBAAgB,QAAQ,GAAG,oBAAoB,gEAAgE,OAAO,gBAAgB,GAAG,IAAI,eAAe,sCAAsC,iBAAiB,yCAAyC,cAAc,+DAA+D,mFAAmF,gBAAgB,QAAQ,gBAAgB,kBAAkB,wDAAwD,GAAG,QAAQ,SAAS,+BAA+B,IAAI,KAAK,eAAe,kBAAkB,8CAA8C,IAAI,sBAAsB,8DAA8D,eAAe,kBAAkB,8CAA8C,IAAI,sBAAsB,6DAA6D,cAAc,2EAA2E,MAAM,oBAAoB,MAAM,YAAY,YAAY,eAAe,6CAA6C,gBAAgB,GAAG,YAAY,oBAAoB,gBAAgB,sBAAsB,4BAA4B,WAAW,0CAA0C,wBAAwB,gBAAgB,IAAI,iBAAiB,kCAAkC,IAAI,eAAe,YAAY,kBAAkB,sEAAsE,iBAAiB,4FAA4F,8BAA8B,eAAe,0DAA0D,YAAY,iCAAiC,GAAG,eAAe,oCAAoC,cAAc,SAAS,gCAAgC,wDAAwD,MAAM,0CAA0C,IAAI,6BAA6B,2DAA2D,0BAA0B,gCAAgC,EAAE,QAAQ,6BAA6B,0BAA0B,UAAU,eAAe,wCAAwC,8DAA8D,oBAAoB,eAAe,YAAY,yCAAyC,gBAAgB,UAAU,QAAQ,SAAS,wFAAwF,iDAAiD,SAAS,mBAAmB,uEAAuE,+CAA+C,+CAA+C,QAAQ,8MAA8M,iBAAiB,kBAAkB,4BAA4B,eAAe,KAAK,QAAQ,SAAS,yBAAyB,IAAI,EAAE,iBAAiB,oEAAoE,YAAY,yBAAyB,IAAI,EAAE,iBAAiB,eAAe,cAAc,+BAA+B,SAAS,+BAA+B,yBAAyB,IAAI,EAAE,iBAAiB,wDAAwD,cAAc,mDAAmD,UAAU,2BAA2B,gEAAgE,SAAS,YAAY,SAAS,4EAA4E,WAAW,cAAc,8CAA8C,IAAI,sBAAsB,kBAAkB,QAAQ,KAAK,qBAAqB,6DAA6D,oBAAoB,SAAS,IAAI,sBAAsB,QAAQ,MAAM,oBAAoB,uLAAuL,6CAA6C,4DAA4D,2BAA2B,WAAW,qCAAqC,KAAK,4BAA4B,eAAe,YAAY,8CAA8C,mBAAmB,MAAM,iBAAiB,qBAAqB,4DAA4D,iCAAiC,kBAAkB,oCAAoC,GAAG,sCAAsC,kDAAkD,2BAA2B,0EAA0E,cAAc,eAAe,yEAAyE,kBAAkB,IAAI,0FAA0F,UAAU,OAAO,UAAU,kEAAkE,IAAI,gBAAgB,kBAAkB,gBAAgB,WAAW,oCAAoC,iCAAiC,IAAI,kBAAkB,8CAA8C,IAAI,sBAAsB,qDAAqD,eAAe,sIAAsI,cAAc,WAAW,eAAe,sBAAsB,eAAe,OAAO,oBAAE,SAAS,IAAI,oBAAE,iDAAiD,eAAe,4FAA4F,eAAe,0HAA0H,eAAe,qBAAqB,eAAe,wGAAwG,2CAA2C,IAAI,sBAAsB,sBAAsB,SAAS,SAAS,SAAS,eAAe,8EAA8E,qBAAqB,uDAAuD,cAAc,eAAe,+CAA+C,iBAAiB,2FAA2F,qCAAqC,yBAAyB,kCAAkC,wBAAwB,qBAAqB,uFAAuF,0BAA0B,eAAe,qCAAqC,iBAAiB,mBAAmB,eAAe,oEAAoE,eAAe,kBAAkB,0BAA0B,iBAAiB,gCAAgC,YAAY,WAAW,4BAA4B,SAAS,eAAe,mEAAmE,2DAA2D,gBAAgB,+CAA+C,kBAAC,4CAA4C,oBAAoB,GAAG,qCAAqC,IAAI,KAAK,WAAW,iCAAiC,gBAAC,EAAE,mBAAmB,uBAAuB,IAAI,SAAS,iBAAiB,iCAAiC,eAAe,WAAW,IAAI,eAAe,wBAAwB,qBAAqB,iCAAiC,wCAAwC,mBAAmB,iDAAiD,iBAAiB,IAAI,kBAAkB,SAAS,eAAe,UAAC,MAAM,iBAAiB,IAAI,eAAe,SAAS,QAAQ,iBAAiB,mBAAmB,IAAI,YAAY,UAAU,IAAI,WAAW,MAAM,GAAG,UAAU,IAAI,oBAAoB,UAAU,gDAAgD,eAAe,mBAAmB,IAAI,OAAO,UAAC,IAAI,UAAU,IAAI,MAAM,UAAC,YAAY,iCAAiC,UAAU,IAAI,MAAM,UAAC,GAAG,MAAM,GAAG,iCAAiC,UAAU,iDAAiD,eAAe,iBAAiB,iBAAiB,MAAM,+BAA+B,6IAA6I,IAAI,yBAAyB,SAAS,yCAAyC,OAAO,mGAAmG,+JAA+J,0BAA0B,KAAK,YAAY,2BAA2B,0BAA0B,eAAe,OAAO,mGAAmG,eAAe,8YAA8Y,eAAe,yDAAyD,eAAe,sCAAsC,eAAe,8BAA8B,eAAe,kIAAkI,gBAAgB,iCAAiC,eAAe,kEAAkE,gBAAgB,sBAAsB,mBAAmB,sBAAsB,iBAAiB,iBAAiB,eAAe,iEAAiE,8BAA8B,iBAAiB,qBAAqB,qBAAqB,8BAA8B,YAAY,WAAW,KAAK,uBAAuB,eAAe,qBAAqB,2BAA2B,YAAY,WAAW,KAAK,kBAAkB,oBAAoB,uDAAuD,MAAM,iEAAiE,iBAAiB,oDAAoD,qCAAqC,eAAe,IAAI,oDAAoD,GAAG,yBAAyB,aAAa,4CAA4C,WAAW,eAAe,4FAA4F,WAAW,eAAe,8DAA8D,WAAW,eAAe,kDAAkD,WAAW,eAAe,4BAA4B,WAAW,eAAe,0BAA0B,WAAW,eAAe,kDAAkD,WAAW,GAAG,QAAQ,4DAA4D,KAAK,oDAAoD,KAAK,oDAAoD,KAAK,6CAA6C,eAAe,sCAAsC,MAAM,iJAAiJ,GAAG,eAAe,iCAAiC,EAAE,QAAQ,IAAI,4BAA4B,gBAAgB,SAAS,UAAU,GAAG,QAAQ,6EAA6E,KAAK,wFAAwF,eAAe,mDAAmD,eAAe,gDAAgD,eAAe,6DAA6D,iBAAiB,6DAA6D,mBAAmB,gCAAgC,+DAA+D,UAAU,iBAAiB,gBAAgB,iBAAiB,YAAY,SAAS,gBAAgB,SAAS,eAAe,QAAQ,4GAA4G,eAAe,sDAAsD,4BAA4B,iBAAiB,iCAAiC,eAAe,4NAA4N,eAAe,0BAA0B,kBAAC,KAAK,eAAe,yJAAyJ,SAAS,gBAAC,+BAA+B,eAAe,IAAI,wEAAwE,KAAK,aAAC,uBAAuB,gCAAgC,6BAA6B,aAAa,cAAc,gCAAgC,OAAO,wDAAwD,gBAAgB,uFAAuF,0BAA0B,gBAAgB,4BAA4B,+BAA+B,qCAAqC,MAAM,iBAAiB,uCAAuC,MAAM,mBAAmB,mCAAmC,QAAQ,KAAK,eAAC,OAAO,eAAC,mBAAmB,gCAAgC,yBAAyB,6BAA6B,qBAAqB,MAAM,iBAAiB,qBAAqB,MAAM,mCAAmC,eAAC,OAAO,eAAC,MAAM,iCAAiC,cAAc,YAAY,sVAAsV,eAAe,sEAAsE,oIAAoI,iDAAiD,oCAAoC,eAAe,gEAAgE,iCAAiC,QAAQ,yDAAyD,iBAAiB,iBAAiB,EAAE,iBAAiB,oCAAoC,gGAAgG,yKAAyK,wCAAwC,uBAAuB,YAAY,WAAW,aAAa,cAAc,kBAAkB,GAAG,+EAA+E,oBAAoB,YAAY,WAAW,aAAa,cAAc,eAAe,cAAc,iBAAiB,kBAAkB,qBAAqB,GAAG,yFAAyF,uBAAuB,GAAG,GAAG,kPAAkP,iBAAiB,SAAS,mEAAmE,cAAc,sFAAsF,cAAc,uEAAuE,eAAe,qBAAqB,QAAQ,WAAW,+BAA+B,KAAK,uDAAuD,KAAK,MAAM,kBAAkB,mBAAmB,uEAAuE,yBAAyB,8CAA8C,iCAAiC,4CAA4C,YAAY,aAAa,IAAI,sEAAsE,IAAI,8BAA8B,6GAA6G,OAAO,6DAA6D,oDAAoD,IAAI,kCAAkC,GAAG,OAAO,gGAAgG,kFAAkF,GAAG,uCAAuC,8BAA8B,qCAAqC,gCAAgC,IAAI,kCAAkC,UAAU,YAAY,gEAAgE,oBAAoB,kCAAkC,uBAAuB,iBAAiB,SAAS,qDAAqD,cAAc,qCAAqC,WAAW,eAAe,0EAA0E,sBAAsB,kCAAkC,iBAAiB,OAAO,+BAA+B,gBAAgB,+BAA+B,sBAAsB,oCAAoC,kBAAkB,eAAe,mBAAmB,+BAA+B,MAAM,YAAY,aAAa,sBAAsB,EAAE,4BAA4B,oBAAoB,iBAAiB,iEAAiE,SAAS,EAAE,4BAA4B,sCAAsC,SAAS,iBAAiB,UAAU,2CAA2C,eAAe,mBAAmB,sBAAsB,0BAA0B,uBAAuB,wBAAwB,oBAAoB,gCAAgC,+BAA+B,QAAQ,ucAAuc,IAAI,6BAA6B,QAAQ,gEAAgE,CAAC,oDAAoD,MAAM,sFAAsF,kGAAkG,OAAO,CAAC,gBAAgB,4BAA4B,oBAAoB,CAAC,UAAU,eAAe,mBAAmB,wBAAwB,iBAAiB,SAAS,aAAa,8BAA8B,cAAc,uBAAuB,iBAAiB,8DAA8D,wCAAwC,oCAAoC,oFAAoF,WAAW,kCAAkC,KAAK,uBAAuB,aAAa,QAAQ,WAAW,yCAAyC,iCAAiC,4BAA4B,yBAAyB,KAAK,wCAAwC,8BAA8B,KAAK,sCAAsC,8BAA8B,KAAK,6BAA6B,8DAA8D,KAAK,gCAAgC,kBAAkB,KAAK,8BAA8B,6DAA6D,KAAK,uCAAuC,UAAU,gCAAgC,OAAO,YAAY,kCAAkC,OAAO,KAAK,KAAK,4BAA4B,6EAA6E,iBAAiB,0IAA0I,SAAS,uOAAuO,aAAa,QAAQ,kIAAkI,aAAa,qDAAqD,yCAAyC,iBAAiB,MAAM,MAAM,wBAAwB,+BAA+B,WAAW,oBAAoB,GAAG,0DAA0D,IAAI,KAAK,4BAA4B,SAAS,mHAAmH,aAAa,wDAAwD,oGAAoG,SAAS,qBAAqB,UAAU,qDAAqD,WAAW,8CAA8C,2GAA2G,2BAA2B,iXAAiX,uBAAuB,gBAAgB,MAAM,YAAY,iKAAiK,iLAAiL,WAAW,OAAO,YAAY,WAAW,aAAa,aAAa,cAAc,aAAa,WAAW,aAAa,aAAa,aAAa,YAAY,WAAW,YAAY,WAAW,eAAe,WAAW,aAAa,WAAW,aAAa,YAAY,UAAU,iBAAiB,WAAW,uBAAuB,MAAM,mBAAmB,aAAa,MAAM,wDAAwD,cAAc,aAAa,qBAAqB,6BAA6B,GAAG,YAAY,aAAa,MAAM,2DAA2D,cAAc,aAAa,qBAAqB,6BAA6B,GAAG,kBAAkB,MAAM,WAAW,aAAa,aAAa,QAAQ,aAAa,GAAG,UAAU,MAAM,0CAA0C,WAAW,WAAW,UAAU,YAAY,QAAQ,4yBAA4yB,eAAe,oBAAoB,wBAAwB,yBAAyB,mDAAmD,GAAG,2DAA2D,oBAAoB,GAAG,GAAG,oGAAoG,iBAAiB,SAAS,kGAAkG,OAAO,sCAAsC,aAAC,CAAC,QAAC,GAAG,MAAM,WAAW,cAAc,WAAW,2IAA2I,iCAAiC,gCAAgC,kBAAkB,kBAAC,iBAAiB,UAAU,gBAAgB,4+BAA4+B,yFAAyF,wBAAwB,GAAG,2RAA2R,6EAA6E,GAAG,8DAA8D,kDAAkD,0CAA0C,GAAG,6DAA6D,sDAAsD,mEAAmE,GAAG,mEAAmE,gEAAgE,GAAG,GAAG,sEAAsE,iBAAiB,SAAS,iFAAiF,kBAAkB,4BAA4B,qGAAwB,iCAAiC,0DAA0D,+CAA+C,QAAQ,EAAE,gBAAgB,aAAa,aAAa,IAAI,QAAQ,WAAW,4CAA4C,gzBAAgzB,+CAA+C,oDAAoD,qDAAqD,2BAA2B,eAAe,yDAAyD,yBAAyB,wBAAwB,qDAAqD,uBAAuB,wBAAwB,kBAAkB,GAAG,+DAA+D,oBAAoB,GAAG,GAAG,2FAA2F,iBAAiB,SAAS,qCAAqC,oBAAoB,oHAAoH,cAAc,MAAM,kBAAkB,kBAAC,cAAc,OAAO,aAAa,MAAM,uBAAuB,cAAc,oCAAoC,8DAA8D,eAAe,WAAW,SAAS,MAAM,6IAA6I,6BAA6B,QAAQ,SAAS,gJAAgJ,kCAAkC,QAAQ,8EAA8E,GAAG,gBAAgB,8BAA8B,eAAe,2FAA2F,sSAAsS,6CAA6C,eAAe,UAAU,gBAAC,8BAA8B,WAAW,KAAK,+BAA+B,qBAAqB,0DAA0D,WAAW,SAAS,eAAe,gBAAgB,eAAe,2BAA2B,eAAe,4CAA4C,eAAe,oDAAoD,eAAe,uDAAuD,eAAe,wCAAwC,eAAe,4EAA4E,eAAe,oDAAoD,eAAe,uDAAuD,eAAe,+BAA+B,eAAe,gDAAgD,eAAe,gFAAgF,eAAe,sDAAsD,eAAe,2CAA2C,eAAe,uDAAuD,eAAe,qCAAqC,eAAe,oCAAoC,eAAe,oCAAoC,eAAe,oBAAoB,eAAe,kDAAkD,eAAe,2BAA2B,eAAe,2BAA2B,eAAe,2BAA2B,eAAe,IAAI,gBAAgB,iBAAiB,IAAI,iBAAiB,GAAG,wIAAwI,EAAE,kBAAkB,EAAE,2BAA2B,cAAc,IAAI,WAAW,yDAAyD,aAAa,OAAO,qDAAqD,cAAc,IAAI,WAAW,yDAAyD,aAAa,OAAO,wCAAwC,QAAQ,6FAA6F,OAAO,gBAAgB,qBAAqB,IAAI,kFAAkF,GAAG,yBAAyB,qBAAqB,kBAAkB,yBAAyB,+CAA+C,OAAO,KAAC,qBAAqB,UAAU,kBAAkB,yBAAyB,gDAAgD,OAAO,KAAC,uBAAuB,mBAAmB,QAAQ,iBAAiB,iFAAiF,8DAA8D,6BAA6B,oBAAoB,6BAA6B,iBAAiB,YAAY,uBAAuB,eAAe,kCAAkC,SAAS,mCAAmC,sDAAsD,qBAAqB,wBAAwB,MAAM,EAAE,QAAQ,IAAI,uBAAuB,SAAS,mCAAmC,mDAAmD,qBAAqB,2DAA2D,MAAM,EAAE,aAAa,IAAI,SAAS,mBAAmB,eAAe,IAAI,cAAc,GAAG,6BAA6B,GAAG,iBAAiB,qBAAqB,WAAW,EAAE,qBAAqB,WAAW,6BAA6B,KAAK,+FAA+F,WAAW,8BAA8B,IAAI,SAAS,qBAAqB,0BAA0B,mBAAmB,oBAAoB,+BAA+B,MAAM,EAAE,YAAY,IAAI,2BAA2B,iBAAiB,wCAAwC,+BAA+B,eAAe,mBAAmB,aAAa,MAAM,EAAE,gDAAgD,EAAE,eAAe,GAAG,KAAK,WAAW,SAAS,0CAA0C,0EAA0E,MAAM,EAAE,YAAY,MAAM,YAAY,uCAAuC,MAAM,EAAE,YAAY,MAAM,YAAY,6BAA6B,aAAa,qBAAqB,0CAA0C,yCAAyC,gBAAgB,eAAe,+BAA+B,MAAM,EAAE,+BAA+B,0BAA0B,MAAM,EAAE,YAAY,IAAI,mBAAmB,OAAO,uBAAuB,sBAAsB,KAAK,kBAAC,wDAAwD,MAAM,OAAO,sDAAsD,mBAAmB,GAAG,cAAC,4BAA4B,GAAG,iBAAC,qBAAqB,GAAG,kBAAC,KAAK,MAAM,SAAC,uBAAuB,mBAAmB,6BAA6B,IAAI,OAAO,eAAC,KAAK,eAAC,oBAAoB,GAAG,eAAC,8BAA8B,UAAU,SAAC,uBAAuB,eAAC,gBAAgB,YAAY,GAAG,iBAAiB,YAAY,MAAM,UAAU,mBAAmB,IAAI,OAAO,KAAC,YAAY,SAAS,QAAQ,uBAAuB,kBAAkB,OAAO,QAAC,gBAAgB,MAAM,KAAC,MAAM,cAAc,GAAG,qBAAqB,2BAA2B,kBAAkB,OAAO,KAAC,cAAc,aAAa,qBAAqB,sBAAsB,qBAAqB,MAAM,SAAC,eAAe,gBAAgB,iBAAC,aAAa,mBAAmB,SAAS,cAAC,MAAM,0BAA0B,GAAG,aAAa,MAAM,EAAE,6EAA6E,EAAE,eAAe,mBAAmB,MAAM,SAAC,aAAa,iBAAC,MAAM,KAAC,MAAM,0CAA0C,mBAAmB,SAAS,cAAC,MAAM,0BAA0B,GAAG,aAAa,MAAM,EAAE,mEAAmE,EAAE,mBAAmB,cAAc,OAAO,QAAC,MAAM,QAAC,cAAc,QAAQ,mBAAmB,mBAAmB,qBAAqB,KAAK,WAAW,mCAAmC,gCAAgC,kBAAkB,SAAS,aAAa,4DAA4D,KAAK,mBAAmB,QAAQ,KAAC,iDAAiD,+EAA+E,iBAAiB,6EAA6E,0CAA0C,iBAAiB,SAAS,yBAAyB,UAAU,sBAAC,oDAAoD,uCAAuC,GAAG,uBAAC,oDAAoD,oCAAoC,GAAG,WAAW,iBAAiB,sEAAsE,uBAAuB,QAAQ,qBAAqB,EAAE,gBAAgB,yBAAyB,cAAc,sBAAsB,EAAE,sBAAC,KAAK,iCAAiC,YAAY,0BAA0B,qBAAqB,qBAAqB,EAAE,GAAG,GAAG,uBAAC,gCAAgC,kBAAkB,QAAQ,mBAAmB,uBAAuB,qBAAqB,EAAE,IAAI,SAAS,mBAAmB,sBAAsB,kBAAC,UAAU,kBAAC,KAAK,sCAAsC,mBAAmB,mEAAmE,oBAAoB,KAAK,KAAC,MAAM,WAAW,mBAAmB,gBAAgB,sCAAsC,eAAe,8CAA8C,eAAe,oBAAoB,cAAc,SAAS,cAAc,SAAS,eAAe,gCAAgC,eAAe,iCAAiC,eAAe,8BAA8B,eAAe,gCAAgC,eAAe,gCAAgC,eAAe,cAAc,iBAAC,2BAA2B,eAAe,yCAAyC,eAAe,+BAA+B,iBAAiB,SAAS,uBAAuB,aAAa,oBAAoB,GAAG,iBAAC,kBAAkB,qBAAqB,cAAc,wDAAwD,0DAA0D,yBAAyB,MAAM,KAAC,MAAM,GAAG,uBAAC,KAAK,6BAA6B,KAAK,KAAK,wBAAwB,uBAAuB,OAAO,GAAG,sBAAC,KAAK,YAAY,KAAK,KAAK,6BAA6B,uBAAuB,OAAO,8CAA8C,UAAU,UAAU,KAAK,eAAe,oBAAoB,iBAAC,QAAQ,iBAAiB,wBAAwB,2BAA2B,sDAAsD,iBAAiB,wBAAwB,2BAA2B,sDAAsD,mBAAmB,8DAA8D,MAAM,wCAAwC,sBAAsB,kBAAC,IAAI,kBAAC,mBAAmB,6BAA6B,QAAQ,iFAAiF,sBAAsB,sBAAsB,UAAU,mCAAmC,MAAM,iBAAC,MAAM,KAAC,MAAM,yBAAyB,iBAAC,gBAAgB,sCAAsC,qBAAqB,aAAa,0CAA0C,kCAAkC,iBAAC,kDAAkD,OAAO,qGAAqG,iBAAiB,sBAAsB,wCAAwC,KAAK,WAAW,+CAA+C,KAAC,GAAG,iBAAC,kBAAkB,iBAAiB,iBAAiB,MAAM,cAAC,IAAI,8BAA8B,SAAC,YAAY,IAAI,iBAAC,kCAAkC,MAAM,cAAC,iBAAiB,IAAI,eAAC,KAAK,eAAC,oCAAoC,eAAC,KAAK,eAAC,kCAAkC,SAAC,YAAY,uHAAuH,SAAC,aAAa,IAAI,iBAAC,WAAW,yBAAyB,cAAC,cAAc,cAAC,KAAK,iBAAiB,YAAY,oCAAoC,KAAK,oBAAoB,eAAe,2BAA2B,iBAAiB,iBAAiB,KAAC,iBAAiB,iBAAC,QAAQ,iBAAiB,8BAA8B,YAAY,WAAW,4BAA4B,SAAS,eAAe,UAAU,IAAI,cAAc,GAAG,OAAO,eAAe,SAAS,eAAe,OAAO,oBAAoB,iBAAiB,OAAO,2CAA2C,eAAe,OAAO,sBAAsB,iBAAiB,OAAO,6CAA6C,eAAe,OAAO,uBAAuB,eAAe,OAAO,sBAAsB,iBAAiB,qDAAqD,OAAO,wFAAwF,qBAAqB,uBAAuB,cAAC,UAAU,UAAU,MAAM,KAAC,WAAW,iDAAiD,UAAU,GAAG,iBAAC,2CAA2C,cAAc,KAAC,MAAM,qBAAqB,UAAU,MAAM,KAAC,gBAAgB,6BAA6B,wBAAwB,MAAM,KAAC,MAAM,2CAA2C,cAAc,wBAAwB,MAAM,cAAC,MAAM,KAAC,MAAM,uEAAuE,eAAe,eAAe,kCAAkC,eAAe,2BAA2B,eAAe,2BAA2B,eAAe,eAAe,8BAA8B,gCAAgC,gCAAgC,kCAAkC,iBAAiB,UAAU,yBAAyB,2BAA2B,2BAA2B,4BAA4B,2CAA2C,mBAAmB,gCAAgC,iBAAC,iCAAiC,mBAAmB,2BAA2B,8BAA8B,iBAAC,WAAW,6BAA6B,UAAU,0BAA0B,iBAAC,cAAc,yCAAyC,wCAAwC,yBAAyB,SAAS,mBAAmB,MAAM,iBAAC,cAAc,yCAAyC,oBAAoB,KAAC,MAAM,GAAG,uBAAC,qCAAqC,GAAG,sBAAC,KAAK,YAAY,uBAAuB,SAAS,eAAe,gCAAgC,eAAe,iCAAiC,cAAc,mDAAmD,IAAI,sBAAsB,sIAAsI,mBAAmB,mBAAmB,sCAAsC,2FAA2F,EAAE,6yBAA6yB,kDAAkD,GAAG,2EAA2E,oBAAoB,2DAA2D,GAAG,uCAAuC,kDAAkD,GAAG,wCAAwC,mDAAmD,GAAG,qCAAqC,gDAAgD,GAAG,wCAAwC,0CAA0C,GAAG,oCAAoC,+CAA+C,+BAA+B,GAAG,wCAAwC,mBAAmB,mBAAmB,2BAA2B,kBAAkB,uBAAuB,wBAAwB,4BAA4B,uBAAuB,0BAA0B,4BAA4B,GAAG,qDAAqD,0BAA0B,GAAG,qDAAqD,0BAA0B,wBAAwB,GAAG,4DAA4D,wDAAwD,kDAAkD,uBAAuB,0BAA0B,qBAAqB,eAAe,GAAG,4DAA4D,sEAAsE,6BAA6B,GAAG,uDAAuD,yBAAyB,yDAAyD,GAAG,GAAG,+FAA+F,iBAAiB,SAAS,yMAAyM,cAAC,yEAAyE,aAAa,yBAAyB,2BAA2B,qBAAqB,cAAc,mCAAmC,SAAS,aAAa,2BAA2B,6CAA6C,uBAAuB,qDAAqD,mFAAmF,eAAe,QAAQ,YAAY,UAAU,eAAe,8BAA8B,2BAA2B,oCAAoC,eAAe,eAAe,WAAW,uCAAuC,mDAAmD,oCAAoC,qBAAqB,gCAAgC,UAAU,2BAA2B,+BAA+B,oBAAoB,YAAY,yEAAyE,wBAAwB,UAAU,qBAAqB,sFAAsF,6BAA6B,6CAA6C,4CAA4C,QAAQ,2BAA2B,gCAAgC,gBAAgB,yCAAyC,0DAA0D,gBAAgB,iBAAiB,SAAS,sRAAsR,cAAc,uBAAuB,aAAa,mBAAmB,OAAO,iFAAiF,MAAM,YAAY,aAAa,oBAAoB,aAAa,2CAA2C,MAAM,kBAAkB,kBAAC,oCAAoC,aAAa,OAAO,iBAAC,mBAAmB,sDAAsD,SAAS,gCAAgC,IAAI,mBAAmB,YAAY,uCAAuC,IAAI,QAAQ,kBAAkB,kBAAC,cAAc,EAAE,gBAAgB,kBAAkB,KAAK,EAAE,WAAW,cAAc,WAAW,0BAA0B,4CAA4C,OAAO,mBAAmB,MAAM,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,SAAS,cAAC,KAAK,uBAAuB,cAAc,kBAAC,sCAAsC,IAAI,GAAG,uBAAC,KAAK,MAAM,cAAC,gDAAgD,qBAAqB,kBAAkB,OAAO,cAAc,kBAAC,6BAA6B,2BAA2B,sFAAsF,mBAAmB,MAAM,KAAC,MAAM,qBAAqB,eAAe,uBAAuB,cAAc,kBAAC,sCAAsC,IAAI,kBAAkB,+BAA+B,OAAO,cAAc,kBAAC,6BAA6B,GAAG,qBAAqB,8CAA8C,QAAQ,eAAe,kBAAC,mBAAmB,kBAAC,cAAc,yBAAyB,iBAAiB,MAAM,cAAC,IAAI,GAAG,iBAAC,oDAAoD,MAAM,iBAAC,MAAM,cAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,MAAM,cAAC,WAAW,cAAC,SAAS,0BAA0B,eAAe,kBAAC,SAAS,kBAAC,wBAAwB,KAAK,GAAG,uBAAC,KAAK,gDAAgD,qBAAqB,SAAS,cAAC,OAAO,OAAO,eAAe,kBAAC,SAAS,kBAAC,eAAe,2BAA2B,yFAAyF,qBAAqB,UAAU,gBAAgB,iBAAC,WAAW,KAAC,MAAM,2BAA2B,cAAC,iCAAiC,iBAAiB,iBAAC,kBAAkB,QAAQ,kBAAkB,kBAAC,iCAAiC,EAAE,SAAS,QAAQ,kBAAkB,kBAAC,gBAAgB,EAAE,UAAU,cAAc,uBAAuB,MAAM,cAAC,MAAM,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,MAAM,cAAC,WAAW,cAAC,OAAO,mCAAmC,cAAc,kBAAC,sCAAsC,KAAK,GAAG,uBAAC,KAAK,MAAM,cAAC,MAAM,iBAAC,MAAM,cAAC,oEAAoE,cAAC,kCAAkC,8BAA8B,kBAAkB,OAAO,cAAc,kBAAC,6BAA6B,2BAA2B,uFAAuF,cAAc,UAAU,yBAAyB,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,SAAS,cAAC,KAAK,qCAAqC,GAAG,uBAAC,KAAK,aAAa,cAAC,sBAAsB,GAAG,iBAAC,KAAK,cAAC,yBAAyB,4BAA4B,2BAA2B,sFAAsF,UAAU,yBAAyB,KAAC,MAAM,GAAG,sBAAC,iCAAiC,GAAG,uBAAC,KAAK,qBAAqB,GAAG,iBAAC,qBAAqB,MAAM,cAAC,IAAI,2BAA2B,sFAAsF,mFAAmF,eAAe,mBAAmB,iBAAiB,kBAAC,IAAI,cAAc,iBAAiB,OAAO,eAAe,kBAAC,mBAAmB,kBAAC,eAAe,iBAAiB,YAAY,yEAAyE,uCAAuC,uBAAuB,mCAAmC,0BAA0B,mCAAmC,iBAAiB,MAAM,uBAAuB,EAAE,iBAAiB,UAAU,MAAM,iBAAC,WAAW,KAAC,4BAA4B,cAAC,aAAa,OAAO,mCAAmC,gBAAgB,aAAa,kBAAkB,kBAAC,kBAAkB,kBAAkB,UAAU,wBAAwB,cAAC,IAAI,GAAG,iBAAC,KAAK,OAAO,aAAa,8BAA8B,uBAAuB,MAAM,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,MAAM,cAAC,SAAS,cAAC,KAAK,OAAO,iEAAiE,GAAG,uBAAC,KAAK,uBAAuB,cAAC,MAAM,cAAC,4BAA4B,OAAO,uDAAuD,sFAAsF,mFAAmF,iBAAiB,mBAAmB,6DAA6D,iBAAC,CAAC,yBAAyB,cAAc,WAAW,0BAA0B,SAAS,GAAG,CAAC,eAAC,MAAM,iBAAiB,GAAG,iBAAC,KAAK,MAAM,gBAAC,SAAS,OAAO,oCAAoC,GAAG,eAAC,KAAK,MAAM,gBAAC,SAAS,OAAO,mEAAmE,OAAO,aAAa,GAAG,iBAAiB,MAAM,iBAAC,MAAM,cAAC,MAAM,KAAC,MAAM,OAAO,uBAAC,iDAAiD,eAAe,oHAAoH,MAAM,EAAE,aAAa,IAAI,aAAa,MAAM,EAAE,mCAAmC,EAAE,iBAAiB,iEAAiE,mHAAmH,cAAc,uBAAuB,gBAAgB,GAAG,sBAAC,KAAK,eAAe,YAAY,YAAY,WAAW,mDAAmD,QAAQ,QAAQ,uBAAC,KAAK,gCAAgC,qFAAqF,QAAQ,kCAAkC,mBAAmB,MAAM,6FAA6F,YAAY,WAAW,KAAK,eAAe,mBAAmB,WAAW,KAAK,WAAW,0BAA0B,iBAAiB,WAAW,gBAAgB,KAAK,oBAAoB,SAAS,IAAI,KAAC,OAAO,qBAAqB,SAAS,gBAAgB,uBAAuB,oCAAoC,GAAG,0CAA0C,mDAAmD,OAAO,cAAc,qBAAqB,yCAAyC,mBAAmB,QAAQ,OAAO,sBAAC,QAAQ,wBAAwB,KAAK,uBAAuB,IAAI,6BAA6B,GAAG,eAAe,MAAM,iBAAC,MAAM,KAAC,QAAQ,cAAC,yCAAyC,OAAO,mCAAmC,iBAAiB,MAAM,KAAC,MAAM,uEAAuE,kBAAC,MAAM,mEAAmE,kBAAkB,kBAAC,sBAAsB,EAAE,OAAO,mCAAmC,kFAAkF,SAAS,qBAAE,IAAI,mDAAmD,QAAQ,gCAAgC,4BAA4B,iCAAiC,sBAAsB,iCAAiC,aAAa,GAAG,iBAAiB,0CAA0C,sBAAsB,0BAA0B,MAAM,EAAE,4DAA4D,aAAa,eAAe,gJAAgJ,mBAAmB,syBAAsyB,6DAA6D,mDAAmD,GAAG,2CAA2C,mGAAmG,gEAAgE,GAAG,GAAG,gEAAgE,iBAAiB,SAAS,0DAA0D,iCAAiC,mBAAmB,aAAa,gBAAgB,yBAAyB,gBAAgB,+BAA+B,EAAE,6BAA6B,QAAQ,wCAAwC,UAAU,MAAM,cAAC,IAAI,kCAAkC,4CAA4C,IAAI,mBAAmB,aAAa,WAAW,mCAAmC,yBAAyB,WAAW,mCAAmC,OAAO,mBAAmB,QAAQ,wCAAwC,oCAAoC,UAAU,mCAAmC,WAAW,gBAAgB,6yBAA6yB,kDAAkD,GAAG,2EAA2E,oBAAoB,2DAA2D,GAAG,uCAAuC,kDAAkD,GAAG,wCAAwC,mDAAmD,GAAG,qCAAqC,gDAAgD,GAAG,wCAAwC,0CAA0C,GAAG,oCAAoC,+CAA+C,+BAA+B,GAAG,8BAA8B,0BAA0B,mBAAmB,mBAAmB,2BAA2B,kBAAkB,uBAAuB,wBAAwB,uBAAuB,4BAA4B,0BAA0B,GAAG,2CAA2C,0BAA0B,wBAAwB,GAAG,sCAAsC,mBAAmB,sEAAsE,6BAA6B,GAAG,6CAA6C,yBAAyB,yDAAyD,qBAAqB,GAAG,GAAG,qFAAqF,iBAAiB,SAAS,6LAA6L,uBAAuB,cAAc,eAAe,yBAAyB,qCAAqC,MAAM,WAAW,aAAa,yBAAyB,YAAY,EAAE,OAAO,WAAW,4DAA4D,UAAU,iBAAiB,WAAW,4GAA4G,sDAAsD,uGAAuG,gCAAgC,uCAAuC,gBAAgB,qyBAAqyB,6JAA6J,0CAA0C,wBAAwB,2EAA2E,uBAAuB,4DAA4D,8EAA8E,wBAAwB,gFAAgF,GAAG,GAAG,6DAA6D,iBAAiB,oCAAoC,4BAA4B,iBAAiB,OAAO,gDAAgD,GAAG,aAAa,QAAQ,OAAO,EAAE,2EAA2E,EAAE,aAAa,KAAK,8EAA8E,UAAU,8EAA8E,uyBAAuyB,eAAe,cAAc,2BAA2B,yBAAyB,kDAAkD,GAAG,GAAG,iEAAiE,iBAAiB,SAAS,6DAA6D,uBAAuB,gDAAgD,eAAe,WAAW,UAAU,KAAK,OAAE,CAAC,gDAAgD,WAAW,mBAAmB,eAAe,SAAS,yCAAyC,qBAAqB,qCAAqC,qBAAqB,uBAAuB,qBAAqB,uBAAuB,qBAAqB,qCAAqC,qBAAqB,IAAI,eAAe,oFAAoF,6BAA6B,mCAAmC,eAAe,iBAAiB,WAAW,qJAAqJ,cAAc,uEAAuE,qBAAqB,0DAA0D,SAAS,cAAc,sGAAsG,IAAI,SAAS,eAAe,OAAO,cAAc,iBAAC,yBAAyB,eAAe,8BAA8B,0BAA0B,wBAAwB,8DAA8D,eAAe,yHAAyH,mDAAmD,KAAK,8BAA8B,6DAA6D,QAAQ,MAAM,oDAAoD,KAAK,yBAAyB,mBAAmB,qBAAqB,iBAAiB,kCAAkC,eAAe,uBAAuB,eAAe,uBAAuB,eAAe,sBAAsB,eAAe,+BAA+B,eAAe,+CAA+C,eAAe,iBAAiB,eAAe,0CAA0C,eAAe,sDAAsD,eAAe,qCAAqC,UAAU,8BAA8B,IAAI,KAAK,+BAA+B,eAAe,IAAI,yBAAyB,GAAG,OAAO,4DAA4D,mBAAmB,OAAO,uBAAuB,mHAAmH,UAAU,aAAa,oBAAoB,MAAM,gBAAgB,oBAAoB,MAAM,eAAe,mBAAmB,MAAM,cAAc,mBAAmB,MAAM,WAAW,aAAa,cAAc,gCAAgC,MAAM,8BAA8B,SAAS,kBAAkB,0BAA0B,QAAQ,sEAAsE,0FAA0F,kCAAkC,GAAG,QAAQ,mBAAmB,SAAS,WAAW,KAAK,IAAI,YAAY,OAAO,uBAAuB,UAAU,gGAAgG,wBAAwB,EAAE,oCAAoC,MAAM,EAAE,UAAU,UAAU,qHAAqH,kCAAkC,aAAa,QAAQ,mBAAmB,OAAO,iDAAiD,GAAG,uBAAuB,gCAAgC,GAAG,iBAAiB,gCAAgC,cAAc,4BAA4B,MAAM,iBAAiB,EAAE,IAAI,iDAAiD,IAAI,kHAAkH,8FAA8F,uMAAuM,qBAAqB,wDAAwD,qLAAqL,QAAQ,6HAA6H,4CAA4C,KAAK,OAAO,yIAAyI,4BAA4B,cAAc,4BAA4B,IAAI,kCAAkC,2IAA2I,uCAAuC,qBAAqB,0CAA0C,EAAE,+EAA+E,sDAAsD,YAAY,EAAE,aAAa,4BAA4B,cAAc,iCAAiC,eAAe,wDAAwD,eAAe,MAAM,wEAAwE,eAAe,MAAM,8FAA8F,eAAe,2DAA2D,eAAe,iEAAiE,eAAe,yEAAyE,eAAe,yGAAyG,eAAe,IAAI,6CAA6C,OAAO,wFAAwF,eAAe,0CAA0C,eAAe,2CAA2C,IAAI,oBAAoB,SAAS,UAAU,GAAG,eAAe,2BAA2B,gaAAga,cAAc,gGAAgG,eAAe,kDAAkD,eAAe,iCAAiC,eAAe,cAAc,8CAA8C,EAAE,0CAA0C,eAAe,2BAA2B,yDAAyD,sBAAsB,eAAe,YAAY,8EAA8E,mBAAmB,MAAM,sCAAsC,oEAAoE,MAAM,YAAY,iEAAiE,8BAA8B,eAAe,qEAAqE,eAAe,uIAAuI,qBAAqB,sBAAsB,eAAe,gCAAgC,eAAe,YAAY,uBAAuB,iCAAiC,qBAAqB,iEAAiE,kEAAkE,SAAS,aAAa,eAAe,YAAY,+BAA+B,2DAA2D,IAAI,qBAAqB,sCAAsC,gDAAgD,gCAAgC,sBAAsB,iDAAiD,sFAAsF,oDAAoD,YAAY,EAAE,yJAAyJ,oDAAoD,WAAW,yBAAyB,EAAE,iBAAiB,uBAAuB,mCAAmC,mBAAmB,mBAAmB,gCAAgC,OAAO,yDAAyD,mBAAmB,MAAM,kCAAkC,gFAAgF,MAAM,qBAAqB,WAAW,qDAAqD,OAAO,0BAA0B,MAAM,qCAAqC,gNAAgN,uEAAuE,0BAA0B,QAAQ,8BAA8B,yFAAyF,OAAO,mEAAmE,MAAM,KAAK,YAAY,GAAG,mDAAmD,aAAa,iBAAiB,YAAY,mEAAmE,mBAAmB,oDAAoD,yBAAyB,SAAS,sDAAsD,mBAAmB,yCAAyC,oBAAoB,6BAA6B,OAAO,yFAAyF,eAAe,gCAAgC,iBAAiB,gDAAgD,iBAAiB,qBAAqB,6CAA6C,iBAAiB,YAAY,kBAAkB,WAAW,gBAAgB,UAAU,EAAE,0BAA0B,QAAQ,SAAS,kBAAkB,gBAAgB,WAAW,gDAAgD,gBAAgB,cAAc,EAAE,kBAAkB,qBAAqB,QAAQ,YAAY,OAAO,QAAQ,kEAAkE,IAAI,4CAA4C,+CAA+C,wBAAwB,OAAO,yBAAyB,yBAAyB,4DAA4D,YAAY,iDAAiD,gCAAgC,OAAO,4GAA4G,mDAAmD,IAAI,+CAA+C,wDAAwD,eAAe,cAAc,uGAAuG,cAAc,EAAE,oBAAoB,4KAA4K,oBAAoB,uDAAuD,gBAAgB,mHAAmH,aAAa,OAAO,6DAA6D,+CAA+C,sBAAsB,0EAA0E,OAAO,mEAAmE,wCAAwC,GAAG,mBAAmB,gCAAgC,8BAA8B,sCAAsC,2BAA2B,IAAI,iBAAiB,OAAO,OAAO,kBAAkB,4CAA4C,gCAAgC,iBAAiB,oEAAoE,qBAAqB,iBAAiB,EAAE,IAAI,oKAAoK,8CAA8C,eAAe,kCAAkC,WAAW,oCAAoC,GAAG,2BAA2B,qBAAqB,aAAa,MAAM,mDAAmD,uBAAuB,yCAAyC,iCAAiC,8BAA8B,GAAG,gBAAgB,OAAO,8HAA8H,MAAM,IAAI,mCAAmC,MAAM,EAAE,qBAAqB,GAAG,SAAS,gCAAgC,aAAa,cAAc,6BAA6B,UAAU,iBAAiB,6BAA6B,WAAW,OAAO,kDAAkD,OAAO,uBAAuB,8BAA8B,SAAS,0FAA0F,MAAM,0BAA0B,QAAQ,qCAAqC,mBAAmB,uBAAuB,YAAY,iBAAiB,+BAA+B,YAAY,MAAM,eAAe,0EAA0E,+EAA+E,mBAAmB,0BAA0B,6CAA6C,SAAS,qCAAqC,yBAAyB,gCAAgC,MAAM,2FAA2F,EAAE,2BAA2B,MAAM,EAAE,YAAY,GAAG,MAAM,gBAAgB,wBAAwB,GAAG,4CAA4C,IAAI,oBAAoB,cAAc,wCAAwC,OAAO,IAAI,QAAQ,GAAG,OAAO,WAAW,SAAS,oBAAC,KAAK,QAAQ,mDAAmD,MAAM,+BAA+B,yCAAyC,MAAM,+BAA+B,yCAAyC,iBAAiB,MAAM,EAAE,YAAY,GAAG,aAAa,MAAM,EAAE,MAAM,yBAAyB,cAAc,EAAE,MAAM,gBAAgB,wBAAwB,GAAG,2CAA2C,SAAS,8EAA8E,cAAc,qIAAqI,YAAY,iDAAiD,iHAAiH,YAAY,sBAAsB,kBAAkB,mCAAmC,8BAA8B,0CAA0C,UAAU,4CAA4C,kEAAkE,kBAAkB,sBAAsB,+DAA+D,WAAW,gFAAgF,sBAAsB,sBAAsB,mBAAmB,sGAAsG,yDAAyD,QAAQ,wBAAwB,YAAY,wBAAwB,uBAAuB,0DAA0D,YAAY,MAAM,oBAAoB,QAAQ,cAAc,oHAAoH,gBAAgB,6CAA6C,MAAM,sBAAsB,sBAAsB,SAAS,wHAAwH,SAAS,MAAM,2BAA2B,gBAAgB,OAAO,cAAc,SAAS,OAAO,eAAe,WAAW,cAAc,kBAAkB,SAAS,OAAO,QAAQ,yBAAyB,mBAAmB,YAAY,YAAY,eAAe,EAAE,KAAK,EAAE,oBAAoB,MAAM,EAAE,WAAW,GAAG,mBAAmB,MAAM,uBAAuB,qEAAqE,kEAAkE,IAAI,OAAO,oBAAoB,8CAA8C,KAAK,WAAW,kCAAkC,QAAQ,SAAS,MAAM,yCAAyC,WAAW,kBAAkB,cAAc,IAAI,aAAa,8DAA8D,sDAAsD,OAAO,cAAc,UAAU,YAAY,WAAW,MAAM,IAAI,eAAe,IAAI,uKAAuK,GAAG,iBAAiB,eAAe,+CAA+C,oBAAoB,kBAAkB,qEAAqE,GAAG,qBAAqB,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,oEAAoE,2BAA2B,kEAAkE,6BAA6B,EAAE,GAAG,wFAAwF,QAAQ,SAAS,mDAAmD,0BAA0B,2BAA2B,+CAA+C,gDAAgD,wDAAwD,KAAK,KAAK,0eAA0e,6BAA6B,+CAA+C,gDAAgD,uDAAuD,OAAO,KAAK,2WAA2W,eAAe,WAAW,mCAAmC,4CAA4C,8CAA8C,0DAA0D,iEAAiE,0CAA0C,0BAA0B,OAAO,qCAAqC,+BAA+B,gCAAgC,OAAO,0CAA0C,gBAAgB,wCAAwC,WAAW,OAAO,KAAK,mOAAmO,wCAAwC,gIAAgI,wDAAwD,wDAAwD,2DAA2D,8DAA8D,iDAAiD,wEAAwE,4EAA4E,qDAAqD,6CAA6C,iEAAiE,sDAAsD,6DAA6D,iEAAiE,0DAA0D,uEAAuE,mEAAmE,mEAAmE,mEAAmE,iDAAiD,mDAAmD,iDAAiD,2CAA2C,yCAAyC,4DAA4D,6CAA6C,+CAA+C,gEAAgE,yCAAyC,mEAAmE,8CAA8C,oDAAoD,qDAAqD,2DAA2D,0EAA0E,6CAA6C,mDAAmD,2CAA2C,wDAAwD,oDAAoD,wDAAwD,6DAA6D,kDAAkD,+CAA+C,2CAA2C,4CAA4C,8CAA8C,mEAAmE,0EAA0E,gFAAgF,sDAAsD,sDAAsD,wDAAwD,qEAAqE,uEAAuE,4DAA4D,uDAAuD,2DAA2D,8DAA8D,+CAA+C,iDAAiD,+CAA+C,2CAA2C,qDAAqD,mDAAmD,0CAA0C,6BAA6B,wBAAwB,+BAA+B,2DAA2D,8CAA8C,mCAAmC,oCAAoC,4CAA4C,wCAAwC,OAAO,wBAAwB,oDAAoD,OAAO,4CAA4C,yDAAyD,OAAO,wCAAwC,wBAAwB,uBAAuB,0BAA0B,8BAA8B,wBAAwB,yDAAyD,6BAA6B,4DAA4D,8BAA8B,OAAO,gEAAgE,wBAAwB,yBAAyB,8BAA8B,OAAO,mCAAmC,+CAA+C,qCAAqC,yCAAyC,2CAA2C,OAAO,6BAA6B,6BAA6B,0BAA0B,uBAAuB,uDAAuD,2CAA2C,+DAA+D,yCAAyC,0BAA0B,iBAAiB,mBAAmB,oBAAoB,kBAAkB,kCAAkC,4CAA4C,OAAO,2GAA2G,sBAAsB,uBAAuB,OAAO,0CAA0C,mDAAmD,iDAAiD,OAAO,mCAAmC,wBAAwB,OAAO,8CAA8C,2DAA2D,iFAAiF,OAAO,iCAAiC,0DAA0D,8DAA8D,gDAAgD,OAAO,0EAA0E,4DAA4D,0DAA0D,OAAO,sCAAsC,6BAA6B,0DAA0D,4DAA4D,kCAAkC,8BAA8B,qDAAqD,4CAA4C,OAAO,mEAAmE,6BAA6B,2CAA2C,sCAAsC,OAAO,4CAA4C,wBAAwB,OAAO,2CAA2C,qBAAqB,OAAO,6BAA6B,wBAAwB,8BAA8B,kCAAkC,OAAO,qCAAqC,qBAAqB,wBAAwB,8BAA8B,kCAAkC,iDAAiD,mDAAmD,+DAA+D,gDAAgD,8BAA8B,yBAAyB,OAAO,2CAA2C,wEAAwE,OAAO,gCAAgC,4CAA4C,wCAAwC,0DAA0D,4CAA4C,yBAAyB,OAAO,gCAAgC,4CAA4C,8CAA8C,6DAA6D,8DAA8D,0DAA0D,iEAAiE,yBAAyB,OAAO,8BAA8B,wEAAwE,OAAO,0DAA0D,wDAAwD,6BAA6B,0DAA0D,yBAAyB,OAAO,4CAA4C,yDAAyD,oDAAoD,OAAO,kCAAkC,wBAAwB,sBAAsB,yCAAyC,sBAAsB,qBAAqB,6BAA6B,2BAA2B,uBAAuB,8BAA8B,OAAO,mCAAmC,oDAAoD,8CAA8C,6DAA6D,8DAA8D,iDAAiD,sDAAsD,wBAAwB,0BAA0B,oDAAoD,2BAA2B,0CAA0C,+BAA+B,kDAAkD,4DAA4D,OAAO,kDAAkD,mEAAmE,iEAAiE,OAAO,wCAAwC,2BAA2B,kCAAkC,8BAA8B,OAAO,yCAAyC,wBAAwB,8BAA8B,kCAAkC,uEAAuE,OAAO,0CAA0C,uEAAuE,OAAO,2CAA2C,6EAA6E,wDAAwD,oDAAoD,2BAA2B,mDAAmD,mDAAmD,0CAA0C,qCAAqC,OAAO,iCAAiC,qBAAqB,+BAA+B,OAAO,yCAAyC,mDAAmD,0BAA0B,wDAAwD,2DAA2D,sCAAsC,2CAA2C,sDAAsD,kCAAkC,6BAA6B,8BAA8B,uEAAuE,gEAAgE,8DAA8D,+DAA+D,OAAO,8BAA8B,2DAA2D,qDAAqD,kDAAkD,OAAO,6BAA6B,0BAA0B,0DAA0D,oEAAoE,+CAA+C,4CAA4C,kCAAkC,2BAA2B,8BAA8B,uDAAuD,8BAA8B,sBAAsB,OAAO,wCAAwC,6DAA6D,OAAO,oCAAoC,6DAA6D,OAAO,oCAAoC,wDAAwD,mDAAmD,OAAO,mCAAmC,sEAAsE,OAAO,gDAAgD,oDAAoD,kDAAkD,OAAO,qMAAqM,2DAA2D,kCAAkC,OAAO,iCAAiC,qBAAqB,sBAAsB,6BAA6B,iBAAiB,kBAAkB,oBAAoB,mBAAmB,OAAO,KAAK,40CAA40C,iBAAiB,kBAAkB,SAAS,0DAA0D,SAAS,IAAI,SAAS,2+BAA2+B,gBAAgB,gLAAgL,+DAA+D,kCAAkC,oGAAoG,2JAA2J,0DAA0D,YAAY,eAAe,uBAAuB,mCAAmC,IAAI,eAAe,cAAc,eAAe,aAAa,uEAAuE,mCAAmC,6BAA6B,cAAc,KAAK,GAAG,SAAS,2BAA2B,sBAAsB,KAAK,cAAc,wGAAwG,iEAAiE,cAAc,SAAS,QAAQ,cAAc,iBAAiB,mDAAmD,WAAW,SAAS,eAAe,wBAAwB,iCAAiC,eAAe,gCAAgC,cAAc,0BAA0B,aAAa,gEAAgE,0BAA0B,eAAe,yCAAyC,qCAAqC,MAAM,uCAAuC,0BAA0B,kBAAkB,iCAAiC,KAAK,MAAM,gBAAgB,MAAM,mEAAmE,MAAM,kEAAkE,MAAM,uBAAuB,kEAAkE,wCAAwC,MAAM,6CAA6C,2BAA2B,6EAA6E,yCAAyC,MAAM,mDAAmD,mFAAmF,MAAM,qEAAqE,0EAA0E,eAAe,QAAQ,mIAAmI,eAAe,gCAAgC,cAAc,0BAA0B,MAAM,4FAA4F,0BAA0B,cAAc,+CAA+C,cAAc,mCAAmC,cAAc,iBAAiB,kBAAkB,iCAAiC,aAAa,iCAAiC,GAAG,4SAA4S,mBAAmB,cAAc,qCAAqC,MAAM,OAAO,SAAS,MAAM,0CAA0C,GAAG,UAAU,eAAe,kCAAkC,MAAM,MAAM,sBAAsB,IAAI,uCAAuC,qDAAqD,sDAAsD,IAAI,IAAI,eAAe,UAAU,eAAe,gGAAgG,6EAA6E,kBAAkB,6CAA6C,mBAAmB,8BAA8B,gBAAgB,eAAe,OAAO,UAAU,kCAAkC,gCAAgC,KAAK,WAAW,2FAA2F,kCAAkC,iCAAiC,oBAAoB,yBAAyB,wCAAwC,MAAM,oBAAoB,EAAE,8EAA8E,gBAAgB,MAAM,GAAG,qCAAqC,kCAAkC,2HAA2H,kEAAkE,0BAA0B,oDAAoD,mCAAmC,2BAA2B,oCAAoC,6BAA6B,0BAA0B,6JAA6J,2CAA2C,kCAAkC,oCAAoC,gBAAgB,mCAAmC,6DAA6D,MAAM,iBAAiB,yEAAyE,EAAE,iIAAiI,oCAAoC,4GAA4G,UAAU,6LAA6L,GAAG,kDAAkD,sEAAsE,oCAAoC,gBAAgB,0BAA0B,WAAW,2BAA2B,MAAM,wBAAwB,oCAAoC,gCAAgC,kCAAkC,0BAA0B,kDAAkD,6BAA6B,oDAAoD,MAAM,qFAAqF,oCAAoC,QAAQ,iGAAiG,mDAAmD,gBAAgB,qCAAqC,kBAAkB,WAAW,2BAA2B,sBAAsB,cAAc,wBAAwB,0BAA0B,aAAa,gKAAgK,MAAM,4CAA4C,oEAAoE,2CAA2C,kCAAkC,kDAAkD,6BAA6B,wBAAwB,aAAa,mBAAmB,QAAQ,4CAA4C,0CAA0C,yBAAyB,eAAe,mCAAmC,eAAe,2BAA2B,iBAAiB,UAAU,KAAK,aAAa,2CAA2C,6BAA6B,IAAI,QAAQ,6BAA6B,6CAA6C,GAAG,2BAA2B,WAAW,4CAA4C,qBAAqB,qCAAqC,MAAM,6FAA6F,aAAa,YAAY,2BAA2B,MAAM,kGAAkG,uBAAuB,qBAAqB,yBAAyB,WAAW,4BAA4B,gBAAgB,UAAU,wBAAwB,GAAG,oBAAoB,WAAW,mBAAmB,oBAAoB,cAAc,eAAe,OAAO,yBAAyB,WAAW,qCAAqC,mBAAmB,mBAAmB,WAAW,aAAa,SAAS,MAAM,WAAW,SAAS,MAAM,wDAAwD,WAAW,8CAA8C,uCAAuC,+CAA+C,+BAA+B,gBAAgB,MAAM,qNAAqN,iIAAiI,IAAI,WAAW,GAAG,gGAAgG,kFAAkF,oBAAoB,EAAE,eAAe,uCAAuC,kBAAkB,aAAa,WAAW,OAAO,yBAAyB,WAAW,qBAAqB,MAAM,WAAW,YAAY,UAAU,WAAW,eAAe,UAAU,4BAA4B,eAAe,UAAU,oBAAoB,GAAG,oBAAoB,WAAW,2BAA2B,gBAAgB,UAAU,uBAAuB,6IAA6I,kBAAkB,mDAAmD,kBAAkB,kDAAkD,WAAW,WAAW,GAAG,iCAAiC,yCAAyC,SAAS,wBAAwB,YAAY,WAAW,WAAW,GAAG,gBAAgB,wBAAwB,OAAO,iCAAiC,yBAAyB,WAAW,2BAA2B,mBAAmB,wBAAwB,gBAAgB,aAAa,SAAS,MAAM,WAAW,mCAAmC,GAAG,oBAAoB,WAAW,gCAAgC,MAAM,MAAM,kDAAkD,UAAU,oBAAoB,YAAY,+CAA+C,oCAAoC,sCAAsC,kBAAkB,aAAa,WAAW,OAAO,WAAW,wBAAwB,gBAAgB,YAAY,MAAM,WAAW,iCAAiC,uDAAuD,UAAU,iBAAiB,YAAY,WAAW,aAAa,GAAG,mBAAmB,2BAA2B,iCAAiC,WAAW,4BAA4B,MAAM,aAAa,WAAW,IAAI,YAAY,WAAW,WAAW,GAAG,uBAAuB,WAAW,0BAA0B,MAAM,MAAM,6BAA6B,WAAW,aAAa,GAAG,uBAAuB,WAAW,2BAA2B,eAAe,YAAY,MAAM,aAAa,WAAW,IAAI,YAAY,WAAW,YAAY,GAAG,gBAAgB,wBAAwB,YAAY,YAAY,MAAM,WAAW,QAAQ,yBAAyB,iDAAiD,GAAG,uBAAuB,WAAW,uBAAuB,YAAY,YAAY,MAAM,WAAW,YAAY,kBAAkB,iCAAiC,6GAA6G,MAAM,yPAAyP,cAAc,WAAW,EAAE,yCAAyC,mBAAmB,kIAAkI,kCAAkC,EAAE,kzBAAkzB,8BAA8B,sBAAsB,gBAAgB,GAAG,wEAAwE,yBAAyB,uBAAuB,GAAG,8FAA8F,wBAAwB,qBAAqB,gBAAgB,GAAG,oIAAoI,gBAAgB,kBAAkB,wBAAwB,wDAAwD,GAAG,+JAA+J,wBAAwB,GAAG,oKAAoK,sBAAsB,GAAG,mKAAmK,YAAY,uDAAuD,GAAG,uKAAuK,cAAc,uDAAuD,GAAG,iKAAiK,YAAY,uDAAuD,GAAG,sKAAsK,YAAY,GAAG,wKAAwK,YAAY,GAAG,yJAAyJ,2BAA2B,GAAG,4KAA4K,YAAY,qBAAqB,uDAAuD,gDAAgD,kBAAkB,+EAA+E,mBAAmB,GAAG,kLAAkL,oHAAoH,GAAG,GAAG,4kBAA4kB,iBAAiB,cAAc,SAAS,yLAAyL,mEAAmE,gBAAgB,QAAQ,8BAA8B,EAAE,gCAAgC,qIAAqI,MAAM,uEAAuE,oPAAoP,MAAM,sEAAsE,2BAA2B,uBAAuB,yBAAyB,kCAAkC,uBAAuB,kCAAkC,0BAA0B,6BAA6B,oBAAoB,6BAA6B,6BAA6B,0BAA0B,iBAAC,SAAS,MAAM,iIAAiI,iBAAC,yCAAyC,wBAAwB,UAAU,8CAA8C,iBAAC,0GAA0G,KAAC,wCAAwC,wBAAwB,UAAU,8CAA8C,iBAAC,kHAAkH,KAAC,4CAA4C,wBAAwB,QAAQ,QAAQ,iBAAC,4GAA4G,KAAC,yCAAyC,wBAAwB,UAAU,8CAA8C,iBAAC,sGAAsG,KAAC,sCAAsC,wBAAwB,UAAU,8CAA8C,iBAAC,gHAAgH,KAAC,2CAA2C,wBAAwB,aAAa,MAAM,iBAAC,oHAAoH,KAAC,6CAA6C,uCAAuC,eAAe,uDAAuD,MAAM,mDAAmD,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,EAAE,cAAc,MAAM,4EAA4E,aAAa,cAAc,QAAQ,aAAa,EAAE,kDAAkD,MAAM,iDAAiD,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,cAAc,2EAA2E,aAAa,cAAc,QAAQ,aAAa,EAAE,gCAAgC,UAAU,oEAAoE,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,8CAA8C,kzBAAkzB,uBAAuB,gBAAgB,GAAG,uGAAuG,uBAAuB,WAAW,aAAa,kBAAkB,2BAA2B,gFAAgF,GAAG,iJAAiJ,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,qBAAqB,yEAAyE,wBAAwB,8EAA8E,4DAA4D,GAAG,uJAAuJ,sEAAsE,GAAG,GAAG,oOAAoO,iBAAiB,SAAS,8FAA8F,KAAK,WAAW,yBAAyB,yBAAyB,MAAM,KAAK,aAAC,CAAC,EAAE,OAAO,MAAM,KAAK,QAAC,CAAC,GAAG,UAAU,4BAA4B,GAAG,YAAY,SAAS,MAAM,yJAAyJ,sBAAsB,mCAAmC,MAAM,WAAW,gBAAgB,oyBAAoyB,kBAAkB,gDAAgD,sEAAsE,GAAG,gEAAgE,YAAY,iBAAiB,2BAA2B,GAAG,4DAA4D,iBAAiB,4BAA4B,oBAAoB,mBAAmB,oBAAoB,GAAG,kEAAkE,yCAAyC,GAAG,GAAG,iSAAiS,iBAAiB,SAAS,oHAAoH,OAAO,qCAAqC,mBAAmB,OAAO,oBAAoB,iCAAiC,4BAAE,CAAC,8BAAE,GAAG,MAAM,WAAW,cAAc,uCAAuC,UAAU,UAAU,GAAG,cAAc,UAAU,KAAK,OAAE,CAAC,yCAAyC,MAAM,6CAA6C,gBAAgB,oyBAAoyB,iBAAiB,4BAA4B,oBAAoB,mBAAmB,oBAAoB,GAAG,oCAAoC,yCAAyC,GAAG,mCAAmC,kBAAkB,GAAG,GAAG,iIAAiI,0CAA0C,eAAe,QAAQ,cAAc,8BAA8B,aAAa,MAAM,iBAAiB,gBAAgB,cAAc,gEAAgE,aAAa,6DAA6D,wCAAwC,mBAAmB,MAAM,iBAAiB,eAAe,2BAA2B,kBAAkB,aAAa,UAAU,UAAU,sBAAsB,MAAM,oEAAoE,8BAA8B,cAAc,iGAAiG,cAAc,oDAAoD,cAAc,wEAAwE,gBAAgB,0CAA0C,0BAA0B,SAAS,GAAG,mBAAmB,gEAAgE,wFAAwF,2BAA2B,MAAM,mDAAmD,MAAM,0CAA0C,+BAA+B,iCAAiC,MAAM,sBAAsB,MAAM,gDAAgD,kCAAkC,0BAA0B,MAAM,+BAA+B,iCAAiC,iBAAiB,uBAAuB,yBAAyB,4BAA4B,gCAAgC,4BAA4B,iCAAiC,sBAAsB,iCAAiC,aAAa,GAAG,qBAAqB,sBAAsB,qBAAqB,kCAAkC,UAAU,qBAAqB,uCAAuC,YAAY,qBAAqB,gDAAgD,mBAAmB,oFAAoF,GAAG,oBAAoB,gFAAgF,aAAa,2LAA2L,OAAO,iBAAC,YAAY,oBAAoB,SAAS,4BAA4B,wBAAwB,IAAI,eAAe,UAAC,QAAQ,SAAS,UAAU,4EAA4E,OAAO,0DAA0D,qCAAqC,eAAe,OAAO,gEAAgE,QAAQ,aAAa,UAAU,8CAA8C,aAAa,uCAAuC,2BAA2B,IAAI,QAAQ,yBAAyB,UAAU,4EAA4E,WAAW,2BAA2B,UAAU,kFAAkF,GAAG,oyBAAoyB,mHAAmH,+CAA+C,sCAAsC,kBAAkB,kCAAkC,oBAAoB,yBAAyB,GAAG,0CAA0C,2DAA2D,kDAAkD,GAAG,8DAA8D,kBAAkB,YAAY,mBAAmB,wBAAwB,GAAG,4EAA4E,oBAAoB,GAAG,kFAAkF,+CAA+C,GAAG,wCAAwC,qFAAqF,gDAAgD,GAAG,0CAA0C,+DAA+D,qDAAqD,GAAG,uCAAuC,4DAA4D,+CAA+C,GAAG,iEAAiE,kBAAkB,kCAAkC,GAAG,yGAAyG,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,+EAA+E,mBAAmB,2EAA2E,GAAG,+GAA+G,yFAAyF,GAAG,GAAG,2RAA2R,iBAAiB,SAAS,sKAAsK,oBAAoB,yCAAyC,MAAM,WAAW,YAAY,GAAG,UAAU,UAAU,GAAG,YAAY,2BAA2B,yBAAyB,MAAM,WAAW,mBAAmB,GAAG,UAAU,iBAAiB,GAAG,YAAY,SAAS,MAAM,6GAA6G,sBAAsB,+BAA+B,0BAA0B,uCAAuC,WAAW,YAAY,QAAQ,gKAAgK,4BAA4B,WAAW,gBAAgB,wzBAAwzB,mHAAmH,+CAA+C,mBAAmB,oBAAoB,GAAG,+EAA+E,8BAA8B,gBAAgB,GAAG,yGAAyG,oBAAoB,GAAG,8HAA8H,qFAAqF,gDAAgD,GAAG,gIAAgI,+DAA+D,qDAAqD,GAAG,sIAAsI,6BAA6B,GAAG,6HAA6H,4DAA4D,+CAA+C,GAAG,+GAA+G,6BAA6B,GAAG,mIAAmI,0CAA0C,2BAA2B,GAAG,6JAA6J,gBAAgB,2BAA2B,GAAG,+JAA+J,gBAAgB,2BAA2B,eAAe,GAAG,4NAA4N,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,gBAAgB,iBAAiB,oBAAoB,GAAG,kOAAkO,+CAA+C,GAAG,2LAA2L,0BAA0B,uBAAuB,aAAa,GAAG,GAAG,qkCAAqkC,iBAAiB,SAAS,qFAAqF,aAAa,SAAS,aAAa,SAAS,uBAAuB,iBAAiB,eAAe,yBAAyB,yBAAyB,2BAA2B,uCAAuC,mBAAmB,UAAU,KAAK,qBAAE,CAAC,EAAE,sDAAsD,WAAW,UAAU,KAAK,WAAE,CAAC,+BAA+B,UAAU,0BAA0B,WAAW,MAAM,yHAAyH,8CAA8C,6BAA6B,WAAW,GAAG,kBAAkB,iCAAiC,SAAS,MAAM,mFAAmF,YAAY,UAAU,gBAAgB,WAAW,OAAO,mCAAmC,UAAU,KAAK,qBAAE,CAAC,EAAE,gBAAgB,cAAc,KAAK,YAAE,CAAC,UAAU,MAAM,wIAAwI,QAAQ,kFAAkF,MAAM,+BAA+B,UAAU,8BAA8B,YAAY,UAAU,iBAAC,YAAY,gBAAgB,iBAAiB,6CAA6C,UAAU,qCAAqC,cAAc,gEAAgE,yyBAAyyB,uBAAuB,wCAAwC,iBAAiB,eAAe,kBAAkB,iBAAiB,iBAAiB,sBAAsB,gEAAgE,GAAG,kDAAkD,iBAAiB,GAAG,oDAAoD,iBAAiB,kBAAkB,GAAG,wDAAwD,iBAAiB,kBAAkB,GAAG,uDAAuD,kBAAkB,kBAAkB,GAAG,kDAAkD,gBAAgB,iBAAiB,GAAG,6CAA6C,kEAAkE,GAAG,yCAAyC,0EAA0E,GAAG,mDAAmD,iDAAiD,GAAG,2EAA2E,YAAY,kBAAkB,2BAA2B,iBAAiB,kBAAkB,eAAe,6JAA6J,0CAA0C,wBAAwB,qDAAqD,0CAA0C,GAAG,kCAAkC,UAAU,6BAA6B,KAAK,QAAQ,0BAA0B,KAAK,GAAG,kCAAkC,UAAU,iBAAiB,KAAK,QAAQ,iBAAiB,KAAK,GAAG,kDAAkD,iEAAiE,+DAA+D,iEAAiE,4DAA4D,wDAAwD,kFAAkF,gFAAgF,mBAAmB,8BAA8B,6BAA6B,kCAAkC,oCAAoC,yBAAyB,GAAG,GAAG,oFAAoF,iBAAiB,SAAS,sFAAsF,aAAa,MAAM,yDAAyD,mBAAmB,uBAAuB,yEAAyE,0CAA0C,8CAA8C,IAAI,sBAAsB,+CAA+C,GAAG,MAAM,yCAAyC,kBAAkB,6DAA6D,wDAAwD,6CAA6C,4yBAA4yB,YAAY,kBAAkB,2BAA2B,kBAAkB,mBAAmB,iBAAiB,kBAAkB,GAAG,0EAA0E,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,oHAAoH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,0HAA0H,0GAA0G,GAAG,6HAA6H,uEAAuE,GAAG,mCAAmC,kBAAkB,oBAAoB,kCAAkC,iDAAiD,GAAG,sGAAsG,oBAAoB,2CAA2C,GAAG,GAAG,imBAAimB,iBAAiB,SAAS,0CAA0C,aAAa,cAAc,WAAW,6CAA6C,mBAAmB,MAAM,0CAA0C,YAAY,EAAE,oCAAoC,+CAA+C,cAAc,uIAAuI,gDAAgD,IAAI,sBAAsB,4CAA4C,WAAW,UAAU,YAAY,OAAO,iyBAAiyB,gDAAgD,6JAA6J,oDAAoD,sEAAsE,kBAAkB,oBAAoB,yBAAyB,uBAAuB,GAAG,6DAA6D,yBAAyB,uBAAuB,uBAAuB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6CAA6C,8CAA8C,kDAAkD,cAAc,qBAAqB,yBAAyB,wBAAwB,uBAAuB,4BAA4B,GAAG,oIAAoI,0DAA0D,GAAG,sEAAsE,sEAAsE,iBAAiB,4BAA4B,GAAG,8EAA8E,gBAAgB,+EAA+E,mDAAmD,wDAAwD,iFAAiF,GAAG,6FAA6F,uBAAuB,GAAG,wFAAwF,sDAAsD,GAAG,uFAAuF,uDAAuD,GAAG,sKAAsK,0DAA0D,GAAG,2FAA2F,2EAA2E,2CAA2C,GAAG,4DAA4D,YAAY,GAAG,gEAAgE,2EAA2E,iBAAiB,eAAe,gBAAgB,GAAG,GAAG,iOAAiO,iBAAiB,SAAS,gCAAgC,OAAO,mBAAmB,gBAAgB,OAAO,cAAc,qBAAqB,yBAAyB,WAAW,OAAO,yBAAyB,WAAW,OAAO,yBAAyB,yBAAyB,MAAM,WAAW,mBAAmB,GAAG,UAAU,iBAAiB,GAAG,oBAAoB,WAAW,oCAAoC,UAAU,iBAAiB,YAAY,MAAM,iJAAiJ,4BAA4B,gDAAgD,IAAI,sBAAsB,sDAAsD,WAAW,OAAO,WAAW,iCAAiC,0DAA0D,sBAAsB,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,0BAA0B,oBAAoB,kzBAAkzB,YAAY,kBAAkB,2BAA2B,kDAAkD,0CAA0C,GAAG,4EAA4E,kDAAkD,6JAA6J,0CAA0C,2BAA2B,GAAG,iFAAiF,YAAY,iBAAiB,iBAAiB,mHAAmH,+CAA+C,+EAA+E,0CAA0C,iBAAiB,kBAAkB,GAAG,GAAG,0SAA0S,iBAAiB,SAAS,6SAA6S,aAAa,iBAAiB,+CAA+C,4CAA4C,aAAa,SAAS,aAAa,IAAI,0BAA0B,WAAW,oBAAoB,uBAAuB,iBAAiB,IAAI,mBAAmB,SAAS,wBAAwB,OAAO,0BAA0B,iBAAiB,IAAI,iBAAiB,SAAS,UAAU,OAAO,wBAAwB,iBAAiB,0BAA0B,OAAO,aAAa,EAAE,mBAAmB,OAAE,0DAA0D,GAAG,WAAW,WAAE,QAAQ,MAAM,KAAK,WAAE,+DAA+D,EAAE,WAAW,QAAE,QAAQ,MAAM,KAAK,QAAE,gEAAgE,EAAE,sCAAsC,kCAAkC,0BAA0B,OAAO,KAAK,OAAE,8DAA8D,GAAG,eAAe,mBAAmB,MAAM,YAAY,aAAa,UAAU,aAAa,aAAa,EAAE,oBAAoB,4DAA4D,MAAM,kBAAkB,qBAAE,eAAe,aAAa,eAAe,cAAc,EAAE,OAAO,MAAM,4EAA4E,cAAc,GAAG,UAAU,mBAAmB,GAAG,cAAc,wCAAwC,yBAAyB,6BAA6B,kBAAkB,qBAAqB,8BAA8B,gBAAgB,iBAAiB,SAAS,uGAAuG,cAAc,aAAa,aAAa,MAAM,aAAa,cAAc,WAAW,+CAA+C,MAAM,cAAc,WAAW,gBAAgB,WAAW,iCAAiC,WAAW,aAAa,KAAK,aAAa,EAAE,UAAU,YAAY,OAAO,gzBAAgzB,8EAA8E,6JAA6J,0CAA0C,sEAAsE,kDAAkD,kCAAkC,wBAAwB,wEAAwE,8kBAA8kB,sEAAsE,+DAA+D,2EAA2E,iFAAiF,mFAAmF,kBAAkB,GAAG,uDAAuD,qEAAqE,0GAA0G,GAAG,sKAAsK,mDAAmD,GAAG,8EAA8E,oBAAoB,GAAG,yFAAyF,yBAAyB,uBAAuB,sEAAsE,qBAAqB,iBAAiB,eAAe,+BAA+B,oBAAoB,GAAG,4LAA4L,oEAAoE,GAAG,GAAG,6NAA6N,iBAAiB,SAAS,kPAAkP,iCAAiC,eAAe,wBAAwB,gBAAgB,4CAA4C,sCAAsC,kDAAkD,sDAAsD,gCAAgC,mBAAmB,OAAO,8BAA8B,8BAA8B,8BAA8B,2BAA2B,0BAA0B,wCAAwC,0DAA0D,eAAe,eAAe,mCAAmC,qCAAqC,mBAAmB,SAAS,QAAQ,uHAAuH,8CAA8C,YAAY,QAAQ,+JAA+J,iCAAiC,oBAAoB,gBAAgB,kzBAAkzB,uBAAuB,4EAA4E,8EAA8E,iEAAiE,kEAAkE,eAAe,cAAc,oBAAoB,4BAA4B,uBAAuB,0EAA0E,qHAAqH,iBAAiB,gFAAgF,GAAG,qDAAqD,WAAW,8EAA8E,GAAG,uDAAuD,gBAAgB,GAAG,kDAAkD,4HAA4H,GAAG,yDAAyD,wGAAwG,GAAG,+DAA+D,4HAA4H,GAAG,GAAG,gGAAgG,iBAAiB,SAAS,6FAA6F,OAAO,WAAW,2BAA2B,KAAK,WAAE,CAAC,WAAW,qEAAqE,6BAA6B,mBAAmB,yBAAyB,gBAAgB,QAAQ,6EAA6E,EAAE,gBAAgB,gyBAAgyB,0BAA0B,mBAAmB,mBAAmB,2BAA2B,kBAAkB,uBAAuB,wBAAwB,yCAAyC,uBAAuB,0BAA0B,0BAA0B,GAAG,oCAAoC,mBAAmB,sEAAsE,6BAA6B,GAAG,2CAA2C,yBAAyB,yDAAyD,mBAAmB,GAAG,GAAG,oHAAoH,oGAAoG,iBAAiB,SAAS,yKAAyK,4BAA4B,uBAAuB,0EAA0E,wBAAwB,yTAAyT,GAAG,eAAe,WAAW,mCAAmC,yBAAyB,oCAAoC,cAAc,MAAM,kDAAkD,6BAA6B,OAAO,WAAW,wCAAwC,2BAA2B,YAAY,UAAU,uBAAuB,WAAW,gBAAgB,QAAQ,kGAAkG,eAAe,IAAI,oCAAoC,GAAG,aAAa,oDAAoD,sBAAsB,IAAI,oCAAoC,+BAA+B,iBAAC,oBAAoB,MAAM,qDAAqD,SAAS,KAAK,kCAAkC,aAAa,sBAAsB,6BAA6B,sBAAsB,QAAQ,EAAE,oCAAoC,cAAc,OAAO,oCAAoC,+BAA+B,iBAAC,4BAA4B,MAAM,sDAAsD,KAAK,kCAAkC,aAAa,MAAM,iBAAC,MAAM,KAAC,iFAAiF,UAAU,sBAAsB,EAAE,oBAAoB,EAAE,oCAAoC,EAAE,2BAA2B,oDAAoD,sBAAsB,eAAe,4EAA4E,iBAAC,UAAU,KAAC,MAAM,gDAAgD,0BAA0B,cAAC,MAAM,cAAC,2BAA2B,IAAI,uBAAC,KAAK,GAAG,sBAAC,KAAK,gDAAgD,OAAO,eAAC,gBAAgB,eAAe,kBAAC,6BAA6B,kBAAC,wBAAwB,QAAQ,eAAe,kBAAC,2BAA2B,kBAAC,sBAAsB,GAAG,oFAAoF,2FAA2F,8JAA8J,UAAU,iBAAC,YAAY,KAAC,MAAM,qBAAqB,kBAAkB,SAAS,oCAAoC,yCAAyC,iBAAC,+BAA+B,iBAAC,yGAAyG,eAAe,EAAE,2CAA2C,EAAE,OAAO,iDAAiD,OAAO,sDAAsD,ozBAAozB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,cAAc,wBAAwB,yBAAyB,2CAA2C,GAAG,+CAA+C,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,cAAc,wBAAwB,yBAAyB,0CAA0C,GAAG,kDAAkD,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,cAAc,wBAAwB,yBAAyB,6CAA6C,GAAG,GAAG,gDAAgD,iBAAiB,SAAS,mFAAmF,uBAAuB,oEAAoE,aAAa,WAAW,UAAU,KAAK,qBAAE,CAAC,mCAAmC,gDAAgD,IAAI,sBAAsB,4CAA4C,mDAAmD,WAAW,eAAe,MAAM,kGAAkG,gBAAgB,myBAAmyB,mDAAmD,eAAe,cAAc,iBAAiB,oBAAoB,4BAA4B,2DAA2D,+CAA+C,oDAAoD,GAAG,mCAAmC,iBAAiB,GAAG,oHAAoH,wBAAwB,2DAA2D,GAAG,8BAA8B,oDAAoD,GAAG,gCAAgC,mBAAmB,GAAG,2CAA2C,4CAA4C,GAAG,4BAA4B,iBAAiB,mBAAmB,6JAA6J,qEAAqE,8DAA8D,uBAAuB,oBAAoB,0BAA0B,mBAAmB,wBAAwB,kBAAkB,GAAG,gCAAgC,iBAAiB,GAAG,uCAAuC,iBAAiB,oBAAoB,GAAG,mCAAmC,wBAAwB,uBAAuB,GAAG,kCAAkC,uBAAuB,0CAA0C,GAAG,yCAAyC,qBAAqB,wBAAwB,2BAA2B,GAAG,2HAA2H,oBAAoB,GAAG,iIAAiI,uBAAuB,GAAG,+IAA+I,kBAAkB,8EAA8E,GAAG,kEAAkE,uBAAuB,GAAG,0IAA0I,kBAAkB,4BAA4B,GAAG,0EAA0E,kBAAkB,8EAA8E,GAAG,qIAAqI,kBAAkB,wBAAwB,4BAA4B,GAAG,oEAAoE,0DAA0D,gDAAgD,GAAG,2GAA2G,yBAAyB,GAAG,kEAAkE,yBAAyB,sEAAsE,GAAG,sMAAsM,kEAAkE,GAAG,iFAAiF,oDAAoD,YAAY,GAAG,4FAA4F,yBAAyB,wBAAwB,GAAG,2FAA2F,kBAAkB,0BAA0B,GAAG,uFAAuF,uBAAuB,GAAG,uEAAuE,kBAAkB,uBAAuB,eAAe,8EAA8E,qBAAqB,qBAAqB,cAAc,uDAAuD,uBAAuB,GAAG,mFAAmF,6EAA6E,GAAG,qEAAqE,uBAAuB,GAAG,mSAAmS,uEAAuE,gDAAgD,GAAG,yuBAAyuB,uEAAuE,gDAAgD,GAAG,8oDAA8oD,qBAAqB,GAAG,6OAA6O,+DAA+D,sDAAsD,GAAG,uVAAuV,wBAAwB,oBAAoB,GAAG,sFAAsF,+DAA+D,sDAAsD,GAAG,seAAse,+DAA+D,sDAAsD,GAAG,ynBAAynB,wBAAwB,oBAAoB,GAAG,6CAA6C,4CAA4C,GAAG,oFAAoF,2GAA2G,GAAG,GAAG,oMAAoM,goDAAgoD,+DAA+D,qHAAqH,43BAA43B,uhCAAuhC,iBAAiB,SAAS,mYAAmY,cAAc,oBAAoB,YAAY,6BAA6B,cAAc,2CAA2C,gBAAgB,qCAAqC,sBAAsB,cAAC,CAAC,gBAAC,aAAa,cAAc,cAAc,cAAc,qKAAqK,aAAa,MAAM,qHAAqH,gBAAgB,8BAA8B,oCAAoC,cAAc,uBAAuB,MAAM,iBAAC,UAAU,GAAG,iBAAC,WAAW,oBAAoB,SAAS,cAAc,2CAA2C,oBAAoB,6BAA6B,EAAE,uBAAuB,oBAAoB,qBAAqB,mCAAmC,cAAC,mBAAmB,cAAC,4CAA4C,aAAa,IAAI,cAAc,GAAG,+CAA+C,iCAAiC,SAAS,gBAAgB,2BAA2B,sBAAsB,KAAK,oBAAoB,eAAe,kCAAkC,iBAAC,cAAc,SAAS,KAAK,qDAAqD,EAAE,MAAM,kKAAkK,2GAA2G,qFAAqF,aAAa,cAAc,UAAU,oBAAoB,qBAAqB,kBAAkB,SAAS,KAAK,+DAA+D,EAAE,sDAAsD,UAAU,EAAE,yBAAyB,KAAK,cAAc,UAAU,oBAAoB,qBAAqB,kBAAkB,gCAAgC,KAAK,+DAA+D,EAAE,6BAA6B,gCAAgC,IAAI,6DAA6D,kCAAkC,yBAAyB,4HAA4H,cAAc,6EAA6E,cAAc,6EAA6E,cAAc,6CAA6C,cAAc,6CAA6C,uBAAuB,KAAK,gBAAC,OAAO,0BAA0B,8BAA8B,0BAA0B,8BAA8B,oCAAoC,qBAAqB,0BAA0B,yCAAyC,0BAA0B,MAAM,0DAA0D,0CAA0C,kCAAkC,wBAAwB,uBAAuB,eAAe,yBAAyB,iDAAiD,MAAM,KAAK,WAAE,CAAC,EAAE,OAAO,MAAM,KAAK,YAAE,CAAC,GAAG,UAAU,mBAAmB,GAAG,cAAc,sBAAsB,OAAO,oBAAoB,YAAY,UAAU,YAAY,GAAG,oCAAoC,6BAA6B,SAAS,QAAQ,sJAAsJ,WAAW,OAAO,iCAAiC,SAAS,QAAQ,sJAAsJ,4BAA4B,UAAU,mBAAmB,GAAG,oBAAoB,WAAW,UAAU,WAAW,aAAa,iCAAiC,0BAA0B,WAAW,UAAU,yDAAyD,iBAAC,sBAAsB,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,YAAY,GAAG,UAAU,wCAAwC,GAAG,oBAAoB,WAAW,wBAAwB,OAAO,WAAW,yBAAyB,UAAU,mBAAmB,GAAG,oBAAoB,iCAAiC,WAAW,iBAAiB,uCAAuC,MAAM,yBAAyB,aAAa,iBAAiB,UAAU,qFAAqF,oCAAoC,UAAU,kDAAkD,8CAA8C,mBAAmB,4BAA4B,2CAA2C,eAAC,MAAM,gGAAgG,sBAAsB,gBAAgB,sBAAsB,IAAI,yCAAyC,mJAAmJ,mBAAC,wHAAwH,MAAM,YAAY,wBAAwB,eAAe,aAAa,aAAa,aAAa,wBAAwB,aAAa,qBAAqB,aAAa,iBAAiB,aAAa,eAAe,WAAW,iCAAiC,mBAAmB,2BAA2B,4CAA4C,UAAU,GAAG,oBAAoB,0BAA0B,MAAM,sBAAsB,aAAa,4BAA4B,kBAAkB,YAAY,aAAa,uBAAuB,2BAA2B,iBAAiB,WAAW,eAAe,YAAY,GAAG,UAAU,2BAA2B,WAAW,GAAG,kCAAkC,WAAW,yBAAyB,UAAU,YAAY,YAAY,UAAU,YAAY,2BAA2B,OAAO,yBAAyB,iDAAiD,MAAM,KAAK,WAAE,CAAC,EAAE,OAAO,MAAM,KAAK,YAAE,CAAC,GAAG,UAAU,mBAAmB,GAAG,cAAc,sBAAsB,OAAO,oBAAoB,YAAY,UAAU,YAAY,GAAG,oCAAoC,WAAW,OAAO,iCAAiC,8LAA8L,UAAU,mBAAmB,GAAG,oBAAoB,WAAW,UAAU,WAAW,aAAa,iCAAiC,0BAA0B,WAAW,UAAU,yDAAyD,iBAAC,sBAAsB,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,YAAY,GAAG,UAAU,wCAAwC,GAAG,oBAAoB,WAAW,wBAAwB,OAAO,yBAAyB,WAAW,yBAAyB,UAAU,YAAY,eAAe,UAAU,mBAAmB,GAAG,oBAAoB,iCAAiC,WAAW,iBAAiB,uCAAuC,MAAM,yBAAyB,aAAa,iBAAiB,UAAU,qFAAqF,oCAAoC,UAAU,kDAAkD,mCAAmC,qBAAqB,oFAAoF,yBAAyB,qBAAqB,mBAAC,iPAAiP,MAAM,YAAY,kBAAkB,eAAe,aAAa,aAAa,aAAa,wBAAwB,aAAa,qBAAqB,aAAa,iBAAiB,aAAa,eAAe,WAAW,iCAAiC,mBAAmB,8BAA8B,mGAAmG,QAAQ,GAAG,eAAe,SAAS,wLAAwL,cAAc,kEAAkE,gBAAgB,oDAAoD,iBAAC,kBAAkB,qEAAqE,aAAa,oCAAoC,uBAAuB,KAAK,gBAAC,OAAO,kCAAkC,cAAc,iBAAC,kBAAkB,kCAAkC,qBAAqB,eAAe,yBAAyB,+FAA+F,MAAM,YAAY,aAAa,oBAAoB,aAAa,kEAAkE,mBAAmB,EAAE,OAAO,yBAAyB,mDAAmD,MAAM,WAAW,aAAa,yBAAyB,YAAY,EAAE,OAAO,WAAW,0EAA0E,UAAU,iBAAiB,oEAAoE,UAAU,kCAAkC,GAAG,oBAAoB,MAAM,gCAAgC,0BAA0B,GAAG,UAAU,kCAAkC,gBAAgB,IAAI,cAAc,aAAa,WAAW,aAAa,iBAAiB,aAAa,yBAAyB,aAAa,eAAe,WAAW,eAAe,qDAAqD,iBAAC,kCAAkC,UAAU,GAAG,kCAAkC,WAAW,yBAAyB,UAAU,YAAY,YAAY,UAAU,YAAY,2BAA2B,OAAO,2BAA2B,sBAAsB,OAAO,oBAAoB,YAAY,UAAU,YAAY,GAAG,8DAA8D,mGAAmG,QAAQ,GAAG,MAAM,WAAW,aAAa,aAAa,WAAW,qBAAqB,aAAa,iBAAiB,aAAa,yBAAyB,aAAa,eAAe,YAAY,EAAE,oBAAoB,WAAW,UAAU,WAAW,aAAa,iCAAiC,0BAA0B,WAAW,UAAU,yDAAyD,iBAAC,sBAAsB,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,YAAY,GAAG,UAAU,YAAY,GAAG,oBAAoB,WAAW,yBAAyB,UAAU,YAAY,YAAY,UAAU,qBAAqB,eAAe,UAAU,gCAAgC,GAAG,oBAAoB,WAAW,iBAAiB,uCAAuC,MAAM,yBAAyB,aAAa,iBAAiB,UAAU,sDAAsD,oCAAoC,UAAU,kDAAkD,iBAAiB,yPAAyP,2BAA2B,qBAAqB,sGAAsG,uIAAuI,MAAM,sIAAsI,4DAA4D,2NAA2N,yBAAyB,iCAAiC,mEAAmE,MAAM,cAAC,YAAY,oBAAoB,mCAAmC,2CAA2C,2BAA2B,iCAAiC,mBAAmB,wHAAwH,mBAAmB,iBAAC,2MAA2M,iCAAiC,mTAAmT,gCAAgC,4DAA4D,gBAAgB,QAAQ,uKAAuK,KAAK,iJAAiJ,KAAK,gLAAgL,KAAK,mJAAmJ,qyBAAqyB,YAAY,mBAAmB,6JAA6J,0CAA0C,kBAAkB,2BAA2B,wBAAwB,2DAA2D,4DAA4D,GAAG,0CAA0C,6DAA6D,GAAG,4EAA4E,YAAY,GAAG,2EAA2E,YAAY,GAAG,oEAAoE,kBAAkB,2BAA2B,qBAAqB,yCAAyC,kCAAkC,GAAG,6GAA6G,oDAAoD,GAAG,kGAAkG,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,wGAAwG,0GAA0G,GAAG,2GAA2G,uEAAuE,GAAG,GAAG,shBAAshB,iBAAiB,kFAAkF,OAAO,oBAAE,MAAM,eAAe,yLAAyL,KAAC,MAAM,GAAG,sBAAC,KAAK,8FAA8F,mBAAmB,uMAAuM,qBAAqB,MAAM,KAAC,QAAQ,KAAC,MAAM,mGAAmG,QAAQ,KAAC,MAAM,QAAQ,kBAAkB,kBAAC,6BAA6B,EAAE,UAAU,4BAA4B,6HAA6H,KAAC,+BAA+B,2BAA2B,SAAS,mCAAmC,kBAAkB,kBAAC,YAAY,EAAE,QAAQ,mDAAmD,ozBAAozB,uBAAuB,cAAc,YAAY,eAAe,wFAAwF,6DAA6D,gFAAgF,kBAAkB,2BAA2B,sBAAsB,mBAAmB,oBAAoB,GAAG,4GAA4G,mHAAmH,+CAA+C,iBAAiB,4BAA4B,mBAAmB,oBAAoB,kBAAkB,qBAAqB,wBAAwB,2BAA2B,uDAAuD,GAAG,kOAAkO,wEAAwE,GAAG,yHAAyH,kEAAkE,mFAAmF,GAAG,GAAG,sRAAsR,iBAAiB,SAAS,oEAAoE,OAAO,mBAAmB,yCAAyC,mBAAmB,YAAY,yDAAyD,oGAAoG,GAAG,oBAAoB,WAAW,0DAA0D,UAAU,qBAAqB,gBAAgB,gzBAAgzB,uBAAuB,kBAAkB,GAAG,iGAAiG,yBAAyB,uBAAuB,sDAAsD,iBAAiB,4BAA4B,mBAAmB,oBAAoB,kBAAkB,mBAAmB,wBAAwB,GAAG,4MAA4M,sEAAsE,+EAA+E,GAAG,0HAA0H,4CAA4C,GAAG,mIAAmI,wFAAwF,6DAA6D,GAAG,qDAAqD,4CAA4C,GAAG,GAAG,gRAAgR,iBAAiB,SAAS,uCAAuC,yCAAyC,+HAA+H,cAAc,0BAA0B,iCAAiC,uBAAuB,oCAAoC,eAAe,eAAe,mBAAmB,UAAU,KAAK,YAAE,CAAC,EAAE,oBAAoB,mBAAmB,4DAA4D,UAAU,qBAAqB,4FAA4F,UAAU,SAAS,OAAO,gDAAgD,UAAU,+CAA+C,UAAU,GAAG,gBAAgB,eAAe,QAAQ,+DAA+D,gFAAgF,yCAAyC,+FAA+F,IAAI,6BAA6B,SAAS,iBAAiB,QAAQ,6BAA6B,yBAAyB,uDAAuD,uzBAAuzB,YAAY,kBAAkB,uDAAuD,kDAAkD,GAAG,qGAAqG,YAAY,yBAAyB,uBAAuB,uBAAuB,kDAAkD,0CAA0C,iBAAiB,kBAAkB,GAAG,8EAA8E,iBAAiB,kDAAkD,oBAAoB,yBAAyB,mBAAmB,mBAAmB,GAAG,6GAA6G,sDAAsD,GAAG,kHAAkH,2CAA2C,GAAG,uDAAuD,kDAAkD,GAAG,2GAA2G,2CAA2C,GAAG,wFAAwF,2DAA2D,kDAAkD,uBAAuB,gBAAgB,mBAAmB,uBAAuB,GAAG,GAAG,4bAA4b,iBAAiB,SAAS,uMAAuM,aAAa,cAAc,cAAc,IAAI,mBAAmB,mBAAmB,sEAAsE,KAAK,qBAAqB,SAAS,OAAO,sBAAsB,SAAS,IAAI,YAAY,gBAAgB,oCAAoC,yBAAyB,gCAAgC,kCAAkC,aAAa,mBAAmB,+BAA+B,oBAAoB,WAAW,UAAU,KAAK,qBAAE,CAAC,gDAAgD,uBAAuB,eAAe,UAAU,YAAY,GAAG,oBAAoB,YAAY,UAAU,YAAY,GAAG,cAAc,UAAU,KAAK,2BAAE,CAAC,WAAW,qDAAqD,kCAAkC,YAAY,yDAAyD,4BAA4B,eAAe,0CAA0C,8BAA8B,4BAA4B,4BAA4B,+DAA+D,gBAAgB,2yBAA2yB,mHAAmH,+CAA+C,qDAAqD,kDAAkD,eAAe,cAAc,kBAAkB,mBAAmB,2DAA2D,4DAA4D,GAAG,oFAAoF,mHAAmH,+CAA+C,2EAA2E,oDAAoD,4BAA4B,iBAAiB,kBAAkB,oBAAoB,kBAAkB,wBAAwB,GAAG,yFAAyF,YAAY,GAAG,4QAA4Q,sEAAsE,+EAA+E,4DAA4D,GAAG,oIAAoI,YAAY,qBAAqB,GAAG,GAAG,uOAAuO,iBAAiB,SAAS,wMAAwM,cAAc,0BAA0B,MAAM,KAAC,QAAQ,2BAA2B,eAAC,yBAAyB,UAAU,8BAA8B,oBAAoB,SAAS,cAAc,OAAO,QAAC,QAAQ,cAAc,gDAAgD,aAAa,SAAS,cAAc,SAAS,4BAA4B,qBAAqB,kCAAkC,QAAQ,KAAC,cAAc,wBAAwB,uBAAuB,0BAA0B,0CAA0C,uCAAuC,yBAAyB,IAAI,GAAG,eAAe,yBAAyB,mBAAmB,iCAAiC,MAAM,sBAAsB,aAAa,oBAAoB,EAAE,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,aAAa,oBAAoB,YAAY,GAAG,UAAU,YAAY,WAAW,OAAO,MAAM,WAAW,aAAa,oCAAoC,WAAW,+BAA+B,YAAY,GAAG,UAAU,mBAAmB,GAAG,wDAAwD,OAAE,CAAC,2BAAE,GAAG,MAAM,WAAW,cAAc,yCAAyC,kIAAkI,yEAAyE,aAAa,gBAAgB,wyBAAwyB,+EAA+E,uBAAuB,6JAA6J,0CAA0C,qDAAqD,oDAAoD,gFAAgF,0BAA0B,iBAAiB,oBAAoB,mBAAmB,GAAG,0EAA0E,kBAAkB,yBAAyB,GAAG,8MAA8M,yBAAyB,uBAAuB,GAAG,wGAAwG,mBAAmB,uBAAuB,iBAAiB,mBAAmB,cAAc,oBAAoB,kDAAkD,gEAAgE,GAAG,8GAA8G,+EAA+E,sEAAsE,GAAG,uGAAuG,kEAAkE,uDAAuD,uBAAuB,+EAA+E,iBAAiB,mBAAmB,cAAc,YAAY,aAAa,oBAAoB,kBAAkB,GAAG,qHAAqH,2EAA2E,oBAAoB,sEAAsE,GAAG,sHAAsH,YAAY,kBAAkB,2BAA2B,kDAAkD,8CAA8C,GAAG,iKAAiK,YAAY,kBAAkB,wBAAwB,uBAAuB,GAAG,yMAAyM,mBAAmB,oBAAoB,wBAAwB,gBAAgB,uBAAuB,GAAG,qNAAqN,YAAY,kBAAkB,GAAG,0MAA0M,mBAAmB,mBAAmB,uBAAuB,mBAAmB,oBAAoB,uBAAuB,GAAG,sNAAsN,wBAAwB,GAAG,kKAAkK,YAAY,kBAAkB,uBAAuB,GAAG,gMAAgM,gBAAgB,GAAG,GAAG,q3CAAq3C,iBAAiB,SAAS,oXAAoX,kBAAC,cAAc,+BAA+B,SAAS,kBAAC,cAAc,+BAA+B,OAAO,aAAa,cAAc,cAAc,oBAAoB,YAAY,0DAA0D,6KAA6K,cAAc,8DAA8D,aAAa,+BAA+B,aAAa,wBAAwB,uCAAuC,0BAA0B,aAAa,+BAA+B,aAAa,wBAAwB,MAAM,SAAS,uDAAuD,sBAAsB,+BAA+B,0BAA0B,WAAW,cAAc,EAAE,kBAAkB,GAAG,IAAI,4BAA4B,yBAAyB,gBAAgB,oBAAoB,2CAA2C,0BAA0B,aAAa,+BAA+B,aAAa,wBAAwB,SAAS,sBAAsB,6BAA6B,EAAE,IAAI,4BAA4B,qBAAqB,kBAAkB,eAAe,WAAW,WAAW,KAAK,oBAAoB,0BAA0B,iBAAC,gBAAgB,cAAC,0BAA0B,oCAAoC,EAAE,qFAAqF,WAAW,sBAAsB,IAAI,uBAAuB,GAAG,eAAe,MAAM,iBAAC,MAAM,KAAC,QAAQ,cAAC,uCAAuC,wBAAwB,KAAK,kGAAkG,MAAM,KAAC,MAAM,uEAAuE,kBAAC,MAAM,iEAAiE,kBAAkB,kBAAC,sBAAsB,EAAE,yBAAyB,IAAI,6BAA6B,0BAA0B,gBAAgB,oBAAoB,eAAe,0BAA0B,cAAc,WAAW,aAAa,+BAA+B,aAAa,wBAAwB,uCAAuC,0BAA0B,aAAa,+BAA+B,aAAa,wBAAwB,uBAAuB,gGAAgG,MAAM,EAAE,aAAa,IAAI,aAAa,MAAM,EAAE,mCAAmC,EAAE,0BAA0B,2BAA2B,aAAa,+BAA+B,aAAa,wBAAwB,MAAM,uBAAuB,uDAAuD,qCAAqC,0BAA0B,aAAa,yBAAyB,qBAAqB,2BAA2B,aAAa,yBAAyB,6BAA6B,2BAA2B,aAAa,yBAAyB,qBAAqB,2BAA2B,kBAAkB,+BAA+B,aAAa,6BAA6B,2BAA2B,oBAAoB,qHAAqH,iBAAiB,cAAc,0BAA0B,EAAE,mBAAmB,4BAA4B,qBAAE,wCAAwC,iBAAC,GAAG,qBAAE,sKAAsK,MAAM,EAAE,aAAa,IAAI,OAAO,uCAAuC,wBAAwB,GAAG,6CAA6C,2BAA2B,aAAa,6DAA6D,qBAAqB,MAAM,wFAAwF,wBAAwB,MAAM,6DAA6D,6BAA6B,iDAAiD,kCAAkC,WAAW,0BAA0B,aAAa,wBAAwB,MAAM,wBAAwB,SAAS,0BAA0B,OAAO,eAAe,6BAA6B,iCAAiC,iCAAiC,WAAE,CAAC,YAAE,GAAG,MAAM,WAAW,cAAc,2BAA2B,UAAU,UAAU,GAAG,wCAAwC,MAAM,KAAK,aAAE,SAAS,EAAE,OAAO,MAAM,KAAK,QAAE,CAAC,GAAG,UAAU,mBAAmB,GAAG,sBAAsB,kGAAkG,gCAAgC,UAAU,KAAK,aAAE,CAAC,EAAE,cAAc,UAAU,KAAK,WAAE,CAAC,EAAE,cAAc,UAAU,KAAK,OAAE,CAAC,EAAE,oBAAoB,uCAAuC,0FAA0F,UAAU,gBAAgB,YAAY,QAAQ,wKAAwK,8EAA8E,WAAW,WAAW,iBAAiB,sBAAsB,iBAAiB,sEAAsE,kCAAkC,2BAA2B,mDAAmD,IAAI,KAAK,sBAAsB,aAAa,UAAU,yBAAyB,GAAG,SAAS,0CAA0C,mBAAmB,gBAAgB,2BAA2B,EAAE,+CAA+C,qBAAqB,gBAAgB,yBAAyB,yBAAyB,uBAAC,qBAAqB,yBAAyB,sEAAsE,sBAAC,+BAA+B,uBAAuB,GAAG,iBAAC,aAAa,iBAAiB,4BAA4B,yCAAyC,SAAS,aAAa,iBAAiB,gBAAgB,SAAS,aAAa,gBAAgB,IAAI,YAAY,OAAO,mGAAmG,sBAAC,qBAAqB,qBAAqB,QAAQ,WAAW,iBAAiB,IAAI,eAAe,SAAS,iBAAiB,+BAA+B,OAAO,8DAA8D,iBAAiB,IAAI,yBAAyB,GAAG,0BAA0B,iBAAiB,SAAS,mBAAC,yBAAyB,iBAAC,SAAS,mBAAC,QAAQ,OAAO,mBAAmB,sBAAsB,oBAAoB,mBAAmB,2CAA2C,SAAS,MAAM,qFAAqF,KAAK,GAAG,OAAO,eAAe,iBAAiB,6CAA6C,mHAAmH,eAAe,8BAA8B,mBAAmB,iCAAiC,eAAe,qBAAqB,MAAM,gBAAC,UAAU,yBAAyB,2BAA2B,iBAAC,aAAa,kCAAkC,SAAS,UAAU,kBAAkB,eAAe,oEAAoE,uBAAuB,uBAAC,6CAA6C,oBAAoB,GAAG,sBAAC,eAAe,SAAS,gCAAgC,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,+DAA+D,GAAG,6BAA6B,kBAAkB,eAAe,UAAU,sCAAsC,cAAc,IAAI,4BAA4B,SAAS,cAAc,oBAAoB,MAAM,4BAA4B,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,0CAA0C,iBAAiB,wBAAwB,0BAA0B,eAAe,4BAA4B,eAAe,IAAI,kGAAkG,GAAG,UAAU,KAAK,SAAS,SAAS,oCAAoC,GAAG,cAAc,eAAe,8BAA8B,YAAY,4CAA4C,eAAe,QAAQ,qBAAqB,cAAC,KAAK,kBAAC,iCAAiC,MAAM,SAAC,WAAW,YAAY,IAAI,SAAS,GAAG,sBAAsB,aAAa,eAAe,MAAM,OAAO,mBAAmB,IAAI,eAAe,IAAI,0EAA0E,GAAG,UAAU,qDAAqD,GAAG,iBAAC,0BAA0B,YAAY,QAAQ,oBAAoB,aAAa,mBAAmB,EAAE,kBAAkB,EAAE,wCAAwC,EAAE,oBAAoB,IAAI,4BAA4B,SAAS,aAAa,wCAAwC,gBAAgB,wBAAwB,MAAM,eAAe,IAAI,4GAA4G,GAAG,OAAO,sBAAsB,yBAAyB,wBAAwB,gCAAgC,mBAAmB,KAAC,MAAM,sBAAsB,iBAAC,KAAK,MAAM,cAAC,IAAI,aAAa,uBAAC,iDAAiD,SAAS,QAAQ,eAAe,mCAAmC,eAAe,4CAA4C,EAAE,MAAM,cAAC,gDAAgD,eAAe,MAAM,MAAM,SAAC,WAAW,gBAAgB,wCAAwC,WAAW,MAAM,iBAAC,WAAW,KAAC,GAAG,iBAAC,KAAK,OAAO,sDAAsD,qBAAqB,KAAK,eAAe,wBAAwB,EAAE,SAAS,cAAc,4CAA4C,MAAM,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,kGAAkG,GAAG,kBAAkB,MAAM,EAAE,uBAAuB,KAAK,UAAU,wHAAwH,cAAc,uHAAuH,uBAAuB,KAAC,qBAAqB,MAAM,EAAE,uBAAuB,qCAAqC,OAAO,oBAAoB,gCAAgC,EAAE,wEAAwE,IAAI,4BAA4B,cAAc,0BAA0B,IAAI,wEAAwE,GAAG,OAAO,mHAAmH,EAAE,4BAA4B,0yBAA0yB,YAAY,mHAAmH,+CAA+C,oDAAoD,mBAAmB,0BAA0B,iBAAiB,2DAA2D,4DAA4D,6DAA6D,GAAG,GAAG,kEAAkE,iBAAiB,SAAS,+FAA+F,iCAAiC,mBAAmB,SAAS,EAAE,aAAa,EAAE,6CAA6C,+BAA+B,aAAa,mBAAmB,mCAAmC,uzBAAuzB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,YAAY,wBAAwB,sCAAsC,mBAAmB,GAAG,uDAAuD,sEAAsE,GAAG,uDAAuD,sEAAsE,eAAe,GAAG,0DAA0D,2DAA2D,sBAAsB,GAAG,sDAAsD,qBAAqB,GAAG,qDAAqD,gBAAgB,GAAG,GAAG,oDAAoD,iBAAiB,SAAS,6EAA6E,KAAK,yBAAyB,MAAM,WAAW,iBAAiB,GAAG,UAAU,eAAe,GAAG,oBAAoB,WAAW,kCAAkC,UAAU,eAAe,WAAW,iFAAiF,8EAA8E,qBAAqB,gBAAgB,6yBAA6yB,YAAY,wBAAwB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,uBAAuB,eAAe,kBAAkB,GAAG,iEAAiE,cAAc,eAAe,GAAG,2FAA2F,cAAc,eAAe,0BAA0B,GAAG,uFAAuF,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,4DAA4D,8EAA8E,qBAAqB,GAAG,mGAAmG,4DAA4D,GAAG,6FAA6F,sEAAsE,GAAG,6FAA6F,eAAe,GAAG,gGAAgG,2DAA2D,sBAAsB,GAAG,kFAAkF,kBAAkB,uBAAuB,cAAc,YAAY,eAAe,4DAA4D,8EAA8E,gFAAgF,GAAG,8FAA8F,mBAAmB,GAAG,gHAAgH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,gBAAgB,qBAAqB,sCAAsC,cAAc,GAAG,sHAAsH,sEAAsE,GAAG,yHAAyH,2DAA2D,sBAAsB,GAAG,GAAG,+WAA+W,uzBAAuzB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,YAAY,wBAAwB,sCAAsC,mBAAmB,GAAG,uDAAuD,sEAAsE,GAAG,uDAAuD,sEAAsE,eAAe,GAAG,0DAA0D,2DAA2D,sBAAsB,GAAG,sDAAsD,qBAAqB,GAAG,qDAAqD,gBAAgB,GAAG,GAAG,oEAAoE,iBAAiB,SAAS,oFAAoF,iCAAiC,6BAA6B,MAAM,EAAE,YAAY,oBAAoB,KAAK,2BAA2B,SAAS,+GAA+G,aAAa,SAAS,cAAc,gDAAgD,SAAS,4EAA4E,YAAY,kFAAkF,0BAA0B,sCAAsC,eAAe,mBAAmB,uBAAuB,OAAO,cAAc,UAAU,KAAK,WAAE,CAAC,EAAE,cAAc,yBAAyB,iCAAiC,MAAM,WAAW,mBAAmB,GAAG,UAAU,iBAAiB,GAAG,YAAY,SAAS,MAAM,wJAAwJ,+CAA+C,YAAY,MAAM,6HAA6H,8BAA8B,4BAA4B,YAAY,2BAA2B,gCAAgC,IAAI,YAAY,iBAAiB,aAAa,aAAa,UAAU,oBAAoB,yBAAyB,MAAM,WAAW,sBAAsB,GAAG,UAAU,oBAAoB,GAAG,YAAY,QAAQ,MAAM,uJAAuJ,mFAAmF,0BAA0B,aAAa,OAAO,yyBAAyyB,gFAAgF,6JAA6J,0CAA0C,4DAA4D,8EAA8E,GAAG,mEAAmE,kBAAkB,wBAAwB,4BAA4B,6BAA6B,GAAG,wGAAwG,YAAY,wBAAwB,sCAAsC,2DAA2D,wBAAwB,GAAG,sGAAsG,YAAY,iFAAiF,kDAAkD,iDAAiD,2EAA2E,mBAAmB,uBAAuB,kBAAkB,wBAAwB,4BAA4B,kCAAkC,uBAAuB,GAAG,8IAA8I,sDAAsD,GAAG,sEAAsE,YAAY,kBAAkB,2BAA2B,yBAAyB,GAAG,uFAAuF,6EAA6E,GAAG,yEAAyE,gBAAgB,gBAAgB,iEAAiE,GAAG,GAAG,mmBAAmmB,iBAAiB,SAAS,iFAAiF,SAAS,0EAA0E,aAAa,GAAG,OAAO,mEAAmE,cAAc,kEAAkE,OAAO,mBAAmB,qBAAqB,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,WAAW,qCAAqC,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,WAAW,qCAAqC,yBAAyB,MAAM,4BAA4B,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,MAAM,4BAA4B,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,WAAW,OAAO,yBAAyB,mBAAmB,mCAAmC,OAAO,WAAW,4CAA4C,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,WAAW,OAAO,yBAAyB,WAAW,OAAO,WAAW,4CAA4C,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,WAAW,OAAO,yBAAyB,WAAW,OAAO,WAAW,4CAA4C,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,GAAG,oBAAoB,2BAA2B,UAAU,KAAK,WAAE,CAAC,EAAE,kBAAkB,6BAA6B,UAAU,UAAU,8DAA8D,mBAAmB,gBAAgB,mBAAmB,UAAU,0KAA0K,EAAE,cAAc,gBAAgB,6yBAA6yB,kDAAkD,GAAG,2EAA2E,oBAAoB,2DAA2D,GAAG,uCAAuC,kDAAkD,GAAG,wCAAwC,mDAAmD,GAAG,qCAAqC,gDAAgD,GAAG,wCAAwC,0CAA0C,GAAG,oCAAoC,+CAA+C,+BAA+B,GAAG,mCAAmC,uEAAuE,iBAAiB,eAAe,yBAAyB,uBAAuB,oBAAoB,kBAAkB,GAAG,8CAA8C,+DAA+D,mBAAmB,GAAG,iDAAiD,0CAA0C,GAAG,GAAG,2DAA2D,iBAAiB,SAAS,2LAA2L,uBAAuB,UAAU,0BAA0B,aAAa,wBAAwB,MAAM,eAAe,WAAW,SAAS,eAAe,sBAAsB,GAAG,wBAAwB,eAAe,SAAS,SAAS,6FAA6F,WAAW,8CAA8C,sEAAsE,8HAA8H,+BAA+B,qCAAqC,GAAG,iCAAiC,oBAAoB,gBAAgB,mBAAmB,gBAAgB,IAAI,qBAAqB,uCAAuC,gCAAgC,qBAAqB,4BAA4B,+BAA+B,OAAO,WAAW,mBAAmB,kGAAkG,wEAAwE,gBAAgB,2CAA2C,eAAe,iBAAiB,KAAK,wBAAwB,iEAAiE,uBAAuB,WAAW,cAAc,oBAAoB,MAAM,sDAAsD,sDAAsD,sDAAsD,gCAAgC,qBAAqB,mEAAmE,SAAS,uBAAuB,qGAAqG,sJAAsJ,qFAAqF,iEAAiE,mBAAmB,qBAAqB,MAAM,kBAAkB,eAAe,8BAA8B,2BAA2B,YAAY,QAAQ,yBAAyB,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,kBAAkB,IAAI,iCAAiC,eAAe,iCAAiC,KAAK,+BAA+B,oBAAoB,GAAG,SAAS,IAAI,4IAA4I,0BAA0B,8BAA8B,mBAAmB,yDAAyD,OAAO,iFAAiF,SAAS,eAAe,aAAa,gDAAgD,eAAe,MAAM,+CAA+C,qCAAqC,yBAAyB,8CAA8C,0HAA0H,MAAM,EAAE,UAAU,IAAI,QAAQ,4XAA4X,IAAI,6BAA6B,QAAQ,mCAAmC,6BAA6B,KAAC,4EAA4E,+CAA+C,mCAAmC,gIAAgI,wEAAwE,iBAAiB,6BAA6B,8BAA8B,8DAA8D,GAAG,SAAS,8BAA8B,+BAA+B,qBAAqB,uCAAuC,IAAI,OAAO,eAAS,QAAQ,eAAe,0BAA0B,0EAA0E,8BAA8B,eAAe,sDAAsD,QAAQ,4QAA4Q,IAAI,6BAA6B,SAAS,mCAAmC,sCAAsC,uEAAuE,mHAAmH,eAAe,0HAA0H,iFAAiF,SAAS,4BAA4B,MAAM,QAAE,EAAE,cAAc,EAAE,2BAA2B,eAAe,iBAAiB,wEAAwE,QAAQ,0cAA0c,IAAI,6BAA6B,kCAAkC,mCAAmC,wKAAwK,4EAA4E,mEAAmE,2HAA2H,+CAA+C,mCAAmC,uBAAuB,MAAM,cAAC,YAAY,gEAAgE,GAAG,2BAA2B,iCAAiC,QAAQ,KAAK,iBAAiB,oDAAoD,wDAAwD,wBAAwB,GAAG,4BAA4B,aAAa,yIAAyI,6FAA6F,IAAI,qCAAqC,+CAA+C,qGAAqG,iBAAiB,KAAK,sBAAC,KAAK,2BAA2B,cAAc,+JAA+J,IAAI,6BAA6B,yBAAyB,mCAAmC,wKAAwK,4EAA4E,yFAAyF,mMAAmM,iDAAiD,kMAAkM,OAAO,mCAAmC,uBAAuB,mDAAmD,wDAAwD,GAAG,2BAA2B,2BAA2B,cAAc,KAAK,oCAAoC,4CAA4C,8BAA8B,wBAAwB,GAAG,4BAA4B,iCAAiC,+CAA+C,qGAAqG,iBAAiB,UAAU,2BAA2B,iBAAiB,sDAAsD,gBAAgB,uBAAuB,gBAAgB,+BAA+B,aAAa,+BAA+B,syBAAsyB,YAAY,kBAAkB,2BAA2B,uBAAuB,kDAAkD,iBAAiB,kBAAkB,mHAAmH,+CAA+C,0CAA0C,yDAAyD,GAAG,sHAAsH,oBAAoB,eAAe,gBAAgB,eAAe,gBAAgB,eAAe,cAAc,kBAAkB,GAAG,6CAA6C,0DAA0D,GAAG,gFAAgF,uBAAuB,cAAc,kCAAkC,wDAAwD,0CAA0C,sBAAsB,eAAe,GAAG,oEAAoE,YAAY,mBAAmB,uBAAuB,iBAAiB,kBAAkB,2BAA2B,2DAA2D,4DAA4D,GAAG,+EAA+E,6DAA6D,GAAG,6GAA6G,YAAY,GAAG,uGAAuG,YAAY,uBAAuB,oDAAoD,2BAA2B,6JAA6J,0CAA0C,GAAG,qHAAqH,4DAA4D,iBAAiB,uBAAuB,0BAA0B,GAAG,GAAG,soBAAsoB,iBAAiB,SAAS,6EAA6E,cAAc,MAAM,kBAAC,KAAK,kBAAC,IAAI,yCAAyC,00BAA00B,IAAI,6GAA6G,gBAAgB,aAAa,mBAAmB,EAAE,gEAAgE,YAAY,mCAAmC,eAAe,SAAS,SAAS,WAAW,iBAAiB,uDAAuD,GAAG,oFAAoF,eAAe,yCAAyC,eAAe,gCAAgC,cAAc,0BAA0B,0CAA0C,0BAA0B,cAAc,yBAAyB,eAAe,4DAA4D,eAAe,gEAAgE,yCAAyC,iBAAiB,mDAAmD,mDAAmD,0BAA0B,kDAAkD,UAAE,KAAK,qBAAqB,SAAS,MAAM,IAAI,cAAc,SAAS,IAAI,qEAAqE,EAAE,iBAAC,2EAA2E,MAAM,sBAAsB,8BAA8B,MAAM,EAAE,kBAAkB,IAAI,kBAAkB,iBAAiB,WAAW,GAAG,iBAAC,iDAAiD,MAAM,EAAE,iBAAiB,4EAA4E,IAAI,KAAK,aAAa,0DAA0D,cAAc,yBAAyB,8BAA8B,yBAAyB,iBAAC,iBAAiB,wBAAwB,EAAE,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,eAAe,0BAA0B,iBAAiB,oBAAoB,qBAAqB,OAAO,iBAAC,WAAW,6BAA6B,0CAA0C,YAAY,OAAO,qFAAqF,2FAA2F,4BAA4B,8BAA8B,iBAAiB,6BAA6B,YAAY,YAAY,OAAO,qFAAqF,IAAI,+EAA+E,SAAS,IAAI,UAAU,UAAC,kFAAkF,SAAS,8HAA8H,iBAAiB,SAAS,eAAe,mCAAmC,eAAe,SAAS,QAAC,gBAAgB,QAAC,mGAAmG,eAAe,qCAAqC,uCAAuC,SAAS,kBAAkB,UAAU,kCAAkC,6IAA6I,OAAO,UAAU,kCAAkC,sHAAsH,GAAG,iBAAiB,MAAM,iFAAiF,gBAAgB,4GAA4G,+IAA+I,6PAA6P,oBAAoB,QAAQ,UAAU,qHAAqH,GAAG,0CAA0C,cAAc,oCAAoC,cAAc,iBAAiB,mBAAmB,KAAC,WAAW,oBAAoB,yBAAyB,eAAe,cAAc,SAAS,OAAO,4CAA4C,sBAAsB,EAAE,oBAAoB,cAAc,qBAAqB,mBAAmB,kBAAC,MAAM,KAAC,kEAAkE,+BAA+B,uCAAuC,OAAO,4BAA4B,YAAY,qBAAqB,6BAA6B,EAAE,KAAK,cAAc,4DAA4D,YAAY,EAAE,iBAAiB,cAAc,gCAAgC,cAAc,yBAAyB,iEAAiE,UAAU,yFAAyF,EAAE,4BAA4B,cAAc,gCAAgC,cAAc,yBAAyB,iEAAiE,4BAA4B,iEAAiE,GAAG,4BAA4B,eAAe,MAAM,6FAA6F,cAAc,gCAAgC,cAAc,yBAAyB,IAAI,yCAAyC,SAAS,4BAA4B,0BAA0B,eAAe,gBAAgB,mHAAmH,EAAE,iBAAiB,OAAO,wEAAwE,EAAE,cAAc,IAAI,+FAA+F,EAAE,cAAc,oCAAoC,iBAAC,8BAA8B,iBAAiB,oCAAoC,cAAc,4CAA4C,iBAAC,cAAc,aAAa,iBAAiB,EAAE,oBAAoB,iBAAiB,eAAe,kBAAC,iBAAiB,EAAE,iGAAiG,MAAM,iBAAC,gBAAgB,KAAC,MAAM,GAAG,sBAAC,KAAK,uBAAuB,SAAS,cAAC,KAAK,YAAY,GAAG,QAAQ,6BAA6B,EAAE,GAAG,uBAAC,KAAK,SAAS,4BAA4B,aAAa,cAAC,KAAK,UAAU,KAAK,6BAA6B,EAAE,oFAAoF,gBAAgB,cAAc,UAAU,OAAO,mBAAmB,IAAI,eAAe,IAAI,kIAAkI,EAAE,eAAe,0EAA0E,eAAe,kCAAkC,mBAAmB,KAAC,6BAA6B,gBAAgB,6BAA6B,sBAAsB,0BAA0B,iBAAiB,6BAA6B,sBAAsB,SAAS,UAAU,UAAU,iBAAiB,iCAAiC,kBAAkB,0BAA0B,iBAAiB,kBAAkB,iCAAiC,SAAS,OAAO,SAAS,OAAO,SAAS,6CAA6C,oEAAoE,UAAU,gBAAgB,QAAQ,kBAAkB,kBAAC,YAAY,EAAE,mBAAmB,4CAA4C,iBAAiB,uCAAuC,IAAI,SAAS,OAAO,sEAAsE,cAAc,WAAW,oCAAoC,iBAAC,aAAa,IAAI,iBAAC,SAAS,iBAAC,GAAG,iBAAC,0DAA0D,gDAAgD,yBAAyB,cAAc,WAAW,wBAAwB,wDAAwD,eAAe,gCAAgC,cAAc,0BAA0B,UAAU,oHAAoH,EAAE,0BAA0B,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,2JAA2J,yDAAyD,mCAAmC,oEAAoE,wCAAwC,aAAa,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,2JAA2J,yDAAyD,mCAAmC,oEAAoE,wCAAwC,aAAa,eAAe,MAAM,mCAAmC,sDAAsD,IAAI,aAAa,GAAG,+BAA+B,gCAAgC,IAAI,eAAe,+BAA+B,eAAe,sBAAsB,GAAG,cAAc,8BAA8B,cAAc,OAAO,eAAe,oBAAoB,IAAI,6BAA6B,oBAAoB,YAAY,+CAA+C,KAAK,yCAAyC,kBAAC,WAAW,uCAAuC,gCAAgC,KAAK,cAAc,6BAA6B,GAAG,cAAc,YAAY,2BAA2B,EAAE,cAAc,IAAI,YAAY,EAAE,eAAe,gCAAgC,cAAc,0BAA0B,iEAAiE,yCAAyC,YAAY,iBAAiB,gCAAgC,sCAAsC,gEAAgE,+DAA+D,kBAAkB,wBAAwB,KAAK,uDAAuD,EAAE,GAAG,4BAA4B,eAAe,QAAQ,iIAAiI,eAAe,YAAY,aAAa,qEAAqE,KAAC,wBAAwB,oBAAoB,sCAAsC,4BAA4B,mDAAmD,GAAG,iBAAiB,yEAAyE,SAAS,yBAAyB,mCAAmC,iCAAiC,EAAE,yBAAyB,SAAS,yBAAyB,mCAAmC,iCAAiC,GAAG,iBAAiB,qBAAqB,OAAO,wBAAwB,WAAW,iBAAiB,iBAAiB,OAAO,wBAAwB,IAAI,oFAAoF,6EAA6E,uNAAuN,gBAAgB,iBAAiB,sBAAsB,OAAO,wBAAwB,IAAI,qFAAqF,IAAI,0FAA0F,SAAS,IAAI,UAAU,UAAC,6EAA6E,SAAS,wBAAwB,sBAAsB,6EAA6E,yBAAyB,8BAA8B,8KAA8K,iBAAiB,gBAAgB,iBAAiB,8DAA8D,kBAAkB,8BAA8B,+BAA+B,cAAc,aAAa,cAAc,aAAa,eAAe,cAAc,iBAAiB,sCAAsC,mBAAmB,GAAG,iBAAiB,qDAAqD,yBAAyB,mBAAmB,sCAAsC,aAAa,MAAM,EAAE,kBAAkB,EAAE,GAAG,qBAAqB,eAAe,oCAAoC,eAAe,OAAO,0EAA0E,iBAAiB,IAAI,+OAA+O,6BAA6B,iBAAC,YAAY,KAAC,qHAAqH,KAAC,GAAG,iBAAC,qXAAqX,cAAc,6BAA6B,QAAQ,mBAAmB,mCAAmC,KAAE,4EAA4E,EAAE,6BAA6B,mCAAmC,KAAE,uEAAuE,sBAAsB,mBAAmB,KAAE,uFAAuF,EAAE,qBAAqB,kCAAE,CAAC,6BAAE,gIAAgI,EAAE,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,6BAA6B,qCAAqC,KAAE,2FAA2F,sBAAsB,mBAAmB,KAAE,uHAAuH,EAAE,mBAAmB,KAAE,sHAAsH,EAAE,EAAE,6BAA6B,qCAAqC,2BAAE,6FAA6F,sBAAsB,mBAAmB,2BAAE,yHAAyH,EAAE,mBAAmB,2BAAE,wHAAwH,EAAE,EAAE,mCAAmC,4BAAE,oEAAoE,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,sBAAsB,mCAAmC,4BAAE,2EAA2E,EAAE,mCAAmC,SAAE,8DAA8D,EAAE,mCAAmC,mBAAE,kEAAkE,EAAE,mCAAmC,QAAE,oGAAoG,EAAE,mCAAmC,+BAAE,wEAAwE,EAAE,EAAE,sBAAsB,oBAAoB,EAAE,gDAAgD,qBAAE,CAAC,MAAE,oFAAoF,EAAE,6CAA6C,qBAAE,CAAC,MAAE,6CAA6C,EAAE,4CAA4C,qBAAE,CAAC,MAAE,2CAA2C,EAAE,4CAA4C,qBAAE,CAAC,MAAE,2CAA2C,EAAE,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,mCAAmC,oCAAE,6GAA6G,EAAE,mCAAmC,sCAAE,2GAA2G,EAAE,EAAE,EAAE,+QAA+Q,sCAAsC,WAAW,OAAO,kGAAkG,aAAa,MAAM,YAAY,kHAAkH,KAAK,eAAe,8GAA8G,2DAA2D,EAAE,KAAK,sGAAsG,SAAS,mDAAmD,EAAE,KAAK,sEAAsE,OAAO,wDAAwD,IAAI,eAAe,IAAI,uEAAuE,EAAE,cAAc,gCAAgC,cAAc,yBAAyB,yCAAyC,IAAI,gBAAgB,QAAQ,kCAAkC,0BAA0B,cAAc,0CAA0C,cAAc,aAAa,eAAe,wBAAwB,cAAc,iDAAiD,eAAe,uBAAuB,MAAM,iBAAC,OAAO,cAAC,OAAO,KAAC,2BAA2B,+BAA+B,kBAAkB,eAAe,uBAAuB,cAAc,yBAAyB,qBAAqB,sBAAsB,MAAM,SAAS,iBAAC,kCAAkC,oCAAoC,UAAU,wDAAwD,GAAG,yBAAyB,aAAa,mHAAmH,2CAA2C,IAAI,SAAS,0BAA0B,QAAQ,0BAA0B,aAAa,iBAAC,yCAAyC,qCAAqC,mBAAmB,MAAM,mDAAmD,uBAAuB,6BAA6B,6BAA6B,2DAA2D,OAAO,ySAAyS,yBAAyB,EAAE,yBAAyB,4BAA4B,eAAe,YAAY,+BAA+B,kMAAkM,GAAG,+BAA+B,eAAe,SAAS,wWAAwW,aAAa,QAAQ,oEAAoE,uBAAuB,mBAAmB,qCAAqC,yCAAyC,oCAAoC,MAAM,kGAAkG,EAAE,oCAAoC,MAAM,sGAAsG,EAAE,0BAA0B,MAAM,mBAAmB,QAAE,gFAAgF,EAAE,oHAAoH,uBAAuB,iBAAiB,EAAE,mBAAmB,2BAAE,wEAAwE,EAAE,iBAAiB,QAAQ,aAAa,gBAAgB,iBAAiB,EAAE,mBAAmB,mBAAE,0EAA0E,EAAE,mBAAmB,QAAE,qHAAqH,QAAQ,mBAAmB,WAAE,kDAAkD,EAAE,iBAAiB,EAAE,mBAAmB,MAAE,8EAA8E,EAAE,mBAAmB,MAAE,oFAAoF,EAAE,aAAa,GAAG,kCAAkC,wBAAwB,qBAAqB,YAAY,cAAc,OAAO,IAAI,WAAW,cAAc,iBAAiB,cAAc,gBAAgB,WAAW,eAAe,WAAW,4HAA4H,WAAW,kBAAkB,cAAc,mBAAmB,SAAS,aAAa,GAAG,WAAW,WAAW,GAAG,uBAAuB,MAAM,WAAW,cAAc,iBAAiB,cAAc,2BAA2B,WAAW,kBAAkB,YAAY,GAAG,WAAW,WAAW,GAAG,uBAAuB,2BAA2B,6CAA6C,oBAAoB,yBAAyB,eAAe,SAAS,kGAAkG,OAAO,6CAA6C,yBAAyB,mDAAmD,KAAK,cAAc,4HAA4H,UAAU,UAAU,0CAA0C,IAAI,eAAe,WAAW,qBAAqB,UAAU,GAAG,oBAAoB,aAAa,cAAc,MAAM,EAAE,OAAO,sCAAsC,KAAK,MAAE,mGAAmG,IAAI,MAAM,kHAAkH,cAAc,cAAc,WAAW,cAAc,YAAY,cAAc,mBAAmB,WAAW,cAAc,YAAY,WAAW,UAAU,0CAA0C,WAAW,OAAO,mBAAmB,UAAU,WAAW,cAAc,qBAAqB,cAAc,cAAc,WAAW,kBAAkB,cAAc,mBAAmB,cAAc,gBAAgB,WAAW,6DAA6D,EAAE,cAAc,+CAA+C,kBAAkB,YAAY,UAAU,aAAa,eAAe,YAAY,cAAc,wBAAwB,cAAc,wBAAwB,cAAc,qBAAqB,cAAc,iBAAiB,cAAc,eAAe,cAAc,sBAAsB,cAAC,CAAC,iCAAiC,oBAAoB,wGAAwG,MAAM,0BAA0B,aAAa,WAAW,KAAK,QAAE,4FAA4F,EAAE,0EAA0E,EAAE,GAAG,UAAU,aAAa,GAAG,oBAAoB,uBAAuB,KAAK,OAAE,2DAA2D,EAAE,KAAK,MAAE,+GAA+G,IAAI,MAAM,0GAA0G,aAAa,YAAY,GAAG,UAAU,aAAa,eAAe,uBAAuB,cAAc,gBAAgB,WAAW,UAAU,6BAA6B,4BAA4B,QAAQ,YAAY,WAAW,iBAAiB,mCAAmC,uBAAuB,MAAM,sBAAsB,GAAG,WAAW,cAAc,GAAG,uBAAuB,sBAAsB,aAAa,MAAM,0DAA0D,IAAI,kBAAkB,cAAc,qEAAqE,yBAAyB,gBAAgB,kBAAkB,mbAAmb,mBAAmB,kEAAkE,mBAAmB,2CAA2C,mBAAmB,6BAA6B,8DAA8D,MAAM,2BAA2B,KAAC,8CAA8C,0GAA0G,wCAAwC,wCAAwC,wCAAwC,UAAU,mCAAmC,MAAM,iBAAC,MAAM,KAAC,MAAM,oCAAoC,8DAA8D,mDAAmD,mBAAmB,2CAA2C,mBAAmB,6BAA6B,2HAA2H,MAAM,IAAI,mBAAmB,aAAa,2CAA2C,qBAAqB,MAAM,iBAAC,UAAU,KAAC,MAAM,kGAAkG,wDAAwD,mBAAmB,6CAA6C,mBAAmB,8CAA8C,2HAA2H,MAAM,IAAI,eAAe,aAAa,iFAAiF,wDAAwD,mBAAmB,wBAAwB,eAAe,yBAAyB,KAAC,QAAQ,iBAAC,KAAK,oDAAoD,+CAA+C,WAAW,EAAE,QAAQ,qCAAqC,KAAC,qDAAqD,WAAW,EAAE,QAAQ,GAAG,wFAAwF,+EAA+E,iCAAiC,MAAM,KAAC,qBAAqB,uCAAuC,mOAAmO,kCAAkC,uBAAuB,eAAe,+IAA+I,4PAA4P,oIAAoI,EAAE,eAAe,qDAAqD,qEAAqE,EAAE,MAAM,gCAAgC,cAAc,+DAA+D,4BAA4B,aAAa,kBAAkB,aAAa,WAAW,aAAa,OAAO,mFAAmF,aAAa,4BAA4B,cAAc,wDAAwD,aAAa,yBAAyB,aAAa,QAAQ,WAAW,gCAAgC,aAAa,0CAA0C,OAAO,OAAO,kzBAAkzB,YAAY,kBAAkB,2BAA2B,iBAAiB,kBAAkB,GAAG,sFAAsF,mBAAmB,YAAY,kBAAkB,2BAA2B,eAAe,mBAAmB,iBAAiB,kBAAkB,GAAG,yHAAyH,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,kKAAkK,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,wKAAwK,0GAA0G,GAAG,2KAA2K,uEAAuE,GAAG,+HAA+H,YAAY,kBAAkB,4CAA4C,kBAAkB,2BAA2B,2EAA2E,GAAG,yKAAyK,YAAY,kBAAkB,2BAA2B,GAAG,kNAAkN,uCAAuC,GAAG,8NAA8N,kBAAkB,GAAG,6NAA6N,qBAAqB,GAAG,qNAAqN,sEAAsE,mHAAmH,+CAA+C,GAAG,4MAA4M,2CAA2C,GAAG,kNAAkN,YAAY,kBAAkB,qBAAqB,GAAG,wKAAwK,YAAY,kBAAkB,2BAA2B,4CAA4C,GAAG,iNAAiN,YAAY,kBAAkB,2BAA2B,kBAAkB,2BAA2B,GAAG,0NAA0N,eAAe,GAAG,gNAAgN,YAAY,kBAAkB,2BAA2B,kBAAkB,2BAA2B,GAAG,+LAA+L,2BAA2B,WAAW,qBAAqB,GAAG,yHAAyH,4GAA4G,GAAG,yCAAyC,iIAAiI,6BAA6B,qBAAqB,KAAK,oNAAoN,wBAAwB,iBAAiB,KAAK,yLAAyL,oBAAoB,iBAAiB,KAAK,GAAG,6EAA6E,sBAAsB,mBAAmB,2BAA2B,GAAG,oHAAoH,mDAAmD,wDAAwD,2BAA2B,GAAG,iJAAiJ,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sBAAsB,eAAe,GAAG,2DAA2D,YAAY,kEAAkE,qBAAqB,2BAA2B,kEAAkE,GAAG,kJAAkJ,uDAAuD,kBAAkB,2BAA2B,kDAAkD,mHAAmH,+CAA+C,mBAAmB,+EAA+E,GAAG,8JAA8J,oHAAoH,GAAG,sKAAsK,kEAAkE,GAAG,yFAAyF,YAAY,kEAAkE,uDAAuD,2CAA2C,kDAAkD,GAAG,8CAA8C,uCAAuC,GAAG,oDAAoD,iDAAiD,GAAG,GAAG,wlDAAwlD,iBAAiB,UAAU,SAAS,ilBAAilB,oBAAoB,oFAAoF,kBAAC,4CAA4C,8GAA8G,8IAA8I,QAAQ,KAAK,cAAc,MAAM,+DAA+D,cAAc,IAAI,yFAAyF,8CAA8C,EAAE,SAAS,iBAAiB,cAAc,qDAAqD,2BAA2B,EAAE,yBAAyB,MAAM,wCAAwC,GAAG,MAAM,kBAAC,gBAAgB,2BAA2B,QAAQ,8BAA8B,qBAAqB,sBAAsB,QAAQ,EAAE,mCAAmC,MAAM,OAAO,eAAe,SAAS,MAAM,QAAQ,kBAAkB,WAAW,OAAO,EAAE,OAAO,aAAa,+BAA+B,QAAQ,8BAA8B,IAAI,qBAAqB,YAAY,EAAE,2CAA2C,MAAM,kBAAkB,kBAAC,cAAc,SAAS,SAAS,uBAAuB,QAAQ,mBAAmB,aAAa,uCAAuC,aAAa,yCAAyC,cAAc,UAAU,cAAc,sDAAsD,cAAc,yBAAyB,iCAAiC,QAAQ,KAAC,YAAY,wBAAwB,YAAY,WAAW,EAAE,QAAQ,EAAE,gCAAgC,eAAe,mDAAmD,YAAY,kEAAkE,uCAAuC,qBAAqB,cAAc,WAAW,kDAAkD,aAAa,kBAAkB,WAAW,UAAU,iBAAiB,mBAAmB,eAAe,SAAS,4JAA4J,yCAAyC,sBAAsB,aAAa,OAAO,iEAAiE,cAAc,UAAU,4DAA4D,EAAE,aAAa,oDAAoD,WAAW,kBAAkB,WAAW,mBAAmB,KAAK,UAAU,gBAAgB,WAAW,UAAU,KAAK,KAAE,CAAC,+FAA+F,aAAa,OAAO,IAAI,qBAAqB,WAAW,uBAAuB,WAAW,uCAAuC,WAAW,kBAAkB,aAAa,mBAAmB,QAAQ,aAAa,EAAE,wCAAwC,yCAAyC,gEAAgE,WAAE,CAAC,YAAE,GAAG,MAAM,WAAW,cAAc,EAAE,oBAAoB,yBAAyB,mBAAmB,MAAM,mBAAmB,aAAa,YAAY,aAAa,YAAY,EAAE,oBAAoB,mBAAmB,+BAA+B,UAAU,YAAY,WAAW,OAAO,0DAA0D,UAAU,kCAAkC,YAAY,UAAU,YAAY,GAAG,cAAc,+BAA+B,gFAAgF,WAAE,CAAC,YAAE,GAAG,OAAO,WAAW,eAAe,EAAE,uBAAuB,MAAM,sBAAsB,aAAa,wCAAwC,aAAa,+DAA+D,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,cAAc,WAAW,uBAAuB,WAAW,qBAAqB,WAAW,oBAAoB,WAAW,2BAA2B,WAAW,gCAAgC,cAAC,cAAc,cAAC,UAAU,cAAC,QAAQ,cAAC,QAAQ,cAAC,SAAS,cAAC,QAAQ,cAAC,aAAa,cAAC,kBAAkB,cAAC,mBAAmB,cAAC,mBAAmB,WAAW,yCAAyC,WAAW,kBAAkB,YAAY,GAAG,WAAW,aAAa,GAAG,uCAAuC,MAAM,sBAAsB,aAAa,wCAAwC,aAAa,+DAA+D,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,cAAc,WAAW,uBAAuB,WAAW,qBAAqB,WAAW,oBAAoB,WAAW,2BAA2B,WAAW,gCAAgC,cAAC,cAAc,cAAC,UAAU,cAAC,QAAQ,cAAC,QAAQ,cAAC,SAAS,cAAC,QAAQ,cAAC,aAAa,cAAC,kBAAkB,cAAC,mBAAmB,cAAC,mBAAmB,WAAW,yCAAyC,WAAW,kBAAkB,YAAY,EAAE,QAAQ,mBAAmB,+BAA+B,WAAW,qBAAqB,GAAG,mBAAmB,mEAAmE,uGAAuG,OAAO,iBAAC,8FAA8F,UAAU,YAAY,0DAA0D,UAAU,YAAY,OAAO,eAAe,eAAe,iEAAiE,kCAAkC,UAAU,oCAAoC,UAAU,oCAAoC,UAAU,wDAAwD,wyBAAwyB,qDAAqD,oDAAoD,mHAAmH,+CAA+C,cAAc,mFAAmF,2DAA2D,4DAA4D,kBAAkB,kCAAkC,GAAG,6CAA6C,6DAA6D,GAAG,8EAA8E,iBAAiB,GAAG,GAAG,6QAA6Q,OAAO,cAAE,UAAU,IAAI,IAAE,gDAAgD,EAAE,IAAI,IAAE,mDAAmD,EAAE,IAAI,IAAE,kDAAkD,EAAE,IAAI,IAAE,mDAAmD,EAAE,IAAI,IAAE,kDAAkD,MAAM,kBAAE,iBAAiB,sBAAsB,QAAQ,UAAE,iBAAiB,eAAe,4BAA4B,aAAE,gKAAgK,UAAU,MAAM,aAAE,UAAU,mGAAmG,YAAY,UAAU,eAAE,CAAC,sGAAsG,SAAS,6CAA6C,gLAAgL,8BAA8B,yBAAyB,8BAA8B,gBAAgB,IAAI,2BAA2B,+MAA+M,oBAAoB,UAAE,OAAO,YAAY,mCAAmC,2BAA2B,IAAI,IAAI,mBAAmB,qBAAqB,QAAQ,YAAY,uCAAuC,KAAK,EAAE,sBAAsB,+BAA+B,SAAS,gBAAgB,aAAa,cAAc,WAAW,iBAAiB,aAAa,WAAW,uBAAuB,WAAW,oBAAoB,gBAAgB,OAAO,6BAA6B,EAAE,6BAA6B,GAAG,syBAAsyB,wDAAwD,0EAA0E,4EAA4E,0EAA0E,sEAAsE,YAAY,2BAA2B,kBAAkB,2BAA2B,kDAAkD,GAAG,6CAA6C,0DAA0D,GAAG,oEAAoE,YAAY,kBAAkB,uBAAuB,2BAA2B,qBAAqB,iBAAiB,kBAAkB,2DAA2D,4DAA4D,GAAG,+EAA+E,6DAA6D,GAAG,+EAA+E,uBAAuB,uBAAuB,WAAW,YAAY,GAAG,+EAA+E,YAAY,qBAAqB,GAAG,4FAA4F,mHAAmH,+CAA+C,yDAAyD,2DAA2D,GAAG,2FAA2F,qDAAqD,oDAAoD,qFAAqF,GAAG,iMAAiM,6EAA6E,GAAG,uGAAuG,+DAA+D,GAAG,+FAA+F,6DAA6D,mDAAmD,GAAG,uHAAuH,mGAAmG,gEAAgE,GAAG,kGAAkG,kGAAkG,GAAG,mGAAmG,8DAA8D,qEAAqE,iBAAiB,wCAAwC,GAAG,2FAA2F,0CAA0C,6JAA6J,oEAAoE,oFAAoF,iFAAiF,GAAG,oGAAoG,4FAA4F,qEAAqE,GAAG,0FAA0F,sFAAsF,GAAG,0FAA0F,qDAAqD,kEAAkE,6JAA6J,0CAA0C,GAAG,gGAAgG,6JAA6J,0DAA0D,kEAAkE,uDAAuD,+EAA+E,sBAAsB,GAAG,iGAAiG,6JAA6J,0DAA0D,kDAAkD,gEAAgE,iBAAiB,oBAAoB,+BAA+B,2EAA2E,cAAc,GAAG,uGAAuG,+EAA+E,sEAAsE,GAAG,gGAAgG,6JAA6J,0DAA0D,2CAA2C,GAAG,sGAAsG,sBAAsB,GAAG,+GAA+G,gBAAgB,iBAAiB,oBAAoB,sBAAsB,eAAe,aAAa,cAAc,GAAG,kGAAkG,iDAAiD,GAAG,6GAA6G,YAAY,GAAG,uGAAuG,YAAY,uBAAuB,oDAAoD,2BAA2B,6JAA6J,0CAA0C,GAAG,gFAAgF,YAAY,mHAAmH,+CAA+C,oDAAoD,mBAAmB,0BAA0B,2BAA2B,iBAAiB,GAAG,GAAG,+YAA+Y,iBAAiB,SAAS,onBAAonB,8CAA8C,8BAA8B,cAAc,iGAAiG,WAAE,OAAO,WAAE,OAAO,WAAE,OAAO,WAAE,OAAO,WAAE,kCAAkC,UAAE,kBAAkB,cAAc,+BAA+B,yGAAyG,kBAAkB,2DAA2D,OAAO,+CAA+C,qDAAqD,kBAAkB,kBAAkB,UAAU,cAAc,IAAI,gDAAgD,GAAG,8BAA8B,yBAAyB,EAAE,oBAAoB,mBAAmB,+DAA+D,yBAAyB,WAAE,SAAS,8BAA8B,MAAE,KAAK,aAAE,gBAAgB,UAAE,GAAG,WAAE,GAAG,yBAAE,GAAG,qBAAE,GAAG,UAAE,GAAG,aAAE,GAAG,UAAE,GAAG,WAAE,gCAAgC,aAAE,GAAG,kBAAE,CAAC,qBAAE,EAAE,YAAY,EAAE,eAAE,GAAG,aAAE,GAAG,cAAE,GAAG,oBAAE,GAAG,eAAE,GAAG,mBAAE,GAAG,yBAAE,GAAG,MAAE,QAAQ,mBAAE,IAAI,aAAE,IAAI,YAAE,EAAE,qCAAqC,EAAE,uDAAuD,EAAE,4CAA4C,IAAI,UAAE,IAAI,gBAAE,IAAI,UAAE,MAAM,kBAAE,EAAE,mBAAmB,EAAE,eAAE,mBAAmB,YAAY,EAAE,eAAE,wBAAwB,8GAA8G,qBAAqB,GAAG,IAAE,GAAG,MAAE,EAAE,OAAO,EAAE,eAAE,mBAAmB,WAAE,sBAAsB,WAAE,mCAAmC,eAAE,SAAS,EAAE,UAAU,IAAI,EAAE,MAAM,eAAE,EAAE,iBAAiB,gCAAgC,mCAAmC,GAAG,SAAS,EAAE,oGAAoG,EAAE,SAAS,kBAAkB,aAAa,qDAAqD,GAAG,OAAO,kBAAC,MAAM,kBAAC,GAAG,cAAc,0BAA0B,UAAU,eAAe,gBAAgB,iBAAiB,qBAAqB,0BAA0B,kBAAC,QAAQ,eAAC,MAAM,WAAW,+BAA+B,QAAQ,qCAAqC,cAAc,4BAA4B,IAAI,wBAAwB,WAAW,+BAA+B,qBAAqB,SAAS,OAAO,SAAS,cAAc,6BAA6B,IAAI,wBAAwB,WAAW,sBAAsB,oBAAoB,SAAS,OAAO,SAAS,cAAc,wBAAwB,IAAI,KAAK,UAAC,SAAS,gCAAgC,SAAS,QAAQ,cAAc,MAAM,YAAY,wBAAwB,WAAW,mDAAmD,IAAI,aAAa,GAAG,uBAAuB,eAAe,+BAA+B,eAAe,YAAY,EAAE,SAAS,QAAQ,eAAe,IAAI,wCAAwC,GAAG,IAAI,wBAAwB,WAAW,+CAA+C,KAAK,oCAAoC,kBAAC,MAAM,gCAAgC,cAAc,mBAAmB,EAAE,SAAS,QAAQ,cAAc,SAAS,YAAY,EAAE,cAAc,6CAA6C,gBAAE,IAAI,eAAE,KAAK,cAAc,gBAAgB,KAAK,iBAAiB,sCAAsC,kCAAkC,SAAE,oCAAoC,oBAAE,8CAA8C,kBAAkB,cAAc,gBAAgB,KAAK,iBAAiB,sCAAsC,kCAAkC,SAAE,oCAAoC,oBAAE,8CAA8C,kBAAkB,cAAc,uBAAuB,cAAc,aAAa,cAAc,KAAK,eAAe,+BAA+B,IAAI,YAAY,OAAO,uCAAuC,iBAAiB,kBAAkB,gBAAgB,gCAAgC,WAAW,gBAAgB,mBAAmB,GAAG,iBAAiB,wCAAwC,8DAA8D,KAAK,gBAAgB,MAAM,qBAAO,6CAA6C,MAAM,yEAAyE,mBAAmB,4HAA4H,cAAc,OAAO,MAAE,KAAK,UAAU,EAAE,cAAc,wFAAwF,eAAe,IAAI,4BAA4B,IAAI,4BAA4B,eAAe,IAAI,MAAM,qBAAO,MAAM,kBAAC,oBAAoB,YAAY,wMAAwM,SAAS,iBAAiB,OAAO,oCAAoC,8BAA8B,OAAO,oEAAoE,iBAAiB,IAAI,qCAAqC,GAAG,OAAO,kFAAkF,kCAAkC,UAAU,eAAe,OAAO,uFAAuF,mBAAmB,uBAAuB,iBAAC,UAAU,0BAA0B,uCAAuC,yDAAyD,SAAS,+DAA+D,sBAAsB,eAAe,aAAa,oBAAE,oBAAoB,cAAc,gCAAgC,cAAc,yBAAyB,8BAA8B,gCAAgC,GAAG,4BAA4B,cAAc,MAAM,oEAAoE,gCAAgC,YAAY,KAAK,QAAQ,YAAY,YAAY,8BAA8B,cAAc,yBAAyB,iBAAiB,WAAW,iBAAiB,OAAO,cAAc,uBAAuB,eAAE,SAAS,EAAE,OAAO,IAAI,GAAG,0BAA0B,eAAe,MAAM,eAAE,wCAAwC,0BAA0B,IAAI,wHAAwH,YAAY,EAAE,OAAO,kBAAC,SAAS,cAAc,WAAW,iBAAiB,cAAc,sCAAsC,EAAE,cAAc,yBAAyB,eAAe,UAAU,aAAa,aAAa,iBAAiB,2BAA2B,kCAAkC,cAAc,6BAA6B,WAAW,UAAU,IAAI,4BAA4B,GAAG,oBAAoB,mDAAmD,cAAc,yBAAyB,gDAAgD,2KAA2K,OAAO,UAAE,KAAK,cAAc,oBAAoB,0BAA0B,eAAe,iDAAiD,SAAS,QAAQ,KAAK,0BAAE,qEAAqE,uBAAuB,SAAS,uDAAuD,GAAG,0BAA0B,cAAc,0BAA0B,aAAa,UAAU,YAAY,iFAAiF,YAAY,IAAI,MAAM,0BAA0B,aAAa,mCAAmC,4BAA4B,EAAE,MAAM,0BAA0B,aAAa,yCAAyC,6BAA6B,GAAG,MAAM,0BAA0B,aAAa,qCAAqC,sBAAsB,WAAE,gBAAgB,GAAG,MAAM,0BAA0B,aAAa,sCAAsC,uBAAuB,WAAE,kBAAkB,GAAG,MAAM,mCAAmC,+CAA+C,4BAA4B,iBAAiB,SAAS,+DAA+D,GAAG,2BAA2B,QAAE,SAAS,6BAA6B,KAAK,QAAE,iEAAiE,MAAM,eAAe,6BAA6B,8GAA8G,eAAe,SAAS,iWAAiW,mBAAmB,QAAE,4DAA4D,iBAAiB,yHAAyH,aAAa,aAAa,IAAI,+IAA+I,EAAE,yJAAyJ,EAAE,iBAAiB,EAAE,mBAAmB,mBAAE,kEAAkE,EAAE,mBAAmB,QAAE,6GAA6G,IAAI,iBAAiB,EAAE,mBAAmB,MAAE,sEAAsE,EAAE,mBAAmB,MAAE,4EAA4E,EAAE,aAAa,GAAG,kCAAkC,wBAAwB,qBAAqB,YAAY,cAAc,OAAO,IAAI,eAAe,WAAW,yGAAyG,aAAa,kBAAkB,aAAa,eAAe,aAAa,oBAAoB,aAAa,eAAe,mBAAmB,eAAe,mBAAmB,oBAAoB,YAAY,GAAG,WAAW,WAAW,GAAG,uBAAuB,gDAAgD,+BAA+B,oBAAoB,wMAAwM,MAAM,KAAK,qBAAE,4BAA4B,aAAa,WAAW,6GAA6G,EAAE,kHAAkH,EAAE,qEAAqE,aAAa,EAAE,kBAAkB,qDAAqD,UAAU,YAAY,GAAG,oBAAoB,yBAAyB,eAAe,SAAS,+DAA+D,uBAAuB,MAAM,kHAAkH,kCAAkC,MAAM,4GAA4G,wBAAwB,yCAAyC,gCAAgC,+DAA+D,0BAA0B,MAAM,gJAAgJ,aAAa,yBAAyB,mBAAmB,SAAS,MAAM,gEAAgE,YAAY,UAAU,qBAAqB,GAAG,oBAAoB,mBAAmB,SAAS,MAAM,kEAAkE,YAAY,UAAU,qBAAqB,GAAG,oBAAoB,mBAAmB,SAAS,MAAM,mFAAmF,YAAY,UAAU,8BAA8B,gBAAgB,IAAI,kBAAkB,cAAc,GAAG,UAAU,UAAU,GAAG,oBAAoB,MAAM,kBAAkB,qBAAE,eAAe,sBAAsB,eAAe,aAAa,uBAAuB,GAAG,UAAU,aAAa,GAAG,oBAAoB,MAAM,mEAAmE,oGAAoG,EAAE,KAAK,OAAE,kEAAkE,aAAa,GAAG,UAAU,QAAQ,2FAA2F,eAAe,uBAAuB,aAAa,gBAAgB,WAAW,UAAU,YAAY,8CAA8C,QAAQ,YAAY,kBAAkB,iBAAiB,oOAAoO,uFAAuF,EAAE,yyBAAyyB,mHAAmH,+CAA+C,yDAAyD,iBAAiB,oDAAoD,4BAA4B,mBAAmB,oBAAoB,GAAG,iDAAiD,6DAA6D,mDAAmD,GAAG,4DAA4D,mGAAmG,gEAAgE,GAAG,GAAG,qFAAqF,0yBAA0yB,qBAAqB,iBAAiB,yBAAyB,uBAAuB,mBAAmB,kBAAkB,kCAAkC,qJAAqJ,gBAAgB,GAAG,0CAA0C,sEAAsE,GAAG,yEAAyE,oBAAoB,GAAG,oFAAoF,gBAAgB,GAAG,GAAG,oMAAoM,gzBAAgzB,YAAY,kBAAkB,2BAA2B,mBAAmB,wBAAwB,2DAA2D,4DAA4D,GAAG,qDAAqD,6DAA6D,GAAG,uFAAuF,YAAY,GAAG,oFAAoF,kBAAkB,2BAA2B,kCAAkC,qBAAqB,yCAAyC,6JAA6J,0CAA0C,GAAG,mIAAmI,oDAAoD,GAAG,0IAA0I,qBAAqB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,gJAAgJ,0GAA0G,GAAG,mJAAmJ,uEAAuE,GAAG,yLAAyL,iBAAiB,wBAAwB,GAAG,sFAAsF,YAAY,GAAG,GAAG,krBAAkrB,iBAAiB,SAAS,2OAA2O,uBAAuB,wBAAwB,+BAA+B,yDAAyD,wBAAwB,MAAM,iBAAC,SAAS,oCAAoC,6CAA6C,gDAAgD,iEAAiE,uBAAC,kBAAkB,sBAAC,iDAAiD,eAAe,iEAAiE,uIAAuI,OAAO,WAAW,SAAS,MAAM,6FAA6F,YAAY,UAAU,mBAAmB,GAAG,oBAAoB,WAAW,OAAO,6DAA6D,UAAU,yBAAyB,GAAG,cAAc,+BAA+B,iCAAiC,OAAO,KAAC,eAAe,8BAA8B,QAAQ,UAAU,2MAA2M,6DAA6D,GAAG,sBAAsB,SAAS,MAAM,+EAA+E,2EAA2E,0yBAA0yB,qBAAqB,iBAAiB,yBAAyB,uBAAuB,mBAAmB,kBAAkB,kCAAkC,qJAAqJ,gBAAgB,GAAG,0CAA0C,sEAAsE,GAAG,yEAAyE,oBAAoB,GAAG,GAAG,wFAAwF,uyBAAuyB,YAAY,kBAAkB,2BAA2B,uBAAuB,kDAAkD,iBAAiB,kBAAkB,mHAAmH,+CAA+C,0CAA0C,yDAAyD,GAAG,8CAA8C,0DAA0D,GAAG,iFAAiF,uBAAuB,cAAc,sFAAsF,wDAAwD,0CAA0C,sBAAsB,eAAe,GAAG,+EAA+E,oBAAoB,aAAa,WAAW,aAAa,cAAc,GAAG,uHAAuH,aAAa,cAAc,eAAe,cAAc,kBAAkB,GAAG,qEAAqE,YAAY,4BAA4B,2BAA2B,kBAAkB,mBAAmB,0BAA0B,6BAA6B,2DAA2D,4DAA4D,GAAG,gFAAgF,6DAA6D,GAAG,gHAAgH,8BAA8B,sBAAsB,GAAG,iYAAiY,cAAc,eAAe,GAAG,iKAAiK,4DAA4D,GAAG,gMAAgM,6CAA6C,GAAG,2JAA2J,+EAA+E,GAAG,2LAA2L,4CAA4C,wBAAwB,wBAAwB,oDAAoD,GAAG,gaAAga,wBAAwB,qBAAqB,6CAA6C,4DAA4D,GAAG,iNAAiN,eAAe,qBAAqB,WAAW,GAAG,6PAA6P,qJAAqJ,GAAG,iNAAiN,+EAA+E,GAAG,kOAAkO,0BAA0B,gDAAgD,GAAG,wOAAwO,uEAAuE,GAAG,qPAAqP,+DAA+D,GAAG,0OAA0O,yBAAyB,uBAAuB,wBAAwB,GAAG,0FAA0F,uBAAuB,GAAG,mIAAmI,YAAY,GAAG,6HAA6H,YAAY,uBAAuB,oDAAoD,2BAA2B,6JAA6J,0CAA0C,GAAG,GAAG,0jDAA0jD,iBAAiB,SAAS,kFAAkF,yCAAyC,+BAA+B,kBAAC,KAAK,kBAAC,gCAAgC,cAAc,suBAAsuB,IAAI,+GAA+G,iBAAiB,aAAa,kBAAkB,EAAE,sHAAsH,eAAe,yCAAyC,eAAe,gCAAgC,cAAc,0BAA0B,0BAA0B,0BAA0B,cAAc,yBAAyB,iFAAiF,qCAAqC,eAAe,SAAS,eAAe,qBAAqB,QAAC,gBAAgB,QAAC,6FAA6F,8BAA8B,YAAY,wEAAwE,eAAe,SAAS,sBAAsB,qCAAqC,oCAAoC,uBAAuB,KAAK,SAAS,uBAAuB,GAAG,qBAAqB,eAAe,qCAAqC,uCAAuC,SAAS,kBAAkB,UAAU,kCAAkC,qJAAqJ,OAAO,UAAU,kCAAkC,sHAAsH,GAAG,oBAAoB,UAAE,KAAK,qBAAqB,SAAS,MAAM,IAAI,cAAc,SAAS,IAAI,qEAAqE,EAAE,iBAAC,wDAAwD,0DAA0D,cAAc,6BAA6B,kCAAkC,yBAAyB,iBAAC,iBAAiB,wBAAwB,EAAE,iBAAiB,iFAAiF,gBAAgB,4GAA4G,2HAA2H,4TAA4T,oBAAoB,QAAQ,UAAU,qHAAqH,GAAG,0CAA0C,iBAAiB,qBAAqB,OAAO,wBAAwB,WAAW,iBAAiB,iBAAiB,gFAAgF,OAAO,yBAAyB,SAAS,iCAAiC,EAAE,yBAAyB,OAAO,yBAAyB,SAAS,iCAAiC,GAAG,eAAe,oCAAoC,eAAe,sDAAsD,OAAO,QAAC,uBAAuB,cAAc,oDAAoD,eAAe,0BAA0B,cAAc,yBAAyB,GAAG,sBAAC,WAAW,iBAAC,WAAW,iBAAC,uCAAuC,IAAI,cAAc,4BAA4B,OAAO,wBAAwB,IAAI,yGAAyG,yCAAyC,gBAAgB,OAAO,yBAAyB,eAAe,4HAA4H,iBAAiB,qCAAqC,mCAAmC,qCAAqC,UAAU,gCAAgC,2DAA2D,mCAAmC,yBAAyB,KAAK,qDAAqD,WAAW,EAAE,KAAK,MAAM,KAAK,kEAAkE,qBAAqB,cAAc,+BAA+B,EAAE,EAAE,EAAE,eAAe,YAAY,cAAc,iEAAiE,oBAAoB,sBAAsB,4BAA4B,kBAAkB,oBAAoB,8BAA8B,eAAe,aAAa,WAAW,IAAI,WAAW,sHAAsH,QAAQ,UAAU,2BAA2B,QAAQ,UAAU,6BAA6B,UAAU,eAAe,0EAA0E,iIAAiI,eAAe,OAAO,0EAA0E,iBAAiB,IAAI,4MAA4M,sCAAsC,KAAC,uHAAuH,QAAQ,iBAAiB,EAAE,mBAAmB,sBAAsB,gCAAgC,EAAE,6BAA6B,mCAAmC,KAAE,4EAA4E,sBAAsB,mBAAmB,KAAE,4FAA4F,EAAE,qBAAqB,kCAAE,CAAC,6BAAE,gIAAgI,EAAE,EAAE,6BAA6B,qCAAqC,KAAE,2FAA2F,sBAAsB,mBAAmB,KAAE,0HAA0H,EAAE,mBAAmB,KAAE,yHAAyH,EAAE,EAAE,6BAA6B,qCAAqC,2BAAE,6FAA6F,sBAAsB,mBAAmB,2BAAE,yHAAyH,EAAE,mBAAmB,2BAAE,wHAAwH,EAAE,EAAE,mCAAmC,4BAAE,uEAAuE,EAAE,mCAAmC,+BAAE,wEAAwE,EAAE,EAAE,sBAAsB,+BAA+B,EAAE,mCAAmC,KAAE,iEAAiE,EAAE,mCAAmC,4BAAE,oFAAoF,EAAE,mCAAmC,MAAE,qFAAqF,EAAE,mCAAmC,MAAE,mFAAmF,EAAE,mCAAmC,+BAAE,iEAAiE,EAAE,EAAE,EAAE,EAAE,wOAAwO,sCAAsC,WAAW,OAAO,kGAAkG,aAAa,MAAM,YAAY,2GAA2G,WAAW,KAAK,eAAe,+GAA+G,2DAA2D,EAAE,KAAK,mGAAmG,SAAS,mDAAmD,EAAE,KAAK,uEAAuE,OAAO,wDAAwD,IAAI,eAAe,IAAI,uEAAuE,EAAE,cAAc,iBAAiB,iBAAiB,GAAG,KAAC,gCAAgC,cAAc,wCAAwC,cAAc,qBAAqB,oBAAoB,kBAAC,MAAM,KAAC,kEAAkE,+BAA+B,uCAAuC,OAAO,4BAA4B,YAAY,qBAAqB,6BAA6B,EAAE,KAAK,cAAc,gCAAgC,cAAc,yBAAyB,yCAAyC,IAAI,gBAAgB,QAAQ,oBAAoB,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,IAAI,yCAAyC,SAAS,4BAA4B,0BAA0B,cAAc,0CAA0C,cAAc,aAAa,eAAe,gCAAgC,cAAc,0BAA0B,UAAU,yFAAyF,EAAE,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,iEAAiE,4BAA4B,iEAAiE,GAAG,4BAA4B,cAAc,IAAI,+FAA+F,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,yBAAyB,aAAa,oBAAoB,WAAW,EAAE,kBAAkB,sBAAsB,yBAAyB,wCAAwC,KAAK,KAAK,EAAE,oEAAoE,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,WAAW,aAAa,wBAAwB,WAAW,uBAAuB,aAAa,uBAAC,SAAS,IAAI,KAAK,EAAE,oEAAoE,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,yBAAyB,aAAa,uBAAuB,WAAW,EAAE,4BAA4B,aAAa,uBAAC,SAAS,IAAI,EAAE,4CAA4C,yBAAyB,yBAAyB,KAAK,KAAK,EAAE,oEAAoE,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,yBAAyB,aAAa,iBAAiB,WAAW,+BAA+B,sDAAsD,yBAAyB,YAAY,sCAAsC,wCAAwC,GAAG,qBAAqB,IAAI,EAAE,oEAAoE,EAAE,cAAc,0BAA0B,UAAU,oHAAoH,EAAE,0BAA0B,eAAe,MAAM,6FAA6F,eAAe,gBAAgB,mHAAmH,EAAE,iBAAiB,OAAO,wBAAwB,IAAI,wGAAwG,4DAA4D,yOAAyO,gBAAgB,iBAAiB,sBAAsB,OAAO,wBAAwB,IAAI,yGAAyG,IAAI,6EAA6E,SAAS,IAAI,UAAU,UAAC,gEAAgE,SAAS,0GAA0G,yBAAyB,8BAA8B,8KAA8K,iBAAiB,gBAAgB,eAAe,4DAA4D,eAAe,oBAAoB,IAAI,6BAA6B,oBAAoB,WAAW,mDAAmD,KAAK,yCAAyC,kBAAC,WAAW,+BAA+B,cAAc,6BAA6B,GAAG,eAAe,yBAAyB,OAAO,aAAa,SAAS,KAAK,KAAC,WAAW,gCAAgC,sBAAsB,EAAE,iBAAiB,OAAO,wEAAwE,EAAE,cAAc,aAAa,kCAAkC,uCAAuC,IAAI,oCAAoC,GAAG,mCAAmC,sBAAsB,4CAA4C,IAAI,cAAc,sBAAsB,GAAG,KAAK,cAAc,IAAI,YAAY,EAAE,eAAe,cAAc,iBAAiB,sCAAsC,mBAAmB,GAAG,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,0LAA0L,mBAAmB,mCAAmC,oEAAoE,wCAAwC,aAAa,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,0LAA0L,mBAAmB,mCAAmC,oEAAoE,wCAAwC,aAAa,eAAe,wCAAwC,iCAAiC,SAAS,wDAAwD,GAAG,yBAAyB,aAAa,WAAW,gBAAgB,iBAAiB,sDAAsD,GAAG,SAAS,0BAA0B,aAAa,OAAO,YAAY,0BAA0B,iBAAC,gBAAgB,gCAAgC,YAAY,KAAK,OAAO,yGAAyG,aAAa,kFAAkF,SAAS,IAAI,UAAU,UAAC,0EAA0E,SAAS,+GAA+G,kFAAkF,gCAAgC,MAAM,0BAA0B,aAAa,iBAAC,yCAAyC,qCAAqC,mBAAmB,MAAM,iDAAiD,MAAM,sBAAC,uBAAuB,oBAAoB,kBAAC,mBAAmB,kBAAC,GAAG,qCAAqC,kCAAkC,iBAAiB,gBAAC,EAAE,mCAAmC,kCAAkC,iBAAiB,iBAAC,WAAW,kCAAkC,kDAAkD,mDAAmD,iDAAiD,yBAAyB,gCAAgC,4CAA4C,EAAE,yBAAyB,MAAM,SAAS,iBAAC,kCAAkC,gEAAgE,OAAO,mLAAmL,sBAAsB,GAAG,kBAAC,KAAK,MAAM,gBAAC,SAAS,eAAe,gBAAgB,iBAAC,IAAI,aAAa,QAAC,MAAM,YAAY,cAAc,kBAAC,aAAa,IAAI,iBAAC,IAAI,UAAU,SAAS,GAAG,qEAAqE,EAAE,mDAAmD,uBAAuB,kCAAkC,wBAAwB,eAAe,YAAY,+BAA+B,yMAAyM,GAAG,+BAA+B,eAAe,SAAS,2OAA2O,aAAa,QAAQ,oCAAoC,iFAAiF,WAAW,aAAa,IAAI,mBAAmB,mBAAE,kEAAkE,EAAE,mBAAmB,QAAE,6GAA6G,EAAE,mBAAmB,QAAE,wEAAwE,EAAE,mBAAmB,WAAE,kDAAkD,EAAE,iBAAiB,EAAE,mBAAmB,MAAE,8EAA8E,EAAE,mBAAmB,MAAE,oFAAoF,EAAE,aAAa,GAAG,kCAAkC,wBAAwB,qBAAqB,YAAY,cAAc,OAAO,IAAI,yBAAyB,cAAc,gBAAgB,WAAW,eAAe,WAAW,kFAAkF,WAAW,kBAAkB,cAAc,mBAAmB,SAAS,aAAa,GAAG,WAAW,WAAW,GAAG,uBAAuB,2BAA2B,+CAA+C,oBAAoB,mBAAmB,UAAU,WAAW,cAAc,qBAAqB,cAAc,cAAc,WAAW,kBAAkB,cAAc,mBAAmB,cAAc,gBAAgB,WAAW,eAAe,cAAc,8CAA8C,EAAE,4DAA4D,sBAAsB,MAAM,yDAAyD,iBAAiB,WAAW,UAAU,sBAAsB,aAAa,aAAa,WAAW,UAAU,YAAY,YAAY,UAAU,MAAM,iBAAC,mDAAmD,GAAG,YAAY,gCAAgC,WAAW,eAAe,SAAS,sIAAsI,4BAA4B,KAAK,iBAAC,wBAAwB,oCAAoC,MAAM,UAAU,iBAAC,yEAAyE,6BAA6B,6BAA6B,eAAe,2CAA2C,4CAA4C,WAAE,CAAC,SAAE,GAAG,MAAM,WAAW,cAAc,iFAAiF,UAAU,qBAAqB,WAAW,0GAA0G,kDAAkD,UAAU,qDAAqD,EAAE,gBAAgB,QAAQ,WAAW,aAAa,oBAAoB,cAAc,gBAAgB,WAAW,WAAW,UAAU,GAAG,kBAAkB,qEAAqE,eAAe,SAAS,4FAA4F,OAAO,WAAW,UAAU,KAAK,QAAE,CAAC,WAAW,qOAAqO,0CAA0C,IAAI,YAAY,aAAa,sBAAsB,cAAc,gBAAgB,WAAW,0BAA0B,WAAW,UAAU,YAAY,GAAG,4BAA4B,8CAA8C,mFAAmF,MAAM,qEAAqE,yDAAyD,sBAAsB,iCAAiC,MAAM,sBAAsB,aAAa,aAAa,GAAG,UAAU,YAAY,+DAA+D,uCAAuC,qBAAqB,MAAM,8DAA8D,WAAW,GAAG,YAAY,oCAAoC,+DAA+D,KAAC,yEAAyE,MAAM,wDAAwD,qDAAqD,oGAAoG,iBAAC,UAAU,eAAe,SAAS,4KAA4K,OAAO,mBAAmB,QAAQ,kFAAkF,QAAQ,MAAM,6DAA6D,mDAAmD,IAAI,WAAW,aAAa,aAAa,aAAa,cAAc,WAAW,kBAAkB,aAAa,4BAA4B,aAAa,kCAAkC,aAAa,WAAW,EAAE,OAAO,eAAe,MAAM,6EAA6E,2GAA2G,MAAM,WAAW,aAAa,aAAa,aAAa,qBAAqB,aAAa,iBAAiB,aAAa,yBAAyB,aAAa,eAAe,eAAe,GAAG,UAAU,uBAAuB,GAAG,kBAAkB,WAAW,UAAU,6BAA6B,WAAW,UAAU,8BAA8B,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,aAAa,GAAG,UAAU,YAAY,WAAW,qDAAqD,8BAA8B,GAAG,kBAAkB,YAAY,UAAU,YAAY,WAAW,GAAG,gBAAgB,6GAA6G,oBAAoB,wGAAwG,MAAM,0BAA0B,aAAa,WAAW,KAAK,QAAE,sGAAsG,EAAE,gFAAgF,EAAE,GAAG,UAAU,aAAa,GAAG,oBAAoB,uBAAuB,KAAK,OAAE,2DAA2D,EAAE,KAAK,MAAE,+GAA+G,IAAI,MAAM,0GAA0G,aAAa,YAAY,GAAG,UAAU,aAAa,eAAe,uBAAuB,cAAc,gBAAgB,WAAW,+KAA+K,WAAW,OAAO,yBAAyB,sCAAsC,KAAK,MAAE,mGAAmG,IAAI,MAAM,kHAAkH,cAAc,cAAc,WAAW,cAAc,YAAY,cAAc,mBAAmB,WAAW,cAAc,YAAY,UAAU,OAAO,MAAM,WAAW,cAAc,YAAY,cAAc,gBAAgB,WAAW,cAAc,WAAW,2CAA2C,WAAW,cAAc,MAAM,GAAG,UAAU,kDAAkD,eAAe,UAAU,oBAAoB,4BAA4B,QAAQ,YAAY,WAAW,iBAAiB,qCAAqC,uBAAuB,MAAM,sBAAsB,GAAG,WAAW,cAAc,GAAG,uBAAuB,sBAAsB,aAAa,MAAM,0DAA0D,IAAI,kBAAkB,cAAc,uEAAuE,iCAAiC,eAAe,0BAA0B,YAAY,MAAM,0CAA0C,kCAAkC,gCAAgC,YAAY,gBAAgB,kBAAkB,gaAAga,oBAAoB,IAAI,yBAAyB,aAAa,kBAAkB,2BAA2B,OAAO,gBAAgB,mBAAmB,uDAAuD,oBAAoB,IAAI,yBAAyB,aAAa,2BAA2B,2BAA2B,OAAO,gBAAgB,mBAAmB,oDAAoD,oBAAoB,IAAI,yBAAyB,aAAa,kBAAkB,2BAA2B,OAAO,gBAAgB,mBAAmB,sDAAsD,sBAAsB,IAAI,yBAAyB,aAAa,2BAA2B,2BAA2B,OAAO,uBAAuB,mBAAmB,oCAAoC,mBAAmB,kBAAkB,GAAG,KAAC,mCAAmC,WAAW,EAAE,QAAQ,GAAG,0FAA0F,yBAAyB,QAAQ,iCAAiC,mBAAmB,MAAM,KAAC,qBAAqB,uCAAuC,mOAAmO,mMAAmM,mGAAmG,EAAE,iBAAiB,SAAS,y1BAAy1B,oBAAoB,mBAAmB,cAAc,UAAU,kBAAkB,qEAAqE,gBAAgB,kCAAkC,qCAAqC,cAAc,UAAU,kBAAkB,qEAAqE,gBAAgB,kCAAkC,qCAAqC,cAAc,iBAAiB,eAAe,cAAc,+BAA+B,+BAA+B,+BAA+B,6EAA6E,gBAAgB,kCAAkC,8EAA8E,gBAAgB,oCAAoC,gFAAgF,cAAc,qCAAqC,0CAA0C,KAAK,2FAA2F,6BAA6B,aAAa,iCAAiC,iCAAiC,iCAAiC,gFAAgF,aAAa,0CAA0C,eAAe,kCAAkC,kCAAkC,gFAAgF,eAAe,qCAAqC,qCAAqC,mFAAmF,cAAc,6DAA6D,cAAc,gCAAgC,cAAc,yBAAyB,+BAA+B,0BAA0B,uBAAuB,aAAa,cAAc,OAAO,kBAAkB,4BAA4B,OAAO,0BAA0B,mFAAmF,MAAM,kCAAkC,OAAO,6LAA6L,EAAE,oLAAoL,EAAE,gMAAgM,GAAG,wDAAwD,UAAU,mDAAmD,mBAAC,IAAI,cAAc,kCAAkC,KAAK,GAAG,0DAA0D,UAAU,QAAQ,mBAAC,IAAI,wBAAwB,gDAAgD,yBAAyB,GAAG,aAAa,6BAA6B,SAAS,sBAAsB,WAAW,yBAAyB,WAAW,eAAe,aAAa,gBAAgB,WAAW,mBAAmB,WAAW,eAAe,WAAW,mBAAmB,WAAW,iBAAiB,WAAW,mBAAmB,WAAW,+BAA+B,WAAW,cAAc,WAAW,iBAAiB,WAAW,wBAAwB,WAAW,gBAAgB,WAAW,oBAAoB,WAAW,gBAAgB,WAAW,iCAAiC,WAAW,eAAe,WAAW,cAAc,WAAW,oBAAoB,aAAa,mBAAmB,WAAW,wBAAwB,WAAW,aAAa,4BAA4B,QAAQ,yBAAyB,SAAS,sBAAsB,WAAW,yBAAyB,WAAW,eAAe,aAAa,gBAAgB,WAAW,mBAAmB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,sBAAsB,WAAW,cAAc,WAAW,uBAAuB,WAAW,iBAAiB,WAAW,wBAAwB,WAAW,mBAAmB,WAAW,gBAAgB,WAAW,oBAAoB,WAAW,gBAAgB,WAAW,uCAAuC,WAAW,eAAe,WAAW,cAAc,WAAW,oBAAoB,aAAa,2BAA2B,aAAa,mBAAmB,WAAW,wBAAwB,WAAW,yBAAyB,WAAW,aAAa,4BAA4B,OAAO,SAAS,sBAAsB,WAAW,yBAAyB,WAAW,eAAe,aAAa,gBAAgB,WAAW,mBAAmB,WAAW,mBAAmB,WAAW,qBAAqB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,cAAc,WAAW,uBAAuB,WAAW,iBAAiB,WAAW,wBAAwB,WAAW,kBAAkB,WAAW,eAAe,WAAW,gBAAgB,WAAW,oBAAoB,WAAW,gBAAgB,WAAW,uCAAuC,WAAW,mBAAmB,WAAW,eAAe,WAAW,cAAc,WAAW,oBAAoB,aAAa,2BAA2B,aAAa,mBAAmB,WAAW,wBAAwB,WAAW,yBAAyB,WAAW,aAAa,6BAA6B,UAAU,8BAA8B,eAAe,kBAAkB,uDAAuD,qNAAqN,qHAAqH,EAAE,0yBAA0yB,YAAY,kBAAkB,iBAAiB,kBAAkB,2BAA2B,GAAG,8EAA8E,YAAY,kBAAkB,2BAA2B,kBAAkB,mBAAmB,iBAAiB,kBAAkB,GAAG,iHAAiH,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,0JAA0J,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,gKAAgK,0GAA0G,GAAG,mKAAmK,uEAAuE,GAAG,+GAA+G,sBAAsB,mBAAmB,2BAA2B,GAAG,sJAAsJ,mDAAmD,wDAAwD,2BAA2B,GAAG,6HAA6H,YAAY,sBAAsB,iBAAiB,oBAAoB,kBAAkB,oEAAoE,wFAAwF,GAAG,uEAAuE,kCAAkC,wBAAwB,GAAG,wGAAwG,YAAY,2CAA2C,GAAG,kHAAkH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,gEAAgE,6EAA6E,yEAAyE,uBAAuB,GAAG,wHAAwH,0EAA0E,GAAG,2HAA2H,yEAAyE,GAAG,gEAAgE,uDAAuD,kBAAkB,2BAA2B,kDAAkD,mHAAmH,+CAA+C,mBAAmB,+EAA+E,GAAG,sEAAsE,oHAAoH,GAAG,0EAA0E,kEAAkE,GAAG,GAAG,m0BAAm0B,UAAU,4yBAA4yB,YAAY,kBAAkB,2BAA2B,kBAAkB,mBAAmB,iBAAiB,kBAAkB,GAAG,0EAA0E,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,oHAAoH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,0HAA0H,0GAA0G,GAAG,6HAA6H,uEAAuE,GAAG,mEAAmE,gBAAgB,8BAA8B,sBAAsB,GAAG,yLAAyL,qBAAqB,2BAA2B,wBAAwB,6CAA6C,GAAG,4EAA4E,gBAAgB,2BAA2B,sBAAsB,uDAAuD,gDAAgD,yBAAyB,uBAAuB,wBAAwB,kEAAkE,mBAAmB,kBAAkB,GAAG,2DAA2D,2BAA2B,GAAG,wEAAwE,kBAAkB,GAAG,0GAA0G,2CAA2C,GAAG,GAAG,yvBAAyvB,iyBAAiyB,gBAAgB,iBAAiB,iBAAiB,sBAAsB,6JAA6J,0CAA0C,wBAAwB,uBAAuB,kBAAkB,wBAAwB,GAAG,2CAA2C,8FAA8F,qGAAqG,GAAG,GAAG,yEAAyE,iBAAiB,SAAS,qDAAqD,QAAQ,sFAAsF,sBAAsB,wEAAwE,qCAAqC,o8BAAo8B,cAAc,WAAW,eAAe,gCAAgC,cAAc,0BAA0B,SAAS,YAAY,wBAAwB,iBAAiB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,YAAY,YAAY,wBAAwB,gBAAgB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,sBAAsB,oBAAoB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,gBAAgB,0BAA0B,iBAAiB,gCAAgC,cAAc,4BAA4B,8BAA8B,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,8DAA8D,gCAAgC,4BAA4B,eAAe,oBAAoB,cAAc,yBAAyB,cAAc,gCAAgC,cAAc,yBAAyB,gCAAgC,oBAAoB,4BAA4B,eAAe,gCAAgC,cAAc,0BAA0B,yBAAyB,0BAA0B,eAAe,6BAA6B,cAAc,gCAAgC,cAAc,yBAAyB,0BAA0B,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,uBAAuB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,oGAAoG,4BAA4B,kDAAkD,MAAM,oDAAoD,MAAM,mDAAmD,MAAM,sDAAsD,MAAM,kDAAkD,MAAM,+CAA+C,MAAM,sDAAsD,MAAM,wDAAwD,MAAM,oDAAoD,MAAM,sDAAsD,MAAM,kEAAkE,MAAM,kEAAkE,MAAM,6DAA6D,MAAM,qDAAqD,MAAM,wDAAwD,MAAM,+DAA+D,MAAM,yDAAyD,MAAM,6DAA6D,MAAM,8DAA8D,MAAM,oEAAoE,MAAM,uDAAuD,MAAM,4DAA4D,MAAM,0DAA0D,MAAM,2DAA2D,MAAM,kEAAkE,MAAM,2DAA2D,MAAM,uDAAuD,MAAM,sDAAsD,MAAM,sDAAsD,MAAM,qDAAqD,MAAM,eAAe,eAAe,sCAAsC,uDAAuD,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,wHAAwH,0BAA0B,mBAAmB,uBAAuB,eAAe,gBAAgB,mBAAC,KAAK,cAAc,uBAAuB,cAAc,uBAAuB,eAAe,gCAAgC,cAAc,0BAA0B,8CAA8C,0BAA0B,eAAe,+CAA+C,eAAe,IAAI,+CAA+C,GAAG,YAAY,oRAAoR,+BAA+B,iCAAiC,6CAA6C,2CAA2C,EAAE,eAAe,cAAc,eAAe,IAAI,qCAAqC,GAAG,uBAAuB,iBAAiB,SAAS,+YAA+Y,EAAE,mDAAmD,qBAAqB,iDAAiD,iCAAiC,GAAG,qCAAqC,EAAE,yBAAyB,0BAA0B,cAAc,8BAA8B,0BAA0B,qFAAqF,2BAA2B,KAAK,UAAE,cAAc,0BAA0B,yBAAyB,qBAAqB,iBAAiB,mBAAmB,2BAA2B,SAAS,mBAAmB,WAAW,eAAe,WAAW,iBAAiB,WAAW,gBAAgB,WAAW,mBAAmB,WAAW,eAAe,WAAW,iBAAiB,WAAW,mBAAmB,WAAW,mBAAmB,WAAW,qBAAqB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,sBAAsB,YAAY,cAAc,YAAY,uBAAuB,aAAa,iBAAiB,YAAY,wBAAwB,YAAY,kBAAkB,YAAY,8BAA8B,YAAY,6DAA6D,YAAY,mBAAmB,YAAY,yCAAyC,YAAY,2BAA2B,YAAY,qEAAqE,8BAA8B,GAAG,oBAAoB,eAAe,QAAQ,SAAS,gMAAgM,0BAA0B,OAAO,4BAA4B,8BAA8B,kBAAC,iKAAiK,aAAa,IAAI,UAAU,aAAa,oMAAoM,iCAAiC,iDAAiD,QAAQ,SAAS,iBAAiB,cAAc,UAAU,iCAAiC,KAAK,KAAC,WAAW,wBAAwB,2BAA2B,gCAAgC,6BAA6B,6BAA6B,iCAAiC,qCAAqC,YAAY,+CAA+C,uCAAuC,qBAAqB,cAAc,WAAW,6CAA6C,2EAA2E,MAAM,YAAY,aAAa,eAAe,YAAY,EAAE,wEAAwE,uBAAuB,UAAU,2BAA2B,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,WAAW,UAAU,MAAM,uFAAuF,GAAG,wBAAwB,UAAU,gDAAgD,aAAa,cAAc,QAAQ,aAAa,EAAE,4BAA4B,mBAAmB,+BAA+B,UAAU,YAAY,GAAG,kBAAkB,iEAAiE,MAAM,8FAA8F,aAAa,iBAAC,6CAA6C,UAAU,YAAY,OAAO,oBAAoB,aAAa,MAAM,0DAA0D,IAAI,UAAU,aAAa,GAAG,oBAAoB,sBAAsB,aAAa,MAAM,0DAA0D,IAAI,UAAU,aAAa,GAAG,oBAAoB,eAAe,SAAS,wtBAAwtB,0DAA0D,8BAA8B,cAAc,cAAc,sBAAC,0BAA0B,aAAa,kBAAkB,cAAC,wCAAwC,6BAA6B,aAAa,6BAA6B,aAAa,6CAA6C,kBAAkB,kBAAC,yBAAyB,EAAE,mBAAmB,oDAAoD,KAAK,kBAAC,MAAM,SAAS,6BAA6B,EAAE,UAAU,EAAE,wDAAwD,kBAAkB,SAAS,iBAAiB,aAAa,qDAAqD,iBAAC,yBAAyB,MAAM,4CAA4C,uBAAuB,cAAc,gCAAgC,MAAM,EAAE,UAAU,IAAI,cAAc,yCAAyC,MAAM,EAAE,YAAY,IAAI,cAAc,oCAAoC,MAAM,EAAE,OAAO,IAAI,cAAc,QAAQ,cAAC,SAAS,SAAS,iBAAC,YAAY,cAAc,oCAAoC,cAAc,IAAI,iBAAiB,GAAG,2BAA2B,iBAAiB,EAAE,OAAO,qDAAqD,mCAAmC,MAAM,qDAAqD,GAAG,cAAc,UAAU,SAAS,MAAM,wCAAwC,wBAAwB,KAAK,cAAC,YAAY,wBAAwB,yCAAyC,6BAA6B,KAAK,iBAAC,qCAAqC,0BAA0B,KAAK,UAAE,aAAa,qBAAqB,4DAA4D,aAAa,kBAAkB,WAAW,UAAU,iBAAiB,+EAA+E,MAAM,YAAY,MAAM,uEAAuE,gDAAgD,aAAa,mBAAmB,QAAQ,aAAa,EAAE,sCAAsC,aAAa,mBAAmB,kBAAkB,eAAe,qBAAqB,iBAAiB,uBAAuB,gBAAgB,WAAW,mBAAmB,WAAW,eAAe,WAAW,iBAAiB,WAAW,mBAAmB,WAAW,mBAAmB,WAAW,qBAAqB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,sBAAsB,WAAW,cAAc,WAAW,uBAAuB,aAAa,iBAAiB,WAAW,wBAAwB,WAAW,kBAAkB,WAAW,mFAAmF,WAAW,mBAAmB,WAAW,yCAAyC,WAAW,2BAA2B,WAAW,mBAAmB,WAAW,wBAAwB,WAAW,iCAAiC,4BAA4B,wBAAwB,mBAAmB,+BAA+B,UAAU,YAAY,GAAG,oBAAoB,WAAW,UAAU,KAAK,WAAE,CAAC,2BAA2B,UAAU,qBAAqB,GAAG,oBAAoB,WAAW,iEAAiE,OAAO,WAAW,yBAAyB,UAAU,iBAAiB,iCAAiC,UAAU,YAAY,UAAU,UAAU,YAAY,OAAO,oBAAoB,aAAa,MAAM,0DAA0D,IAAI,UAAU,aAAa,8CAA8C,UAAU,YAAY,6TAA6T,uLAAuL,EAAE,eAAe,IAAI,iBAAiB,YAAY,iBAAiB,EAAE,gCAAgC,qBAAqB,gBAAgB,wCAAwC,oCAAoC,KAAK,eAAe,IAAI,iBAAiB,GAAG,8IAA8I,iBAAiB,EAAg8D;AACj8ld;;;;;ACD0B;;AAE1B;AACA;AACA,WAAW,yDAAS;;AAEpB;;AAEO,SAAS,OAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEmB;AAOlB;;;ACjCuE;AACsI;AAC9M,uBAAuB,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,6LAA6L,WAAW,KAAK,MAAM,KAAK;AAChW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gBAAgB,kBAAkB;AAClC;AACA,4JAA4J,kBAAE,0CAA0C,kBAAE,GAAG,kBAAE,SAAS,kBAAE,0BAA0B,kBAAE,iBAAiB,iBAAE,GAAG,kBAAE,WAAW,iBAAC,GAAG,kBAAE,GAAG,kBAAE;AACpS;AACA,qBAAqB,iBAAC,SAAS,iBAAC;AAChC;AACA,MAAM,iBAAC;AACP;AACA,IAAI;AACJ;AACA,UAAU,iBAAE;AACZ,qBAAqB,iBAAC,iBAAiB,iBAAC;AACxC;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AACjE;AACA,8CAA8C,kBAAE,IAAI,kBAAE;AACtD;AACA;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA,mDAAmD,kBAAE;AACrD;AACA;AACA;AACA,yBAAyB,6BAA6B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,IAAI,kBAAE,QAAQ,kBAAE,yBAAyB,kBAAE,qCAAqC,kBAAE;AAClF,SAAS,kBAAE;AACX;AACA;AACA;AACA,WAAW,kBAAE;AACb,MAAM,kBAAE;AACR;AACA,QAAQ,kBAAE;AACV;AACA;AACA;AACA;AACA,UAAU,kBAAE;AACZ,2BAA2B,kBAAE,0BAA0B,kBAAE,WAAW,kBAAE;AACtE;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,CAAC,6CAA6C,kBAAE;AAChD,SAAS,kBAAE;AACX;AACA;AACA;AACA,MAAM,kBAAE,UAAU,kBAAE,wDAAwD,kBAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAE;AAClC;AACA;AACA,YAAY,kBAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,sJAAsJ,iBAAC,GAAG,kBAAE,yCAAyC,iBAAC,SAAS,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE,iBAAiB,kBAAE,GAAG,kBAAE,WAAW,iBAAC;AACvR;AACA,UAAU,kBAAE,SAAS,iBAAC,SAAS,iBAAC;AAChC;AACA,MAAM,iBAAC;AACP;AACA,IAAI;AACJ;AACA,UAAU,kBAAE;AACZ,qBAAqB,iBAAC,iBAAiB,iBAAC;AACxC;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,IAAI,kBAAE,oBAAoB,kBAAE,yBAAyB,kBAAE;AACvD,SAAS,iBAAC;AACV,oCAAoC,kBAAE,GAAG,kBAAE,GAAG,kBAAE,IAAI,kBAAE,wBAAwB,kBAAE;AAChF;AACA;AACA;AACA;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,yCAAyC,iBAAC,OAAO,kBAAE;AACnD;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA,mCAAmC,kBAAE,6BAA6B,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AAC9E,SAAS,kBAAE;AACX;AACA;AACA;AACA,iBAAiB,kBAAE;AACnB,MAAM,kBAAE;AACR,WAAW,kBAAE,GAAG,kBAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,gGAAgG,kBAAE;AAClG,SAAS,kBAAE;AACX;AACA;AACA,UAAU,iBAAC;AACX,+CAA+C,kBAAE;AACjD;AACA,IAAI,kBAAE,GAAG,iBAAC,wBAAwB,kBAAE;AACpC,wBAAwB,kBAAE,IAAI,kBAAE,SAAS,kBAAE;AAC3C;AACA,CAAC;AACD;AACA,WAAW,kBAAE,IAAI,kBAAE;AACnB;AACA;AACA,SAAS,iBAAC;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAE;AACZ,gBAAgB,iBAAC;AACjB;AACA;AACA;AACA;AACA,SAAS,iBAAC;AACV;AACA;AACA;AACA,IAAI,kBAAE,GAAG,iBAAC,CAAC,iBAAC,cAAc,kBAAE;AAC5B;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAE;AACV,aAAa,kBAAE;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA,YAAY,iBAAC;AACb,eAAe,QAAQ;AACvB,IAAI;AACJ;AACA,CAAC,SAAS,kBAAE;AACZ,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,EAAE,kBAAE;AACN;AACA,iDAAiD,iCAAiC;AAClF;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX,sBAAsB,kBAAE,GAAG,kBAAE;AAC7B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS,iBAAC;AACV;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,sBAAsB,iBAAC,yCAAyC,kBAAE;AAClE;AACA,SAAS,kBAAE;AACX;AACA,cAAc;AACd,iCAAiC,SAAS;AAC1C;AACA,oCAAoC,kBAAE,YAAY,kBAAE;AACpD;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA,aAAa,kBAAE;AACf,wCAAwC,kBAAE,iCAAiC,SAAS;AACpF;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAE;AACvB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,sBAAsB,kBAAE,eAAe,kBAAE;AACzC;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAE,OAAO,kBAAE,2CAA2C,iBAAC;AACjF;AACA,SAAS,kBAAE;AACX;AACA;AACA,mJAAmJ,SAAS;AAC5J;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX,iBAAiB,iBAAC;AAClB;AACA,IAAI,kBAAE,0BAA0B,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,GAAG,kBAAE;AACxF;AACA,CAAC,MAAM,kBAAE;AACT;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,kBAAE,0EAA0E,kBAAE,GAAG,kBAAE,4EAA4E,kBAAE,IAAI,kBAAE,aAAa,kBAAE,EAAE,kBAAE,QAAQ,iBAAC,uBAAuB,kBAAE,GAAG,kBAAE,8BAA8B,kBAAE,yNAAyN,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,4BAA4B,kBAAE,4BAA4B,kBAAE,yBAAyB,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,iCAAiC,kBAAE,2BAA2B,kBAAE;AACh2B,EAAE,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE;AACpE,kBAAkB,kBAAE,cAAc,kBAAE,sDAAsD,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE;AACpH,SAAS,kBAAE;AACX,iBAAiB,kBAAE,kBAAkB,iBAAC;AACtC;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,IAAI,kBAAE,0EAA0E,iBAAC,GAAG,kBAAE,uEAAuE,kBAAE,GAAG,iBAAC,IAAI,iBAAC,aAAa,kBAAE,EAAE,kBAAE,GAAG,kBAAE,IAAI,kBAAE,UAAU,iBAAC;AACjN;AACA,YAAY,iBAAC,IAAI,iBAAC,YAAY,iBAAC;AAC/B,gBAAgB,kBAAE,IAAI,kBAAE,YAAY,kBAAE;AACtC,IAAI;AACJ;AACA,CAAC,IAAI,kBAAE,GAAG,iBAAC,IAAI,iBAAC,eAAe,kBAAE,GAAG,kBAAE,GAAG,kBAAE,CAAC,kBAAE,IAAI,kBAAE,EAAE,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AACpF,SAAS,kBAAE;AACX,0BAA0B,kBAAE,iDAAiD,kBAAE;AAC/E;AACA,UAAU,kBAAE;AACZ;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,IAAI,kBAAE,GAAG,kBAAE,uBAAuB,iBAAE,qBAAqB,kBAAE,GAAG,iBAAE;AAChE,SAAS,kBAAE;AACX,OAAO,kBAAE;AACT,WAAW,kBAAE;AACb;AACA;AACA,IAAI,kBAAE;AACN;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,MAAM,kBAAE,MAAM,kBAAE;AAC3B;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX;AACA,WAAW,kBAAE;AACb,UAAU,kBAAE;AACZ;AACA,iCAAiC,kBAAE;AACnC;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,MAAM,kBAAE,UAAU,kBAAE;AAC/B;AACA,IAAI,kBAAE,GAAG,kBAAE;AACX,EAAE,kBAAE,IAAI,kBAAE;AACV,CAAC,GAAG,kBAAE,uDAAuD,kBAAE;AAC/D,SAAS,kBAAE;AACX;AACA;AACA;AACA,0EAA0E,kBAAE,WAAW,kBAAE,aAAa,kBAAE;AACxG;AACA,IAAI,iBAAC,GAAG,iBAAC;AACT,SAAS,kBAAE;AACX,kBAAkB,iBAAC,GAAG,iBAAC,WAAW;AAClC;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,IAAI,kBAAE,gCAAgC,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AACpE,SAAS,kBAAE;AACX;AACA,MAAM,iBAAC;AACP;AACA,iBAAiB,kBAAE;AACnB;AACA,SAAS,kBAAE;AACX;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX;AACA,SAAS,iBAAC,qBAAqB,kBAAE;AACjC;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX;AACA,kDAAkD,iBAAC,mBAAmB,kBAAE;AACxE;AACA,SAAS,iBAAC;AACV;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,yBAAyB,KAAK;AAC9B,QAAQ,iBAAC;AACT;AACA;AACA;AACA,IAAI,kBAAE,oBAAoB,kBAAE,GAAG,kBAAE;AACjC,SAAS,kBAAE;AACX,6BAA6B,kBAAE;AAC/B;AACA;AACA;AACA,4BAA4B,kBAAE;AAC9B;AACA,SAAS,kBAAE;AACX,6BAA6B,kBAAE;AAC/B;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,6BAA6B,kBAAE;AAC/B;AACA;AACA,SAAS,iBAAC;AACV;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,QAAQ,iBAAC,CAAC,iBAAC;AACX,SAAS,kBAAE;AACX;AACA,cAAc,iBAAC;AACf,mBAAmB,iBAAC;AACpB,gBAAgB,iBAAC;AACjB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ;AACA;AACA,SAAS,iBAAC;AACV;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX;AACA,wBAAwB,kBAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAE,UAAU,iBAAC;AACrC;AACA,kBAAE,SAAS,iBAAC;AACZ,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ,sBAAsB,kBAAE;AACxB,GAAG;AACH;AACA;AACA,IAAI,kBAAE,uGAAuG,kBAAE,eAAe,kBAAE,GAAG,kBAAE;AACrI;AACA,yDAAyD,kBAAE;AAC3D,yBAAyB,kBAAE;AAC3B,GAAG;AACH,CAAC;AACD,SAAS,kBAAE;AACX,0BAA0B,kBAAE;AAC5B;AACA,SAAS,kBAAE;AACX,oBAAoB,kBAAE,eAAe,kBAAE,CAAC,kBAAE;AAC1C;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,8BAA8B,kBAAE;AAChC;AACA;AACA,+BAA+B,kBAAE;AACjC;AACA,SAAS,kBAAE;AACX,MAAM,kBAAE;AACR,gCAAgC,oBAAoB;AACpD,UAAU,kBAAE;AACZ;AACA;AACA,SAAS,kBAAE;AACX,+BAA+B,kBAAE;AACjC;AACA;AACA,SAAS,kBAAE;AACX,+CAA+C,SAAS;AACxD;AACA;AACA;AACA,IAAI,kBAAE,GAAG,kBAAE,iCAAiC,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE,WAAW,kBAAE,GAAG,kBAAE,iBAAiB,kBAAE,GAAG,kBAAE;AACrK,SAAS,kBAAE;AACX,eAAe,iBAAC,OAAO,kBAAE;AACzB;AACA,UAAU,kBAAE;AACZ;AACA;AACA,UAAU,kBAAE;AACZ,qDAAqD,kBAAE,YAAY,kBAAE;AACrE;AACA,SAAS,kBAAE;AACX,sBAAsB,iBAAC;AACvB;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,iBAAE;AACN,SAAS,kBAAE;AACX;AACA,mBAAmB,iBAAC;AACpB;AACA,yBAAyB,iBAAE;AAC3B;AACA,4BAA4B,iBAAC;AAC7B;AACA;AACA;AACA,SAAS,iBAAC;AACV,8BAA8B,iBAAC;AAC/B;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,IAAI,kBAAE,0EAA0E,kBAAE,GAAG,kBAAE,uEAAuE,kBAAE,GAAG,kBAAE,IAAI,kBAAE,aAAa,kBAAE,EAAE,kBAAE,GAAG,kBAAE,GAAG,iBAAC,kBAAkB,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AACrO,SAAS,kBAAE;AACX;AACA;AACA,wBAAwB,kBAAE,GAAG,kBAAE;AAC/B;AACA;AACA,SAAS,kBAAE;AACX,gEAAgE,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE,uBAAuB,kBAAE,iCAAiC,kBAAE,GAAG,kBAAE;AACnG,0CAA0C,kBAAE,CAAC,kBAAE;AAC/C,WAAW,kBAAE;AACb,GAAG;AACH,EAAE,EAAE,kBAAE;AACN,SAAS,kBAAE;AACX;AACA,oBAAoB,kBAAE;AACtB;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,IAAI,kBAAE,EAAE,kBAAE;AACrB;AACA,IAAI,iBAAE,GAAG,iBAAC,CAAC,iBAAC,eAAe,kBAAE,GAAG,iBAAC,CAAC,iBAAC,cAAc,kBAAE,GAAG,iBAAC,CAAC,iBAAC,UAAU,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,mBAAmB,kBAAE,uBAAuB,kBAAE,wBAAwB,kBAAE,GAAG,iBAAC,CAAC,iBAAE,GAAG,kBAAE,GAAG,iBAAC,KAAK,kBAAE,GAAG,iBAAC,CAAC,kBAAE,GAAG,kBAAE,GAAG,iBAAC,CAAC,kBAAE,GAAG,kBAAE,GAAG,iBAAC,CAAC,kBAAE,GAAG,iBAAC,GAAG,iBAAC;AACjR,CAAC,iBAAE,IAAI,iBAAC,KAAK,iBAAE,yBAAyB,kBAAE,SAAS,iBAAC,aAAa,kBAAE,IAAI,kBAAE,IAAI,iBAAC,CAAC,kBAAE,eAAe,kBAAE,IAAI,kBAAE,IAAI,iBAAC,KAAK,kBAAE,OAAO,kBAAE,IAAI,kBAAE,IAAI,iBAAC,KAAK,kBAAE,OAAO,kBAAE,MAAM,iBAAC;AAC/J,UAAU,iBAAC,cAAc,kBAAE,mCAAmC,iBAAC;AAC/D;AACA;AACA,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB;AACA;AACA,CAAC;AACD,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX;AACA,yCAAyC,kBAAE;AAC3C;AACA,IAAI,kBAAE,GAAG,iBAAC;AACV,SAAS,kBAAE;AACX;AACA,aAAa,kBAAE,YAAY,kBAAE;AAC7B;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ;AACA;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,sCAAsC,kBAAE;AACxC;AACA;AACA,IAAI,kBAAE,6BAA6B,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AAC/C,SAAS,kBAAE;AACX,SAAS,kBAAE,UAAU,kBAAE;AACvB;AACA,SAAS,kBAAE;AACX,cAAc,kBAAE;AAChB;AACA;AACA,IAAI,kBAAE,uBAAuB,kBAAE,oBAAoB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,4BAA4B,kBAAE,4BAA4B,kBAAE,yBAAyB,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,iCAAiC,kBAAE,2BAA2B,kBAAE;AACje,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf;AACA;AACA,SAAS,kBAAE;AACX,gDAAgD,kBAAE,SAAS,kBAAE;AAC7D;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,iBAAiB,iBAAC,OAAO,kBAAE;AAC3B;AACA,IAAI,kBAAE,GAAG,iBAAC,IAAI,iBAAC,QAAQ,kBAAE,GAAG,kBAAE,GAAG,kBAAE,CAAC,kBAAE,IAAI,kBAAE,EAAE,kBAAE;AAChD,SAAS,kBAAE;AACX,iBAAiB,iBAAC,OAAO,kBAAE;AAC3B;AACA,IAAI,kBAAE,GAAG,iBAAC,IAAI,iBAAC,QAAQ,kBAAE,GAAG,kBAAE,GAAG,kBAAE,CAAC,kBAAE,IAAI,kBAAE,EAAE,kBAAE,MAAM,kBAAE,yBAAyB,kBAAE,qBAAqB,kBAAE,uBAAuB,kBAAE,oBAAoB,kBAAE,qBAAqB,kBAAE,wBAAwB,kBAAE,iCAAiC,iBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,4BAA4B,kBAAE,4BAA4B,kBAAE,yBAAyB,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,iCAAiC,kBAAE,2BAA2B,kBAAE,2BAA2B,iBAAC;AACtuB,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,iBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE;AAC5K,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE;AACpB,SAAS,iBAAC;AACV,iBAAiB,kBAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAE;AACV;AACA,YAAY,iBAAC,cAAc,kBAAE,SAAS,kBAAE;AACxC;AACA,aAAa,kBAAE;AACf,aAAa,kBAAE,SAAS,kBAAE;AAC1B,iBAAiB,EAAE,kBAAE;AACrB;AACA,WAAW,iBAAC;AACZ;AACA,UAAU,kBAAE;AACZ;AACA;AACA,gBAAgB,iBAAC;AACjB;AACA;AACA;AACA,eAAe,kBAAE;AACjB,UAAU,iBAAC;AACX,GAAG,IAAI,kBAAE;AACT,aAAa,iBAAC;AACd,GAAG;AACH,UAAU,kBAAE;AACZ;AACA,4BAA4B,kBAAE,OAAO,iBAAC;AACtC,GAAG;AACH;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX,SAAS,iBAAC,IAAI,kBAAE,GAAG,kBAAE;AACrB;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,8BAA8B,kBAAE;AAChC;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA,2BAA2B,iBAAC,IAAI,SAAS;AACzC;AACA;AACA,kBAAE,iBAAiB,kBAAE,kBAAkB,kBAAE;AACzC,kBAAE,iBAAiB,kBAAE;AACrB,SAAS,kBAAE;AACX,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX,cAAc,kBAAE;AAChB;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAE,OAAO,kBAAE;AACzC,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAE;AACb,aAAa,kBAAE;AACf;AACA,OAAO;AACP;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,GAAG;AACH;AACA,IAAI,kBAAE,MAAM,kBAAE,MAAM,kBAAE,uBAAuB,kBAAE,oBAAoB,kBAAE,qBAAqB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,6BAA6B,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AACtU,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX,sDAAsD,kBAAE,SAAS,kBAAE;AACnE,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,aAAa,iBAAC;AACd,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,cAAc,kBAAE;AAChB,SAAS,kBAAE;AACX,kBAAkB,kBAAE;AACpB,oBAAoB,kBAAE;AACtB;AACA;AACA;AACA;AACA,WAAW,kBAAE;AACb,cAAc,kBAAE;AAChB;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ,eAAe,kBAAE,YAAY,kBAAE;AAC/B;AACA;AACA;AACA,IAAI,kBAAE,MAAM,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAC1C,SAAS,kBAAE;AACX,cAAc,kBAAE,MAAM,kBAAE,uBAAuB,kBAAE;AACjD;AACA;AACA,kBAAkB,KAAK;AACvB;AACA,uBAAuB,kBAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,MAAM,kBAAE,yBAAyB,kBAAE,4CAA4C,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AACnH,SAAS,kBAAE;AACX,kCAAkC,kBAAE,GAAG,iBAAC,aAAa,kBAAE,GAAG,iBAAC;AAC3D,WAAW,kBAAE,mBAAmB,kBAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAC,UAAU,kBAAE,MAAM,kBAAE,qBAAqB,kBAAE;AACrE,YAAY,kBAAE;AACd,iBAAiB,kBAAE,kCAAkC,kBAAE;AACvD;AACA;AACA,2BAA2B,iBAAC;AAC5B;AACA;AACA,4BAA4B,iBAAC,KAAK,kBAAE;AACpC;AACA,SAAS,kBAAE;AACX,wFAAwF,kBAAE,aAAa,kBAAE;AACzG;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kBAAkB,iBAAC;AACnB,2BAA2B,kBAAE,OAAO,kBAAE,GAAG,kBAAE;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,iBAAE;AACX,eAAe,kBAAE,mBAAmB,KAAK;AACzC;AACA,kBAAkB,kBAAE;AACpB;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX,UAAU,iBAAE;AACZ,oCAAoC,kBAAE;AACtC,sBAAsB,kBAAE;AACxB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,MAAM,kBAAE;AACR,yCAAyC,SAAS;AAClD,YAAY,kBAAE;AACd;AACA;AACA;AACA;AACA,mEAAmE,kBAAE,OAAO,kBAAE,mBAAmB,kBAAE;AACnG;AACA,SAAS,kBAAE;AACX,sBAAsB,kBAAE,OAAO,kBAAE;AACjC;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX,SAAS,kBAAE,OAAO,kBAAE,MAAM,kBAAE,CAAC,kBAAE;AAC/B,YAAY,kBAAE;AACd,qCAAqC,kBAAE,SAAS,kBAAE,OAAO,kBAAE,GAAG,kBAAE;AAChE;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,WAAW,kBAAE;AACb;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,MAAM,kBAAE,CAAC,kBAAE,OAAO,kBAAE;AAC/B;AACA,SAAS,kBAAE;AACX,kDAAkD,kBAAE,iCAAiC,kBAAE,eAAe,kBAAE,MAAM,kBAAE;AAChH;AACA,SAAS,kBAAE;AACX;AACA,4DAA4D,KAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,GAAG,kBAAE;AACX,SAAS,kBAAE;AACX,cAAc,kBAAE,OAAO,kBAAE;AACzB;AACA,SAAS,kBAAE;AACX,oBAAoB,iBAAC,2CAA2C,kBAAE;AAClE;AACA,SAAS,kBAAE;AACX,iBAAiB,kBAAE;AACnB;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,IAAI,kBAAE;AACjB;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE,YAAY,kBAAE;AAC1B;AACA,IAAI,kBAAE;AACN;AACA;AACA;AACA;AACA,kDAAkD,kBAAE;AACpD,wCAAwC,kBAAE,mCAAmC,kBAAE,4BAA4B,kBAAE,oBAAoB,kBAAE,OAAO,kBAAE,cAAc,kBAAE,UAAU,kBAAE,gBAAgB,kBAAE,aAAa,kBAAE;AACzM;AACA,qDAAqD,kBAAE;AACvD;AACA;AACA,aAAa,kBAAE;AACf,sBAAsB,iBAAC;AACvB,MAAM,kBAAE;AACR;AACA,oBAAoB,kBAAE;AACtB,+BAA+B,kBAAE;AACjC;AACA,GAAG,EAAE,kBAAE;AACP;AACA,IAAI,kBAAE,GAAG,kBAAE;AACX;AACA,CAAC;AACD,SAAS,kBAAE;AACX;AACA,aAAa,kBAAE,KAAK,kBAAE;AACtB,IAAI,kBAAE;AACN,GAAG;AACH;AACA,MAAM,kBAAE,qBAAqB,GAAG,UAAU,GAAG,WAAW,kBAAE,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,kBAAE,wBAAwB,GAAG,MAAM,EAAE,aAAa,kBAAE,SAAS,EAAE,UAAU,kBAAE,aAAa,kBAAE;AAC1M;AACA;AACA,gBAAgB,kBAAE,EAAE,kBAAE,UAAU,kBAAE,EAAE,kBAAE,iBAAiB,kBAAE;AACzD;AACA,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA,SAAS,0BAA0B;AACnC;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,kBAAkB,cAAc;AAChC,wBAAwB,kBAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX,oBAAoB,kBAAE,YAAY,kBAAE,cAAc,kBAAE,cAAc,kBAAE;AACpE;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE,UAAU;AACrB,4CAA4C,kBAAE,kCAAkC,kBAAE,4BAA4B,kBAAE;AAChH;AACA,SAAS,cAAc;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAC,4BAA4B,kBAAE,SAAS,kBAAE;AAChD,SAAS,kBAAE;AACX;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA,MAAM,kBAAE,mBAAmB,kBAAE;AAC7B,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,YAAY,kBAAE;AACd,MAAM,kBAAE;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,cAAc,4BAA4B,EAAE,kBAAE;AAC9C;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,UAAU,gBAAgB,EAAE;AAC5B;AACA;AACA;AACA,wEAAwE,EAAE;AAC1E;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,CAAC;AACD;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA,wBAAwB,kBAAE,YAAY,kBAAE;AACxC;AACA,SAAS,kBAAE;AACX;AACA,CAAC;AACD;AACA,GAAG;AACH;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,QAAQ,2EAA2E;AACnF;AACA;AACA;AACA;AACA,MAAM,kBAAE,GAAG,gCAAgC;AAC3C,gBAAgB,kBAAE;AAClB,oCAAoC,kBAAE,SAAS,kBAAE,cAAc,iBAAC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G,EAAE;AAChH;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA,2CAA2C,kBAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS,iBAAE;AACX,uBAAuB,iBAAC;AACxB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,EAAE,IAAI;AACN;AACA,aAAa;AACb,aAAa;AACb,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,yBAAyB,iBAAC;AAC1B;AACA;AACA;AACA,aAAa,iBAAC;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA,UAAU,MAAE;AACZ;AACA,kBAAkB,iBAAE;AACpB;AACA;AACA;AACA,sBAAsB,iBAAE;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN,oBAAoB,iBAAC;AACrB;AACA;AACA;AACA;AACA,MAAM,kBAAE,0BAA0B,EAAE,kBAAE,KAAK,EAAE,kBAAE,GAAG,MAAE,2BAA2B,kBAAE,GAAG,MAAE,kCAAkC,kBAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,kBAAE;AACL,GAAG,kBAAE,KAAK;AACV;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,IAAI,kBAAE;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,kBAAE,GAAG,mCAAE;AACV,QAAQ,kBAAE;AACV;AACA,cAAc,kBAAE,QAAQ,IAAI,OAAO,kBAAE,EAAE;AACvC,6CAA6C,kBAAE,wBAAwB,kBAAE;AACzE,GAAG;AACH,SAAS,kBAAE;AACX;AACA,KAAK,kBAAE;AACP;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH,aAAa,8BAA8B;AAC3C;AACA,mBAAmB,sCAAE,oCAAoC,uBAAE,QAAQ,uBAAE,UAAU,uBAAE;AACjF,IAAI,+BAAE;AACN;AACA;AACA;AACA,OAAO;AACP,yBAAyB,EAAE;AAC3B,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,4BAAE;AAChB;AACA,KAAK,QAAQ,4BAAE;AACf;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ,kBAAE;AACV;AACA;AACA,KAAK,MAAM,kBAAE;AACb;AACA,KAAK;AACL;AACA;AACA,4BAA4B,eAAe,GAAG,+BAAE;AAChD;AACA;AACA,KAAK,GAAG,6BAAE;AACV,qBAAqB,kBAAE,KAAK,kBAAE;AAC9B,mBAAmB,kBAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAE;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA,OAAO,GAAG,yBAAE;AACZ,gBAAgB,kBAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,yBAAE;AACX,yBAAyB,kBAAE;AAC3B;AACA;AACA;AACA,wDAAwD,kBAAE;AAC1D;AACA;AACA,SAAS,yBAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAE;AACnB,OAAO,MAAM,eAAe;AAC5B,KAAK,SAAS,qBAAE,UAAU,sBAAsB;AAChD;AACA,CAAC;AAGC;AACF;;;;;;;;;ACviDa;;AAEb,mBAAmB,mBAAO,CAAC,KAAe;;AAE1C,oBAAoB,mBAAO,CAAC,KAAyB;;AAErD,WAAW,sEAAsE;AACjF;;AAEA,WAAW,aAAa;AACxB;AACA;;AAEA,4BAA4B,gDAAgD;AAC5E;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;;;;;;;AClBA,SAAS,mBAAO,CAAC,KAAM;AACvB,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAY;AAClC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC7Ba;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,2BAA2B,mBAAO,CAAC,KAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM,gBAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;;;;;;;AC3BA,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACzBa;AACb,4BAA4B,mBAAO,CAAC,KAAoC;AACxE,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;AACA;;AAEA;AACA,iDAAiD,mBAAmB;;AAEpE;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACrFD,uBAAuB,mBAAO,CAAC,IAAqB;AACpD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,kBAAkB,mBAAO,CAAC,KAAe;;AAEzC;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;;AAEA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACzBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,oCAAoC;AAC7C;AACA,CAAC;;;;;;;;;ACnBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,IAAqB;AAC7C;AACA;AACA,eAAe,YAAY,wBAAwB,iBAAiB,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS,GAAG,KAAK,IAAI,EAAE;AAChG;AACA;AACA;AACA;AACA,sCAAsC,SAAS,GAAG,KAAK,IAAI,QAAQ,GAAG,EAAE;AACxE,sCAAsC,MAAM,MAAM,IAAI;AACtD;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;AC/Ca;;AAEb,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,kDAAkD,EAAE;AACpD;AACA,SAAS;AACT;;AAEA;AACA,oBAAoB,mBAAmB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,OAAO,UAAU,aAAa;AACjD;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3PA,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACLA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpFY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,8CAA8C,WAAW;AACrF,eAAe,YAAY,wBAAwB,UAAU,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+DAA+D,KAAK,GAAG,WAAW;AAClF;AACA;AACA;AACA,8CAA8C,MAAM,mBAAmB,MAAM,iEAAiE,KAAK,uDAAuD,KAAK;AAC/M;AACA;AACA;AACA;AACA,2CAA2C,YAAY,MAAM,OAAO;AACpE;AACA;AACA;AACA,2CAA2C,KAAK,iBAAiB,OAAO,GAAG,KAAK,MAAM,OAAO,GAAG,KAAK;AACrG,0CAA0C,OAAO,GAAG,KAAK;AACzD,8DAA8D,QAAQ,kBAAkB,YAAY,IAAI,OAAO,QAAQ,KAAK;AAC5H,2CAA2C,QAAQ,KAAK,QAAQ,cAAc,OAAO,MAAM,UAAU,MAAM,UAAU;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO,+BAA+B,cAAc;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE,mCAAmC;AACrG;AACA,wDAAwD,gCAAgC;AACxF;AACA,0FAA0F,IAAI;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO,GAAG,KAAK;AACpE;AACA,yEAAyE,OAAO,GAAG,KAAK,yBAAyB,OAAO,QAAQ,KAAK;AACrI;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;AC3F6E;AACpB;AAClD,uBAAuB,qFAAkB;AAChD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sBAAsB,qFAAkB;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;AC3DA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC1Ba;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,iCAAiC;AAC1E;;;;;;;;;ACba;AACb,yBAAyB,mBAAO,CAAC,KAAmC;AACpE,kBAAkB,mBAAO,CAAC,KAA4B;;AAEtD;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;ACXA;AACsG;AACd;AACzC;AACW;AACnD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA,+BAA+B;AAC/B,wBAAwB,uBAAuB;AAC/C,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA;AACA;AACA,8BAA8B,sEAAM,GAAG;AACvC,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iFAAiB;AACjE;AACA,+BAA+B;AAC/B;AACA,wBAAwB,uBAAuB;AAC/C;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iFAAiB;AAChG;AACA;AACA;AACA;AACA;AACA,kEAAkE,oCAAoC,oBAAoB;AAC1H;AACA;AACA,2DAA2D,oCAAoC,oBAAoB;AACnH;AACA;AACA;AACA;AACA,wBAAwB,iFAAiB;AACzC,0DAA0D,4DAA4D;AACtH;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8EAAkB;AACxD;AACA;AACA,yEAAyE,wBAAwB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,iFAAiB;AAC1G;AACA,iCAAiC,uCAAuC,iFAAiB;AACzF,oBAAoB,qEAAK;AACzB,6DAA6D,wCAAwC;AACrG;AACA;AACA;AACA;AACA,wBAAwB,uEAAO;AAC/B;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC,6DAA6D,4DAA4D;AACzH;AACA;AACA;AACA;AACA,wBAAwB,uEAAO;AAC/B;AACA;AACA;AACA,oBAAoB,uEAAO;AAC3B;AACA;AACA,oBAAoB,uEAAO;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,wEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,IAAI;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,WAAW;AAC3B,iBAAiB,UAAU;AAC3B;AACA;AACA,oCAAoC;AACpC,wBAAwB,sEAAM,GAAG;AACjC,2BAA2B,gEAAK;AAChC;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,QAAQ;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA,gCAAgC,YAAY,gEAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,OAAO;AACvB;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA,mBAAmB,sEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,iBAAiB;AACjC,iBAAiB,UAAU;AAC3B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,qBAAqB,sEAAM,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gCAAgC;AAC/C,kBAAkB,4DAA4D;AAC9E;AACA;AACA,sBAAsB;AACtB,wBAAwB,iBAAiB;AACzC,iBAAiB,iFAAiB;AAClC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,yBAAyB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA,QAAQ,qEAAK;AACb;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,QAAQ,0EAAU;AAClB;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,QAAQ;AACxB,iBAAiB,OAAO,IAAI;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,iBAAiB;AACjC,gBAAgB,KAAK;AACrB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA,8CAA8C,iCAAiC,wBAAwB;AACvG,qBAAqB,sEAAM,GAAG;AAC9B,wBAAwB,sEAAM,GAAG;AACjC;AACA;AACA;AACA,+BAA+B;AAC/B,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA,8CAA8C,iFAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA,gBAAgB,OAAO,IAAI;AAC3B;AACA,gBAAgB,eAAe;AAC/B;AACA,gBAAgB,WAAW;AAC3B;AACA,eAAe,iBAAiB;AAChC;AACA,eAAe,GAAG;AAClB;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC,qBAAqB,sEAAM,GAAG;AAC9B;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,eAAe,iBAAiB;AAChC,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,mEAAO,GAAG,kEAAM;AACxF,kDAAkD,iDAAiD;AACnG;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,0BAA0B;AACzC,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB,iBAAiB,iFAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,iFAAiB;AACjG;AACA,kBAAkB,kFAAkF,IAAI;AACxG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iFAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;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,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,qEAAK;AACjB;AACA;AACA;AACA;AACA;AACA,6CAA6C,gEAAgE;AAC7G;AACA;AACA,6CAA6C,+CAA+C;AAC5F,uDAAuD,gCAAgC;AACvF;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,0BAA0B;AACzC,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,eAAe,GAAG;AAClB,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iFAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,iFAAiB;AACjG;AACA,kBAAkB,kFAAkF,IAAI;AACxG,SAAS;AACT,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,8DAA8D,mCAAmC,IAAI;AACrG,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC,IAAI;AACnG,iBAAiB;AACjB;AACA,wCAAwC,8EAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB,eAAe;AAC/B;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA,4CAA4C,iFAAiB;AAC7D,uDAAuD,gCAAgC,IAAI;AAC3F,SAAS;AACT,QAAQ,sEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB,WAAW;AAC3B;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA,mEAAmE,mEAAO,GAAG,kEAAM;AACnF;AACA;AACA,qBAAqB,iFAAiB;AACtC,aAAa;AACb;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,eAAe;AAC1B,aAAa,sBAAsB;AACnC;AACO;AACP;AACA,QAAQ,iFAAiB;AACzB,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA,yBAAyB,iFAAiB;AAC1C,kDAAkD,wEAAQ;AAC1D,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA;AACA,mBAAmB,uEAAO;AAC1B;AACA;AACA;AACA;;;;;;;;ACplCA,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;AC1Ba;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,YAAY,mBAAO,CAAC,KAAoB;AACxC,mBAAmB,mBAAO,CAAC,KAA+B;AAC1D,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,2DAA2D;AAC/D;AACA,CAAC;;;;;;;;;ACfY;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,eAAe,mBAAO,CAAC,KAAwB;;AAE/C,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;AC7Ba;AACb,aAAa,mBAAO,CAAC,KAAqB;;AAE1C;AACA;;AAEA;AACA;AACA,kCAAkC,kDAAkD;AACpF,IAAI;AACJ;AACA,IAAI;AACJ;;;;;;;;ACZA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAqB,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACzC,MAAM,KAAK,EAIN;AACL,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,CAAC;;;;;;;;AC9ID;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;;;;;;;;;AC5Ba;AACb,WAAW,mBAAO,CAAC,KAA4B;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXa;AACb,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA,CAAC;;;;;;;;ACRD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;AACqE;AACb;;AAExD;;AAEA;AACA;;AAEA,SAAS,2CAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,gDAAW;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAAQ,eAAe,4BAA4B;AAC9E;AACA,2BAA2B,kCAAkC;AAC7D;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH,iBAAiB,6CAAQ;AACzB;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,YAAoB,oBAAoB,EAErF;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAqC,GAAG,EAM5C;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAgE,EAAE,EAGrE;AACT;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAkE,EAAE,EAGvE;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB,KAAK;AACL;AACA,yBAAyB;AACzB;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,KAAqC,GAAG,EAE5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,0CAAK,eAAe,2BAA2B;AACjD,SAAS,KAAqC,GAAG,EAE5C;AACL,GAAG,IAAI,2BAA2B;AAClC;;AAEA;AACA,6CAA6C,oBAAoB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAE5C;;AAEH,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE,gFAAmB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;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;AACX;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,mDAAmD;AAC9D,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA,gEAAgE;AAChE;AACA;AACA,oCAAoC,mBAAmB;AACvD,KAAK,IAAI;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,+CAA+C,sBAAsB;AACrE,MAAM;AACN,2CAA2C,sBAAsB;AACjE;AACA,GAAG;AACH;AACA;;AAEA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,cAAc;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,KAAqC,GAAG,EAK5C;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,KAAqC,GAAG,EAK5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC;AAClE;AACA;;AAEA;AACA,6BAA6B;AAC7B,yEAAyE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAG5C;;AAEH,iCAAiC;AACjC,+BAA+B;AAC/B;;AAEA;AACA;AACA;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;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,0BAA0B;AAChE;;AAEA,2BAA2B,SAAS;;AAEpC;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAqC,KAAK,KAAqB;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO,KAAqC,GAAG,EAE5C;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA,SAAS,KAAqC,GAAG,EAE5C;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,8BAA8B,uCAAuC;;AAErE;AACA,IAAI,KACyB;AAC7B,IAAI,EAKD;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,SAAS,KAAqC,GAAG,EAE5C;AACL;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD,gCAAgC,4CAA4C;AAC5E,IAAI;AACJ,SAAS,KAAqC,GAAG,EAG5C;AACL;;AAEA;AACA,iDAAiD,0BAA0B;AAC3E;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,oCAAoC,2CAA2C;AAC/E,QAAQ;AACR,aAAa,KAAqC,GAAG,EAG5C;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mCAAmC,mBAAmB;AACtD,oCAAoC,kDAAkD;AACtF,QAAQ;AACR,aAAa,KAAqC,GAAG,EAG5C;AACT;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;AACA;;AAEA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAE5C;AACH,SAAS,0CAAK,eAAe,kDAAkD,sBAAsB;AACrG;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,kCAAkC;;AAElC,OAAO,KAAqC,GAAG,EAG5C;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kCAAkC;;AAElC,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,kCAAkC;;AAElC,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW;AACX;AACA;AACA;AACA,MAAM,KAA8D,EAAE,EAEnE;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAAiE,EAAE,EAEtE;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAA+D,EAAE,EAEpE;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAwE,EAAE,EAG7E;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAA+D,EAAE,EAEpE;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,kCAAkC,gBAAgB,IAAI,gBAAgB,IAAI,iBAAiB;AAC3F,iBAAiB,iBAAiB,SAAS,kBAAkB,IAAI,kBAAkB,IAAI,mBAAmB;AAC1G,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,oBAAoB,IAAI;AACjE,4CAA4C,UAAU,yBAAyB,IAAI;AACnF;;AAEA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAAkD,EAAE,EAEvD;AACH;AACA;;AAEA;;AAEA;AACA;AACA,iCAAiC;AACjC,2BAA2B,iFAAiF;AAC5G,qCAAqC,+DAA+D;AACpG,qDAAqD,6EAA6E;AAClI,uCAAuC,yEAAyE;AAChH,iDAAiD,yEAAyE;AAC1H,uCAAuC;AACvC,mCAAmC;AACnC,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD,qDAAqD;AACrD,uDAAuD;AACvD;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,KAAK,EAAC;AACoH;;;;;;;;AC58CzI;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9EY;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;ACHa;;AAEb,WAAW,mBAAmB;AAC9B;AACA;AACA,2FAA2F;AAC3F,4CAA4C;;AAE5C,cAAc,2BAA2B;AACzC;AACA;AACA;AACA,gCAAgC;;AAEhC,kEAAkE;AAClE,qEAAqE;;AAErE;AACA,iCAAiC;AACjC;AACA,uCAAuC;;AAEvC,2DAA2D;AAC3D,+DAA+D;;AAE/D;AACA;AACA,sBAAsB,gBAAgB;AACtC,2EAA2E;;AAE3E,yGAAyG;;AAEzG;AACA,6CAA6C;;AAE7C,8DAA8D;;AAE9D;AACA;AACA,8BAA8B,oBAAoB;AAClD,uEAAuE;AACvE;;AAEA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtKD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,IAAQ;AAC3B,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,eAAe,8CAA+B;AAC9C,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,+CAAiC;;AAEjD;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAwC;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C,sBAAsB,+CAA+C;AACrE;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,sBAAsB,4BAA4B;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAgC;;;;;;;;ACzjChC;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtGD,YAAY,mBAAO,CAAC,KAAU;AAC9B,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7DA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrLY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,aAAa,8BAA8B;AAC3C;AACA,kBAAe;AACf;;;;;;;;ACzBa;AACb,aAAa,mBAAO,CAAC,KAA+B;AACpD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,+BAA+B,mBAAO,CAAC,KAAuC;;AAE9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;ACrBA,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAW;AACjC,wBAAwB,mBAAO,CAAC,KAAqB;AACrD,eAAe,mBAAO,CAAC,IAAY;AACnC,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAY;AACnC,oBAAoB,mBAAO,CAAC,KAAiB;AAC7C,mBAAmB,mBAAO,CAAC,KAAgB;AAC3C,cAAc,mBAAO,CAAC,KAAY;AAClC,oBAAoB,mBAAO,CAAC,KAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7FA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9ED,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,iBAAiB,mBAAO,CAAC,KAA6B;AACtD,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,uFAAuF;AAC3F;AACA,CAAC;;;;;;;;;ACTY;AACb,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA;AACA;AACA,iCAAiC,OAAO,mBAAmB,aAAa;AACxE,CAAC;;;;;;;;ACPD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChHD,iBAAiB,mBAAO,CAAC,KAAe;AACxC,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;AChBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AClLY;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,KAAmC;AACnE,qBAAqB,mBAAO,CAAC,KAA+B;AAC5D,+BAA+B,mBAAO,CAAC,KAA2C;AAClF,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA,wBAAwB,qBAAqB;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACzCY;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,UAAU,gCAAuC;AACjD,YAAY,mBAAO,CAAC,KAAwB;AAC5C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;ACjBa;AACb,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,gBAAgB,mBAAO,CAAC,KAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACVA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;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;;AAEA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC1KD,UAAU,mBAAO,CAAC,KAAQ;AAC1B,WAAW,mBAAO,CAAC,KAAQ;AAC3B,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;AClBa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D,6BAA6B;AAC7B;;AAEA;AACA;AACA;;;;;;;;;ACRa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,gBAAgB,qBAAqB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACrCa;;AAEb;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;;;;;;;ACVA,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC9Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;AC3BA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACvIY;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,+BAA+B,8BAA4D;AAC3F,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,gCAAgC,mBAAO,CAAC,KAA0C;AAClF,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,8DAA8D;AAC9D,IAAI;AACJ,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;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,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrLY;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,gBAAgB,mBAAO,CAAC,KAAyB;;AAEjD;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,yCAAyC;AACtD;AACA,kBAAe;AACf;;;;;;;;ACXa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,YAAY,mBAAO,CAAC,KAAoB;AACxC,cAAc,mBAAO,CAAC,KAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,EAAE;;;;;;;;;ACfW;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;ACHA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA,eAAe,mBAAO,CAAC,KAAa;AACpC,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvBA;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;;;;;;;;;ACzBa;AACb,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,eAAe,mBAAO,CAAC,GAAwB;AAC/C,8BAA8B,mBAAO,CAAC,KAAwC;;AAE9E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG,IAAI,gCAAgC;AACvC;;;;;;;;;AC3Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB;AAC1Q;AACA;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,EAAE,EAAE,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe,EAAE,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE,EAAE,WAAW;AAClC;AACA;AACA;AACA,4DAA4D,GAAG,EAAE,GAAG;AACpE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kFAAkF,IAAI,WAAW,IAAI;AACrG;AACA,mBAAmB;AACnB;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA,qDAAqD,IAAI;AACzD;AACA,wBAAwB;AACxB;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;AC3Ja;;AAEb,mBAAmB,mBAAO,CAAC,IAAgB;;AAE3C;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpEW;;AAEZ,QAAQ,kGAAkG,EAAE,mBAAO,CAAC,KAAa;AACjI,gBAAgB,mBAAO,CAAC,GAAe;;AAEvC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,gBAAgB;AAC5D;AACA,+BAA+B,wCAAwC;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+EAA+E,8BAA8B;AAC7G,IAAI;AACJ,+DAA+D,8BAA8B;AAC7F;;AAEA;AACA;AACA,+EAA+E,8BAA8B;AAC7G,IAAI;AACJ,+DAA+D,8BAA8B;AAC7F;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,aAAa,8BAA8B,QAAQ;;AAElF;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAsB;AACtB,sBAAsB;;;;;;;;AC9StB;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;ACzHD;AACA;AACA;AAC+C;AACU;AACzD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,sBAAsB;AACjC,WAAW,gBAAgB;AAC3B,aAAa;AACb;AACO;AACP,sCAAsC;AACtC,2BAA2B,SAAS;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACO;AACP,sCAAsC;AACtC,qBAAqB,qEAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,sBAAsB;AACjC,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA,sCAAsC;AACtC,2BAA2B,SAAS;AACpC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uCAAuC;AACvC;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA,mBAAmB,qEAAiB;AACpC,cAAc,qEAAiB;AAC/B,cAAc,qEAAiB;AAC/B,cAAc,qEAAiB;AAC/B,cAAc,qEAAiB;AAC/B;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,uBAAuB,iFAAiB;AACxC;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;;;;;;;;;AC/ca;;AAEb,WAAW,oCAAoC;AAC/C;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACfa;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;ACZY;AACb,8BAA8B;AAC9B;AACA;;AAEA;AACA,4EAA4E,MAAM;;AAElF;AACA;AACA,SAAS;AACT;AACA;AACA,EAAE;;;;;;;;ACbF,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACfa;AACb,6BAA6B,mBAAO,CAAC,KAAuC;;AAE5E;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,iBAAiB;AACjI,eAAe,mBAAO,CAAC,KAAQ;AAC/B,cAAc,mBAAO,CAAC,KAAiB;AACvC,iBAAiB,mBAAO,CAAC,KAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA,sBAAsB;AACtB;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,OAAO;AAC9D,sCAAsC,OAAO;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA,qBAAqB;AACrB;;;;;;;AC1JA,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAW;AACjC,cAAc,mBAAO,CAAC,KAAY;AAClC,eAAe,mBAAO,CAAC,KAAY;AACnC,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACtCA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,mBAAmB,wDAAwD,gBAAgB;AACrH,eAAe,UAAU,mBAAmB,wBAAwB,mBAAmB,iBAAiB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA,sDAAsD,YAAY,uBAAuB,WAAW;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA,aAAa;AACb;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC9EA,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,iBAAiB,mBAAO,CAAC,IAAe;AACxC,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;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;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;ACxEa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,YAAY,mBAAO,CAAC,KAAoB;AACxC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,aAAa,mBAAO,CAAC,KAA+B;AACpD,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,iCAAiC,yCAAkD;AACnF,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,0BAA0B,mBAAO,CAAC,KAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,aAAa,cAAc,UAAU;AAC3E,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA,MAAM;AACN,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtDD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC7GD,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,YAAY,mBAAO,CAAC,KAAU;AAC9B,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,UAAU;AACxB,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC/BA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,IAAQ;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA,SAAgB;;;;;;;;ACvGhB,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;;AAEA;;;;;;;;;ACzFa;AACb,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,wBAAwB,mBAAO,CAAC,KAAmC;AACnE,gBAAgB,mBAAO,CAAC,KAAwB;AAChD,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACbA,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACrBA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,+CAAoD;AAC7E,WAAW,mBAAO,CAAC,IAAQ;;AAE3B;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH,WAAW;AACX;;AAEA,kBAAkB;;;;;;;;;ACtZL;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,kBAAkB;AAC/G,iBAAiB,mBAAO,CAAC,KAAoB;AAC7C,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,gBAAgB,mBAAO,CAAC,KAAmB;AAC3C,qCAAoC,EAAE,qCAAqC,uBAAuB,EAAC;AACnG,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,wCAAuC,EAAE,qCAAqC,0BAA0B,EAAC;AACzG,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,2BAA2B,mBAAO,CAAC,KAA4B;AAC/D,oBAAoB,mBAAO,CAAC,KAAqB;AACjD,gBAAgB,mBAAO,CAAC,KAAiB;AACzC,kBAAkB,mBAAO,CAAC,EAAW;AACrC,kBAAkB,mBAAO,CAAC,KAAmB;AAC7C,kBAAkB,mBAAO,CAAC,KAAmB;AAC7C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,eAAe,mBAAO,CAAC,KAAgB;AACvC,uBAAuB,mBAAO,CAAC,IAAkB;AACjD,cAAc,mBAAO,CAAC,KAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C;AAClF,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAA8B,IAAI,kBAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,gBAAgB,aAAa;AAC7B,gDAAgD,SAAS,yCAAyC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA,6CAA6C,KAAK,gBAAgB,YAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,mDAAmD,UAAU,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAqC,KAAK;AAChD;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,EAAE,gBAAgB,EAAE,UAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA,gCAAgC,IAAI,WAAW,IAAI,IAAI,eAAe;AACtE;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,iBAAiB,SAAS,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA,uCAAuC,KAAK;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,4DAA4D,SAAS;AACrE;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;;;;;ACzmBA,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;ACbA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACsG;AACA;AACkB;AACtD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gCAAgC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,eAAe;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAiB;AACrD,yBAAyB;AACzB;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA;AACA;AACA;AACA,6CAA6C,sCAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,sCAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA,QAAQ,6BAAQ;AAChB,mBAAmB,wBAAO;AAC1B;AACA;AACA,YAAY,wBAAO;AACnB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA,wDAAwD,sCAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA,0CAA0C,sCAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sCAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,uBAAuB,mCAAkB;AACzC;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA,gCAAgC,sCAAiB;AACjD;AACA;AACA;AACA,wBAAwB,mCAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gDAAgD;AAChF;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E,mCAAmC,4CAA4C;AAC/E;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gCAAgC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,YAAY,gCAAW;AACvB;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB,QAAQ,gCAAW;AACnB,6BAA6B,6CAA6C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS,+BAAU,SAAS,IAAI,UAAU,+BAAU;AACjG,QAAQ,sCAAiB;AACzB;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,QAAQ,6BAAQ,EAAE,2BAAM;AACxB;AACA;AACA,aAAa,sCAAiB;AAC9B,aAAa,sCAAiB;AAC9B,YAAY,gCAAW,EAAE,2BAAM;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA,YAAY,6BAAY;AACxB;AACA;AACA,gBAAgB,gCAAW,EAAE,2BAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,8BAAS;AACxB;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,eAAe,sCAAiB;AAChC;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,4BAA4B,0BAA0B;AACtD,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB,+BAA+B,sCAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA,4BAA4B,6BAA6B;AACzD,2BAA2B,8BAAS;AACpC,4BAA4B,8BAAS;AACrC;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sCAAiB,iBAAiB,kCAAkC;AAC5E;AACA;AACA,aAAa,sCAAiB;AAC9B,iBAAiB,sCAAiB;AAClC;AACA,oBAAoB,gCAAW;AAC/B;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA,qBAAqB,sCAAiB;AACtC;AACA,wBAAwB,gCAAW;AACnC;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,4BAA4B,gCAAW;AACvC;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAiB;AACpC,oBAAoB,MAAI;AACxB;AACA;AACA,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA,gBAAgB,sCAAiB,cAAc,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA,wBAAwB,6BAAY;AACpC,yCAAyC,wBAAO;AAChD,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ,EAAE,2BAAM;AACxC;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAO;AACnB;AACA,4BAA4B,mBAAmB;AAC/C,8BAA8B,sCAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAiB;AAC/B;AACA,aAAa,sCAAiB;AAC9B;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB,aAAa;AACb,SAAS;AACT;AACA;AACA,YAAY,gCAAW;AACvB,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sCAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wBAAwB;AAC7D;AACA;AACA,4BAA4B,wBAAO;AACnC,qCAAqC,wCAAwC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAO;AACrC,6BAA6B,wBAAO;AACpC;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAO;AACrC,6BAA6B,wBAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA,4BAA4B,8BAAS;AACrC;AACA,gBAAgB,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA,oBAAoB,gCAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ,EAAE,2BAAM;AACxB;AACA;AACA,QAAQ,gCAAW,EAAE,2BAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW,EAAE,2BAAM;AAC3B;AACA;AACA,QAAQ,6BAAQ,EAAE,2BAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAoD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA,6CAA6C,sCAAiB;AAC9D,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sCAAiB;AACxE;AACA;AACA;AACA;AACA,2BAA2B,wBAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA,UAAU;AACV;AACA;AACA,YAAY,6BAAQ;AACpB;AACA,YAAY,6BAAQ;AACpB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB,mCAAmC,sCAAiB;AAClF;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB,mCAAmC,sCAAiB;AAClF;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,sCAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAoD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,iBAAiB,sCAAiB;AAClC;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,wCAAwC;AAC9F;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB,iBAAiB,oBAAoB;AACtE;AACA;AACA;AACA,YAAY,sCAAiB,iBAAiB,oBAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,yBAAyB,4BAAO;AAChC;AACA;AACA,yBAAyB,4BAAO;AAChC;AACA;AACA,aAAa,sCAAiB;AAC9B,uCAAuC;AACvC;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+CAA+C,6BAAQ,wBAAwB,gCAAW;AAC1F;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA,yBAAyB,sCAAiB,2BAA2B,sCAAiB;AACtF;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAAiB;AACnC,iBAAiB,sCAAiB;AAClC,iBAAiB,sCAAiB;AAClC,qBAAqB,sCAAiB;AACtC,uBAAuB,sCAAiB;AACxC,yBAAyB,sCAAiB;AAC1C,uBAAuB,sCAAiB;AACxC,sBAAsB,sCAAiB;AACvC;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA,QAAQ,2BAAM;AACd;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,+BAAU;AAClB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,sCAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0BAAS;AACS;;;;;ACh3EkF;AAC7C;AACN;AAC+C;AAC3F;AACA;AACA,eAAe,iCAAQ,GAAG,mBAAmB;AAC7C;AACP;AACA,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wBAAwB,0CAAkB;AACjD;AACA,aAAa,kCAAa;AAC1B;AACA;AACA;AACA,2BAA2B,SAAS,wBAAwB;AAC5D;AACA;AACA,8BAA8B,QAAQ,GAAG;AACzC;AACA;AACA;AACA;AACA,yBAAyB,qBAAqB;AAC9C,6BAA6B,6BAA6B;AAC1D,qBAAqB,8BAAS;AAC9B,kCAAkC;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB,8BAAS,GAAG,eAAE;AAC/B;AACA,aAAa,sCAAiB;AAC9B,qBAAqB,8BAAS;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA,kEAAkE,6BAA6B;AAC/F;AACA;AACA;AACA,kFAAkF,iCAAiC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,CAAC;AACM;AACP;AACA;AACA;AACA,sBAAsB,yCAAU,OAAO,4CAAa;AACpD,sBAAsB,0CAAW,OAAO,6CAAc;AACtD;AACA;;;;;;;;AC5HA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpCA,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACLA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAQ;AAC3B,eAAe,8CAA+B;AAC9C,kBAAkB,iDAAqC;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,SAAS;AACpD;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;;;;;;;;ACnZ1B;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACnED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AClIY;AACb;AACA,0BAA0B,mBAAO,CAAC,KAA6C;AAC/E,eAAe,mBAAO,CAAC,KAAwB;AAC/C,yBAAyB,mBAAO,CAAC,KAAmC;;AAEpE;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;AC1BY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACtBA,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,kBAAkB,mBAAO,CAAC,IAAgB;AAC1C,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC/Ba;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,WAAW,mBAAO,CAAC,KAAuB;AAC1C,cAAc,mBAAO,CAAC,KAA0B;AAChD,mBAAmB,mBAAO,CAAC,KAA6B;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACfA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9ED,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AClBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,WAAW,mBAAO,CAAC,KAA4B;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,0BAA0B,mBAAO,CAAC,KAAoC;AACtE,mCAAmC,mBAAO,CAAC,KAA+C;AAC1F,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,8DAA8D;AAClE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;AClCD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACrED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtFY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,0BAA0B;AACtD,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC7DY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,0CAA0C,KAAK,UAAU,IAAI,EAAE,WAAW;AAC1E,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACvBa;AACb;AACA,oBAAoB,iCAAiC;AACrD,wBAAwB,qCAAqC;AAC7D,2BAA2B,wCAAwC;AACnE,wBAAwB,qCAAqC;AAC7D,2BAA2B,wCAAwC;AACnE,wBAAwB,sCAAsC;AAC9D,gCAAgC,8CAA8C;AAC9E,mBAAmB,gCAAgC;AACnD,uBAAuB,oCAAoC;AAC3D,yBAAyB,uCAAuC;AAChE,uBAAuB,qCAAqC;AAC5D,iBAAiB,8BAA8B;AAC/C,8BAA8B,4CAA4C;AAC1E,oBAAoB,iCAAiC;AACrD,wBAAwB,sCAAsC;AAC9D,qBAAqB,kCAAkC;AACvD,uBAAuB,qCAAqC;AAC5D,mBAAmB,gCAAgC;AACnD,kBAAkB,+BAA+B;AACjD,gBAAgB,6BAA6B;AAC7C,sBAAsB,oCAAoC;AAC1D,wBAAwB,sCAAsC;AAC9D,kBAAkB,+BAA+B;AACjD,0BAA0B,yCAAyC;AACnE,oBAAoB;AACpB;;;;;;;;AC3BA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AC9GA,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,WAAW,QAAQ,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;ACtCa;;AAEb,gBAAgB,mBAAO,CAAC,KAAa;AACrC,YAAY,mBAAO,CAAC,KAAS;AAC7B,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;AACA;AACA;AACA;;;;;;;;ACVA,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACjBA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACNA,eAAe,mBAAO,CAAC,KAAa;AACpC,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,wBAAwB,mBAAO,CAAC,KAAsB;AACtD,eAAe,mBAAO,CAAC,KAAa;AACpC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvEA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC3EY;AACb,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,wBAAwB,mBAAO,CAAC,KAAmC;;AAEnE;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9FD,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9EY;AACb,oBAAoB,mBAAO,CAAC,KAA8B;;AAE1D;AACA;AACA;AACA;;;;;;;;ACNA;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;;;;;;;;ACzBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/LD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxHD,eAAe,KAAiD,kBAAkB,mBAAO,CAAC,KAAK,EAAE,mBAAO,CAAC,KAAW,GAAG,CAAoL,CAAC,oBAAoB,WAAW,wBAAwB,aAAa,sCAAsC,SAAS,oBAAoB,uBAAuB,wBAAwB,UAAU,eAAe,YAAY,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,QAAQ,kCAAkC,cAAc,0BAA0B,WAAW,WAAW,8BAA8B,kBAAkB,QAAQ,OAAO,+DAA+D,WAAW,wBAAwB,cAAc,sBAAsB,WAAW,iCAAiC,OAAO,wBAAwB,QAAQ,wBAAwB,QAAQ,+BAA+B,aAAa,kCAAkC,2BAA2B,cAAc,wBAAwB,iBAAiB,wBAAwB,mBAAmB,yBAAyB,oBAAoB,OAAO,oFAAoF,iBAAiB,OAAO,sDAAsD,WAAW,mBAAmB,0DAA0D,qBAAqB,oBAAoB,OAAO,sGAAsG,QAAQ,iBAAiB,kBAAkB,oBAAoB,WAAW,0OAA0O,4CAA4C,uCAAuC,2BAA2B,cAAc,EAAE,UAAU,qBAAqB,uBAAuB,uBAAuB,WAAW,0BAA0B,iGAAiG,EAAE,sBAAsB,WAAW,mDAAmD,YAAY,gDAAgD,6BAA6B,iCAAiC,wBAAwB,4BAA4B,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,8EAA8E,gBAAgB,aAAa,oGAAoG,gGAAgG,cAAc,0BAA0B,WAAW,WAAW,0DAA0D,OAAO,qEAAqE,UAAU,uBAAuB,qBAAqB,sBAAsB,+FAA+F,yBAAyB,iBAAiB,OAAO,0CAA0C,oBAAoB,kFAAkF,UAAU,kBAAkB,8CAA8C,sBAAsB,6EAA6E,0BAA0B,IAAI,6CAA6C,SAAS,oCAAoC,wDAAwD,oBAAoB,wCAAwC,QAAQ,oEAAoE,oBAAoB,mBAAmB,yBAAyB,6WAA6W,oJAAoJ,mDAAmD,OAAO,kCAAkC,qBAAqB,mCAAmC,wCAAwC,OAAO,YAAY,2FAA2F,sBAAsB,qBAAqB,OAAO,aAAa,iRAAiR,WAAW,kCAAkC,qCAAqC,kBAAkB,OAAO,kFAAkF,MAAM,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,iBAAiB,OAAO,wBAAwB,oBAAoB,uFAAuF,UAAU,kBAAkB,0BAA0B,mBAAmB,0CAA0C,uBAAuB,OAAO,4BAA4B,eAAe,uIAAuI,OAAO,iBAAiB,qCAAqC,kBAAkB,kCAAkC,OAAO,gCAAgC,qBAAqB,kBAAkB,OAAO,oBAAoB,iBAAiB,wBAAwB,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,0CAA0C,WAAW,0BAA0B,mBAAmB,sBAAsB,OAAO,+BAA+B,oDAAoD,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,uCAAuC,WAAW,yBAAyB,mBAAmB,uCAAuC,sBAAsB,OAAO,uEAAuE,qCAAqC,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,wCAAwC,kBAAkB,mBAAmB,sBAAsB,OAAO,6BAA6B,qCAAqC,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,4CAA4C,WAAW,WAAW,yBAAyB,WAAW,wBAAwB,UAAU,uBAAuB,QAAQ,sBAAsB,iIAAiI,iBAAiB,OAAO,UAAU,WAAW,mBAAmB,WAAW,gCAAgC,SAAS,0DAA0D,gBAAgB,KAAK,QAAQ,sBAAsB,kBAAkB,oBAAoB,8BAA8B,UAAU,qBAAqB,WAAW,sBAAsB,UAAU,IAAI,mBAAmB,8DAA8D,sBAAsB,iEAAiE,0BAA0B,IAAI,6CAA6C,SAAS,oCAAoC,yDAAyD,mBAAmB,kBAAkB,0DAA0D,OAAO,kCAAkC,qBAAqB,mCAAmC,0BAA0B,OAAO,4BAA4B,aAAa,EAAE,sHAAsH,aAAa,kCAAkC,8MAA8M,IAAI,2EAA2E,OAAO,iBAAiB,qBAAqB,kCAAkC,yGAAyG,0BAA0B,OAAO,4BAA4B,aAAa,EAAE,uBAAuB,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,4CAA4C,WAAW,WAAW,wBAAwB,WAAW,uBAAuB,UAAU,uBAAuB,QAAQ,sBAAsB,iIAAiI,iBAAiB,OAAO,UAAU,QAAQ,sBAAsB,kBAAkB,oBAAoB,8BAA8B,UAAU,qBAAqB,sEAAsE,6CAA6C,mDAAmD,IAAI,mBAAmB,8DAA8D,sBAAsB,iEAAiE,0BAA0B,IAAI,6CAA6C,SAAS,oCAAoC,yDAAyD,mBAAmB,gBAAgB,8DAA8D,OAAO,kCAAkC,qBAAqB,mCAAmC,0BAA0B,OAAO,2BAA2B,eAAe,iDAAiD,0BAA0B,aAAa,+BAA+B,gNAAgN,GAAG,0DAA0D,OAAO,iBAAiB,qBAAqB,kCAAkC,4EAA4E,0BAA0B,OAAO,2BAA2B,eAAe,uBAAuB,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,yCAAyC,WAAW,2BAA2B,mBAAmB,sBAAsB,OAAO,8BAA8B,QAAQ,gCAAgC,gBAAgB,YAAY,EAAE,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,2DAA2D,WAAW,uBAAuB,mBAAmB,uCAAuC,sBAAsB,OAAO,4BAA4B,wBAAwB,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,uBAAuB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,uBAAuB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,MAAM,iEAAiE,YAAY,iBAAiB,aAAa,sCAAsC,SAAS,iCAAiC,yCAAyC,wDAAwD,mDAAmD,gEAAgE,4EAA4E,mCAAmC,oDAAoD,gBAAgB,GAAG,oCAAoC,gBAAgB,YAAY,2GAA2G,+EAA+E,uCAAuC,gCAAgC,GAAG,uBAAuB,yKAAyK,+KAA+K,qDAAqD,iEAAiE,EAAE,mCAAmC,yCAAyC,oBAAoB,GAAG,qDAAqD,WAAW,iBAAiB,YAAY,qCAAqC,OAAO,yBAAyB,WAAW,+BAA+B,iBAAiB,aAAa,sBAAsB,SAAS,6BAA6B,4BAA4B,oBAAoB,sBAAsB,eAAe,+BAA+B,cAAc,kGAAkG,cAAc,mBAAmB,6BAA6B,gCAAgC,gEAAgE,EAAE,2CAA2C,qBAAqB,MAAM,qCAAqC,cAAc,KAAK,WAAW,qBAAqB,sCAAsC,SAAS,iBAAiB,cAAc,KAAK,iBAAiB,mBAAmB,YAAY,WAAW,KAAK,sBAAsB,iFAAiF,IAAI,iBAAiB,cAAc,iBAAiB,oDAAoD,YAAY,8CAA8C,SAAS,aAAa,kBAAkB,kBAAkB,iCAAiC,cAAc,6CAA6C,yBAAyB,SAAS,OAAO,OAAO,YAAY,0BAA0B,gBAAgB,YAAY,WAAW,KAAK,qBAAqB,MAAM,SAAS,YAAY,iBAAiB,2BAA2B,KAAK,iBAAiB,kCAAkC,KAAK,iBAAiB,iBAAiB,4BAA4B,SAAS,0BAA0B,gBAAgB,iBAAiB,KAAK,WAAW,KAAK,wCAAwC,oCAAoC,qCAAqC,eAAe,EAAE,SAAS,gBAAgB,sBAAsB,qIAAqI,oBAAoB,gIAAgI,+CAA+C,KAAK,iQAAiQ,wCAAwC,qBAAqB,cAAc,sFAAsF,cAAc,sCAAsC,qDAAqD,gBAAgB,mCAAmC,uBAAuB,EAAE,gBAAgB,cAAc,uBAAuB,+CAA+C,QAAQ,0XAA0X,gEAAgE,uCAAuC,qDAAqD,sEAAsE,gBAAgB,gBAAgB,WAAW,wDAAwD,2BAA2B,yCAAyC,0BAA0B,sBAAsB,6BAA6B,uCAAuC,KAAK,KAAK,aAAa,6BAA6B,2CAA2C,yBAAyB,KAAK,mBAAmB,2EAA2E,wBAAwB,+IAA+I,QAAQ,2CAA2C,qIAAqI,aAAa,0BAA0B,iBAAiB,WAAW,KAAK,WAAW,6BAA6B,eAAe,cAAc,WAAW,0BAA0B,YAAY,iBAAiB,iBAAiB,kBAAkB,4BAA4B,2CAA2C,EAAE,oBAAoB,iBAAiB,mKAAmK,iBAAiB,YAAY,qCAAqC,OAAO,yBAAyB,WAAW,+BAA+B,iBAAiB,aAAa,YAAY,2CAA2C,gBAAgB,EAAE,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,qCAAqC,WAAW,mCAAmC,oBAAoB,qCAAqC,EAAE,iBAAiB,aAAa,OAAO,sBAAsB,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,MAAM,wFAAwF,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,0EAA0E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,6EAA6E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,0EAA0E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,2EAA2E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,0EAA0E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,yEAAyE,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,4EAA4E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,wEAAwE,YAAY,iBAAiB,aAAa,MAAM,iBAAiB,kCAAkC,kBAAkB,eAAe,YAAY,4BAA4B,WAAW,gBAAgB,4BAA4B,kBAAkB,iBAAiB,qBAAqB,eAAe,sBAAsB,kDAAkD,0DAA0D,mCAAmC,qEAAqE,qFAAqF,gDAAgD,SAAS,mCAAmC,SAAS,EAAE,qKAAqK,GAAG,eAAe,YAAY,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,yBAAyB,0BAA0B,kBAAkB,0CAA0C,IAAI,sBAAsB,2DAA2D,kBAAkB,mBAAmB,iBAAiB,aAAa,MAAM,iBAAiB,4BAA4B,QAAQ,OAAO,2BAA2B,sBAAsB,kBAAkB,oBAAoB,sBAAsB,kBAAkB,0BAA0B,sCAAsC,yBAAyB,kBAAkB,uBAAuB,gBAAgB,mBAAmB,cAAc,eAAe,gDAAgD,oCAAoC,WAAW,sBAAsB,qBAAqB,gBAAgB,gBAAgB,wBAAwB,aAAa,kBAAkB,mBAAmB,eAAe,yBAAyB,iBAAiB,kCAAkC,cAAc,+BAA+B,cAAc,iBAAiB,yCAAyC,cAAc,2CAA2C,cAAc,4CAA4C,cAAc,0CAA0C,cAAc,0CAA0C,cAAc,6CAA6C,cAAc,0CAA0C,cAAc,sBAAsB,mBAAmB,mDAAmD,cAAc,kDAAkD,gBAAgB,kBAAkB,wDAAwD,gBAAgB,uBAAuB,gBAAgB,kBAAkB,6BAA6B,iBAAiB,4BAA4B,8BAA8B,iBAAiB,gBAAgB,oBAAoB,yBAAyB,4BAA4B,4BAA4B,wBAAwB,kCAAkC,eAAe,WAAW,YAAY,iBAAiB,qBAAqB,0CAA0C,kCAAkC,0BAA0B,kDAAkD,8BAA8B,gCAAgC,wBAAwB,uBAAuB,kBAAkB,UAAU,SAAS,OAAO,QAAQ,YAAY,WAAW,kBAAkB,eAAe,kCAAkC,kBAAkB,QAAQ,UAAU,WAAW,4BAA4B,oBAAoB,gCAAgC,wBAAwB,uCAAuC,iCAAiC,yBAAyB,6BAA6B,WAAW,WAAW,YAAY,kBAAkB,SAAS,OAAO,UAAU,uFAAuF,qFAAqF,4BAA4B,oBAAoB,wCAAwC,QAAQ,WAAW,mCAAmC,uFAAuF,qFAAqF,yBAAyB,kBAAkB,eAAe,qBAAqB,YAAY,UAAU,gCAAgC,YAAY,eAAe,0BAA0B,kBAAkB,gCAAgC,WAAW,+BAA+B,UAAU,sBAAsB,eAAe,qBAAqB,iBAAiB,aAAa,wBAAwB,cAAc,qNAAqN,eAAe,8BAA8B,qNAAqN,4BAA4B,qCAAqC,oBAAoB,EAAE,iBAAiB,4FAA4F,eAAe,wCAAwC,SAAS,EAAE,mBAAmB,8BAA8B,qDAAqD,0BAA0B,6CAA6C,sBAAsB,6DAA6D,YAAY,eAAe,SAAS,iBAAiB,iCAAiC,iBAAiB,YAAY,UAAU,sBAAsB,mBAAmB,iDAAiD,kBAAkB,cAAc,4BAA4B,YAAY,qBAAqB,2DAA2D,QAAQ;;;;;;;ACAzh5B,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnCa;AACb,kBAAkB,mBAAO,CAAC,KAA2B;AACrD,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,oBAAoB;AACnJ,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAQ;AAC/B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,oBAAoB;AACpB,gBAAgB,SAAS,sCAAsC,QAAQ;AACvE;AACA,yBAAyB;AACzB,gBAAgB,qBAAqB;AACrC,iCAAiC,QAAQ,oBAAoB,YAAY;AACzE,iCAAiC,QAAQ;AACzC;AACA;AACA,YAAY,KAAK;AACjB,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,mBAAmB;AACnB;AACA,YAAY,KAAK;AACjB,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,+BAA+B,yBAAyB,wEAAwE,wBAAwB;AACxJ;AACA,wBAAwB;AACxB,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB,GAAG,EAAE;AACxE,mCAAmC,IAAI,mEAAmE,IAAI;AAC9G,uCAAuC,IAAI,oCAAoC,iBAAiB,GAAG,QAAQ;AAC3G;AACA,2CAA2C,IAAI;AAC/C,2CAA2C,IAAI;AAC/C;AACA,KAAK;AACL;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B,yBAAyB,0EAA0E,IAAI,yBAAyB,wBAAwB,QAAQ,IAAI;AACnM,iCAAiC,uBAAuB;AACxD;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA,0CAA0C,mBAAmB,GAAG,KAAK;AACrE;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA,mCAAmC;AACnC;AACA;AACA,gDAAgD;AAChD,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW,IAAI,cAAc;AAC1D;AACA,gCAAgC,UAAU,EAAE,wDAAwD;AACpG;AACA;AACA;AACA,2BAA2B,eAAe,iBAAiB,IAAI,0BAA0B;AACzF,uEAAuE,cAAc,GAAG,QAAQ;AAChG;AACA,wCAAwC,QAAQ,EAAE,sDAAsD;AACxG;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD,YAAY,iCAAiC;AAC7C,YAAY,+CAA+C;AAC3D,8HAA8H;AAC9H;AACA;AACA;AACA;AACA,qFAAqF,aAAa,EAAE,WAAW;AAC/G;AACA;AACA;AACA;AACA;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK4B;AAClC,CAAC;AACD,8BAA8B;AAC9B;;AAEA;AACA,yCAAyC,0BAAmB,EAAE,8BAAmB;;AAEjF;;AAEA;AACA,8BAAmB,GAAG,0BAAmB;AACzC,0BAA0B;AAC1B,CAAC;;AAED;AACA,mBAAmB,8BAAmB;AACtC,wCAAwC,8BAAmB;AAC3D;AACA,aAAa,8BAAmB;AAChC,kCAAkC,8BAAmB;AACrD;AACA,iBAAiB,8BAAmB;AACpC,kCAAkC,8BAAmB;AACrD,CAAC;AACD;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA,WAAW,oBAAoB;AAC/B,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,wDAAwD;;AAExD,uCAAuC;;AAEvC;AACA;AACA,kCAAkC;;AAElC;AACA,2DAA2D;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;AACD,wBAAwB,2BAA2B,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;;;AAIpW;AACA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA,KAAK;AACL,IAAI;;;AAGJ;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;AACD,iCAAiC,2BAA2B,2EAA2E,2CAA2C,wBAAwB,OAAO,2CAA2C,mIAAmI;;AAE/X,kDAAkD,0CAA0C;;AAE5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;;AAE/P,8DAA8D,sEAAsE,8DAA8D;;AAElM,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG;;AAEzU,iCAAiC,4EAA4E,iBAAiB,aAAa;;AAE3I,iCAAiC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,2DAA2D,OAAO,yCAAyC;;AAEpX,kDAAkD,mFAAmF,eAAe;;AAEpJ,wCAAwC,uBAAuB,yFAAyF;;AAExJ,uCAAuC,wEAAwE,0CAA0C,8CAA8C,MAAM,uEAAuE,IAAI,eAAe,YAAY;;AAEnT,8BAA8B,gGAAgG,mDAAmD;;;;;;;AAOjL;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA,aAAa,4CAA4C;AACzD,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAA4C;AAC3D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,QAAQ;AACvB;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;;AAEP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;AAErE,cAAc,gCAAmB;;AAEjC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;AAErE,SAAS,gCAAmB;AAC5B,eAAe,gCAAmB;;AAElC;AACA;AACA;AACA;AACA,WAAW,4CAA4C;AACvD,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,yCAAyC;AACzC;AACA;;AAEA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gCAAmB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAmB;AAC9B;AACA,0BAA0B,4BAA4B;AACtD,0BAA0B;AAC1B,YAAY,gCAAmB,aAAa,WAAW;AACvD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW,gCAAmB;AAC9B;AACA,gBAAgB,gCAAmB,wBAAwB,gCAAmB;AAC9E,oDAAoD,wCAAwC;AAC5F;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW,gCAAmB,2BAA2B;AACzD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB,gCAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;ACz3BD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC7DY;AACb,YAAY,mBAAO,CAAC,KAAoB;AACxC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,aAAa,mBAAO,CAAC,IAA4B;AACjD,qBAAqB,mBAAO,CAAC,KAAsC;AACnE,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;AC5F4E;AACpB;AAClD,gCAAgC,qFAAkB;AACzD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACO,sBAAsB,qFAAkB;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;AC/Ca;;AAEb,WAAW,oBAAoB;AAC/B;;;;;;;;ACHA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/HD,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AChCa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;;AAEA;;;;;;;;ACNA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACjED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA,yDAAyD;AACzD;AACA;AACA;AACA,2GAA2G,EAAE;AAC7G;AACA;AACA;AACA;;AAEA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;AACA,kGAAkG,gCAAgC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uGAAuG;AAC7H;AACA,kCAAkC;AAClC,kBAAkB,uDAAuD;AACzE;AACA;AACA;AACA,sCAAsC,yBAAyB;AAC/D,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,mBAAmB,qBAAM,4BAA4B,qBAAM;AAC3D;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA,2BAA2B,iCAAiC;AAC5D;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB,uBAAuB;AACvB,yBAAyB;AACzB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,aAAa;AACb;AACA;;AAEA;AACA,sBAAsB;AACtB,mCAAmC,OAAO;AAC1C,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,iCAAiC;AACjC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,qCAAqC;AACrC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,iCAAiC;AACjC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,qCAAqC;AACrC,MAAM;AACN;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB,GAAG;AACzB;;AAEA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;;AAEA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA,2BAA2B;AAC3B,8BAA8B,YAAY;AAC1C,wEAAwE,YAAY;AACpF;AACA;AACA,sBAAsB;AACtB,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/hBa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;;;;;;AC5FA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAA0B,CAAC,0BAAY,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC1D,MAAM,KAAK,EAIN;AACL,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA,+CAA+C,iDAAiD;AAChG,kBAAkB;AAClB,+CAA+C,WAAW;AAC1D;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;AC5CY;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;ACHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,mBAAO,CAAC,KAAU;AACnC;AACA,kBAAe;AACf;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;ACrB6E;AACpB;AAClD,0BAA0B,qFAAkB;AACnD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,yBAAyB,qFAAkB;AAClD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACrGD,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC3BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;ACpGD,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC6G;AACjC;AACoB;AACjD;AAC/C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AAC9B,yBAAyB,oEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC,4EAAY,iBAAiB,qCAAqC;AACpG;AACA;AACA;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA,aAAa,wEAAQ,OAAO,wEAAQ;AACpC;AACA,+DAA+D,8EAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yCAAyC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA,YAAY,2EAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2EAAW;AAC/B;AACA;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA,wBAAwB,2EAAW;AACnC;AACA;AACA,wBAAwB,wEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qEAAW;AAC1C;AACA;AACA;AACA,yBAAyB,wEAAQ,OAAO,wEAAQ;AAChD;AACA,8CAA8C,8EAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAY;AACpC;AACA;AACA,wBAAwB,wEAAY;AACpC,wBAAwB,2EAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACO;;;;;;;;AC9WlB;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACjID,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACvMD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,UAAU;AACrB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,UAAU;AACrB;AACA;AACA,SAAiB;AACjB;AACA;;;;;;;;ACjHA,oBAAoB,mBAAO,CAAC,KAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;AC1Ba;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,aAAa,mBAAO,CAAC,KAA+B;AACpD,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,cAAc,oCAA8C;AAC5D,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBa;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;ACpDa;AACb,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,qBAAqB,mBAAO,CAAC,KAAqC;;AAElE;AACA,0DAA0D,cAAc;AACxE,0DAA0D,cAAc;AACxE;AACA;;;;;;;;ACRA,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;ACzBa;AACb;AACA;AACA;AACA,WAAW;AACX;;;;;;;;;ACLa;;AAEb,YAAY,mBAAO,CAAC,KAAS;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B;;AAExE;AACA,wCAAwC;;AAExC;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;;AAEA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,wBAAwB;AACxB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;ACvQA,WAAW,mBAAO,CAAC,KAAS;AAC5B,gBAAgB,mBAAO,CAAC,KAAc;AACtC,UAAU,mBAAO,CAAC,KAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACrFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAW;AACrC;AACA;AACA,gDAAgD,KAAK,UAAU,OAAO;AACtE;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACXA,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AChBa;;AAEb;AACA,oBAAoB,mBAAO,CAAC,KAAS;;AAErC,WAAW,aAAa;AACxB;AACA,yCAAyC;AACzC,qCAAqC;AACrC,8CAA8C;AAC9C,0CAA0C;;AAE1C;AACA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACnFY;AACb;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLa;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;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;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;ACnEA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC5GY;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,UAAU,gCAAuC;AACjD,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;ACrBa;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,oBAAoB,mBAAO,CAAC,KAAiB;AAC7C,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;ACjFA,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;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;;;;;;;;;AChCY;;AAEZ;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;;;;;;;;;AC7Ba;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA2B;AACpD,+BAA+B,mBAAO,CAAC,IAAyC;AAChF,qBAAqB,8BAAgD;AACrE,aAAa,mBAAO,CAAC,KAA+B;AACpD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,wBAAwB,mBAAO,CAAC,KAAkC;AAClE,8BAA8B,mBAAO,CAAC,KAAwC;AAC9E,4BAA4B,mBAAO,CAAC,KAAsC;AAC1E,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wEAAwE,IAAI;AAChF;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC1EY;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,UAAU,mBAAO,CAAC,KAAkB;;AAEpC;;AAEA;AACA;AACA;;;;;;;;;ACRa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,YAAY,mBAAO,CAAC,KAAwB;AAC5C,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,kFAAkF;AACtF;AACA,CAAC;;;;;;;;;;ACTY;AACb,6BAA6C,EAAE,aAAa,CAAC;AAC7D;AACA;AACA,SAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9EY;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,+BAA+B,mBAAO,CAAC,IAAyC;;AAEhF;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;ACVA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC7Ba;;AAEb,qBAAqB,mBAAO,CAAC,KAAkB;;AAE/C;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,2BAA2B,GAAG,oBAAoB;AAChF,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC,4BAA4B,sEAAsE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc,EAAE,oCAAoC;AACpG,kCAAkC,iBAAiB,GAAG,QAAQ;AAC9D;AACA;AACA;AACA,gDAAgD,cAAc,EAAE,oCAAoC,EAAE,uCAAuC;AAC7I,kCAAkC,iBAAiB,GAAG,QAAQ,GAAG,uCAAuC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,8CAA8C,+DAA+D;AAC7G;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA,gBAAgB,+BAA+B;AAC/C,6DAA6D,QAAQ,EAAE,qCAAqC;AAC5G;AACA,oDAAoD,UAAU,EAAE,kEAAkE;AAClI,2DAA2D,SAAS;AACpE;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,0CAA0C,uEAAuE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,yCAAyC;AACzC;AACA,2BAA2B;AAC3B;;;;;;;;AChFa;AACb,wBAAwB,mBAAO,CAAC,KAAmC;;AAEnE;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACO,SAAS,aAAQ;AACxB;AACA;AACA,oBAAoB,sBAAsB,gBAAW,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,yDAAyD;AACzD;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO,SAAS,aAAQ;AACxB;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACO,SAAS,UAAK;AACrB,SAAS,sBAAiB;AAC1B;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA,iBAAiB,sBAAiB;AAClC,iBAAiB,aAAQ;AACzB,gBAAgB,WAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACO,SAAS,WAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAQ;AACtD,oBAAoB,aAAQ;AAC5B;AACA;AACA,wBAAwB,WAAM,UAAU;AACxC;AACA;AACA,2CAA2C,WAAM,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAM;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO,SAAS,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO,SAAS,gBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA,QAAQ,sBAAiB;AACzB;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,gCAAgC,sBAAsB,KAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,WAAW,sBAAsB;AACjC;AACA;AACO;AACP;AACA,qDAAqD,sBAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,KAAK;AAChB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;;AC/dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,oBAAoB,QAAQ;AAC5B,eAAe,aAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,eAAe,aAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,6CAA6C;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,eAAe;AAChC;AACA;AACA;AACA,kBAAkB,aAAQ;AAC1B,sBAAsB,aAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB,sCAAsC,aAAQ,4BAA4B,aAAQ;AAClF,iBAAiB,gBAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,cAAc;AAC/B;AACA;AACA,oBAAoB;AACpB;AACA,aAAa,gBAAW;AACxB;AACA,gCAAgC,aAAQ;AACxC,gCAAgC,aAAQ;AACxC,yBAAyB,aAAQ;AACjC,iBAAiB,gBAAW;AAC5B,wEAAwE,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACO;AACP,WAAW,aAAQ;AACnB;;;AC7WA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,MAAM;AACrB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,CAAC,kCAAkC;;;AC3MkB;AACN;AACuB;AACxB;AACM;AACpD;AACA;AACA;AACO,oBAAoB,mFAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;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,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B,wBAAwB,aAAQ;AAChC;AACA,8BAA8B,WAAW,kBAAI;AAC7C,YAAY,QAAQ;AACpB,qBAAqB,kBAAI;AACzB;AACA;AACA,YAAY,kBAAI,iFAAiF,QAAQ;AACzG,sCAAsC,QAAQ,KAAK,aAAQ,gCAAgC,kBAAI;AAC/F,YAAY,gBAAW;AACvB,YAAY,UAAU;AACtB;AACA;AACA,yBAAyB,kBAAI;AAC7B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C,gBAAgB,WAAM,GAAG,eAAe,UAAM,0CAA0C,UAAM;AAC9F;AACA,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,oDAAoD,aAAQ,WAAW,kBAAI;AAC3E;AACA;AACA,+EAA+E,kBAAI,wBAAwB,kBAAI;AAC/G;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,kDAAkD,aAAQ,aAAa,kBAAI;AAC3E;AACA;AACA,6EAA6E,kBAAI,yBAAyB,kBAAI;AAC9G;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D,4BAA4B,aAAQ,6BAA6B,aAAQ;AACzE;AACA;AACA;AACA,4CAA4C,QAAQ,KAAK,aAAQ,uBAAuB,aAAQ;AAChG;AACA;AACA;AACA,iDAAiD,aAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,eAAe;AAC9B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,oCAAoC,kBAAI;AACxC;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,GAAG;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAM,2BAA2B,kBAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACqB;;;ACzStB;AACiG;AACnC;AACf;AACM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,uBAAuB,WAAM,GAAG;AAChC;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B;AACA,gCAAgC,QAAQ,KAAK,WAAM,GAAG;AACtD,YAAY,UAAM,0CAA0C,UAAM;AAClE,kCAAkC,QAAQ,KAAK,aAAQ,gCAAgC,kBAAI,kEAAkE,mBAAmB;AAChL,iCAAiC,QAAQ,KAAK,aAAQ;AACtD;AACA,+BAA+B,QAAQ,KAAK,aAAQ;AACpD;AACA;AACA,iCAAiC,kBAAI;AACrC,uBAAuB,kBAAI;AAC3B,iBAAiB,gBAAW;AAC5B;AACA;AACA;AACA;AACA,YAAY,WAAM,WAAW,kBAAI;AACjC;AACA;AACA,iBAAiB,QAAQ;AACzB,gCAAgC,kBAAI;AACpC;AACA;AACA;AACA,iBAAiB,gBAAW;AAC5B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA,wCAAwC,QAAQ;AAChD,iEAAiE,kBAAI;AACrE;AACA,iBAAiB,QAAQ;AACzB,kDAAkD;AAClD,iCAAiC,kBAAI;AACrC,iCAAiC,kBAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD;AACA,oBAAoB,kBAAI;AACxB;AACA;AACA,0BAA0B,gBAAW;AACrC;AACA;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA,iDAAiD,gBAAW;AAC5D;AACA;AACA;AACA,iBAAiB,gBAAW,YAAY,gBAAW;AACnD;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAM;AACd,QAAQ,WAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA,kCAAkC,kBAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,2BAA2B;AAC1C,eAAe,eAAe;AAC9B,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,YAAY,gBAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,qBAAqB,UAAM,2BAA2B,kBAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,oBAAoB,sBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;AC7XuB;AACM;AACoC;AACtC;AACL;AAC9C,IAAI,sBAAU;AACd;AACA,IAAI,sBAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B,yBAAyB,UAAM,mDAAmD,UAAM,kCAAkC,QAAQ;AAClI;AACA,YAAY,QAAQ;AACpB,qBAAqB,kBAAI;AACzB;AACA;AACA,YAAY,kBAAI,iFAAiF,QAAQ;AACzG;AACA;AACA,YAAY,gBAAW;AACvB,YAAY,UAAU;AACtB;AACA;AACA,yBAAyB,kBAAI;AAC7B,6BAA6B,WAAW,kBAAI,0EAA0E;AACtH,gDAAgD,kBAAI;AACpD;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,kBAAkB,UAAM,0CAA0C,UAAM;AACxE,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,uCAAuC,aAAQ,WAAW,kBAAI;AAC9D;AACA;AACA,kEAAkE,kBAAI,YAAY,sBAAU,EAAE,kBAAI;AAClG;AACA,yCAAyC,UAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC,4CAA4C,aAAQ,aAAa,kBAAI;AACrE;AACA;AACA,mFAAmF,sBAAU,EAAE,kBAAI;AACnG;AACA,yDAAyD,UAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD,4BAA4B,aAAQ;AACpC,4BAA4B,aAAQ;AACpC,qDAAqD,UAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAM,eAAe,QAAQ;AAClF,4BAA4B,aAAQ,kCAAkC,aAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,aAAQ;AAC7D;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,2CAA2C,sBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA,iBAAiB,gBAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAU;AACvC;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,gBAAgB;AAC/B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA,2BAA2B;AAC3B,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAW;AAC3D;AACA;AACA;AACA,oCAAoC,gBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,iBAAiB,QAAQ;AACzB;AACA;AACA,gBAAgB,UAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,sBAAsB;AACrC,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,qCAAqC,EAAE;AACvC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;ACxYkD;AACnB;AACN;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B,6BAA6B;AAC7B,aAAa,kBAAI;AACjB,YAAY,WAAM,eAAe,kBAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAM,eAAe,kBAAI;AACrC;AACA,sBAAsB,aAAQ;AAC9B,yBAAyB,UAAM,mDAAmD,UAAM,iCAAiC,QAAQ;AACjI,mCAAmC,UAAM;AACzC;AACA;AACA,aAAa,QAAQ;AACrB,4BAA4B,kBAAI;AAChC;AACA,iEAAiE,kBAAI;AACrE,kDAAkD;AAClD,qCAAqC,kBAAI;AACzC,qCAAqC,kBAAI;AACzC;AACA;AACA;AACA,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD;AACA,gBAAgB,kBAAI,iEAAiE,aAAQ;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,gBAAgB;AAC/B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAM;AAC1B,oBAAoB,UAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACuB;;;ACrIxB;AACuE;AACvE;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA,mDAAmD,0CAA0C;AAC7F;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA,yDAAyD,0CAA0C;AACnG;AACA;AACA;AACA,qDAAqD,kCAAkC;AACvF;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAQ;AAChC;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAQ;AAChC;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5D,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;ACrN+B;AACI;AACP;AACI;AACR;AACQ;AACd;AACtC;AACA;AACA;AACO,uBAAuB,QAAQ;AACtC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,2BAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gCAAgC;AACrF;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA;AACA,yDAAyD,cAAc;AACvE;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,kDAAkD,6BAA6B;AAC/E;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB,UAAU;AAC3B;AACA;AACA,eAAe,UAAU,4CAA4C,iCAAiC;AACtG;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,eAAe,YAAY,iDAAiD;AAC5E;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB,UAAU;AAC3B;AACA;AACA,eAAe,UAAU,4CAA4C,iCAAiC;AACtG;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,UAAU;AAC3B;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,eAAe,YAAY,8CAA8C,aAAa;AACtF;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,mBAAmB;AAClC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,eAAe,kBAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,eAAe,kBAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,eAAe,kBAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,CAAC;AAC+B;AAChC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACO;AACP;AACA,kDAAkD,0BAA0B;AAC5E;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACO;AACP;AACA,kDAAkD,qCAAqC;AACvF;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACO;AACP,6BAA6B;AAC7B;AACA,kDAAkD,wBAAwB;AAC1E;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP,oBAAoB,kBAAQ,4CAA4C,2BAAM;AAC9E,qBAAqB,kBAAQ,sCAAsC,2BAAM;AACzE,oBAAoB,aAAQ;AAC5B,sBAAsB,QAAQ,KAAK,aAAQ,+BAA+B,aAAQ;AAClF,kBAAkB,kBAAQ;AAC1B,WAAW,WAAM,cAAc,kBAAQ,2CAA2C,iBAAiB,kBAAQ,+BAA+B;AAC1I;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP,WAAW,kBAAQ,2CAA2C,2BAAM;AACpE;;;AChSA;AAC8D;AACU;AACM;AAChC;AACI;AACZ;AACtC,IAAI,gBAAM;AACH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAI,kBAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAM,YAAY,EAAE;AACnD,uCAAuC,gBAAM,SAAS,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,oCAAoC,EAAE,GAAG,EAAE;AAC3C,mCAAmC,EAAE,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,oCAAoC,EAAE,GAAG,EAAE;AAC3C,mCAAmC,EAAE,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,sCAAsC;AACtC,kCAAkC,EAAE;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,yCAAyC;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,oDAAoD,oBAAoB;AACxE,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA,6BAA6B,aAAQ;AACrC;AACA,mCAAmC,aAAQ;AAC3C,mCAAmC,aAAQ;AAC3C,sDAAsD,EAAE,uBAAuB,EAAE;AACjF;AACA;AACA;AACA,6BAA6B,aAAQ;AACrC;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,2BAA2B,UAAM,kCAAkC,QAAQ;AAC3E;AACA,gCAAgC,aAAQ;AACxC;AACA;AACA,6BAA6B,QAAQ;AACrC,6BAA6B,aAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA,eAAe,aAAQ;AACvB,wFAAwF,aAAQ;AAChG;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,8BAA8B,aAAQ;AACtC;AACA,8BAA8B,aAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,iDAAiD,aAAQ;AACzD,YAAY,aAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,yCAAyC;AACzC;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,YAAY,sBAAiB;AAC7B,4BAA4B,WAAM,GAAG;AACrC,kCAAkC,sBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA,YAAY,WAAM;AAClB;AACA,gBAAgB,WAAM;AACtB;AACA;AACA;AACA,YAAY,WAAM;AAClB;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA,qCAAqC,YAAY,0CAA0C;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA,wBAAwB;AACxB,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB,aAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,kCAAkC;AAClC,sCAAsC,UAAM,0CAA0C,UAAM;AAC5F,qCAAqC,aAAQ;AAC7C;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD,8EAA8E,GAAG;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,iCAAiC,aAAQ;AACzC,sCAAsC,aAAQ;AAC9C;AACA;AACA,yCAAyC,aAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,gBAAgB,WAAM,GAAG;AACzB,gBAAgB,UAAM,0CAA0C,UAAM;AACtE,0BAA0B,QAAQ,KAAK,aAAQ;AAC/C,gFAAgF,mBAAmB;AACnG;AACA;AACA,8CAA8C;AAC9C,wCAAwC,QAAQ;AAChD,2BAA2B,QAAQ,KAAK,aAAQ;AAChD;AACA,2BAA2B,QAAQ,KAAK,aAAQ;AAChD;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,YAAY,WAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,QAAQ;AAClF,oBAAoB,QAAQ;AAC5B,mCAAmC,aAAQ;AAC3C,mCAAmC,aAAQ;AAC3C;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,uCAAuC;AACvC;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,qBAAqB,aAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,kBAAQ,KAAK,kBAAQ,KAAK;;;AC5sCqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAiB;AAC1C;AACA;AACA;AACA,YAAY,UAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,oBAAoB,sBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,iBAAiB,sBAAiB;AAClC;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAiB;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAiB;AAChC;AACA;AACA,CAAC;AACe;;;ACnKhB;AACqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAK;AAC9B;AACA;AACA,iBAAiB,aAAQ;AACzB,YAAY,UAAK;AACjB;AACA,4BAA4B,sBAAK,2DAA2D;AAC5F;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAK;AACrB,4DAA4D,mBAAmB;AAC/E;AACA,qBAAqB,sBAAK;AAC1B,6BAA6B,sBAAK;AAClC;AACA;AACA,+BAA+B,kCAAkC;AACjE;AACA,iBAAiB;AACjB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAK;AAClB;AACA;AACA;AACA;AACA,CAAC;AACgB;;;AClHjB;AACqC;AACrC;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B,oDAAoD,gBAAW,oBAAoB,gBAAW;AAC9F,uBAAuB,gBAAW;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACkB;;;ACjYuB;AACN;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,gGAAgG,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,uBAAuB,WAAM;AAC7B,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB;AACA,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;AC1IxB;AACA;AACA;AACA;AAC+C;AACkC;AACjF;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,iBAAiB;AAC7B,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA,kDAAkD,yBAAyB;AAC3E;AACA,gBAAgB,aAAQ;AACxB,+BAA+B,aAAQ;AACvC,oBAAoB,sBAAiB;AACrC,oBAAoB,QAAQ;AAC5B;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,iBAAiB;AAC7B,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA,oCAAoC,gBAAgB;AACpD;AACA,mBAAmB,aAAQ;AAC3B,+BAA+B,aAAQ;AACvC;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA,oCAAoC,aAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,SAAS;AACrB,WAAW,SAAS;AACpB,aAAa,sBAAsB;AACnC;AACA;AACO;AACP;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,SAAS;AACrB,WAAW,SAAS;AACpB,aAAa,sBAAsB;AACnC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA,IAAI,YAAY;AAChB;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA,YAAY,aAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,kBAAkB;AAC9B,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACO,SAAS,UAAM;AACtB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,kBAAkB;AAC9B,WAAW,SAAS;AACpB,aAAa,eAAe;AAC5B;AACA;AACO;AACP,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,kDAAkD,mBAAmB,EAAE;AACvE;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,aAAa,WAAW;AACxB;AACA;AACO;AACP;AACA;AACA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;;;ACpdA;AACmH;AACrE;AACR;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ,UAAK;AACb;AACA,YAAY,UAAK;AACjB;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,QAAQ,WAAM,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,QAAQ,WAAW;AACnB;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA,uCAAuC;;;AChU9C;AAC8E;AAC9E;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,2CAA2C,cAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,+BAA+B;AACpE;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa,MAAM;AACnB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa,MAAM;AACnB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,mBAAmB;AAChC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,UAAU;AACtB,aAAa,mBAAmB;AAChC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,UAAU;AACtB,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,aAAa,wBAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACO,SAAS,4BAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAW;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA,QAAQ,gBAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD,qBAAqB;AACxE;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sBAAsB,aAAQ;AAC9B;AACA;AACA;AACA,gCAAgC,aAAQ;AACxC;AACA;;;AC5iBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC0D;AAC5B;AACM;AACW;AACmC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,sCAAsC,eAAe;AACrD;AACA;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,sBAAsB;AACrC,eAAe,gBAAgB;AAC/B,iBAAiB,MAAM;AACvB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,sDAAsD,SAAS;AAC/D,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gBAAgB;AAC/B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,IAAI,YAAY,4CAA4C,6CAA6C;AACzG,IAAI,YAAY,4CAA4C,yDAAyD;AACrH,IAAI,YAAY,kDAAkD,6CAA6C;AAC/G,QAAQ,OAAO;AACf,QAAQ,YAAY,qDAAqD,6CAA6C;AACtH;AACA;AACA;AACA,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yBAAyB,kBAAkB,iBAAiB;AACtG,iDAAiD;AACjD,wBAAwB,aAAa,UAAU,+CAA+C;AAC9F;AACA;AACA;AACA;AACA,QAAQ,YAAY,kDAAkD,wDAAwD;AAC9H;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,4BAA4B;AACvC,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;;ACzcnD;AACA;AACA;AACA;AAC0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,qBAAqB;AACpC,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,gBAAgB,aAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA,0DAA0D,8CAA8C;AACxG;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,0DAA0D,yCAAyC;AACnG;AACA;AACA,SAAS;AACT,8DAA8D,+BAA+B;AAC7F;AACA;AACA,gBAAgB,aAAQ;AACxB;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;ACxHxB;AAC6D;AAC/B;AAC9B;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAQ,sBAAsB,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,YAAY,UAAK;AACjB;AACA;AACA;AACA;AACA,YAAY,UAAK;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACwB;;;AChLa;AAC0C;AACzE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe,KAAK,aAAQ,2BAA2B,eAAe,MAAM,aAAQ,WAAW,eAAe;AAChJ;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,aAAQ,4BAA4B,eAAe;AACxF,8BAA8B,aAAQ,wBAAwB,eAAe;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sBAAiB;AACpF;AACA,+BAA+B,aAAa;AAC5C,6DAA6D,kmCAAkmC,yCAAyC,iCAAiC,kCAAkC,mCAAmC,6DAA6D,eAAe,iBAAiB;AAC34C,iBAAiB;AACjB,gEAAgE,4BAA4B,6BAA6B,8BAA8B,kCAAkC,sCAAsC,iCAAiC,qCAAqC,mCAAmC,4CAA4C,+CAA+C,qCAAqC,gEAAgE;AACxgB;AACA;AACA;AACA;AACA,YAAY,QAAQ,6CAA6C,eAAe;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,yDAAyD;AACzD;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,mEAAmE,kBAAkB,mBAAmB,aAAa,cAAc,eAAe,gBAAgB,2CAA2C,qBAAqB,0DAA0D,oBAAoB,mBAAmB,oDAAoD,qBAAqB,wFAAwF,qBAAqB,sBAAsB,0BAA0B,6DAA6D,eAAe,eAAe,4BAA4B,4BAA4B,+BAA+B,gCAAgC,qDAAqD,i7RAAi7R,mBAAmB,yBAAyB,gBAAgB,iBAAiB,6EAA6E,gBAAgB,iBAAiB,sBAAsB,uBAAuB,uBAAuB,6BAA6B,yBAAyB,wBAAwB,8HAA8H,2BAA2B,yBAAyB,iCAAiC,6BAA6B,qBAAqB,oBAAoB,4BAA4B,+VAA+V,iCAAiC,mCAAmC,gMAAgM,iCAAiC,mCAAmC,0MAA0M,iCAAiC,mCAAmC,iBAAiB,gQAAgQ,iCAAiC,mCAAmC,qaAAqa,iCAAiC,mCAAmC,wSAAwS,iCAAiC,mCAAmC,mNAAmN,iCAAiC,mCAAmC,2GAA2G,+BAA+B,iCAAiC,gCAAgC,qCAAqC,wBAAwB,yBAAyB,gHAAgH,+x0CAA+x0C,iCAAiC,yBAAyB,yBAAyB,wFAAwF,8BAA8B,8BAA8B,2BAA2B,uBAAuB,uBAAuB,6BAA6B,6BAA6B,qBAAqB,sBAAsB,0BAA0B,uBAAuB,gCAAgC,iCAAiC,qFAAqF,yBAAyB,iBAAiB,iBAAiB,6BAA6B,uBAAuB,wBAAwB,4IAA4I,iBAAiB,mBAAmB;AAC5xwD,4CAA4C,sBAAiB;AAC7D,8BAA8B,aAAa;AAC3C;AACA,SAAS;AACT;AACA;AACA;;;ACrQA,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACgG;AACjD;AACjB;AACQ;AACW;AAC0B;AACQ;AACd;AACiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B,kCAAkC,aAAa,WAAW,EAAE;AAC5D;AACA,YAAY,sBAAiB;AAC7B,kCAAkC,UAAU,cAAc,EAAE;AAC5D;AACA,iCAAiC,YAAY;AAC7C,kCAAkC,QAAQ;AAC1C,QAAQ,YAAY;AACpB;AACA,iFAAiF,eAAe;AAChG,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB,oCAAoC,eAAe;AACnD;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,iBAAiB,MAAM;AACvB;AACA;AACA,aAAa,sBAAiB;AAC9B,2BAA2B,UAAM;AACjC;AACA,kBAAkB,sBAAiB;AACnC;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA,2BAA2B,aAAQ;AACnC,iBAAiB,gBAAW;AAC5B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,aAAa;AACxC,mBAAmB,aAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,gBAAgB,kBAAU;AAC1B,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;;ACvhBD,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC8B;AACM;AACF;AACyD;AAC5C;AACE;AACmC;AACY;AAChG,wBAAwB;AACxB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA;AACA,CAAC,CAAC,aAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA,eAAe,WAAM,GAAG;AACxB;AACA;AACA;AACA,aAAa,gBAAW;AACxB,kBAAkB,UAAM;AACxB;AACA,6CAA6C,OAAO,aAAa,OAAO;AACxE;AACA,YAAY,YAAY,6BAA6B,OAAO,6BAA6B,OAAO;AAChG;AACA;AACA,YAAY,YAAY,0BAA0B,OAAO,6BAA6B,OAAO;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,YAAY,eAAe,OAAO,4BAA4B,OAAO;AAC7E,QAAQ,YAAY,eAAe,OAAO,2BAA2B,OAAO;AAC5E;AACA;AACA;AACA;AACA,QAAQ,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AAChF,QAAQ,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AAC/E;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD,qBAAqB,sBAAiB,CAAC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAW;AAC/C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,eAAe,OAAO,4BAA4B,OAAO;AACjF,YAAY,YAAY,eAAe,OAAO,2BAA2B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,mCAAmC,OAAO,6BAA6B,OAAO;AAClG;AACA;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,qCAAqC;AACrC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC,YAAY,iBAAiB,2CAA2C,8DAA8D;AACtI,YAAY,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AACpF,YAAY,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AACnF,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,YAAY,eAAe,OAAO,4BAA4B,OAAO;AACjF,YAAY,YAAY,eAAe,OAAO,2BAA2B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA,gDAAgD,OAAO,aAAa,OAAO;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAsD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gDAAgD;AACzG;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAM,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kFAAkF;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AAChF,QAAQ,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AAC/E,QAAQ,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AAC/E,QAAQ,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sBAAiB;AACpF;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,OAAO,oCAAoC,OAAO;AAChH,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA,oBAAoB,sBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mCAAmC;AAC3E;AACA;AACA,0BAA0B,aAAa,UAAU,kEAAkE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAiB;AACpD,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,8BAA8B,kBAAU;AACxC,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;;;ACl6BrB,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC8B;AACM;AACO;AACuC;AACnC;AACD;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,mBAAmB,OAAO,2BAA2B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+CAA+C;AAClF;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAA6B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA,mCAAmC,8EAA8E;AACjH;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,sBAAsB,OAAO,2BAA2B,OAAO;AACnF;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,gBAAgB,kBAAU;AAC1B,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;;;AC1IrB,IAAI,gBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,iBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACkF;AACpD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI,gBAAS;AACb;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA,wEAAwE,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAU;AACd,QAAQ,QAAQ,GAAG;AACnB;AACA,IAAI,iBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,4BAAK;AACb;AACA,wCAAwC,iBAAU;AAClD,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACoB;;;AC5NyB;AACK;AACxD;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA,sBAAsB,WAAM,8BAA8B;AAC1D;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;ACxFhB,IAAI,aAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,cAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACgC;AAC2D;AACvD;AACN;AACmB;AACF;AAC/C;AACA;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,QAAQ;AAChB;AACA;AACA,CAAC,CAAC,aAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,gEAAgE,0BAA0B;AAC1F,gBAAgB,YAAY,oBAAoB,OAAO;AACvD,gBAAgB,YAAY,oBAAoB,OAAO;AACvD,gBAAgB,YAAY,oBAAoB,OAAO;AACvD;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAM,gBAAgB;AACpD;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,uBAAuB,OAAO;AACtD;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAAgD;AAC3F;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY,YAAY,uBAAuB,OAAO;AACtD,YAAY,YAAY,uBAAuB,OAAO;AACtD,YAAY,YAAY,uBAAuB,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,mBAAmB,OAAO;AAC9C;AACA;AACA,QAAQ,YAAY,sBAAsB,OAAO;AACjD;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ,YAAY,sBAAsB,OAAO;AACjD,QAAQ,YAAY,sBAAsB,OAAO;AACjD,yBAAyB;AACzB;AACA,QAAQ,YAAY,sBAAsB,OAAO;AACjD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,OAAO,GAAG;AAClB;AACA,YAAY,cAAU;AACtB,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACW;;;AC/VjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,sBAAsB,qFAAqF,uBAAuB,oCAAoC,gDAAgD,6BAA6B,4BAA4B,kBAAkB,MAAM,2EAA2E,iGAAiG,+FAA+F,sDAAsD,eAAe,2CAA2C,WAAW,uDAAuD,wCAAwC,mDAAmD,iCAAiC,gCAAgC,kBAAkB,MAAM,6EAA6E,mCAAmC,yGAAyG,uGAAuG,8DAA8D,uBAAuB,mBAAmB,+CAA+C,eAAe,WAAW;AAC39C,sDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,wDAAwD;AACxD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,qDAAqD,uGAAuG;AAC5J,iBAAiB,OAAO;AACxB,4CAA4C,kDAAkD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B,OAAO;AAC3D;AACA;AACA;AACA,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oLAAoL;AACpL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sCAAsC,eAAe;AACpH;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzRA;AACA;AACA;AACA;AAC+C;AACT;AACe;AACrD;AACA;AACO;AACP;AACA;AACA,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACO,SAAS,uBAAO;AACvB;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,SAAS,8CAA8C;AACrH,iBAAiB,aAAa,UAAU,8CAA8C;AACtF;AACA;AACA;AACA,0BAA0B,aAAa,UAAU,mBAAmB;AACpE;AACA;AACA;AACA,0BAA0B,aAAa,6CAA6C,mBAAmB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACO;AACP,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACO;AACP;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,yBAAyB,sBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,KAAK;AAChB,aAAa,UAAU;AACvB;AACA;AACO;AACP;AACA;AACA,SAAS,sBAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,eAAe,OAAM;AACrB;AACA;AACA,CAAC;AACD,kBAAkB;;;AC7KlB;AACA;AACA;AAC+B;AACY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sDAAsD;AAC5D,MAAM,wCAAwC;AAC9C,MAAM,kEAAkE;AACxE,MAAM,wDAAwD;AAC9D,MAAM,wDAAwD;AAC9D,MAAM,sDAAsD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AAC6B;;;AC1M9B;AACA;AACA;AACiC;AACV;AACC;AACI;AACL;AACG;AACE;AACK;AACL;AACA;AACI;AACO;AACZ;AACJ;AACS;AACS;AACjB;AACO;AACG;AACX;AACD;AACK;AACO;AACH;;;AC1B/B;AACA;AACA;AAC4B;;;;;;;;;ACHf;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;ACHA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;;;;;;ACNA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACkG;AACc;AACX;AACX;AACA;AACnD;AACgB;AAC2B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ,GAAG,2CAA2C;AAC9D;AACA;AACA,QAAQ,wEAAQ,GAAG,4CAA4C;AAC/D;AACA;AACA,CAAC,CAAC,yEAAa;AACM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4CAA4C;AAC1F,oDAAoD,kDAAkD;AACtG,oDAAoD,kDAAkD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA,4BAA4B,yDAAK;AACjC;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iFAAiB;AACtE;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yEAAS;AAC9B;AACA,QAAQ,2EAAW;AACnB;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAM;AACnC;AACA,YAAY,wEAAQ;AACpB;AACA,uBAAuB,iFAAiB;AACxC;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS,8EAAkB,yBAAyB;AAC7F;AACA;AACA,gEAAgE,8EAAkB;AAClF;AACA;AACA,uCAAuC,uEAAO;AAC9C,iDAAiD;AACjD;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uEAAO;AAC9C,iDAAiD;AACjD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA,QAAQ,wEAAY,eAAe,mEAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAU,WAAW,yEAAyE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA,uCAAuC,yEAAS;AAChD,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA,qDAAqD,iFAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA,oBAAoB,2EAAW,oCAAoC,2EAAW;AAC9E;AACA;AACA;AACA,qBAAqB;AACrB,wBAAwB,0EAAU,iBAAiB,WAAW,0EAAU,kBAAkB,kBAAkB;AAC5G,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sEAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAO;AACvB,gBAAgB,wEAAQ;AACxB;AACA;AACA,oDAAoD,0EAAU;AAC9D;AACA,0EAA0E,oBAAoB;AAC9F;AACA,YAAY,2EAAW;AACvB;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAc;AAC1B;AACA;AACA;AACA;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA,4DAA4D,iFAAiB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yEAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4EAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,YAAY,gEAAG,+CAA+C,kCAAkC;AAChG;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAM;AAC3B;AACA;AACA;AACA,qDAAqD,iFAAiB;AACtE;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yEAAa;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAO;AAChD;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAc;AACtB,QAAQ,2EAAW;AACnB,QAAQ,wEAAQ;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,+BAA+B,uEAAO;AACtC;AACA;AACA;AACA;AACA;AACA,kBAAkB,uEAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY,mBAAmB,mEAAO;AACtD;AACA;AACA,oBAAoB,mEAAO;AAC3B,2CAA2C,iEAAK;AAChD;AACA;AACA,qBAAqB;AACrB,oBAAoB,wEAAY,mBAAmB,mEAAO;AAC1D;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAO;AAC9B;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,2CAA2C,yEAAS;AACpD;AACA,iBAAiB,iFAAiB;AAClC,4DAA4D,0BAA0B;AACtF;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA,oBAAoB,wEAAY;AAChC,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY,sBAAsB,mEAAO;AACzD;AACA;AACA,oBAAoB,mEAAO;AAC3B;AACA;AACA;AACA,oBAAoB,wEAAY,sBAAsB,mEAAO;AAC7D;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,2CAA2C,yEAAS;AACpD,iBAAiB,iFAAiB;AAClC,4DAA4D,0BAA0B;AACtF;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA,oBAAoB,wEAAY;AAChC,oBAAoB,wEAAY;AAChC;AACA,4CAA4C,mEAAO;AACnD,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA,qBAAqB,sEAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA,uFAAuF,0EAAU;AACjG;AACA;AACA;AACA;AACA;AACA,uDAAuD,0EAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sEAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAW;AACvC;AACA;AACA,4BAA4B,wEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAQ;AACpC;AACA;AACA,4BAA4B,2EAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAiB;AAC1C,wBAAwB,2EAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,0BAA0B;AACzC,iBAAiB;AACjB;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB,uBAAuB,iFAAiB;AACtE,2BAA2B,yEAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA,QAAQ,oEAAgB;AACxB,QAAQ,2EAAW;AACnB;AACA;AACA;AACA;AACA,4BAA4B,yEAAS;AACrC,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACQ;;;;;;;;;AC77CN;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;AC9Ba;;AAEb;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,oBAAoB,GAAG,YAAY,GAAG,eAAe,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,gBAAgB,GAAG,2BAA2B,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,cAAc;AACzb,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA,+BAA+B,aAAa,EAAE,WAAW,EAAE,oCAAoC;AAC/F;AACA,sBAAsB;AACtB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB,IAAI;AACtB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,8BAA8B,qDAAqD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kEAAkE,IAAI,cAAc,MAAM;AAC1F,uCAAuC,MAAM,gFAAgF,IAAI,KAAK,0CAA0C,GAAG,IAAI,KAAK;AAC5L,SAAS;AACT,mEAAmE,IAAI;AACvE;AACA;AACA;AACA;AACA,mDAAmD,IAAI,KAAK;AAC5D;AACA;AACA,SAAS;AACT,6DAA6D,gBAAgB;AAC7E;AACA,KAAK;AACL;AACA,kEAAkE,IAAI,cAAc,MAAM,yDAAyD,MAAM,oBAAoB,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK;AAC5M,mEAAmE,IAAI,2EAA2E,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK;AACjL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,kEAAkE,MAAM,EAAE,8BAA8B;AACxG;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,CAAC,WAAW,YAAY,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU;AACtD,6CAA6C,UAAU;AACvD;AACA,4CAA4C,SAAS;AACrD,4CAA4C,SAAS,6CAA6C;AAClG;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;ACjLA,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;;;;;;;;AChBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/FY;;AAEb,WAAW,aAAa;AACxB;;;;;;;;ACHA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACxGY;AACb,kBAAkB,mBAAO,CAAC,KAAmC;;AAE7D;;AAEA;AACA;AACA;;;;;;;;;ACPa;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;ACHA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAY;AACnC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA,IAAI,IAAI;AACR,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;AChEA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA;AACA;AACA;;AAEA;;;;;;;;AC/BA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;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,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AClCa;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,wBAAwB,mBAAO,CAAC,KAAkC;;AAElE;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACzGY;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;ACHa;;AAEb;;AAEA,cAAc,mBAAO,CAAC,KAAiB;;AAEvC,aAAa,mBAAO,CAAC,KAAW;AAChC,iBAAiB,mBAAO,CAAC,KAAgB;AACzC,kBAAkB,mBAAO,CAAC,KAAiB;AAC3C,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,mBAAmB,mBAAO,CAAC,KAAkB;AAC7C,iBAAiB,mBAAO,CAAC,KAAgB;AACzC,gBAAgB,mBAAO,CAAC,KAAe;;AAEvC,UAAU,mBAAO,CAAC,KAAqB;AACvC,YAAY,mBAAO,CAAC,KAAuB;AAC3C,UAAU,mBAAO,CAAC,IAAqB;AACvC,UAAU,mBAAO,CAAC,KAAqB;AACvC,UAAU,mBAAO,CAAC,KAAqB;AACvC,YAAY,mBAAO,CAAC,KAAuB;AAC3C,WAAW,mBAAO,CAAC,KAAsB;;AAEzC;;AAEA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF,GAAG;AACH;;AAEA,YAAY,mBAAO,CAAC,KAAM;AAC1B,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;;AAEA,iBAAiB,mBAAO,CAAC,KAAa;;AAEtC,eAAe,mBAAO,CAAC,KAAW;AAClC,iBAAiB,mBAAO,CAAC,KAAiC;AAC1D,kBAAkB,mBAAO,CAAC,KAAkC;;AAE5D,aAAa,mBAAO,CAAC,KAAuC;AAC5D,YAAY,mBAAO,CAAC,KAAsC;;AAE1D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,sDAAsD;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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;;AAEA,WAAW,mBAAO,CAAC,KAAe;AAClC,aAAa,mBAAO,CAAC,IAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzXa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B;AAC/B,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,OAAO,mDAAmD,KAAK;AACzF,eAAe,UAAU,OAAO,wBAAwB,SAAS,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,iCAAiC;AAC7C;AACA,qDAAqD,KAAK;AAC1D;AACA,wBAAwB,mBAAmB;AAC3C,qCAAqC,KAAK,KAAK,aAAa;AAC5D;AACA;AACA,2DAA2D,KAAK,KAAK,aAAa,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B,kBAAe;AACf;;;;;;;AChDA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,cAAc,mBAAO,CAAC,KAAY;AAClC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AChDa;;AAEb,cAAc,mBAAO,CAAC,KAAiB;;AAEvC,WAAW,mCAAmC;AAC9C;;;;;;;;;ACLa;AACb,yBAAyB,mBAAO,CAAC,KAAmC;AACpE,kBAAkB,mBAAO,CAAC,KAA4B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACvBa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;ACHA,uBAAuB,mBAAO,CAAC,KAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrGY;;AAEb,mBAAmB,mBAAO,CAAC,KAAe;AAC1C,gBAAgB,mBAAO,CAAC,KAAY;AACpC,cAAc,mBAAO,CAAC,KAAgB;AACtC,wBAAwB,mBAAO,CAAC,KAAkB;;AAElD,iBAAiB,mBAAO,CAAC,KAAgB;AACzC;;AAEA,WAAW,4DAA4D;AACvE;AACA,WAAW,yEAAyE;AACpF;AACA,WAAW,kEAAkE;AAC7E;AACA,WAAW,kEAAkE;AAC7E;;AAEA,WAAW,aAAa;AACxB;AACA,cAAc,6BAA6B;AAC3C,gBAAgB,0CAA0C;AAC1D,gBAAgB,+BAA+B;AAC/C,gBAAgB,+BAA+B;;AAE/C,aAAa,oCAAoC;AACjD,aAAa,qBAAqB;;AAElC,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACnFA,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;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,+CAA+C,mBAAmB;AAClE;AACA;AACA;;AAEA;;;;;;;;ACnCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChED,2CAAuC;;;;;;;ACAvC,aAAa,mBAAO,CAAC,KAAW;AAChC,gBAAgB,mBAAO,CAAC,GAAc;AACtC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC3Ba;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,oCAAoC;AAC7C;AACA,CAAC;;;;;;;;;ACnBY;AACb,WAAW,mBAAO,CAAC,KAAoC;AACvD,WAAW,mBAAO,CAAC,KAA4B;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,4BAA4B,mBAAO,CAAC,KAAuC;AAC3E,wBAAwB,mBAAO,CAAC,KAAmC;AACnE,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,kBAAkB,mBAAO,CAAC,KAA2B;AACrD,wBAAwB,mBAAO,CAAC,KAAkC;AAClE,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;ACpEa;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,0BAA0B,mBAAO,CAAC,KAAoC;AACtE,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,KAAY;AACnC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AChCA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACrBa;;AAEb,aAAa,mBAAO,CAAC,KAAS;;AAE9B,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;;AAEb,WAAW,mBAAO,CAAC,KAAe;AAClC,iBAAiB,mBAAO,CAAC,KAAgB;;AAEzC,YAAY,mBAAO,CAAC,KAAgB;AACpC,mBAAmB,mBAAO,CAAC,KAAe;;AAE1C,WAAW,uEAAuE;AAClF;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,eAAe,mBAAO,CAAC,KAAa;AACpC,cAAc,mBAAO,CAAC,KAAY;AAClC,eAAe,mBAAO,CAAC,KAAY;AACnC,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClDA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AChBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrFY;AACb,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5FD,SAAS,0BAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,kBAAkB,MAAyC,GAAG,CAAiB;AAC/E,kBAAkB,MAAyC,GAAG,CAAiB;AAC/E,MAAM,uBAAI;AACV;AACA,MAAM,qBAAE;AACR;AACA;AACA;AACA,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAc;AACpB,MAAM,yBAAM,iBAAiB,iCAAc;AAC3C,MAAM,0BAAO;AACb;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAQ;AACd;AACA,MAAM,2BAAQ;AACd;AACA,UAAU,2BAAQ;AAClB;AACA;AACA;AACA,MAAM,4BAAS;AACf;AACA;AACA;AACA,8BAA8B,2BAAQ;AACtC,uCAAuC,0EAAO;AAC9C;AACA;AACA,CAAC;AACD,MAAM,qCAAkB,mBAAmB,0EAAO;AAClD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,MAAM,4BAAS;AACf;AACA;AACA,MAAM,6BAAU;AAChB;AACA,CAAC;AACD;AACA,uBAAuB,6BAAU,MAAM;AACvC;AACA,CAAC;AACD;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAQ;AACpB;AACA;AACA;AACA;AACA,6KAA6K,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA;AACA;AACA,yCAAyC,KAAK,eAAe,qBAAqB;AAClF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,0EAAO,iBAAiB;AAClE,8BAA8B,iEAAiB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,0BAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,2BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,2BAAQ,WAAW,2BAAQ;AACxC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB,2BAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,4BAAS;AAChE,QAAQ,2BAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAQ;AACd;AACA,IAAI,SAAS,0BAAO;AACpB,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,2BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,2BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,4BAAS,mBAAmB,0EAAO,WAAW;AACpD,MAAM,2BAAQ,mBAAmB,0EAAO,UAAU;AAClD,kCAAkC,0EAAO,WAAW;;AAEpD;AACA,6CAA6C,0EAAO,qBAAqB;AACzE,sCAAsC,0BAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0EAAO;AAC/C;AACA,CAAC;AACD,uCAAuC,0EAAO;AAC9C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAO;AACtB,eAAe,0BAAO;AACtB;AACA;AACA;AACA,eAAe,2BAAQ;AACvB,eAAe,2BAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,2BAAQ,iCAAiC,0BAAO,SAAS,2BAAQ;AAC1E;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI;AACJ;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,2BAAQ,UAAU,0BAAO;AACtC;AACA;AACA;AACA;;AAE00B;;;ACvZxqB;;AAElK,SAAS,2BAAI;AACb,6BAA6B,IAAI;AACjC;;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,QAAQ;AACR;AACA;AACA,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,KAAyC,EAAE,EAIrD;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM;AAChC;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAyC,GAAG,CAAS;AAChF,mCAAmC,MAAyC,GAAG,CAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAyC,GAAG,CAA2C,CAAC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAiE,EAAE,EAStE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6BAA6B,0BAAO;AACxC;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,aAAa,0BAAO;AACpB;AACA,cAAc,KAAK;AACnB;AACA;AACA,UAAU,SAAS,YAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa,0BAAO;AACpB;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAyC,GAAG,CAAoD,CAAC;AACrH;AACA;AACA,UAAU,KAAyC,EAAE,EAE9C,CAAC;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA8D,EAAE,EAEnE;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,0BAAO;AAClD;AACA,+IAA+I,QAAQ;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4BAAK;AACvB,uCAAuC,OAAO;AAC9C,QAAQ,4BAAK;AACb;AACA;AACA;AACA,oCAAoC,4BAAK;AACzC,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,4BAAK;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,qCAAc;AACvB,cAAc,4BAAK;AACnB,EAAE,4BAAK;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,0BAA0B,0BAAO;AACjC;AACA,2BAA2B,yBAAM;AACjC;AACA;AACA;AACA,eAAe,qCAAc;AAC7B;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA,MAAM,4BAAK;AACX;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA,QAAQ,2BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAK;AACxB,gBAAgB,4BAAK;AACrB;AACA,WAAW,0BAAO;AAClB;AACA;AACA;AACA;AACA,mBAAmB,0BAAO,YAAY,YAAY,sCAAsC,yBAAM;AAC9F;AACA,mBAAmB,4BAAK;AACxB;AACA;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB,MAAM,4BAAK;AACX;AACA;AACA;AACA;AACA,IAAI,4BAAK;AACT;AACA;AACA,MAAM,0BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAK9C;AACL;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAK9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,4BAAK;AACzB,iBAAiB,4BAAK;AACtB;AACA,QAAQ,UAAU;AAClB,MAAM,4BAAK;AACX;AACA,IAAI,4BAAK;AACT;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAAK;AACzB,iBAAiB,4BAAK;AACtB;AACA,QAAQ,UAAU;AAClB,MAAM,4BAAK;AACX;AACA,IAAI,4BAAK;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK,CAAC,4BAAK;AAC5B;AACA;AACA;AACA,UAAU,4BAAK;AACf,iBAAiB,4BAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4BAAK;AACf,iBAAiB,4BAAK;AACtB,UAAU,uBAAuB;AACjC;AACA;AACA,UAAU,4BAAK;AACf;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;AACA,IAAI,SAAS,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB,UAAU,uBAAuB;AACjC;AACA;AACA,UAAU,4BAAK;AACf;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB;AACA,oBAAoB,MAAyC,GAAG,CAAiD;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4BAAK;AAC3B;AACA,mBAAmB,4BAAK;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,sBAAsB,4BAAK;AAC3B,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA,mBAAmB,4BAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,wBAAwB,cAAc;AACtC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAM9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB;AACA;AACA;AACA,kBAAkB,MAAM,gEAAgE,iCAAiC;AACzH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,4BAAS;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,2BAAQ;AACf,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAAK;AACd;AACA,eAAe,4BAAK;AACpB;AACA;AACA,EAAE,GAAG;AACL;AACA;AACA,8BAA8B,2BAAQ;AACtC,8BAA8B,2BAAQ;;AAEtC;AACA;AACA,WAAW,4BAAK;AAChB,QAAQ,KAAyC,EAAE,EAM9C,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,SAAS,4BAAK;AACd;AACA;AACA,QAAQ,KAAyC,EAAE,EAO9C,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4BAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAAK;AAC5C,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAyC,GAAG,CAAU;AAC9E;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA6D,EAAE,EAElE;AACH,cAAc,0BAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,UAAU;AACvB;AACA,IAAI,SAAS,2BAAQ;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA,aAAa,MAAyC,GAAG,CAEpD,CAAC,EAAE,uBAAI;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,KAAmE,EAAE,EAGxE;AACH;AACA;;AAEA,6BAA6B,iEAAiB;AAC9C,cAAc,kDAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4BAAK;AAChB;AACA;AACA;AACA;AACA;;AAEqZ;;;ACltCrZ,SAAS,+BAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,MAAM,4BAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,4BAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,4BAAI;AACV;AACA,MAAM,0BAAE;AACR,MAAM,uBAAI;AACV,MAAM,uBAAI,YAAY,uBAAI;AAC1B,MAAM,kCAAe;AACrB,MAAM,8BAAM;AACZ,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAc;AACpB,MAAM,8BAAM,iBAAiB,sCAAc;AAC3C,MAAM,+BAAO;AACb,MAAM,wBAAK,YAAY,+BAAY;AACnC,MAAM,wBAAK,YAAY,+BAAY;AACnC,MAAM,yBAAM,YAAY,+BAAY;AACpC,MAAM,2BAAQ,YAAY,+BAAY;AACtC,MAAM,6BAAU;AAChB,MAAM,gCAAQ;AACd,MAAM,2BAAQ;AACd,MAAM,gCAAQ;AACd,MAAM,4BAAS;AACf,UAAU,gCAAQ,SAAS,6BAAU,UAAU,6BAAU,cAAc,6BAAU;AACjF;AACA,MAAM,iCAAc;AACpB,MAAM,+BAAY,cAAc,iCAAc;AAC9C,MAAM,iCAAS;AACf,SAAS,+BAAY;AACrB;AACA,MAAM,gCAAa,YAAY,+BAAY;AAC3C,MAAM,+BAAY,YAAY,gCAAQ;AACtC,MAAM,iCAAc,mBAAmB,+BAAO;AAC9C;AACA;AACA;AACA,MAAM,0CAAkB,mBAAmB,+EAAO;AAClD;AACA,CAAC;AACD,MAAM,sCAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB,MAAM,2BAAQ,GAAG,sCAAmB;AACpC,qBAAqB,6BAAU;AAC/B,CAAC;AACD,MAAM,8BAAW;AACjB,MAAM,iCAAS,GAAG,sCAAmB;AACrC,uBAAuB,8BAAW;AAClC;AACA,MAAM,kCAAU,GAAG,sCAAmB;AACtC;AACA,CAAC;AACD,MAAM,+BAAY,GAAG,sCAAmB;AACxC,uBAAuB,kCAAU,MAAM;AACvC;AACA,CAAC;AACD,MAAM,6BAAU;AAChB,MAAM,iCAAc;AACpB,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,MAAM,sBAAG;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,gCAAa;AACnB;AACA;AACA;AACA,MAAM,2BAAQ;AACd,YAAY,gCAAQ;AACpB;AACA;AACA,IAAI,6BAAW;AACf,MAAM,gCAAa;AACnB,SAAS,6BAAW,KAAK,6BAAW,yIAAyI,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA,MAAM,0BAAO;AACb,SAAS,oCAAiB;AAC1B,SAAS,0BAAO,yBAAyB,KAAK,eAAe,qBAAqB;AAClF;;AAEA,MAAM,iCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,gCAAa;AACnB;AACA;AACA;AACA;;AAEA,MAAM,kCAAe;AACrB,MAAM,oCAAiB,mBAAmB,+BAAO,CAAC,kCAAe;AACjE,MAAM,wCAAqB,GAAG,oFAAiB;;AAE/C,MAAM,wBAAK;AACX,SAAS,oCAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,uBAAuB,wBAAK,EAAE,SAAS,wBAAK,iBAAiB;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,iCAAc;AACvB,MAAM,+BAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,gCAAQ,SAAS,mCAAgB,SAAS,iCAAc;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,gCAAQ,WAAW,gCAAQ;AACxC;AACA;AACA;AACA,MAAM,kCAAe,KAAK;AAC1B,MAAM,sCAAmB;AACzB,MAAM,iCAAc;AACpB,SAAS,mCAAgB;AACzB;AACA,kBAAkB,iCAAc,YAAY,kCAAe;AAC3D;AACA,6BAA6B,sCAAmB;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,iCAAc;AACvB;AACA,iBAAiB,gCAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,iCAAS;AAChE,QAAQ,gCAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA,SAAS,iCAAc;AACvB;AACA,MAAM,gCAAQ;AACd;AACA,IAAI,SAAS,+BAAO;AACpB,oBAAoB,kBAAkB;AACtC,yBAAyB,iCAAc;AACvC;AACA;AACA;AACA;AACA,IAAI,SAAS,gCAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iCAAc;AACvB;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,gCAAQ;AACxB,kBAAkB,iCAAc;AAChC;AACA;AACA,kBAAkB,iCAAc;AAChC;AACA;AACA;;AAEA,MAAM,4BAAS;AACf,MAAM,2BAAQ;AACd,MAAM,4BAAS;AACf,MAAM,iCAAS,mBAAmB,+EAAO,CAAC,4BAAS,CAAC;AACpD,MAAM,gCAAQ,mBAAmB,+EAAO,CAAC,2BAAQ,CAAC;AAClD,MAAM,4BAAS,mBAAmB,+EAAO,CAAC,4BAAS,CAAC;;AAEpD,MAAM,sCAAmB;AACzB,MAAM,uCAAoB,mBAAmB,+EAAO,CAAC,sCAAmB,CAAC;AACzE,MAAM,gCAAa,mBAAmB,+BAAO;AAC7C,EAAE,sCAAmB;AACrB;AACA,SAAS,qCAAkB;AAC3B;AACA;AACA,MAAM,mCAAgB;AACtB,MAAM,sCAAmB;AACzB,SAAS,oCAAiB;AAC1B,MAAM,sCAAmB;AACzB,WAAW,sCAAmB;AAC9B;AACA,mBAAmB,mCAAgB;AACnC;AACA,4CAA4C,KAAK;AACjD;AACA,SAAS,sCAAmB;AAC5B;AACA,MAAM,iCAAc;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAe,mBAAmB,+EAAO;AAC/C;AACA,CAAC;AACD,MAAM,iCAAc,mBAAmB,+EAAO;AAC9C;AACA,CAAC;;AAED,MAAM,2BAAQ;AACd,SAAS,6BAAU;AACnB;AACA,gBAAgB,2BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAc;AACpB,SAAS,oCAAiB;AAC1B,qBAAqB,iCAAc;AACnC;;AAEA,SAAS,qCAAkB;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,YAAY,6BAAU;AACtB;AACA;AACA;AACA,SAAS,6BAAU;AACnB;AACA;AACA,mBAAmB,yBAAM;AACzB,mBAAmB,yBAAM;AACzB;AACA;AACA;AACA,eAAe,2BAAQ;AACvB,eAAe,2BAAQ;AACvB;AACA;AACA;AACA,eAAe,+BAAO;AACtB,eAAe,+BAAO;AACtB;AACA,sCAAsC,qCAAkB;AACxD;AACA,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,6BAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAAY;AACrB,iCAAiC,6BAAU;AAC3C;;AAEA,MAAM,kCAAe;AACrB,SAAS,gCAAQ,iCAAiC,+BAAO,SAAS,gCAAQ,2BAA2B,iCAAc,KAAK,6BAAU,sCAAsC,2BAAQ;AAChL;AACA,MAAM,2BAAQ;AACd;AACA,WAAW,2BAAQ;AACnB,IAAI,SAAS,wBAAK;AAClB;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI,SAAS,wBAAK;AAClB;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,gCAAQ,UAAU,+BAAO,UAAU,gCAAa;AAC7D;AACA;AACA;AACA;;AAE00B;;;ACvZviB;AACkC;AACqG;AACxS;;AAElI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAI;AACb,MAAM,IAA0C;AAChD;AACA,EAAE,aAAa;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO,YAAY,0CAA0C;AAC1E;AACA;AACA;AACA;AACA,IAAI;AACJ,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,4BAA4B,qBAAqB;AACjD,6CAA6C,cAAc;AAC3D;AACA,uBAAuB;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,6BAA6B,IAAI,GAAG,MAAM;AAC1C,IAAI;AACJ,6BAA6B,IAAI,GAAG,MAAM;AAC1C,IAAI,SAAS,KAAK;AAClB,4BAA4B,4BAAK;AACjC,6BAA6B,IAAI;AACjC,IAAI,SAAS,6BAAU;AACvB,eAAe,IAAI,KAAK,iBAAiB,WAAW,QAAQ;AAC5D,IAAI;AACJ,YAAY,4BAAK;AACjB,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,MAAM,IAA0C;AAChD;AACA;AACA;AACA,IAAI;AACJ,IAAI,6BAAI,IAAI,MAAM,8BAA8B,oBAAoB;AACpE,IAAI;AACJ,IAAI,6BAAI,IAAI,MAAM;AAClB;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA,eAAe,4BAAS;AACxB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAyC,GAAG,CAAsB;AACxF;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAc9C,CAAC;AACJ;AACA;AACA;;AAEA;AACA;AACA,MAAM,8BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAAK;AACjB;AACA;AACA,sBAAsB,8BAAK;AAC3B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8BAAK,YAAY,8BAAK;AAC7B;AACA;AACA;AACA;AACA,MAAM,8BAAK;AACX,MAAM;AACN,MAAM,8BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAAK;AACjB;AACA,IAAI,8BAAK;AACT;AACA;AACA;AACA,OAAO,+BAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH,SAAS,IAAI,8BAAK,SAAS;AAC3B,eAAe,8BAAK;AACpB;AACA,UAAU,KAA4E,EAAE,EAEjF;AACP,MAAM,8BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA,6BAA6B,4CAA4C;AACzE,UAAU,KAA4G,EAAE,EAEjH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH,EAAE,8BAAK;AACP,gBAAgB,MAAyC,GAAG,CAAyC,GAAG,4BAAI;AAC5G;AACA,yBAAyB,aAAa,8BAAK,SAAS;AACpD,kBAAkB,8BAAK;AACvB;AACA,YAAY,KAAuD,EAAE,EAE5D;AACT;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,8BAAK;AACT;AACA;AACA;AACA,QAAQ,8BAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,6BAAI;AACV,6CAA6C,kCAAkC,cAAc,QAAQ;AACrG;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,KAAyC,EAAE,EAM9C;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,CAAC;AACD,iDAAiD,wHAAwE;AACzH,kDAAkD;AAClD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,CAAC;AACD,wCAAwC;AACxC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,4BAAS;AACjD,MAAM,KAAyC,EAAE,EAwB9C;AACH;AACA;AACA;AACA;AACA,4BAA4B,+CAA+C;AAC3E,YAAY,eAAe,yBAAyB,4BAAS;AAC7D;AACA,gCAAgC,gCAAQ;AACxC;AACA;AACA,yBAAyB,gCAAa;AACtC;AACA;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH,MAAM,KAAyC,EAAE,EAU9C;AACH;AACA,oCAAoC,+BAAY;AAChD,sBAAsB,+BAAY,CAAC,2BAAQ;AAC3C;AACA,kCAAkC,+BAAY,CAAC,iCAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAmB,KAAK,6BAAU;AACxC;AACA;AACA;AACA;AACA,QAAQ,8BAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAQ;AAChB;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,IAAI;AACJ,IAAI,8BAAM;AACV;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAI;AACvB;AACA;AACA;AACA,SAAS,8BAAM,kDAAkD,8BAAM,UAAU,iCAAS,UAAU,8BAAM;AAC1G;;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,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL;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,IAAI;AACJ;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,UAAU,KAA4D,EAAE,EAEjE;AACP;AACA;AACA;AACA,UAAU,MAAyC,GAAG,CAO3C,CAAC,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA4F,EAAE,EAEjG;AACH;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,sCAAsC,kCAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,KAAoF,EAAE,EAwBhG;AACP;AACA;AACA;AACA,QAAQ,KAAiE,EAAE,EAItE;AACL;AACA;AACA;AACA;AACA,QAAQ,KAAiE,EAAE,EAItE;AACL;AACA;AACA,MAAM,KAAoD,EAAE,EAEzD,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAI;AAClD,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAe;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sDAAsD;AAChE,UAAU,sDAAsD;AAChE;AACA,MAAM,KAA4F,EAAE,EAEjG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2BAAQ,uBAAuB,kCAAU,CAAC,2BAAQ;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAgE,EAAE,EAIrE;AACL;AACA,IAAI,SAAS,KAAyC,EAAE,EAIrD;AACH;AACA;AACA,iDAAiD,2BAAQ,oBAAoB,kCAAU,CAAC,2BAAQ;AAChG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qGAAqG,4BAA4B,iBAAiB;AAClJ;AACA;AACA;AACA;AACA;AACA,UAAU,yDAAyD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA+D,EAAE,EAKpE;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAAQ;AACxC,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAW9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,cAAc,uGAAuG;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,QAAQ,KAA6H,EAAE,EAElI;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO;AACf;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,GAAG,CAAsC,KAAK;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,GAAG,CAAsC,KAAK;AAC3F;AACA;AACA;AACA;AACA,MAAM,KAA4D,EAAE,EAIjE;AACH;AACA;AACA,+BAA+B,6CAA6C,EAAE,4BAAS;AACvF;AACA,MAAM,KAAgD,EAAE,EAWrD;AACH;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA,MAAM,KAAK;AACX;AACA,mBAAmB,SAAW;AAC9B,IAAI,SAAS,UAAU;AACvB;AACA;AACA,IAAI,SAAS,+BAAO;AACpB;AACA,sCAAsC,UAAU,OAAO,SAAW;AAClE;AACA,UAAU,KAAK;AACf;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA,QAAQ,SAAS,6BAAU;AAC3B;AACA,QAAQ;AACR,QAAQ,MAAyC,IAAI,CAAoB;AACzE;AACA,KAAK;AACL,IAAI,SAAS,6BAAU;AACvB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,aAAa,4BAAI;AACjB,IAAI,MAAyC,IAAI,CAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAAI;AACpB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,4BAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,6BAAU,oBAAoB,6BAAU;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,MAAM,KAAyC,EAAE,EAG9C;AACH;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gCAAQ;AACzB;AACA,MAAM,6BAAU;AAChB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,gCAAQ;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK;AACX;AACA,IAAI,SAAS,+BAAO;AACpB,oBAAoB,kBAAkB;AACtC;AACA;AACA,IAAI,SAAS,wBAAK,WAAW,wBAAK;AAClC;AACA;AACA,KAAK;AACL,IAAI,SAAS,gCAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,IAAI,CAAgE;AACjH;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,sCAAsC,4BAAS;AAC/C;AACA,UAAU,6BAAU;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqD,EAAE,EAK1D;AACb;AACA;AACA,gBAAgB,IAA0C;AAC1D;AACA;AACA;AACA;AACA,uBAAuB,4BAAK;AAC5B,cAAc,OAAO;AACrB,UAAU,KAAiH,EAAE,EAEtH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO;AACf;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,iDAAiD,KAAK;AACtD;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,6BAAU;AACnB;AACA;AACA,2BAA2B,8BAAM,GAAG,oBAAoB,kBAAkB,gBAAgB;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,UAAU,KAAkD,EAAE,EAIvD;AACP;AACA;AACA;AACA,UAAU,KAAyF,EAAE,EAE9F;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,qBAAqB,GAAG;AACxB,oBAAoB,GAAG;AACvB,sBAAsB,GAAG;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,UAAU,KAAkE,EAAE,EAEvE;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,UAAU,KAAkE,EAAE,EAEvE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,cAAc,wBAAwB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,IAAI,SAAS,gCAAQ;AACrB;AACA,IAAI,SAAS,2BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAM;AACV,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI,SAAS,KAAyC,EAAE,EAKrD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,+BAAO,YAAY,gCAAQ;AACjC;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,IAAI;AACJ,QAAQ,KAAsE,EAAE,EAE3E;AACL;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,IAAI,SAAS,gCAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA,QAAQ,+BAAO;AACf,sBAAsB,iBAAiB;AACvC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAoE,EAAE,EAKzE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,KAAK;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,MAAM,KAA2D,EAAE,EAGhE;AACH;AACA,6DAA6D,IAAI,IAAI,+BAAY;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8BAAM;AACxB;AACA;AACA;AACA,mBAAmB,MAAyC,GAAG,CAAwB;AACvF,mBAAmB,MAAyC,GAAG,CAAwB;AACvF,mBAAmB,MAAyC,GAAG,CAAwB;AACvF,kBAAkB,MAAyC,GAAG,CAAuB;AACrF;AACA;AACA;AACA,qBAAqB,KAAmB,6BAA6B,CAAM;AAC3E;AACA;AACA,mBAAmB,KAAmB,2BAA2B,CAAI;AACrE,GAAG;AACH;AACA;AACA,kDAAkD,4BAAS,8BAA8B,8BAAM;AAC/F;AACA,QAAQ,aAAa;AACrB,YAAY,8DAA8D;AAC1E,QAAQ,KAA8D,EAAE,EAEnE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ,kBAAkB,4BAAS,IAAI,8BAAM;AAC7C;AACA;AACA,QAAQ;AACR;AACA;AACA,wDAAwD,8BAAM;AAC9D;AACA;AACA;AACA,QAAQ,iBAAiB,4BAAS,IAAI,8BAAM;AAC5C;AACA;AACA,QAAQ,SAAS,MAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAAK;AACb,QAAQ,MAAyC,IAAI,CAAmB;AACxE,QAAQ,SAAS,KAA6D,EAAE,EAEzE;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM,iBAAiB,4BAAS,IAAI,8BAAM;AAC1C;AACA;AACA,MAAM;AACN;AACA,6DAA6D,8BAAM;AACnE;AACA;AACA;AACA;AACA,MAAM,SAAS,KAEc,EAAE,EAY1B;AACL,GAAG;AACH,QAAQ,aAAa;AACrB,YAAY,wBAAwB;AACpC;AACA;AACA;AACA,MAAM,SAAS,KAAkG,EAAE,EAG9G,CAAC,kBAAkB,4BAAS,IAAI,8BAAM;AAC3C;AACA;AACA,MAAM,SAAS,8BAAM;AACrB,MAAM,MAAyC,IAAI,CAA+D;AAClH;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA,MAAM;AACN,UAAU,KAA+F,EAAE,EAMpG,CAAC;AACR;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS;AACT,GAAG;AACH;AACA,0CAA0C,4BAAS,IAAI,8BAAM,0FAA0F,8BAAM,0BAA0B,8BAAM,cAAc,8BAAM,8BAA8B,8BAAM;AACrP,GAAG;AACH;AACA;AACA;AACA,MAAM,SAAS,8BAAM;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI,KAAiD,EAAE,EAOtD;AACD,mEAAmE,8BAAM;AACzE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qCAAqC,oCAAiB;AACtD,UAAU,KAA4F,EAAE,EAMjG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA,QAAQ,6BAAI;AACZ,qCAAqC;AACrC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA,qCAAqC,6BAAI;AACzC,KAAK,OAAO;AACZ;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA+C,EAAE,EAGpD;AACH,MAAM,KAAqE,EAAE,EAG1E;AACH;AACA,kBAAkB,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA+C,EAAE,EAEpD;AACH;AACA;AACA;AACA,SAAS,+BAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+BAAO,SAAS,6BAAU;AACpC,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA,MAAM;AACN,2BAA2B;AAC3B,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO,OAAO,+BAAO;AAC3B;AACA,SAAS,8BAAM,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAiD,EAAE,EAItD;AACH;AACA;AACA,MAAM,4BAAS;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,6BAAI,IAAI,MAAM,YAAY,IAAI,0BAA0B,WAAW;AACzE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,mCAAmC,MAAyC,GAAG,CAAwB;AACvG,MAAM,KAAyC,EAAE,EAO9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,6BAAU;AACpB,YAAY,KAAyC,EAAE,EAO9C,CAAC;AACV;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT,QAAQ,SAAS,KAAyC,EAAE,EAIrD;AACP;AACA;AACA;AACA,QAAQ,KAAqE,EAAE,EAI1E;AACL;AACA,QAAQ,KAA4D,EAAE,EAIjE;AACL,SAAS,gCAAQ;AACjB,MAAM,MAAyC,IAAI,CAAuC;AAC1F,MAAM;AACN,sBAAsB,QAAQ;AAC9B,UAAU,KAAyC,EAAE,EAY9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAU,2CAA2C,6BAAU,mDAAmD,4BAAI;AACxI,UAAU,KAAyD,EAAE,EAE9D;AACP,mBAAmB,6BAAU,SAAS,6BAAU,uCAAuC,MAAyC,GAAG,CAI5H,CAAC,EAAE,4BAAI;AACd,gBAAgB,iCAAQ;AACxB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,UAAU,KAAyC,EAAE,EAE9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAU;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO;AACf;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,oCAAoC,4BAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,4BAAI;AAC9E,MAAM,+BAAO;AACb;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ,KAAK;AACb;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA;AACA;AACA;AACA,IAAI,+BAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,QAAQ,6BAAU;AAClB;AACA,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL,IAAI,SAAS,6BAAU;AACvB;AACA,IAAI,SAAS,gCAAQ;AACrB,QAAQ,+BAAO;AACf;AACA,MAAM;AACN,sBAAsB,6BAAU;AAChC,UAAU,6BAAU;AACpB;AACA,QAAQ,SAAS,KAAyC,EAAE,EAErD;AACP;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA,UAAU,kCAAkC;AAC5C;AACA;AACA;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA,UAAU,kCAAkC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAAM;AAClB,MAAM,6BAAU;AAChB,MAAM,6BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAAM;AACpB;AACA;AACA;AACA,QAAQ,+BAAO,QAAQ,+BAAO;AAC9B;AACA;AACA,WAAW,8BAAM;AACjB;AACA;AACA,oDAAoD;AACpD;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,0BAAE;AACrB;AACA,0BAA0B;AAC1B,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAU;AACnB,sBAAsB,8BAAM,GAAG;AAC/B;AACA,8BAA8B,gCAAQ;AACtC,MAAM,MAAyC,IAAI,CAA2D;AAC9G;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAW9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAyC,EAAE,EAI9C;AACT,OAAO;AACP;AACA;AACA,UAAU,MAAyC,IAAI,CAAsD;AAC7G,UAAU,mBAAmB,6BAAU;AACvC;AACA;AACA,UAAU,SAAS,6BAAU;AAC7B;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAIrD;AACT;AACA,OAAO;AACP;AACA,YAAY,IAAmB;AAC/B;AACA;AACA,YAAY,SAAS,KAAyC,EAAE,EAIrD;AACX,UAAU,KAAK,EAEN;AACT;AACA,OAAO;AACP;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA,YAAY,KAAqE,EAAE,EAE1E;AACT;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA,YAAY,KAAqE,EAAE,EAE1E;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,KAAsE,EAAE,EAK3E;AACX;AACA;AACA,cAAc,KAAyC,EAAE,EAI9C;AACX;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,cAAc,KAAkE,EAAE,EAGvE;AACX;AACA,UAAU,SAAS,KAAyC,EAAE,EAKrD;AACT,OAAO;AACP;AACA;AACA;AACA,cAAc,KAAkE,EAAE,EAGvE;AACX;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT,OAAO;AACP;AACA,YAAY,KAAoE,EAAE,EAIzE;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,sCAAsC,6BAAU;AAChD,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,sBAAG;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA,qCAAqC,eAAe;AACpD,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,0BAA0B,4BAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAwE;AAC5E;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAAM;AACpB;AACA;AACA;AACA;AACA,YAAY;AACZ,iCAAiC,2BAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8BAAM;AACb;AACA,mBAAmB,iCAAS,mBAAmB,8BAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8BAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA,qBAAqB,8BAAM,qBAAqB,2BAAQ;AACxD;AACA;AACA,UAAU;AACV,+CAA+C;AAC/C;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAAK;AACjC,wCAAwC,4BAAS;AACjD,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8BAAM;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAAM;AAC7B;AACA;AACA,uDAAuD,6BAAU;AACjE,gBAAgB,gBAAgB;AAChC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAmE,iCAAS;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAmB,KAAK,6BAAU;AACxC;AACA;AACA;AACA,MAAM,8BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAQ;AAChB,sBAAsB,4BAAS;AAC/B;AACA,WAAW,4BAAS;AACpB;AACA,MAAM,+BAAO;AACb,oBAAoB,gBAAgB;AACpC,UAAU,KAA8D,EAAE,EAEnE;AACP,4BAA4B,2BAAQ;AACpC;AACA,oCAAoC,4BAAS;AAC7C;AACA;AACA,IAAI;AACJ,QAAQ,KAA2D,EAAE,EAEhE;AACL;AACA,4BAA4B,2BAAQ;AACpC;AACA;AACA,iDAAiD,+BAAO,SAAS,6BAAU,UAAU,YAAY,EAAE,8BAAM,GAAG;AAC5G;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,IAAI,SAAS,6BAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uCAAuC;AACjD;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA,MAAM,6BAAI;AACV;AACA;AACA;AACA;AACA,IAAI,6BAAI;AACR;AACA;AACA,qCAAqC;AACrC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK,cAAc,0CAA0C;AAC1H;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA,sBAAsB,cAAc;AACpC;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,IAAI;AACJ,cAAc,cAAc;AAC5B,IAAI;AACJ,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,+BAAO;AAC7C;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA4D,EAAE,EAIjE;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAU;AAClB;AACA,MAAM;AACN,UAAU,KAAiD,EAAE,EAItD;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAiF,EAAE,EAItF;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAK;AAC5B,MAAM,sBAAG;AACT,MAAM;AACN;AACA;AACA,2BAA2B;AAC3B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,sBAAG;AACL;AACA;AACA,UAAU,eAAe;AACzB;AACA,iCAAiC,4BAAS;AAC1C;AACA;AACA;AACA,UAAU,KAA0D,EAAE,EAG/D,CAAC;AACR;AACA,QAAQ;AACR,QAAQ,8BAAM;AACd;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,+BAAO;AACb;AACA;AACA;AACA,sBAAsB,+BAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B,MAAM,KAAmD,EAAE,EAKxD;AACH;AACA,8BAA8B,4BAAS,mBAAmB;AAC1D;AACA;AACA,QAAQ,gCAAQ;AAChB;AACA,UAAU,8BAAM;AAChB;AACA;AACA,MAAM,SAAS,KAAK;AACpB;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA,IAAI;AACJ,sBAAsB,gCAAQ;AAC9B,mBAAmB,KAAK;AACxB;AACA;AACA;AACA,uCAAuC,8BAAM;AAC7C;AACA,YAAY,+BAAO,cAAc,yBAAM;AACvC,YAAY;AACZ,iBAAiB,+BAAO;AACxB;AACA;AACA,oBAAoB,8BAAM;AAC1B;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA,cAAc,8BAAM;AACpB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAkC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY,MAAyC,IAAI,CAM5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAsD;AAClE;AACA,QAAQ,MAAyC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,uBAAI,UAAU,iCAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAuD,EAAE,EAK5D;AACX;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU,MAAyC,IAAI,CAI5C;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,YAAY,KAAuD,EAAE,EAK5D;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qCAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,IAAI,CAQ5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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,qBAAqB,KAAK,GAAG,aAAa;AAC1C;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH;AACA;AACA;AACA,4BAA4B,KAAK,GAAG,aAAa;AACjD;AACA;AACA;AACA,UAAU,6CAA6C,IAAI,KAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAwC,EAAE,EAG7C;AACH,MAAM,KAA0C,EAAE,EAG/C;AACH,MAAM,KAA4D,EAAE,EAOjE;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gCAAa;AAC9B;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAAI;AACrC;AACA,IAAI;AACJ,kJAAkJ,MAA0D,GAAG,CAAK;AACpN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2CAA2C;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EASvE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU,KAA8F,EAAE,EAEnG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mCAAmC;AAC7C;AACA,iCAAiC,4BAAS;AAC1C,iCAAiC,4BAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA0D,EAAE,EAI/D;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAE9C;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAS;AAChC;AACA,eAAe,iCAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iEAAiE;AAC3E,QAAQ,KAC+B,EAAE,EAIpC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL,QAAQ,KAAyC,EAAE,EAG9C;AACL;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAE9C;AACP;AACA,UAAU,KAAyC,EAAE,EAE9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAG9C;AACL;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAyC,EAAE,EAE9C;AACb;AACA,gBAAgB,KAAyC,EAAE,EAE9C;AACb,gBAAgB,KAAyC,EAAE,EAE9C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAyC,EAAE,EAE9C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV,cAAc,KAAyC,EAAE,EAE9C;AACX;AACA,cAAc,KAAyC,EAAE,EAE9C;AACX,cAAc,KAAyC,EAAE,EAE9C;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAyC,EAAE,EAE9C;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAkE,EAAE,EAEvE;AACT;AACA,QAAQ;AACR,cAAc,6BAA6B;AAC3C;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAkE,EAAE,EAEvE;AACT,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAI9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa;AACjB;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAAS;AACxB,eAAe,4BAAS;AACxB;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,cAAc,KAAgF,EAAE,EAMrF;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,4BAAS;AAC/F;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4CAA4C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA,UAAU,KAAiI,EAAE,EAQtI,CAAC;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL,YAAY,kCAAkC;AAC9C;AACA,MAAM,iCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO,SAAS,+BAAO;AAC7B,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAA0E,EAAE,EAE/E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA,MAAM;AACN;AACA;AACA,QAAQ,MAAyC,IAAI,CAE5C;AACT;AACA;AACA;AACA,IAAI;AACJ,QAAQ,KAA0F,EAAE,EAE/F;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,MAAM;AACN;AACA,UAAU,uCAAuC;AACjD,QAAQ,KAA0D,EAAE,EAG/D;AACL;AACA,kCAAkC,MAAyC,GAAG,CAA+B;AAC7G,qCAAqC,MAAyC,GAAG,CAA6B;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,KAAsD,EAAE,EAElE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS,KAAyC,EAAE,EAMrD;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,8DAA8D,kBAAkB,sBAAsB;AACtG,YAAY,2DAA2D;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,wDAAwD,KAAK,QAAQ,WAAW;AAChF;AACA;AACA;AACA,UAAU,yCAAyC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,4BAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAgG,EAAE,EAIrG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,uBAAuB,gCAAQ,SAAS,KAAK,SAAS,6BAAU,UAAU,gEAAgE;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,uBAAuB,gCAAQ;AAC/B;AACA,MAAM,KAAoE,EAAE,EAEzE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAyC,GAAG,CAA4B;AAC5F;AACA;AACA,QAAQ,KAAkD,EAAE,EAEvD;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sBAAsB;AAChC,kBAAkB,gCAAQ;AAC1B,oBAAoB,iCAAc;AAClC;AACA,QAAQ,gCAAQ;AAChB,UAAU,OAAO,YAAY,+BAAO;AACpC,gBAAgB,8BAAM,GAAG;AACzB;AACA,oBAAoB,iCAAc;AAClC;AACA;AACA,oBAAoB,gCAAQ,8DAA8D,gCAAQ,aAAa,6BAAU;AACzH,MAAM,KAA2E,EAAE,EAQhF;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wCAAwC,8BAAM,GAAG;AACjE;AACA;AACA,UAAU,kCAAkC;AAC5C,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAAO;AAC/B;AACA;AACA;AACA,cAAc,MAAkF,GAAG,CAA4B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,+BAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA,IAAI,SAAS,+BAAO;AACpB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,6BAAU;AACvB,iBAAiB;AACjB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA,sBAAsB,iCAAc;AACpC;AACA,QAAQ;AACR,oBAAoB,iCAAc;AAClC,QAAQ,SAAS,uBAAI;AACrB;AACA;AACA,mDAAmD,+BAAO;AAC1D;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAS;AAC5B;AACA;AACA;AACA,SAAS,4BAAS;AAClB,UAAU,4BAAS;AACnB,WAAW,4BAAS;AACpB,WAAW,4BAAS;AACpB,WAAW,4BAAS;AACpB,UAAU,4BAAS;AACnB,gBAAgB,4BAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C,CAAC;AACJ,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gCAAa;AACpD,mCAAmC,gCAAa;AAChD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yEAAyB;AAC9D;AACA;AACA;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAqB9C;AACH;AACA,mBAAmB,OAAO;AAC1B,MAAM,KAAyC,EAAE,EAE9C;AACH,UAAU,QAAQ;AAClB;AACA;AACA;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA,OAAO,MAAyC,GAAG,CAA+B;AAClF;AACA,IAAI,aAAa;AACjB;AACA,QAAQ,4BAAS;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,QAAQ;AACR;AACA,YAAY,KAA+D,EAAE,EAKpE;AACT;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI,SAAS,gCAAQ;AACrB,QAAQ,KAAiE,EAAE,EAItE;AACL,QAAQ,KAAkE,EAAE,EAEvE;AACL,0BAA0B,SAAS;AACnC,QAAQ,KAAyC,EAAE,EAE9C;AACL,IAAI,SAAS,KAAmE,EAAE,EAI/E;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT,gBAAgB,mCAAmC;AACnD,gBAAgB,wDAAwD;AACxE,qCAAqC,8BAAM;AAC3C,UAAU,8BAAM;AAChB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,0CAA0C,4BAAI;AAC9C;AACA;AACA;AACA;AACA,MAAM,IAA2B;AACjC;AACA,IAAI,aAAa;AACjB;AACA;AACA,MAAM;AACN,MAAM,aAAa;AACnB;AACA;AACA;AACA,MAAM,KAAoG,EAAE,EASzG;AACH;AACA;AACA;AACA;AACA,IAAI,MAAyC,GAAG,CAc3C,CAAC;AACN;AACA,QAAQ,4BAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAmB9C;AACL;AACA;AACA,MAAM,KAAyC,EAAE,EAa9C,CAAC;AACJ;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,SAAS,CAAC,OAAO;AACtF;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAU;AACnB;;AAEA,MAAM,iCAAQ;AACd,SAAS,QAAU;AACnB;;AAEA;AACA;AACA;AACA,QAAQ,gCAAQ,sBAAsB,+BAAO;AAC7C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA;AACA;AACA;;AAEA,SAAS,kCAAS;AAClB;AACA;;AAEA,SAAS,4CAAmB;AAC5B,MAAM,IAA2E;AACjF;AACA;AACA,qBAAqB;AACrB,wBAAwB;AACxB,wBAAwB;AACxB,yBAAyB;AACzB;AACA;AACA,WAAW,gCAAQ;AACnB;AACA;AACA;AACA;AACA,QAAQ,SAAS,KAAK;AACtB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA;AACA,YAAY;AACZ,6BAA6B,kCAAS;AACtC;AACA;AACA,cAAc,UAAU,2BAA2B;AACnD;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA;AACA,YAAY;AACZ,6BAA6B,kCAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAAK;AACpD;AACA,gCAAgC,4BAAS;AACzC;AACA;AACA,0BAA0B,4BAAS;AACnC,8CAA8C,4BAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,wCAAwC;AACxC,SAAS;AACT;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA,aAAa,8BAAM,GAAG;AACtB;AACA,wBAAwB;AACxB;AACA;AACA;AACA,QAAQ,2BAA2B,sBAAsB;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM,SAAS,gCAAQ;AACvB,0BAA0B,gBAAgB,4BAAK,SAAS;AACxD,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO,gCAAgC,gCAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,QAAQ,6BAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEk+C;;;ACnnPl+C,SAAS,sCAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,MAAM,iCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,iCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,mCAAI;AACV;AACA,MAAM,iCAAE;AACR,MAAM,4BAAI;AACV,MAAM,4BAAI,YAAY,4BAAI;AAC1B,MAAM,uCAAe;AACrB,MAAM,qCAAM;AACZ,MAAM,8BAAM;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM,6CAAc;AACpB,MAAM,qCAAM,iBAAiB,6CAAc;AAC3C,MAAM,sCAAO;AACb,MAAM,6BAAK,YAAY,oCAAY;AACnC,MAAM,6BAAK,YAAY,oCAAY;AACnC,MAAM,8BAAM,YAAY,oCAAY;AACpC,MAAM,gCAAQ,YAAY,oCAAY;AACtC,MAAM,kCAAU;AAChB,MAAM,uCAAQ;AACd,MAAM,gCAAQ;AACd,MAAM,uCAAQ;AACd,MAAM,iCAAS;AACf,UAAU,uCAAQ,SAAS,kCAAU,UAAU,kCAAU,cAAc,kCAAU;AACjF;AACA,MAAM,sCAAc;AACpB,MAAM,oCAAY,cAAc,sCAAc;AAC9C,MAAM,wCAAS;AACf,SAAS,oCAAY;AACrB;AACA,MAAM,qCAAa,YAAY,oCAAY;AAC3C,MAAM,oCAAY,YAAY,uCAAQ;AACtC,MAAM,sCAAc,mBAAmB,sFAAO;AAC9C;AACA;AACA,CAAC;AACD,MAAM,iDAAkB,mBAAmB,sFAAO;AAClD;AACA,CAAC;AACD,MAAM,2CAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAU;AAChB,MAAM,gCAAQ,GAAG,2CAAmB;AACpC,qBAAqB,kCAAU;AAC/B,CAAC;AACD,MAAM,mCAAW;AACjB,MAAM,wCAAS,GAAG,2CAAmB;AACrC,uBAAuB,mCAAW;AAClC;AACA,MAAM,yCAAU,GAAG,2CAAmB;AACtC;AACA,CAAC;AACD,MAAM,oCAAY,GAAG,2CAAmB;AACxC,uBAAuB,yCAAU,MAAM;AACvC;AACA,CAAC;AACD,MAAM,kCAAU;AAChB,MAAM,sCAAc;AACpB,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,MAAM,2BAAG;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,qCAAa;AACnB;AACA;AACA;AACA,MAAM,gCAAQ;AACd,YAAY,uCAAQ;AACpB;AACA;AACA,IAAI,kCAAW;AACf,MAAM,qCAAa;AACnB,SAAS,kCAAW,KAAK,kCAAW,yIAAyI,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA,MAAM,+BAAO;AACb,SAAS,yCAAiB;AAC1B,SAAS,+BAAO,yBAAyB,KAAK,eAAe,qBAAqB;AAClF;;AAEA,MAAM,sCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,qCAAa;AACnB;AACA;AACA;AACA;;AAEA,MAAM,uCAAe;AACrB,MAAM,yCAAiB,mBAAmB,sFAAO,CAAC,uCAAe,CAAC;AAClE,MAAM,6CAAqB,GAAG,yFAAiB;;AAE/C,MAAM,6BAAK;AACX,SAAS,yCAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,uBAAuB,6BAAK,EAAE,SAAS,6BAAK,iBAAiB;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,sCAAc;AACvB,MAAM,sCAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,uCAAQ,SAAS,wCAAgB,SAAS,sCAAc;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,uCAAQ,WAAW,uCAAQ;AACxC;AACA;AACA;AACA,MAAM,uCAAe,KAAK;AAC1B,MAAM,2CAAmB;AACzB,MAAM,sCAAc;AACpB,SAAS,wCAAgB;AACzB;AACA,kBAAkB,sCAAc,YAAY,uCAAe;AAC3D;AACA,6BAA6B,2CAAmB;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,sCAAc;AACvB;AACA,iBAAiB,uCAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,wCAAS;AAChE,QAAQ,uCAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA,SAAS,sCAAc;AACvB;AACA,MAAM,uCAAQ;AACd;AACA,IAAI,SAAS,sCAAO;AACpB,oBAAoB,kBAAkB;AACtC,yBAAyB,sCAAc;AACvC;AACA;AACA;AACA;AACA,IAAI,SAAS,uCAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAc;AACvB;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,uCAAQ;AACxB,kBAAkB,sCAAc;AAChC;AACA;AACA,kBAAkB,sCAAc;AAChC;AACA;AACA;;AAEA,MAAM,iCAAS;AACf,MAAM,gCAAQ;AACd,MAAM,iCAAS;AACf,MAAM,wCAAS,mBAAmB,sFAAO,CAAC,iCAAS,CAAC;AACpD,MAAM,uCAAQ,mBAAmB,sFAAO,CAAC,gCAAQ,CAAC;AAClD,MAAM,iCAAS,mBAAmB,sFAAO,CAAC,iCAAS,CAAC;;AAEpD,MAAM,2CAAmB;AACzB,MAAM,4CAAoB,mBAAmB,sCAAO,CAAC,2CAAmB;AACxE,MAAM,qCAAa,mBAAmB,sCAAO;AAC7C,EAAE,2CAAmB;AACrB;AACA,SAAS,0CAAkB;AAC3B;AACA;AACA,MAAM,wCAAgB;AACtB,MAAM,2CAAmB;AACzB,SAAS,yCAAiB;AAC1B,MAAM,2CAAmB;AACzB,WAAW,2CAAmB;AAC9B;AACA,mBAAmB,wCAAgB;AACnC;AACA,4CAA4C,KAAK;AACjD;AACA,SAAS,2CAAmB;AAC5B;AACA,MAAM,sCAAc;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAe,mBAAmB,sFAAO;AAC/C;AACA,CAAC;AACD,MAAM,sCAAc,mBAAmB,sFAAO;AAC9C;AACA,CAAC;;AAED,MAAM,gCAAQ;AACd,SAAS,kCAAU;AACnB;AACA,gBAAgB,gCAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAc;AACpB,SAAS,yCAAiB;AAC1B,qBAAqB,sCAAc;AACnC;;AAEA,SAAS,0CAAkB;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,YAAY,kCAAU;AACtB;AACA;AACA;AACA,SAAS,kCAAU;AACnB;AACA;AACA,mBAAmB,8BAAM;AACzB,mBAAmB,8BAAM;AACzB;AACA;AACA;AACA,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB;AACA;AACA;AACA,eAAe,sCAAO;AACtB,eAAe,sCAAO;AACtB;AACA,sCAAsC,0CAAkB;AACxD;AACA,eAAe,uCAAQ;AACvB,eAAe,uCAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kCAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oCAAY;AACrB,iCAAiC,kCAAU;AAC3C;;AAEA,MAAM,uCAAe;AACrB,SAAS,uCAAQ,iCAAiC,sCAAO,SAAS,uCAAQ,2BAA2B,sCAAc,KAAK,kCAAU,sCAAsC,gCAAQ;AAChL;AACA,MAAM,gCAAQ;AACd;AACA,WAAW,gCAAQ;AACnB,IAAI,SAAS,6BAAK;AAClB;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI,SAAS,6BAAK;AAClB;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,uCAAQ,UAAU,sCAAO,UAAU,qCAAa;AAC7D;AACA;AACA;AACA;;AAE00B;;;ACvZha;AACxY;AACsQ;;AAExS;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,uFAAuF,KAAK;AAC5F;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,OAAO,KAAK,CAAC,CAAC,cAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,qCAAM;AAC3E,IAAI;AACJ,EAAE,6BAA6B;AAC/B;AACA;AACA,MAAM,gCAAQ;AACd,MAAM,sCAAO;AACb;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,gBAAgB,sCAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,0BAA0B,KAAK;AAC/B,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,0BAA0B,KAAK;AAC/B,sBAAsB,KAAK;AAC3B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS,qCAAM;AACf;AACA,MAAM,gCAAQ;AACd;AACA;AACA,KAAK;AACL;AACA,MAAM,gCAAQ;AACd;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM,gCAAQ;AACd,KAAK;AACL;AACA;AACA,MAAM,gCAAQ;AACd,KAAK;AACL;AACA;AACA,MAAM,gCAAQ;AACd,KAAK;AACL;AACA;AACA,MAAM,gCAAQ;AACd;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI,SAAS,uCAAQ;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,cAAc,gCAAQ;AACtB,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D,oDAAoD,WAAW;AAC/D;AACA,gDAAgD,UAAU;AAC1D,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;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;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO,IAAI,YAAY;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,gBAAgB,OAAO,IAAI,YAAY;AACvC;AACA;AACA;AACA,GAAG;AACH,gBAAgB,iBAAiB,IAAI,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,uCAAQ;AAC9B;AACA,iBAAiB,uCAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,MAAM,sCAAO;AACb;AACA,IAAI;AACJ;AACA;AACA,QAAQ,KAAyC,EAAE,EAM9C;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU,wCAAS;AACnB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2BAAQ;AACrB;AACA;AACA;AACA,SAAS,yCAAU;AACnB,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ,sBAAsB,4CAAoB;AAC1C,uCAAuC,0CAAkB;AACzD;AACA,MAAM;AACN;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,cAAc,0CAAkB;AAChC,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,QAAQ,KAAwD,EAAE,EAK7D;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wCAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI,0BAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,SAAS,4BAAI;AACjB,SAAS,uCAAe;AACxB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kCAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uCAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,KAA4D,EAAE,EAIjE;AACP,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,6BAA6B,kBAAkB;AAC/C;AACA,cAAc,gBAAgB;AAC9B;AACA,oBAAoB,sCAAO;AAC3B;AACA;AACA;AACA;AACA,iCAAiC,gCAAQ;AACzC;AACA,iFAAiF,gCAAU;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,6BAA6B,sCAAO,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA,2CAA2C,gCAAU;AACrD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,qBAAqB,gCAAU;AAC/B;AACA,cAAc,gCAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAS;AACrC,UAAU;AACV,4BAA4B,wCAAS;AACrC,UAAU;AACV,+BAA+B,wCAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW,YAAY,qCAAM,GAAG;AAClD;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAU9C;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc,wCAAS;AACvB,qBAAqB,wCAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA,MAAM,MAAyC,IAAI,CAAkD;AACrG,aAAa,iCAAS;AACtB;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAA4D;AAC/G,aAAa,iCAAS;AACtB;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAAkE;AACrH,aAAa,iCAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA,IAAI,MAAyC,IAAI,CAAuE;AACxH;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe;AACjB,EAAE,SAAS;AACX;AACA,iDAAiD,iBAAiB;AAClE,IAAI,WAAW;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,QAAQ;AACpC;AACA,IAAI,wBAAwB,MAAM;AAClC,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,kCAAU;AAChB;AACA;AACA,yBAAyB,qCAAM,GAAG;AAClC;AACA;AACA,GAAG;AACH,iBAAiB,OAAO;AACxB,qBAAqB,kBAAkB;AACvC,kBAAkB,kBAAkB;AACpC;AACA;AACA,IAAI,SAAS;AACb;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,uBAAuB,4BAAK;AAC5B;AACA,gCAAgC,QAAQ;AACxC;AACA,iCAAiC,wBAAwB;AACzD,sBAAsB,qBAAqB;AAC3C;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA,YAAY,sBAAsB;AAClC;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA,UAAU,kBAAkB;AAC5B;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAU;AACnB,OAAO,kCAAU;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,GAAG,KAAK,GAAG;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;;AAEA;AACA;AACA,SAAS,sCAAO,kBAAkB,sCAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAa;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,OAAO;AACvB;AACA,GAAG;AACH,qBAAqB,oBAAoB,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sCAAO;AACjB,sBAAsB,oCAAY;AAClC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ,SAAS,6BAAK;AACtB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,MAAM,sCAAO;AACb,iBAAiB,oCAAY;AAC7B,IAAI,SAAS,6BAAK;AAClB;AACA,IAAI;AACJ,iBAAiB,kCAAU;AAC3B;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,kCAAU;AAC3B;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,qBAAqB,iBAAiB;AACtC;AACA;AACA,mBAAmB,kCAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB,UAAU;AAC9C,uBAAuB,6BAAK;AAC5B;AACA;AACA,wBAAwB,qCAAa;AACrC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,gBAAgB,OAAO;AACvB;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAO,YAAY,6BAAK;AAC7C,IAAI,MAAyC,IAAI,CAE5C;AACL;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA,UAAU,sCAAO;AACjB,0BAA0B,oCAAY;AACtC,QAAQ;AACR;AACA;AACA,MAAM;AACN,UAAU,kCAAU;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO,QAAQ,OAAO;AACpD,+BAA+B,OAAO;AACtC,uBAAuB,kCAAU;AACjC,eAAe;AACf;AACA;AACA,kCAAkC,OAAO;AACzC,QAAQ,sCAAO;AACf,yBAAyB,oCAAY;AACrC,iBAAiB;AACjB;AACA,MAAM,SAAS,6BAAK;AACpB;AACA,iBAAiB;AACjB;AACA,MAAM;AACN,eAAe;AACf;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;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wCAAS;AAC9B;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,qCAAM,GAAG,WAAW;AAC5D;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAG9C;AACH,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAG9C;AACH,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM,uCAAQ;AACd;AACA,QAAQ,KAAiD,EAAE,EAItD;AACL;AACA;AACA,MAAM,KAAuI,EAAE,EAI5I;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgS;;;AC7/ChS,SAAS,2CAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,MAAM,wCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,wCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,wCAAI;AACV;AACA,MAAM,sCAAE;AACR,MAAM,mCAAI;AACV,MAAM,mCAAI,YAAY,mCAAI;AAC1B,MAAM,8CAAe;AACrB,MAAM,0CAAM;AACZ,MAAM,qCAAM;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM,kDAAc;AACpB,MAAM,0CAAM,iBAAiB,kDAAc;AAC3C,MAAM,2CAAO;AACb,MAAM,oCAAK,YAAY,2CAAY;AACnC,MAAM,oCAAK,YAAY,2CAAY;AACnC,MAAM,qCAAM,YAAY,2CAAY;AACpC,MAAM,uCAAQ,YAAY,2CAAY;AACtC,MAAM,yCAAU;AAChB,MAAM,4CAAQ;AACd,MAAM,uCAAQ;AACd,MAAM,4CAAQ;AACd,MAAM,wCAAS;AACf,UAAU,4CAAQ,SAAS,yCAAU,UAAU,yCAAU,cAAc,yCAAU;AACjF;AACA,MAAM,6CAAc;AACpB,MAAM,2CAAY,cAAc,6CAAc;AAC9C,MAAM,6CAAS;AACf,SAAS,2CAAY;AACrB;AACA,MAAM,4CAAa,YAAY,2CAAY;AAC3C,MAAM,2CAAY,YAAY,4CAAQ;AACtC,MAAM,6CAAc,mBAAmB,2CAAO;AAC9C;AACA;AACA;AACA,MAAM,sDAAkB,mBAAmB,2CAAO;AAClD;AACA;AACA,MAAM,kDAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yCAAU;AAChB,MAAM,uCAAQ,GAAG,kDAAmB;AACpC,qBAAqB,yCAAU;AAC/B,CAAC;AACD,MAAM,0CAAW;AACjB,MAAM,6CAAS,GAAG,kDAAmB;AACrC,uBAAuB,0CAAW;AAClC;AACA,MAAM,8CAAU,GAAG,kDAAmB;AACtC;AACA,CAAC;AACD,MAAM,2CAAY,GAAG,kDAAmB;AACxC,uBAAuB,8CAAU,MAAM;AACvC;AACA,CAAC;AACD,MAAM,yCAAU;AAChB,MAAM,6CAAc;AACpB,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,MAAM,kCAAG;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,4CAAa;AACnB;AACA;AACA;AACA,MAAM,uCAAQ;AACd,YAAY,4CAAQ;AACpB;AACA;AACA,IAAI,yCAAW;AACf,MAAM,4CAAa;AACnB,SAAS,yCAAW,KAAK,yCAAW,yIAAyI,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA,MAAM,sCAAO;AACb,SAAS,gDAAiB;AAC1B,SAAS,sCAAO,yBAAyB,KAAK,eAAe,qBAAqB;AAClF;;AAEA,MAAM,6CAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,4CAAa;AACnB;AACA;AACA;AACA;;AAEA,MAAM,8CAAe;AACrB,MAAM,gDAAiB,mBAAmB,2FAAO,CAAC,8CAAe,CAAC;AAClE,MAAM,oDAAqB,GAAG,gGAAiB;;AAE/C,MAAM,oCAAK;AACX,SAAS,gDAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,uBAAuB,oCAAK,EAAE,SAAS,oCAAK,iBAAiB;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,6CAAc;AACvB,MAAM,2CAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,4CAAQ,SAAS,+CAAgB,SAAS,6CAAc;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,4CAAQ,WAAW,4CAAQ;AACxC;AACA;AACA;AACA,MAAM,8CAAe,KAAK;AAC1B,MAAM,kDAAmB;AACzB,MAAM,6CAAc;AACpB,SAAS,+CAAgB;AACzB;AACA,kBAAkB,6CAAc,YAAY,8CAAe;AAC3D;AACA,6BAA6B,kDAAmB;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,6CAAc;AACvB;AACA,iBAAiB,4CAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,6CAAS;AAChE,QAAQ,4CAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA,SAAS,6CAAc;AACvB;AACA,MAAM,4CAAQ;AACd;AACA,IAAI,SAAS,2CAAO;AACpB,oBAAoB,kBAAkB;AACtC,yBAAyB,6CAAc;AACvC;AACA;AACA;AACA;AACA,IAAI,SAAS,4CAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6CAAc;AACvB;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,4CAAQ;AACxB,kBAAkB,6CAAc;AAChC;AACA;AACA,kBAAkB,6CAAc;AAChC;AACA;AACA;;AAEA,MAAM,wCAAS;AACf,MAAM,uCAAQ;AACd,MAAM,wCAAS;AACf,MAAM,6CAAS,mBAAmB,2CAAO,CAAC,wCAAS;AACnD,MAAM,4CAAQ,mBAAmB,2CAAO,CAAC,uCAAQ;AACjD,MAAM,wCAAS,mBAAmB,2CAAO,CAAC,wCAAS;;AAEnD,MAAM,kDAAmB;AACzB,MAAM,mDAAoB,mBAAmB,2FAAO,CAAC,kDAAmB,CAAC;AACzE,MAAM,4CAAa,mBAAmB,2CAAO;AAC7C,EAAE,kDAAmB;AACrB;AACA,SAAS,iDAAkB;AAC3B;AACA;AACA,MAAM,+CAAgB;AACtB,MAAM,kDAAmB;AACzB,SAAS,gDAAiB;AAC1B,MAAM,kDAAmB;AACzB,WAAW,kDAAmB;AAC9B;AACA,mBAAmB,+CAAgB;AACnC;AACA,4CAA4C,KAAK;AACjD;AACA,SAAS,kDAAmB;AAC5B;AACA,MAAM,6CAAc;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM,8CAAe,mBAAmB,2FAAO;AAC/C;AACA,CAAC;AACD,MAAM,6CAAc,mBAAmB,2FAAO;AAC9C;AACA,CAAC;;AAED,MAAM,uCAAQ;AACd,SAAS,yCAAU;AACnB;AACA,gBAAgB,uCAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6CAAc;AACpB,SAAS,gDAAiB;AAC1B,qBAAqB,6CAAc;AACnC;;AAEA,SAAS,iDAAkB;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,YAAY,yCAAU;AACtB;AACA;AACA;AACA,SAAS,yCAAU;AACnB;AACA;AACA,mBAAmB,qCAAM;AACzB,mBAAmB,qCAAM;AACzB;AACA;AACA;AACA,eAAe,uCAAQ;AACvB,eAAe,uCAAQ;AACvB;AACA;AACA;AACA,eAAe,2CAAO;AACtB,eAAe,2CAAO;AACtB;AACA,sCAAsC,iDAAkB;AACxD;AACA,eAAe,4CAAQ;AACvB,eAAe,4CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yCAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2CAAY;AACrB,iCAAiC,yCAAU;AAC3C;;AAEA,MAAM,8CAAe;AACrB,SAAS,4CAAQ,iCAAiC,2CAAO,SAAS,4CAAQ,2BAA2B,6CAAc,KAAK,yCAAU,sCAAsC,uCAAQ;AAChL;AACA,MAAM,uCAAQ;AACd;AACA,WAAW,uCAAQ;AACnB,IAAI,SAAS,oCAAK;AAClB;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI,SAAS,oCAAK;AAClB;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,4CAAQ,UAAU,2CAAO,UAAU,4CAAa;AAC7D;AACA;AACA;AACA;;AAE00B;;;ACvZxmB;AAClL;;AAEhD;AACA;AACA;AACA;AACA,EAAE,MAAyC,IAAI,CAAyC;AACxF;AACA;AACA,cAAc,MAAkD,GAAG,CAA6D;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,0BAA0B,MAAyC,GAAG,CAAW;AACjF,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,0BAA0B,MAAyC,GAAG,CAAW;AACjF,4BAA4B,MAAyC,GAAG,CAAa;AACrF,oCAAoC,MAAyC,GAAG,CAAoB;AACpG,4BAA4B,MAAyC,GAAG,CAAa;AACrF,oCAAoC,MAAyC,GAAG,CAAoB;AACpG,8BAA8B,MAAyC,GAAG,CAAoB;AAC9F,2BAA2B,MAAyC,GAAG,CAAiB;AACxF,6BAA6B,MAAyC,GAAG,CAAmB;AAC5F,iCAAiC,MAAyC,GAAG,CAAkB;AAC/F;AACA,EAAE,MAAyC,GAAG,CAAyB;AACvE;AACA,iCAAiC,MAAyC,GAAG,CAAkB;AAC/F,8BAA8B,MAAyC,GAAG,CAAe;AACzF,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,2BAA2B,MAAyC,GAAG,CAAY;AACnF,2BAA2B,MAAyC,GAAG,CAAY;AACnF,4BAA4B,MAAyC,GAAG,CAAa;AACrF,iCAAiC,MAAyC,GAAG,CAAiB;AAC9F,2BAA2B,MAAyC,GAAG,CAAY;AACnF,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,oCAAoC,MAAyC,GAAG,CAAoB;AACpG,2BAA2B,MAAyC,GAAG,CAAY;AACnF,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,0BAA0B,MAAyC,GAAG,CAAY;AAClF,8BAA8B,MAAyC,GAAG,CAAc;AACxF,kCAAkC,MAAyC,GAAG,CAAkB;AAChG,6BAA6B,MAAyC,GAAG,CAAa;AACtF,4BAA4B,MAAyC,GAAG,CAAY;AACpF,wBAAwB,MAAyC,GAAG,CAAS;AAC7E,qBAAqB,MAAyC,GAAG,CAAO;AACxE,sBAAsB,MAAyC,GAAG,CAAO;AACzE,yBAAyB,MAAyC,GAAG,CAAU;AAC/E,4BAA4B,MAAyC,GAAG,CAAY;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,+BAA+B;AAC1C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qEAAqE,6CAAS;AAC9E;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0CAAM,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA,kDAAkD,4CAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAQ;AACxB;AACA,SAAS,4CAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAQ;AAC/B;AACA,IAAI;AACJ;AACA,SAAS,4CAAQ;AACjB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK,GAAG;AACrB;AACA,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iHAAiH,IAAI,yCAAyC,IAAI;AAClK;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAoD,EAAE,EAEzD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B,8BAA8B,IAAI,IAAI,2DAA2D,EAAE;AACnG,aAAa,KAAK,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA,aAAa,sCAAE;AACf,YAAY,sCAAE;AACd,mBAAmB,sCAAE;AACrB;AACA;AACA;AACA,eAAe,YAAoB;AACnC;AACA,SAAS,mCAAS,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0CAAM,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAyC,IAAI,CAI5C;AACb;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAAO;AACf,sBAAsB,iBAAiB;AACvC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,2CAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0CAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAGH,EAAE,EAqBF;AACH;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAuE,EAAE,EAM5E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;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;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAyC,GAAG,CAAgB;AAC1G;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qJAAqJ,2CAAO;AAC5J;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA,YAAY,4CAAQ,WAAW,uCAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAQ;AACpC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,oBAAoB,uBAAuB;AAC3C,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;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;AACA,0BAA0B;AAC1B;AACA,uBAAuB,wCAAI;AAC3B,oBAAoB,wCAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wCAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2BAA2B,8CAAU,CAAC,uCAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB,oCAAoC;AACrD,KAAK;AACL;AACA,UAAU,KAAyC,EAAE,EAO9C;AACP;AACA,KAAK;AACL;AACA,UAAU,KAA4D,EAAE,EAEjE;AACP;AACA;AACA,UAAU,KAA6D,EAAE,EAElE;AACP;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,UAAU,4CAAQ;AAClB;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA,wBAAwB,6CAAc;AACtC,QAAQ,KAA8F,EAAE,EAGnG;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAyC,GAAG,CAAyB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAA4B;AACrC;AACA,QAAQ,4CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA,UAAU,2CAAO;AACjB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4CAAQ;AAC1B;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,iBAAiB,KAAK,iBAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa,GAAG,UAAU,GAAG;AAClD;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,oBAAoB,EAAE,uCAAuC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,cAAc,kBAAkB,OAAO,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6BAA6B;AAChE;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B,IAAI,SAAS,GAAG,mBAAmB,EAAE,mCAAmC,GAAG,gBAAgB;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uCAAuC;AACjD;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,0BAA0B,OAAO,IAAI,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,MAAyC,IAAI,CAA2C;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B,kBAAkB,kBAAkB;AACpC;AACA,QAAQ,4CAAQ;AAChB;AACA,MAAM,SAAS,2CAAO;AACtB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4CAAQ;AACd;AACA;AACA;AACA,MAAM,uCAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAG5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAI9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA,UAAU,0BAA0B;AACpC;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA,QAAQ,4CAAQ;AAChB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ,aAAa,aAAa;AAC1B;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA;AACA,UAAU,uBAAuB,GAAG,6BAA6B;AACjE;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,aAAa,mBAAmB,GAAG,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B,iBAAiB,4CAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kCAAkC;AAC5C,UAAU,aAAa;AACvB;AACA,YAAY;AACZ;AACA;AACA,8CAA8C,MAAyC,IAAI,CAA0C;AACrI,sBAAsB,OAAO;AAC7B;AACA,kBAAkB,uBAAuB;AACzC,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,UAAU,yCAAyC;AACnD;AACA,aAAa,wBAAwB;AACrC;AACA;AACA,MAAM,2CAAO;AACb;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAAO;AACf;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oDAAoD;AAC9D,UAAU,kCAAkC;AAC5C;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0CAA0C;AACpD,iBAAiB,WAAW;AAC5B;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,+EAA+E,GAAG;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK,cAAc,eAAe,IAAI,OAAO,QAAQ,IAAI,GAAG;AACxF;AACA,IAAI;AACJ;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA4D,EAAE,EAEjE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAyC,IAAI,CAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAC6F,EAAE,EAElG;AACT,YAAY,KAAkD,EAAE,EAcvD;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAyC,GAAG,CAAQ;AAC5D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,0BAA0B,6CAAc;AACxC,UAAU,KAAsH,EAAE,EAG3H;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAyC,GAAG,CAAyB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAyC,GAAG,CAAwC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,YAAY,KAAkE,EAAE,EAevE;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAyC,GAAG,CAA8B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4CAA4C;AACtD,UAAU,4BAA4B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAiD,EAAE,EAEtD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAiD,EAAE,EAMtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAiD,EAAE,EAMtD;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAiD,EAAE,EAMtD;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC,cAAc,oCAAoC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAyC,GAAG,CAAmC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;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;AACA,YAAY,aAAa;AACzB;AACA,2EAA2E,IAAI;AAC/E,+BAA+B,4CAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAqE,EAAE,EAQ1E;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAO9C,CAAC;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAI9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA,6BAA6B,mCAAI;AACjC;AACA;AACA;AACA;AACA,OAAO,6CAAc;AACrB;AACA;AACA,4BAA4B,6CAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAyC,EAAE,EAoB9C;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc,uCAAQ;AACtB;AACA;AACA;AACA,QAAQ,UAAU,sDAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAI;AACtD,QAAQ,sCAAY;AACpB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAY;AACrB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;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,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,mBAAmB,uCAAQ;AAC3B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA,0BAA0B,uCAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAwE,EAAE,EAI7E;AACP;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,QAAQ,2CAAY,CAAC,uCAAQ;AAC7B;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA,MAAM;AACN;AACA,WAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,kCAAkC,qCAAqC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,QAAQ,KAAiD,EAAE,EAOtD;AACL;AACA;AACA,WAAW,kCAAkC,GAAG,YAAY,KAAK,0BAA0B,QAAQ;AACnG;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA,IAAI;AACJ,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA,sBAAsB,uCAAQ;AAC9B,QAAQ;AACR,yBAAyB,+BAA+B,GAAG,YAAY;AACvE;AACA,MAAM;AACN,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,OAAO,GAAG,EAAE,aAAa;AAClD;AACA,IAAI;AACJ,6BAA6B,OAAO;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAyC,GAAG,CAA6B;AAC5F;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uCAAQ,cAAc;AAC/E;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA,aAAa,EAAE,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,IAAI,CAI5C;AACL,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iCAAiC,GAAG,IAAI;AACtD,IAAI;AACJ;AACA;AACA;AACA,cAAc,+BAA+B,GAAG,IAAI,EAAE,iCAAiC;AACvF;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAyC,GAAG,CAAqB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4CAAQ,aAAa,mCAAS;AAC5C;AACA;AACA;AACA,IAAI,0CAAM,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAM;AACjC,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI,0CAAM,GAAG;AACb;AACA,KAAK;AACL;AACA;;AAEA,wCAAwC,WAAW;;AAE2nE;;;AChmJ3xD;AAChX;AACyE;;AAE5G,6BAA6B,MAAyC,GAAG,CAAa;AACtF,gCAAgC,MAAyC,GAAG,CAAgB;AAC5F,4BAA4B,MAAyC,GAAG,CAAY;AACpF,8BAA8B,MAAyC,GAAG,CAAc;AACxF,+BAA+B,MAAyC,GAAG,CAAe;AAC1F,mCAAmC,MAAyC,GAAG,CAAmB;AAClG,8BAA8B,MAAyC,GAAG,CAAc;AACxF,sBAAsB,MAAyC,GAAG,CAAO;AACzE,MAAM,mCAAU,UAAU,MAAyC,GAAG,CAAY;AAClF,gCAAgC,MAAyC,GAAG,CAAiB;AAC7F,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,mCAAU;AACb;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB,GAAG;AACjE;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,2CAA2C,2CAAO;AAClD;AACA;AACA;AACA;AACA,WAAW;AACX,wBAAwB,6CAAS,SAAS,4CAAQ;AAClD;AACA;AACA;AACA,QAAQ,aAAa;AACrB,aAAa,mCAAU;AACvB,MAAM,SAAS,aAAa;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,+CAAgB;AACrC,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,mBAAmB;AAC5B;AACA;AACA,IAAI,MAAkD,GAAG,CAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB;AAC1B,QAAQ,sBAAsB;AAC9B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB;AAC1B,QAAQ,sBAAsB;AAC9B,cAAc,eAAe,2BAA2B,oBAAoB;AAC5E,+BAA+B,iBAAiB;AAChD;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;;AAEA,MAAM,uCAAc;AACpB,qBAAqB,cAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAyC,IAAI,CAAsB;AACjF;AACA;AACA;AACA,QAAQ,SAAS,kBAAkB;AACnC;AACA,QAAQ;AACR,QAAQ,MAAyC,IAAI,CAAsB;AAC3E;AACA,MAAM;AACN;AACA,MAAM;AACN,MAAM,MAAyC,IAAI,CAAsB;AACzE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,2CAAO;AACrD,yCAAyC,2CAAO;AAChD;AACA;AACA;AACA,yCAAyC,2CAAO;AAChD,wCAAwC,2CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,yBAAyB,sBAAsB,iCAAiC,wBAAwB;AACxG;AACA;AACA,0BAA0B,MAAM;AAChC;AACA;AACA;AACA;AACA,MAAM,oCAAW;AACjB,SAAS,WAAa;AACtB,YAAY,YAAY;AACxB;AACA;AACA,UAAU,yBAAyB;AACnC,YAAY,sDAAsD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW;AACjB,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,uDAAuD,8CAAU;AACjE,YAAY,WAAW,QAAQ,sBAAsB,IAAI,YAAY,EAAE,gBAAgB,WAAW,wBAAwB,oBAAoB,gBAAgB;AAC9J;AACA;AACA,cAAc,oBAAoB;AAClC;AACA,GAAG;AACH;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,mCAAU;AAChC;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,MAAyC,IAAI,CAK5C;AACL;AACA;AACA;;AAEA;AACA;AACA,KAAK,MAAyC,GAAG,CAAqB;AACtE;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA;AACA,SAAS,uCAAc;AACvB;AACA,MAAM,oCAAW;AACjB;AACA;AACA;AACA,SAAS,gCAAO,uBAAuB;AACvC,SAAS,WAAW;AACpB;AACA,IAAI,0CAAM,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAM;AACjC,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qCAAqC;AACrC,sCAAsC;AACtC;;AAEuR;;;ACxexO;AACuC;AACrD;AACW;AAC4B;;AAExE;AACA;AACA;AACA;AACA;;AAEA,IAAI,KAAyC,EAAE,EAE9C;AACD;AACA;AACA,OAAO,4CAAQ;AACf;AACA;AACA,MAAM;AACN,MAAM,MAAyC,IAAI,CAA2C;AAC9F,aAAa,wCAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAgD,EAAE,EAErD;AACL;AACA;AACA,eAAe,0CAAM;AACrB;AACA;AACA,eAAe,MAAyC,GAAG,CAAO;AAClE,cAAc,MAAyC,GAAG,CAAuB,GAAG,wCAAI;AACxF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO,EAAE,gCAAO;AAC1B;AACA,6EAA6E,YAAY;AACzF,iCAAiC,gDAAiB;AAClD;AACA;AACA;AACA;AACA,IAAI,6BAAI,gBAAgB;AACxB,EAAE,UAAU;AACZ;AACA,2CAA2C,uCAAU;AACrD;AACA;AACA;AACA,uBAAuB;;AAEiB;;;;;;;;ACjExC,WAAW,mBAAO,CAAC,IAAS;AAC5B,gBAAgB,mBAAO,CAAC,KAAa;AACrC,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtFD;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;AChBa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACiM;AACzI;;AAExD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA,qBAAqB;AACrB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAgE,EAAE,EAGrE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gCAAgC;AACzD;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,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,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,YAAY,KAA0E,EAAE,EAgB/E;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAqC;AAClD,gBAAgB,CAAyF;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,sCAAsC,mBAAmB,iCAAiC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,KAAyD,EAAE,EAI9D;AACT;AACA,+BAA+B,iDAAiD,qCAAqC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;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,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;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,QAAQ,KAAsF,EAAE,EAE3F;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,aAAa;AACb;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA,wCAAwC,MAAqC,IAAI,CAAoB;AACrG;AACA;AACA,IAAI,2BAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA,6CAA6C,2BAA2B;AACxE,iCAAiC,yBAAyB,EAAE;AAC5D;AACA,iBAAiB;AACjB,KAAK;AACL,qDAAqD,WAAW;AAChE,mCAAmC,cAAc,QAAQ,mBAAmB;AAC5E,KAAK;AACL,8CAA8C,UAAU;AACxD,2CAA2C,cAAc,QAAQ,YAAY;AAC7E,KAAK;AACL,gDAAgD,UAAU;AAC1D,6CAA6C,cAAc,QAAQ,YAAY;AAC/E,KAAK;AACL,kDAAkD,UAAU;AAC5D,qEAAqE,cAAc;AACnF,KAAK;AACL;AACA;AACA;AACA,QAAQ,KAAgD,EAAE,EAKrD;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA,4EAA4E,MAAM,KAAK,GAAG;AAC1F;AACA;AACA;AACA;AACA,qDAAqD,GAAG,UAAU,GAAG,YAAY,GAAG;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA,2DAA2D,MAAM;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAqC;AAC9D,cAAc,CAAsE;AACpF,+BAA+B,KAAK;AACpC;AACA;AACA;AACA,gCAAgC,MAAM,KAAK,OAAO,KAAK,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,KAAqC,GAAG,EAO5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAA4C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAqC,GAAG,EAE5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAwE,EAAE,EAG7E;AACb;AACA;AACA,gBAAgB,KAAoE;AACpF,gBAAgB,EAAkD;AAClE;AACA;AACA;AACA;AACA,qBAAqB,KAAqC,GAAG,EAE5C;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB,KAAqC,GAAG,EAK5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAgE,EAAE,EAErE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc,8BAA8B,cAAc,0CAA0C,SAAS;AAC/I;AACA;AACA;AACA,kCAAkC,cAAc,8BAA8B,cAAc,0CAA0C,SAAS;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAmB,0CAA0C,SAAS,mBAAmB,mBAAmB;AACtJ;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,sBAAsB;AACtB,2BAA2B;AAC3B,wBAAwB;AACxB,uBAAuB;AACvB,qBAAqB;AACrB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,qCAAqC;AACrC,6BAA6B;AAC7B,gCAAgC;AAChC,kCAAkC;AAClC,4BAA4B;AAC5B,mCAAmC;AACnC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAqC,KAAK,CAAsD;AACzG;AACA;AACA;;AAEA;AACA,oCAAoC,qBAAqB;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB,QAAQ,qBAAqB;AACtE;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;AACA,gCAAgC,MAAqC,IAAI,CAA8B;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAqC,IAAI,CAAmB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAqC,IAAI,CAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAqC,IAAI,CAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,MAAqC,IAAI,CAAsB;;AAErG;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6CAA6C,wBAAwB;AACrE;AACA;AACA,wBAAwB;AACxB;AACA;AACA,QAAQ,KAAgE,EAAE,EAGrE;AACL;AACA;AACA,MAAM;AACN;AACA,SAAS,MAAqC;AAC9C,YAAY,CAAgM;AAC5M;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,QAAQ,KAAgE,EAAE,EAGrE;AACL;AACA;AACA,MAAM;AACN;AACA,SAAS,MAAqC;AAC9C,YAAY,CAAiM;AAC7M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,MAAqC,IAAI,CAAmC;AAChK;AACA;AACA;AACA,YAAY,KAA2D,EAAE,EAoBhE;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2GAA2G,cAAc,QAAQ,YAAY;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAwF,EAAE,EAG7F;AACT;AACA;AACA,iBAAiB,KAAqC,GAAG,EA8B5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAyE,EAAE,EAG9E;AACjB;AACA;AACA,uFAAuF,KAAK,QAAQ,YAAY;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,KAAK,QAAQ,YAAY;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,2CAAM;AACzB,yBAAyB,2CAAM;AAC/B,kBAAkB,6CAAQ,sBAAsB,0CAAK;AACrD,8BAA8B,6CAAQ;AACtC,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,6CAAQ;AAC7B;AACA,0BAA0B,6CAAQ;AAClC;AACA;AACA,4BAA4B;AAC5B;AACA,0BAA0B,0CAAK,sCAAsC,0CAAK;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA+E,EAAE,EAkBpF;AACL;AACA;AACA,cAAc,6CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAe;AACpD;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,mBAAmB,OAAO;AAC1B,qBAAqB,6CAAQ;AAC7B,gBAAgB,UAAU,EAAE,2CAAM;AAClC,wBAAwB,6CAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,sCAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,KAAK;AACL,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;;AAEA,qCAAqC,oDAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,oBAAoB,SAAS;AAC7B,mBAAmB,cAAc;AACjC,SAAS,MAAqC,KAAK,CAAqB;AACxE,8BAA8B,2CAAM;AACpC,+BAA+B,6CAAQ;AACvC,8BAA8B,2CAAM;AACpC;AACA;AACA,sBAAsB,6CAAQ;AAC9B,+BAA+B,0CAAK;AACpC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,6CAAQ;AACxC,QAAQ,4CAAO,eAAe,6CAAQ;AACtC,QAAQ,4CAAO;AACf,QAAQ,4CAAO;AACf,wBAAwB,wCAAG;AAC3B;AACA;AACA,QAAQ,0CAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iCAAiC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sCAAC,yBAAyB;AACxD;AACA;AACA,aAAa;AACb,gBAAgB,KAEa,EAAE,EAelB;AACb;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,kBAAkB,KAAK;AACvB;AACA,mBAAmB,KAAK;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,qCAAqC,mCAAmC;AACxE;AACA;AACA;AACA,2CAA2C,qBAAqB;AAChE;AACA,gEAAgE,eAAe;AAC/E;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,UAAU,kDAAkD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kBAAkB,iDAAiD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS,EAAE,oBAAoB;AACtE;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyD;AACjE,QAAQ,EACoD;AAC5D;AACA;AACA;AACA,yBAAyB,+CAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAqC,GAAG,EAEjD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA,iBAAiB,KAAqC,GAAG,EAM5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB,KAIsC,EAAE,EAI3C;AACb,uCAAuC;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAwE,EAAE,EAE7E;AACT;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA,SAAS;AACT;AACA,aAAa,KAAqC,GAAG,EAO5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,eAAe;AAClE;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,KAE8B,EAAE,EAGnC;AACb;AACA;AACA;AACA;AACA,yDAAyD;AACzD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,sBAAsB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KASa,EAAE,EAGlB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,uCAAuC;AACvC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAK;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAqC;AAC9D,wBAAwB,EAAwD;AAChF,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qCAAqC,6CAAQ;AAC7C;AACA;AACA,0CAA0C,6CAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAA+E,EAAE,EAEpF;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;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;AACA;AACA;AACA;;AAEoa;;;;;;;;AC9gHpa;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;;;;;;;;;ACpCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,4BAA4B,GAAG,aAAa;AACzE,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,IAAS;AAChC,aAAa;AACb,gBAAgB,UAAU,6BAA6B;AACvD;AACA,+CAA+C,cAAc,EAAE,MAAM,gBAAgB,UAAU;AAC/F,KAAK;AACL,eAAe,UAAU,8CAA8C,wBAAwB,YAAY,SAAS;AACpH,uBAAuB,gBAAgB;AACvC,iBAAiB,UAAU;AAC3B,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uCAAuC,aAAa,MAAM,iDAAiD;AAC3G;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA,2CAA2C,2BAA2B;AACtE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,kBAAe;AACf;;;;;;;;ACpFa;;AAEb,WAAW,aAAa;AACxB,YAAY,mBAAO,CAAC,IAAQ;;AAE5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;ACda;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;ACHa;AACb,kBAAkB,mBAAO,CAAC,KAA2C;AACrE,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,kBAAkB,mBAAO,CAAC,KAAmC;;AAE7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA,uBAAuB,mBAAO,CAAC,KAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACtBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AClED,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;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,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,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;;;;;;;;;AC5Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,4BAA4B;AACxD,iBAAiB,mBAAO,CAAC,KAAW;AACpC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC;AACA;AACA;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,YAAY,cAAc;AAC1B;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrFY;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,WAAW,mBAAO,CAAC,KAA4B;AAC/C,iCAAiC,mBAAO,CAAC,KAA4C;AACrF,+BAA+B,mBAAO,CAAC,IAAyC;AAChF,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,aAAa,mBAAO,CAAC,KAA+B;AACpD,qBAAqB,mBAAO,CAAC,KAA6B;;AAE1D;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;;;;;;;;;ACtBa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,gBAAgB,mBAAO,CAAC,KAAgC;;AAExD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC3BA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;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;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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;;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;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;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB,+BAA+B;AAC/B;AACA,mDAAmD;AACnD;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E,oBAAoB;AACpB,mCAAmC,2CAA2C;AAC9E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,wCAAwC;AAC3E,oBAAoB;AACpB,mCAAmC,yCAAyC;AAC5E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,YAAY;AACZ;AACA,sBAAsB;AACtB,YAAY;AACZ,sBAAsB;AACtB;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,wBAAwB;AACxB;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,0BAA0B;AAC1B;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,0BAA0B;AAC1B;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,YAAY;AACZ;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB,mDAAmD;AAC1E;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;AACpB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,yBAAyB;AACzB,cAAc;AACd;AACA;AACA,oBAAoB;AACpB;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA,oBAAoB,+BAA+B,iBAAiB;AACpE;AACA,oBAAoB;AACpB;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D,cAAc;AACd;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,cAAc;AACd;AACA;AACA,oBAAoB;AACpB;AACA,4BAA4B;AAC5B;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,gBAAgB;AAChB,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB;AACvB,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,gBAAgB;AAChB,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wCAAwC,qBAAqB,EAAE;AAC7E,cAAc,wCAAwC,2BAA2B,EAAE;AACnF,eAAe,yCAAyC,qBAAqB,EAAE;AAC/E;AACA;AACA,0BAA0B,iCAAiC;AAC3D,yBAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA,0BAA0B,qBAAqB,GAAG,qBAAqB,EAAE;AACzE,gBAAgB,0CAA0C,qBAAqB,EAAE;AACjF;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,0BAA0B,qBAAqB,GAAG,oBAAoB,EAAE;AACxE;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,0BAA0B,qCAAqC;AAC/D,SAAS;AACT;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT,cAAc,wCAAwC,2BAA2B,EAAE;AACnF;AACA;AACA,0BAA0B,qBAAqB,GAAG,qBAAqB,EAAE;AACzE;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT,eAAe,yCAAyC,kBAAkB,EAAE;AAC5E,eAAe,yCAAyC,qBAAqB,EAAE;AAC/E,iBAAiB,2CAA2C,qBAAqB,EAAE;AACnF,eAAe,yCAAyC,8CAA8C,EAAE;AACxG;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,0BAA0B,iCAAiC,EAAE;AAC7D,qBAAqB,4CAA4C,kBAAkB,EAAE;AACrF,sBAAsB,6CAA6C,kBAAkB,EAAE;AACvF,sBAAsB,6CAA6C,kBAAkB,EAAE;AACvF;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA8B,GAAG,CAAkB,CAAC;;;;;;;;ACvoDvD,aAAa,mBAAO,CAAC,KAAW;AAChC,eAAe,mBAAO,CAAC,KAAa;AACpC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACpCa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,2BAA2B,mBAAO,CAAC,KAAqC;;AAExE;AACA,6DAA6D;;AAE7D;;;;;;;;;ACPa;AACb,aAAa,mBAAO,CAAC,KAA+B;AACpD,cAAc,mBAAO,CAAC,KAAuB;AAC7C,qCAAqC,mBAAO,CAAC,KAAiD;AAC9F,2BAA2B,mBAAO,CAAC,KAAqC;;AAExE;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACpBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,kBAAkB,GAAG,WAAW;AACjL,eAAe,mBAAO,CAAC,KAAQ;AAC/B,iBAAiB,mBAAO,CAAC,KAAuB;AAChD,wBAAwB,mBAAO,CAAC,KAA8B;AAC9D,yBAAyB,mBAAO,CAAC,KAAkC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,kBAAkB;AAClB,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe;AACf,iBAAiB,mBAAO,CAAC,KAAoB;AAC7C,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,gBAAgB,mBAAO,CAAC,KAAmB;AAC3C,qCAAoC,EAAE,qCAAqC,uBAAuB,EAAC;AACnG,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,wCAAuC,EAAE,qCAAqC,0BAA0B,EAAC;AACzG,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,yBAAyB,mBAAO,CAAC,KAA4B;AAC7D,mDAAkD,EAAE,qCAAqC,sCAAsC,EAAC;AAChI,kBAAkB,mBAAO,CAAC,KAAqB;AAC/C,mDAAkD,EAAE,qCAAqC,+BAA+B,EAAC;AACzH;;;;;;;ACjDA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxFD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnBa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,aAAa,mBAAO,CAAC,KAAqB;AAC1C,aAAa,mBAAO,CAAC,KAA+B;AACpD,UAAU,mBAAO,CAAC,KAAkB;AACpC,oBAAoB,mBAAO,CAAC,IAA2C;AACvE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;AClBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;ACV6E;AACpB;AAClD,sCAAsC,qFAAkB;AAC/D,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACO,qCAAqC,qFAAkB;AAC9D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9FY;AACb;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;ACPa;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACrE6E;AACpB;AAClD,qBAAqB,qFAAkB;AAC9C,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,oBAAoB,qFAAkB;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;AC3Da;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;ACHa;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,kBAAkB,mBAAO,CAAC,KAA4B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb;;;;;;;;ACDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;AC9E4E;AACpB;AAClD,wBAAwB,qFAAkB;AACjD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uBAAuB,qFAAkB;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;AC3Da;AACb,kBAAkB,mBAAO,CAAC,KAAmC;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACXa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;ACHa;;AAEb,WAAW,aAAa;AACxB;;;;;;;;ACHA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACnJD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;ACnGD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,qBAAqB;AACrB,qBAAqB;;AAErB,qBAAqB;AACrB,qBAAqB;;AAErB,qBAAqB;AACrB,qBAAqB;;AAErB,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AClEA,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC/Ba;;AAEb,mBAAmB,mBAAO,CAAC,KAAe;AAC1C,gBAAgB,mBAAO,CAAC,KAAY;AACpC,cAAc,mBAAO,CAAC,KAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,KAAgB;AACzC;;AAEA,WAAW,yCAAyC;AACpD;AACA,WAAW,sDAAsD;AACjE;AACA,WAAW,+CAA+C;AAC1D;AACA,WAAW,+CAA+C;AAC1D;AACA,WAAW,sCAAsC;AACjD;;AAEA,WAAW,aAAa;AACxB,sCAAsC,6BAA6B;AACnE,eAAe,sCAAsC;AACrD,eAAe,+BAA+B;AAC9C,eAAe,+BAA+B;;AAE9C,YAAY,uBAAuB;;AAEnC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACnEA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,gBAAgB,QAAQ,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjCa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,UAAU,mBAAO,CAAC,KAAQ;AAC1B,eAAe,mBAAO,CAAC,KAAa;;AAEpC;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;AACA;AACA;;AAEA;;;;;;;;ACjCA,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;;AAEA;;;;;;;;;ACLa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,UAAU,mBAAO,CAAC,KAA2B;AAC7C,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;AACA,IAAI,8DAA8D;AAClE;AACA,CAAC;;;;;;;;ACTD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChED,gBAAgB,mBAAO,CAAC,KAAc;AACtC,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/ND,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;ACnB4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B,sBAAsB,YAAY;AACvF;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAA0D;AACnF;AACA;AACA,WAAW,aAAa;AACxB,WAAW,mBAAmB;AAC9B,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,uBAAuB,iFAAiB,kDAAkD,wEAAa;AACvG;AACA;AACA,SAAS,iFAAiB;AAC1B,gFAAgF,iCAAiC;AACjH;AACA;AACA,SAAS,iFAAiB,oBAAoB,iFAAiB;AAC/D,wBAAwB,iFAAiB;AACzC;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC,qBAAqB,iFAAiB;AACtC;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa,aAAa;AAC1B;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS,iFAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA,SAAS,iFAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,gDAAgD;AAChD,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA,aAAa,iFAAiB,qDAAqD,iFAAiB;AACpG;AACA,iBAAiB,iFAAiB;AAClC,iBAAiB,iFAAiB;AAClC;AACA;AACA,sBAAsB,iFAAiB;AACvC,iBAAiB,iFAAiB;AAClC;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAO;AACvB,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,0CAA0C;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB,kBAAkB;AAChE;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACt9BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACnHY;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,eAAe,mBAAO,CAAC,KAAe;;AAEtC;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB,WAAW,gBAAgB;AAC3B,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxBA,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;AChBa;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,YAAY,mBAAO,CAAC,KAAwB;AAC5C,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;ACzBa;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACpBa;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,YAAY,mBAAO,CAAC,KAAwB;AAC5C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACtBA,kBAAkB,mBAAO,CAAC,KAAe;AACzC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;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;;;;;;;;AChCA;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;;;;;;;;;ACrBa;AACb,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,WAAW,mBAAO,CAAC,KAA4B;AAC/C,0BAA0B,mBAAO,CAAC,KAAqC;AACvE,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,wCAAwC;AACvD,wBAAwB,uCAAuC;AAC/D,wBAAwB,uCAAuC;AAC/D;AACA;AACA,gBAAgB,qBAAqB,mCAAmC,qBAAqB,EAAE,WAAW;AAC1G,eAAe,qBAAqB,wBAAwB,cAAc,oBAAoB,WAAW,YAAY;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,0CAA0C,MAAM,EAAE,oBAAoB,EAAE,YAAY,WAAW,KAAK;AACpG,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC1BA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;ACjBa;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,mBAAO,CAAC,IAAM;AAC3B,cAAc,mBAAO,CAAC,KAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAqB;AAC3B;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACfA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtIY;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACba;AACb,iBAAiB,mBAAO,CAAC,KAA2B;;AAEpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;AClCA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,cAAc,mBAAO,CAAC,KAAW;AACjC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;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;;AAEA;;;;;;;;AC7BA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpHY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,mBAAO,CAAC,KAAmB;AACrD,sBAAsB,mBAAO,CAAC,IAAe;AAC7C,gBAAgB,mBAAO,CAAC,KAAS;AACjC,oBAAoB,mBAAO,CAAC,KAAa;AACzC,mBAAmB,mBAAO,CAAC,IAAY;AACvC,uBAAuB,mBAAO,CAAC,KAAgB;AAC/C,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,+BAA+B,mBAAO,CAAC,KAAwB;AAC/D,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,4BAA4B,mBAAO,CAAC,KAAqB;AACzD,cAAc,mBAAO,CAAC,KAAO;AAC7B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,gBAAgB,mBAAO,CAAC,KAAS;AACjC,gBAAgB,mBAAO,CAAC,KAAS;AACjC,aAAa,mBAAO,CAAC,KAAM;AAC3B,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;AC3CA,YAAY,mBAAO,CAAC,KAAU;AAC9B,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,cAAc,mBAAO,CAAC,KAAY;AAClC,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,eAAe,mBAAO,CAAC,KAAY;AACnC,aAAa,mBAAO,CAAC,KAAU;AAC/B,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;ACzCa;;AAEb,YAAY,mBAAO,CAAC,IAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,2BAA2B;AAC3B,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;;;;;;;ACtFA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACXA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;ACtH8F;AACvB;AACxE;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,kBAAkB;AAC/B;AACO;AACP;AACA;AACA,yBAAyB,wEAAQ;AACjC,yCAAyC,SAAS,gBAAgB;AAClE;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA,QAAQ,0EAAU,YAAY,kBAAkB;AAChD;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB,QAAQ,4EAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA,aAAa,MAAM;AACnB;AACO;AACP;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA,QAAQ,sEAAM;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2EAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,mBAAmB;AAC9B,aAAa,SAAS;AACtB;AACO;AACP,mCAAmC;AACnC,8BAA8B;AAC9B,yCAAyC,uCAAuC;AAChF;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF,QAAQ,4EAAY,eAAe,qCAAqC;AACxE;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;;;;;;;;;AC1KA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;AC7BA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACrND,gBAAgB,mBAAO,CAAC,KAAc;AACtC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,iBAAiB,mBAAO,CAAC,IAAe;AACxC,gBAAgB,mBAAO,CAAC,KAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,IAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA;AACA,mCAAmC,KAAK,IAAI,EAAE;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA,4BAA4B,QAAQ,OAAO,EAAE,mCAAmC,YAAY,0CAA0C,cAAc;AACpJ;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAe;AACf;;;;;;;ACnDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/HD,oBAAoB,mBAAO,CAAC,KAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;;AAEA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3ED,YAAY,mBAAO,CAAC,KAAU;AAC9B,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,IAAW;AAChC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,+CAA+C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,+BAA+B,MAAM;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACxDA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;ACnBA;AACA;AACkC;AACuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA,yDAAyD,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU;AAC3G;AACA,8DAA8D,0CAA0C;AACxG;AACA,0BAA0B,gBAAgB,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,uBAAuB;AACtC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA,eAAe,QAAQ;AACvB;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA,6CAA6C,oDAAQ;AACrD;AACA;AACA;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,6CAA6C;AAC5D,eAAe,eAAe;AAC9B;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oDAAQ;AACzD;AACA;AACA,gDAAgD,oDAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;ACjuBrB,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1BA,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,SAAS,mBAAO,CAAC,KAAM;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,UAAU,mBAAO,CAAC,KAAO;AACzB,YAAY,mBAAO,CAAC,KAAS;AAC7B,YAAY,mBAAO,CAAC,KAAU;AAC9B,yBAAyB,mBAAO,CAAC,KAAuB;AACxD,8BAA8B,mBAAO,CAAC,KAA4B;AAClE,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AChCA,gBAAgB,mBAAO,CAAC,IAAc;;AAEtC;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;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpHY;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACrBA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,IAAe;;AAExC;AACA;;AAEA;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;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2BAA2B;AAC7C,kBAAkB,2BAA2B;AAC7C,iBAAiB,0BAA0B;AAC3C,kBAAkB,2BAA2B;AAC7C;AACA;AACA,iBAAiB,qDAAqD;AACtE,kBAAkB,WAAW;AAC7B,gBAAgB,WAAW;AAC3B,eAAe;AACf,oBAAoB;AACpB;AACA;AACA,gBAAgB;AAChB;;;;;;;;ACzBa;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,cAAc,mBAAO,CAAC,KAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;ACba;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;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;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA,iFAAiF,sCAAsC;;AAEvH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACnFA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtJD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACjED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACtID;AACA;AACA;AACA;AAC2B;AAC+D;AAC1F;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAG;AACjC;AACA;AACA;AACA,8CAA8C;AAC9C;AACP;AACA;AACA;AACA,yBAAyB;AACzB,6BAA6B;AAC7B;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA,0BAA0B,6BAAQ;AAClC,6BAA6B,6BAAQ;AACrC,0BAA0B,sCAAiB,oCAAoC,6BAAQ;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB,sCAAiB,sBAAsB,sCAAiB;AACzE;AACA;AACA,qBAAqB,sCAAiB;AACtC,uDAAuD,sCAAiB;AACxE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA,gBAAgB,sCAAiB,cAAc,sCAAiB;AAChE,0BAA0B,6BAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8BAA8B,6BAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,qCAAqC,sCAAiB,iBAAiB,sCAAiB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yBAAyB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4CAA4C,2BAAM,GAAG,IAAI,iBAAiB,sCAAiB;AAC3F,SAAS;AACT;AACA;AACA;AACA,4FAA4F,0BAA0B;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kDAAkD,6DAA6D;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wCAAwC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,4BAA4B;AACzG;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kEAAkE,6BAA6B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,wBAAwB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,wBAAwB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAAM;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA,gEAAgE,4BAA4B;AAC5F;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACO;AACP,8BAA8B;AAC9B;AACA;AACA,uDAAuD;AACvD,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kCAAa;AACjB;;;ACznBA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkI;AACxE;AAC1D,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACO;AACP;AACA;AACA;AACA;AACA,iFAAiF,uCAAuC;AACxH;AACA;AACA,sBAAsB,gCAAW;AACjC,qBAAqB,gCAAW;AAChC,sBAAsB,iCAAa;AACnC;AACA;AACA,aAAa;AACb;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,8BAA8B,IAAG;AACjC;AACA,qEAAqE,YAAY;AACjF;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,IAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA,4DAA4D;AAC5D;AACA,gCAAgC,6BAAQ;AACxC;AACA,4BAA4B,MAAM,2BAAM,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,0BAA0B,IAAG;AAC7B;AACA;AACA;AACA,gBAAgB,IAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAG;AAC7C,4CAA4C;AAC5C;AACA,qEAAqE,YAAY;AACjF;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,gCAAgC,6BAAQ;AACxC;AACA,4BAA4B,MAAM,2BAAM,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAG;AAC1C;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA,sCAAiB,GAAG,kBAAkB;AACtC;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6DAA6D;AACvH,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9XA;AACA;AACA;AACiC;AACN;;;ACJ3B;AACA;AACA;AAC4B;;;;;;;;ACH5B;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AChIY;AACb,oBAAoB,mBAAO,CAAC,IAAqC;;AAEjE;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRA;AACA;AACyD;AACjB;AACG;AAC3C,eAAe,aAAa,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA,YAAY,iFAAiB,OAAO,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA,YAAY,iFAAiB,OAAO,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA,6DAA6D,mCAAmC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC,gEAAgE,oCAAoC;AACpG;AACA;AACA;AACA,kCAAkC,iFAAiB;AACnD;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA,yBAAyB,iFAAiB;AAC1C,iEAAiE,uCAAuC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA,0BAA0B,iFAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wEAAwE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iFAAiB;AACpC;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,iCAAiC,iFAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA,6BAA6B,0DAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iFAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+CAA+C,sDAAS;AACxD;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAS;AAC7C;AACA;AACA,oCAAoC,sDAAS;AAC7C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,kDAAkD;AAClD;AACA;AACA,gDAAgD,0CAA0C;AAC1F;AACA;AACA,4CAA4C,2CAA2C;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0BAA0B;AACvE;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA,kCAAkC,sDAAS;AAC3C;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA,qDAAqD,sDAAS,iBAAiB,sDAAS;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA,uBAAuB,0DAAW,sBAAsB,kDAAK;AAC7D,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA,uBAAuB,0DAAW,sBAAsB,kDAAK;AAC7D,SAAS;AACT;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,eAAe;AAClC,mBAAmB,eAAe;AAClC,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iFAAiB,aAAa,iFAAiB;AACvE;AACA;AACA,oBAAoB,iFAAiB,aAAa,iFAAiB;AACnE;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,oBAAoB,eAAe;AACnC,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iFAAiB,aAAa,iFAAiB;AACvE;AACA;AACA,oBAAoB,iFAAiB,aAAa,iFAAiB;AACnE;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,aAAa;AACjC,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA,2DAA2D,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,2BAA2B,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,qCAAqC,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,GAAG;AAC7E;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,EAAE;AACjE;AACA;AACA;AACA;AACA,mCAAmC,EAAE,2BAA2B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;AC/0EpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACpBa;AACb,sBAAsB,mBAAO,CAAC,KAAuC;AACrE,aAAa,mBAAO,CAAC,KAAqB;AAC1C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,aAAa,mBAAO,CAAC,KAA+B;AACpD,aAAa,mBAAO,CAAC,KAA2B;AAChD,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtEa;AACb,YAAY,mBAAO,CAAC,KAAyB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,mBAAmB;AACrC,oBAAoB,mBAAO,CAAC,KAAyB;AACrD,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C,kBAAkB,mBAAO,CAAC,EAAe;AACzC,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,mDAAmD;AACnE,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,WAAW;AACjE,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gDAAgD,IAAI,UAAU;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,MAAM;AAClB;AACA,uCAAuC,mBAAmB;AAC1D,8BAA8B,4BAA4B,UAAU,EAAE;AACtE;AACA,mBAAmB;AACnB;AACA,YAAY,UAAU;AACtB,YAAY,kCAAkC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8CAA8C;AAC7F,iCAAiC;AACjC;AACA;AACA,SAAS;AACT,yCAAyC,GAAG,aAAa,mBAAmB;AAC5E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD,gEAAgE,yBAAyB,aAAa,MAAM,IAAI,wBAAwB,UAAU,KAAK,KAAK;AAC5J,+DAA+D,wBAAwB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAe;AACf;;;;;;;;ACzHa;AACb,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;AACA;;AAEA;;AAEA;;;;;;;;ACRA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,iBAAiB,mBAAO,CAAC,IAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtFD,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACrBA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AClHY;AACb,YAAY,mBAAO,CAAC,KAAoB;AACxC,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;;ACVA,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;AClCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtID,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC/BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/DY;;AAEb,sBAAsB,mBAAO,CAAC,KAA0B;AACxD,uBAAuB,mBAAO,CAAC,KAAyB;;AAExD,qBAAqB,mBAAO,CAAC,IAAkB;;AAE/C,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,8BAA8B,mBAAO,CAAC,KAA4B;;AAElE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrBA,aAAa,mBAAO,CAAC,KAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjBa;;AAEb;AACA;AACA;;;;;;;;;ACJa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtJY;;AAEb,WAAW,mBAAmB;AAC9B;AACA;AACA;;;;;;;;ACLA,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,IAAW;AAChC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC5Ba;AACb,mBAAmB,mBAAO,CAAC,KAA2B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACXA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,sBAAsB;;AAEvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;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;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,YAAY;AACvD;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;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;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,2BAAe,IAAW,OAAO,CAAC;AAClD;AACA,cAAc;AACd;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;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,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;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;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;ACvjLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChHD,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAe;;AAEzC;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;;;;;;;;ACpCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACpED,oBAAoB,mBAAO,CAAC,IAAkB;AAC9C,gBAAgB,mBAAO,CAAC,KAAc;AACtC,oBAAoB,mBAAO,CAAC,KAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnBa;AACb,eAAe,mBAAO,CAAC,KAAwB;AAC/C,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;ACXa;AACb;;;;;;;;;ACDa;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,8BAA8B,mBAAO,CAAC,KAAsC;AAC5E,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,eAAe,mBAAO,CAAC,KAAwB;AAC/C,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBa;AACb;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACjHY;;AAEb,YAAY,mBAAO,CAAC,IAAS;AAC7B,0BAA0B,mBAAO,CAAC,IAA+B;AACjE,mBAAmB,mBAAO,CAAC,IAAqB;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,KAAgB;AACtC,IAAI;AACJ;AACA,cAAc,mBAAO,CAAC,KAAiB;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;ACrIa;AACb,UAAU,gCAAuC;;AAEjD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACPO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;ACXA;AACA;;;ACDP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;ACtBsD;AACtB;AACzB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,UAAU;AACjF,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,GAAG;AAC1B,aAAa;AACb;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA,aAAa;AACb;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1G8E;AACtC;AACF;AACP;AACH;AACF;AACnB;AACP;AACA,mBAAmB,SAAS;AAC5B,iBAAiB,qBAAqB;AACtC,wBAAwB,gBAAgB;AACxC;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AChEY;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AChIY;;AAEb,qBAAqB,mBAAO,CAAC,GAAc;AAC3C,YAAY,mBAAO,CAAC,KAAS;AAC7B,cAAc,mBAAO,CAAC,KAAW;AACjC;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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;AACA;AACA;AACA,cAAc;AACd,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gEAAgE;AACrF,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA,oBAAoB,oBAAoB;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;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,2CAA2C;AAC3C;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;AC/Ta;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,4BAA4B,mBAAO,CAAC,KAAuC;;AAE3E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;;;;;;;;ACpBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,qBAAqB,mBAAO,CAAC,KAAsC;AACnE,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,YAAY,mBAAO,CAAC,KAAoB;AACxC,aAAa,mBAAO,CAAC,KAA+B;AACpD,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,wBAAwB,8CAAwD;AAChF,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,IAAI;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,iDAAiD;AACrD;AACA,CAAC;;;;;;;;AC5CD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;AC9GD,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACiK;AAC/C;AACf;AACqB;AAChC;AACvC;AACS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAO,GAAG,iDAAiD;AACnE;AACA;AACA,QAAQ,uEAAO,GAAG,kDAAkD;AACpE;AACA;AACA,CAAC,CAAC,yEAAa;AACmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,iFAAiB,iBAAiB,+BAA+B;AACzE,aAAa,iFAAK,sBAAsB,iFAAK;AAC7C;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,mEAAO;AAC/B;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA,YAAY,sEAAM;AAClB;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qBAAqB,2EAAW,WAAW;AAC/F;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAK,kBAAkB,qCAAqC;AAC5E;AACA,aAAa,iFAAK;AAClB,YAAY,sEAAM,kBAAkB,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAI;AACxB,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2EAAW,uBAAuB,iFAAK;AACpD;AACA;AACA,aAAa,2EAAW,wBAAwB,iFAAK;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA,wCAAwC,0EAAU;AAClD;AACA;AACA;AACA;AACA;AACA,wCAAwC,0EAAU;AAClD;AACA;AACA,qCAAqC,0EAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,uBAAuB,8EAAkB;AACzC;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA,gCAAgC,iFAAK;AACrC;AACA;AACA;AACA,wBAAwB,8EAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iFAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAgB;AAC7C;AACA;AACA;AACA,oDAAoD,uEAAgB,UAAU,uEAAgB,CAAC,qFAAqB,eAAe,eAAe;AAClJ;AACA,aAAa,iFAAK;AAClB;AACA,wCAAwC;AACxC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,aAAa,iFAAK,uCAAuC,iFAAK;AAC9D;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB,wBAAwB,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAQ;AACxB;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,yEAAa;AACjG;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK,oCAAoC,iFAAK;AACnE;AACA;AACA;AACA;AACA,mDAAmD,iFAAK;AACxD,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAS;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAU,kBAAkB,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB,wBAAwB,QAAQ,0EAAU,gBAAgB,0EAAU,SAAS;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,wBAAwB,gEAAI;AAC5B;AACA;AACA,mDAAmD,4CAA4C,iEAAiE;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA,kDAAkD,2CAA2C;AAC7F;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA,mDAAmD,kBAAkB;AACrE;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA,qDAAqD,oBAAoB;AACzE;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uDAAuD,iFAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yBAAyB;AACtF;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA,gBAAgB,qEAAM;AACtB,iBAAiB,iFAAK;AACtB,gBAAgB,wEAAY;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2EAAW;AAC3B,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B,oDAAoD,kFAAgB;AACpE;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,yEAAa;AACjG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,0EAAU,IAAI;AACtB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACM;AACjB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC,eAAe,QAAQ;AACvB,gBAAgB,SAAS;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4EAAa,UAAU,uDAAuD;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iFAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;;;;;;;;ACz+BxB;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,iBAAiB,mBAAO,CAAC,KAA+B;AACxD,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,uFAAuF;AAC3F;AACA,CAAC;;;;;;;;ACTD,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;AC/Da;;AAEb,oBAAoB,mBAAO,CAAC,KAA0B;AACtD,kBAAkB,mBAAO,CAAC,KAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/index.js","webpack:///./node_modules/lodash/multiply.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/fast-uri/lib/schemes.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/side-channel/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/const.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/core-js/internals/get-iterator-direct.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/lodash/_baseGt.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/common/resize.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/dialog/dialog.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/util.js","webpack:///./node_modules/core-js/modules/esnext.iterator.for-each.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/equal.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/size.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/point.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/path-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/rect.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/matrix.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/appearance.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/enum/enum.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/diagram-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/container.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/text-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/canvas.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/basic-shapes.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/path-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/image-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/native-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/tooltip.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/port.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/annotation.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/common.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/flow-shapes.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/connector.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/preview.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/node-base.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/html-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/fixed-user-handle.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/constraints-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/grid.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/swim-lane-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/container-interaction.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/actions.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/tool.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/connector.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/ruler/ruler.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/ruler/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/ruler/ruler.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/selector.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/umlactivity-shapes.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/keyboard-commands.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/svg-renderer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/renderer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/overview/overview.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/diagram-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/icon.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/stack-panel.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/uml-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/layoutinfo.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/node.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/dom-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/base-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/canvas-renderer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/page-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/service.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/grid-lines.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/ruler-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/data-mapping.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/data-source.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/layout-base.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/connector-editing.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/event-handlers.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/layer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/command-manager.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/scroller.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/spatial-search/quad.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/spatial-search/spatial-search.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/serialization-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/custom-cursor.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/line-routing.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/print-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/data-binding/data-binding.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/context-menu.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/bpmn.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/connector-bridging.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/snapping.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/undo-redo.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/layout-animation.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/line-distribution.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/hierarchical-tree.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/mind-map.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/radial-tree.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/symmetrical-layout.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/complex-hierarchical-tree.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/flowChart/flow-chart-model.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/flowChart/matrix-model.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/flowChart/flow-chart-layout.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/connectorProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/labelProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/nodeProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/portProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/modelProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/symbol-palette/symbol-palette.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/symbol-palette/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/overview/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/index.js","webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/@syncfusion/ej2-vue-charts/src/accumulation-chart/series.directive.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/core/id.js","webpack:///./node_modules/moment/locale/ku-kmr.js","webpack:///./node_modules/math-intrinsics/max.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/contains.js","webpack:///./node_modules/gopd/gOPD.js","webpack:///./node_modules/lodash/mergeWith.js","webpack:///./node_modules/moment/locale/ar-ps.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/dunder-proto/get.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/code.js","webpack:///./node_modules/stacktrace-js/stacktrace.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/@syncfusion/ej2-data/src/adaptors.js","webpack:///./node_modules/core-js/modules/esnext.iterator.reduce.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/lodash/uniqWith.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/hasown/index.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/call-bind-apply-helpers/functionCall.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitLength.js","webpack:///./node_modules/call-bind-apply-helpers/functionApply.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64-vlq.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/lodash/_baseIndexOfWith.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/index.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/dataType.js","webpack:///./node_modules/lodash/pullAll.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/accordion/accordion.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/call-bind-apply-helpers/actualApply.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","webpack:///./node_modules/@syncfusion/ej2-vue-layouts/src/dashboard-layout/panels.directive.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/error-stack-parser/error-stack-parser.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/core-js/modules/web.url-search-params.delete.js","webpack:///./node_modules/side-channel-list/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/defaults.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/h-scroll.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/core-js/internals/error-stack-clear.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/uri.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/mapping-list.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/keyword.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_baseSum.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/stacktrace-gps/stacktrace-gps.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/properties.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/menu-scroll.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/menu-base.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/@syncfusion/ej2-vue-querybuilder/src/query-builder/columns.directive.js","webpack:///./node_modules/core-js/internals/iterator-create-proxy.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/ucs2length.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/context-menu/context-menu.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/source-map.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/@syncfusion/ej2-data/src/manager.js","webpack:///./node_modules/core-js/internals/iterator-map.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/common/position.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_basePullAll.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/modules/esnext.iterator.every.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/items2020.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/if.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/set-size.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/draft7.js","webpack:///./node_modules/json-source-map/index.js","webpack:///./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/vue3-youtube/dist/vue3-youtube.umd.min.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/@syncfusion/ej2-vue-navigations/src/accordion/items.directive.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/popup/popup.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","webpack:///./node_modules/core-js/internals/set-is-superset-of.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/es-define-property/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/discriminator/index.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/lodash/min.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/fast-deep-equal/index.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/core-js/internals/document-all.js","webpack:///./node_modules/browser-detect/dist/browser-detect.es5.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","webpack:///./node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/lodash/forOwn.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/applicability.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/discriminator/types.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/v-scroll.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/pinia/node_modules/vue-demi/lib/index.mjs","webpack:///./node_modules/pinia/dist/pinia.mjs","webpack:///./node_modules/core-js/internals/array-set-length.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/codegen/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/codegen/scope.js","webpack:///./node_modules/fast-uri/lib/utils.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/index.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/es-errors/uri.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/pattern.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/immutable-json-patch/lib/esm/jsonPointer.js","webpack:///./node_modules/immutable-json-patch/lib/esm/typeguards.js","webpack:///./node_modules/immutable-json-patch/lib/esm/utils.js","webpack:///./node_modules/immutable-json-patch/lib/esm/immutabilityHelpers.js","webpack:///./node_modules/immutable-json-patch/lib/esm/immutableJSONPatch.js","webpack:///./node_modules/immutable-json-patch/lib/esm/revertJSONPatch.js","webpack:///./node_modules/jsonrepair/lib/esm/utils/JSONRepairError.js","webpack:///./node_modules/jsonrepair/lib/esm/utils/stringUtils.js","webpack:///./node_modules/jsonrepair/lib/esm/regular/jsonrepair.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/isSymbol.js","webpack:///./node_modules/lodash-es/_baseToNumber.js","webpack:///./node_modules/lodash-es/_arrayMap.js","webpack:///./node_modules/lodash-es/isArray.js","webpack:///./node_modules/lodash-es/_baseToString.js","webpack:///./node_modules/lodash-es/_createMathOperation.js","webpack:///./node_modules/lodash-es/add.js","webpack:///./node_modules/lodash-es/_trimmedEndIndex.js","webpack:///./node_modules/lodash-es/_baseTrim.js","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./node_modules/lodash-es/toNumber.js","webpack:///./node_modules/lodash-es/toFinite.js","webpack:///./node_modules/lodash-es/toInteger.js","webpack:///./node_modules/lodash-es/after.js","webpack:///./node_modules/lodash-es/identity.js","webpack:///./node_modules/lodash-es/isFunction.js","webpack:///./node_modules/lodash-es/_coreJsData.js","webpack:///./node_modules/lodash-es/_isMasked.js","webpack:///./node_modules/lodash-es/_toSource.js","webpack:///./node_modules/lodash-es/_baseIsNative.js","webpack:///./node_modules/lodash-es/_getValue.js","webpack:///./node_modules/lodash-es/_getNative.js","webpack:///./node_modules/lodash-es/_WeakMap.js","webpack:///./node_modules/lodash-es/_metaMap.js","webpack:///./node_modules/lodash-es/_baseSetData.js","webpack:///./node_modules/lodash-es/_baseCreate.js","webpack:///./node_modules/lodash-es/_createCtor.js","webpack:///./node_modules/lodash-es/_createBind.js","webpack:///./node_modules/lodash-es/_apply.js","webpack:///./node_modules/lodash-es/_composeArgs.js","webpack:///./node_modules/lodash-es/_composeArgsRight.js","webpack:///./node_modules/lodash-es/_countHolders.js","webpack:///./node_modules/lodash-es/_baseLodash.js","webpack:///./node_modules/lodash-es/_LazyWrapper.js","webpack:///./node_modules/lodash-es/noop.js","webpack:///./node_modules/lodash-es/_getData.js","webpack:///./node_modules/lodash-es/_realNames.js","webpack:///./node_modules/lodash-es/_getFuncName.js","webpack:///./node_modules/lodash-es/_LodashWrapper.js","webpack:///./node_modules/lodash-es/_copyArray.js","webpack:///./node_modules/lodash-es/_wrapperClone.js","webpack:///./node_modules/lodash-es/wrapperLodash.js","webpack:///./node_modules/lodash-es/_isLaziable.js","webpack:///./node_modules/lodash-es/_shortOut.js","webpack:///./node_modules/lodash-es/_setData.js","webpack:///./node_modules/lodash-es/_getWrapDetails.js","webpack:///./node_modules/lodash-es/_insertWrapDetails.js","webpack:///./node_modules/lodash-es/constant.js","webpack:///./node_modules/lodash-es/_defineProperty.js","webpack:///./node_modules/lodash-es/_baseSetToString.js","webpack:///./node_modules/lodash-es/_setToString.js","webpack:///./node_modules/lodash-es/_arrayEach.js","webpack:///./node_modules/lodash-es/_baseFindIndex.js","webpack:///./node_modules/lodash-es/_baseIsNaN.js","webpack:///./node_modules/lodash-es/_strictIndexOf.js","webpack:///./node_modules/lodash-es/_baseIndexOf.js","webpack:///./node_modules/lodash-es/_arrayIncludes.js","webpack:///./node_modules/lodash-es/_updateWrapDetails.js","webpack:///./node_modules/lodash-es/_setWrapToString.js","webpack:///./node_modules/lodash-es/_createRecurry.js","webpack:///./node_modules/lodash-es/_getHolder.js","webpack:///./node_modules/lodash-es/_isIndex.js","webpack:///./node_modules/lodash-es/_reorder.js","webpack:///./node_modules/lodash-es/_replaceHolders.js","webpack:///./node_modules/lodash-es/_createHybrid.js","webpack:///./node_modules/lodash-es/_createCurry.js","webpack:///./node_modules/lodash-es/_createPartial.js","webpack:///./node_modules/lodash-es/_mergeData.js","webpack:///./node_modules/lodash-es/_createWrap.js","webpack:///./node_modules/lodash-es/ary.js","webpack:///./node_modules/lodash-es/_baseAssignValue.js","webpack:///./node_modules/lodash-es/eq.js","webpack:///./node_modules/lodash-es/_assignValue.js","webpack:///./node_modules/lodash-es/_copyObject.js","webpack:///./node_modules/lodash-es/_overRest.js","webpack:///./node_modules/lodash-es/_baseRest.js","webpack:///./node_modules/lodash-es/isLength.js","webpack:///./node_modules/lodash-es/isArrayLike.js","webpack:///./node_modules/lodash-es/_isIterateeCall.js","webpack:///./node_modules/lodash-es/_createAssigner.js","webpack:///./node_modules/lodash-es/_isPrototype.js","webpack:///./node_modules/lodash-es/_baseTimes.js","webpack:///./node_modules/lodash-es/_baseIsArguments.js","webpack:///./node_modules/lodash-es/isArguments.js","webpack:///./node_modules/lodash-es/stubFalse.js","webpack:///./node_modules/lodash-es/isBuffer.js","webpack:///./node_modules/lodash-es/_baseIsTypedArray.js","webpack:///./node_modules/lodash-es/_baseUnary.js","webpack:///./node_modules/lodash-es/_nodeUtil.js","webpack:///./node_modules/lodash-es/isTypedArray.js","webpack:///./node_modules/lodash-es/_arrayLikeKeys.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_nativeKeys.js","webpack:///./node_modules/lodash-es/_baseKeys.js","webpack:///./node_modules/lodash-es/keys.js","webpack:///./node_modules/lodash-es/assign.js","webpack:///./node_modules/lodash-es/_nativeKeysIn.js","webpack:///./node_modules/lodash-es/_baseKeysIn.js","webpack:///./node_modules/lodash-es/keysIn.js","webpack:///./node_modules/lodash-es/assignIn.js","webpack:///./node_modules/lodash-es/assignInWith.js","webpack:///./node_modules/lodash-es/assignWith.js","webpack:///./node_modules/lodash-es/_isKey.js","webpack:///./node_modules/lodash-es/_nativeCreate.js","webpack:///./node_modules/lodash-es/_hashClear.js","webpack:///./node_modules/lodash-es/_hashDelete.js","webpack:///./node_modules/lodash-es/_hashGet.js","webpack:///./node_modules/lodash-es/_hashHas.js","webpack:///./node_modules/lodash-es/_hashSet.js","webpack:///./node_modules/lodash-es/_Hash.js","webpack:///./node_modules/lodash-es/_listCacheClear.js","webpack:///./node_modules/lodash-es/_assocIndexOf.js","webpack:///./node_modules/lodash-es/_listCacheDelete.js","webpack:///./node_modules/lodash-es/_listCacheGet.js","webpack:///./node_modules/lodash-es/_listCacheHas.js","webpack:///./node_modules/lodash-es/_listCacheSet.js","webpack:///./node_modules/lodash-es/_ListCache.js","webpack:///./node_modules/lodash-es/_Map.js","webpack:///./node_modules/lodash-es/_mapCacheClear.js","webpack:///./node_modules/lodash-es/_isKeyable.js","webpack:///./node_modules/lodash-es/_getMapData.js","webpack:///./node_modules/lodash-es/_mapCacheDelete.js","webpack:///./node_modules/lodash-es/_mapCacheGet.js","webpack:///./node_modules/lodash-es/_mapCacheHas.js","webpack:///./node_modules/lodash-es/_mapCacheSet.js","webpack:///./node_modules/lodash-es/_MapCache.js","webpack:///./node_modules/lodash-es/memoize.js","webpack:///./node_modules/lodash-es/_memoizeCapped.js","webpack:///./node_modules/lodash-es/_stringToPath.js","webpack:///./node_modules/lodash-es/toString.js","webpack:///./node_modules/lodash-es/_castPath.js","webpack:///./node_modules/lodash-es/_toKey.js","webpack:///./node_modules/lodash-es/_baseGet.js","webpack:///./node_modules/lodash-es/get.js","webpack:///./node_modules/lodash-es/_baseAt.js","webpack:///./node_modules/lodash-es/_arrayPush.js","webpack:///./node_modules/lodash-es/_isFlattenable.js","webpack:///./node_modules/lodash-es/_baseFlatten.js","webpack:///./node_modules/lodash-es/flatten.js","webpack:///./node_modules/lodash-es/_flatRest.js","webpack:///./node_modules/lodash-es/at.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/lodash-es/isPlainObject.js","webpack:///./node_modules/lodash-es/isError.js","webpack:///./node_modules/lodash-es/attempt.js","webpack:///./node_modules/lodash-es/before.js","webpack:///./node_modules/lodash-es/bind.js","webpack:///./node_modules/lodash-es/bindAll.js","webpack:///./node_modules/lodash-es/bindKey.js","webpack:///./node_modules/lodash-es/_baseSlice.js","webpack:///./node_modules/lodash-es/_castSlice.js","webpack:///./node_modules/lodash-es/_hasUnicode.js","webpack:///./node_modules/lodash-es/_asciiToArray.js","webpack:///./node_modules/lodash-es/_unicodeToArray.js","webpack:///./node_modules/lodash-es/_stringToArray.js","webpack:///./node_modules/lodash-es/_createCaseFirst.js","webpack:///./node_modules/lodash-es/upperFirst.js","webpack:///./node_modules/lodash-es/capitalize.js","webpack:///./node_modules/lodash-es/_arrayReduce.js","webpack:///./node_modules/lodash-es/_basePropertyOf.js","webpack:///./node_modules/lodash-es/_deburrLetter.js","webpack:///./node_modules/lodash-es/deburr.js","webpack:///./node_modules/lodash-es/_asciiWords.js","webpack:///./node_modules/lodash-es/_hasUnicodeWord.js","webpack:///./node_modules/lodash-es/_unicodeWords.js","webpack:///./node_modules/lodash-es/words.js","webpack:///./node_modules/lodash-es/_createCompounder.js","webpack:///./node_modules/lodash-es/camelCase.js","webpack:///./node_modules/lodash-es/castArray.js","webpack:///./node_modules/lodash-es/_createRound.js","webpack:///./node_modules/lodash-es/ceil.js","webpack:///./node_modules/lodash-es/chain.js","webpack:///./node_modules/lodash-es/chunk.js","webpack:///./node_modules/lodash-es/_baseClamp.js","webpack:///./node_modules/lodash-es/clamp.js","webpack:///./node_modules/lodash-es/_stackClear.js","webpack:///./node_modules/lodash-es/_stackDelete.js","webpack:///./node_modules/lodash-es/_stackGet.js","webpack:///./node_modules/lodash-es/_stackHas.js","webpack:///./node_modules/lodash-es/_stackSet.js","webpack:///./node_modules/lodash-es/_Stack.js","webpack:///./node_modules/lodash-es/_baseAssign.js","webpack:///./node_modules/lodash-es/_baseAssignIn.js","webpack:///./node_modules/lodash-es/_cloneBuffer.js","webpack:///./node_modules/lodash-es/_arrayFilter.js","webpack:///./node_modules/lodash-es/stubArray.js","webpack:///./node_modules/lodash-es/_getSymbols.js","webpack:///./node_modules/lodash-es/_copySymbols.js","webpack:///./node_modules/lodash-es/_getSymbolsIn.js","webpack:///./node_modules/lodash-es/_copySymbolsIn.js","webpack:///./node_modules/lodash-es/_baseGetAllKeys.js","webpack:///./node_modules/lodash-es/_getAllKeys.js","webpack:///./node_modules/lodash-es/_getAllKeysIn.js","webpack:///./node_modules/lodash-es/_DataView.js","webpack:///./node_modules/lodash-es/_Promise.js","webpack:///./node_modules/lodash-es/_Set.js","webpack:///./node_modules/lodash-es/_getTag.js","webpack:///./node_modules/lodash-es/_initCloneArray.js","webpack:///./node_modules/lodash-es/_Uint8Array.js","webpack:///./node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///./node_modules/lodash-es/_cloneDataView.js","webpack:///./node_modules/lodash-es/_cloneRegExp.js","webpack:///./node_modules/lodash-es/_cloneSymbol.js","webpack:///./node_modules/lodash-es/_cloneTypedArray.js","webpack:///./node_modules/lodash-es/_initCloneByTag.js","webpack:///./node_modules/lodash-es/_initCloneObject.js","webpack:///./node_modules/lodash-es/_baseIsMap.js","webpack:///./node_modules/lodash-es/isMap.js","webpack:///./node_modules/lodash-es/_baseIsSet.js","webpack:///./node_modules/lodash-es/isSet.js","webpack:///./node_modules/lodash-es/_baseClone.js","webpack:///./node_modules/lodash-es/clone.js","webpack:///./node_modules/lodash-es/cloneDeep.js","webpack:///./node_modules/lodash-es/cloneDeepWith.js","webpack:///./node_modules/lodash-es/cloneWith.js","webpack:///./node_modules/lodash-es/commit.js","webpack:///./node_modules/lodash-es/compact.js","webpack:///./node_modules/lodash-es/concat.js","webpack:///./node_modules/lodash-es/_setCacheAdd.js","webpack:///./node_modules/lodash-es/_setCacheHas.js","webpack:///./node_modules/lodash-es/_SetCache.js","webpack:///./node_modules/lodash-es/_arraySome.js","webpack:///./node_modules/lodash-es/_cacheHas.js","webpack:///./node_modules/lodash-es/_equalArrays.js","webpack:///./node_modules/lodash-es/_mapToArray.js","webpack:///./node_modules/lodash-es/_setToArray.js","webpack:///./node_modules/lodash-es/_equalByTag.js","webpack:///./node_modules/lodash-es/_equalObjects.js","webpack:///./node_modules/lodash-es/_baseIsEqualDeep.js","webpack:///./node_modules/lodash-es/_baseIsEqual.js","webpack:///./node_modules/lodash-es/_baseIsMatch.js","webpack:///./node_modules/lodash-es/_isStrictComparable.js","webpack:///./node_modules/lodash-es/_getMatchData.js","webpack:///./node_modules/lodash-es/_matchesStrictComparable.js","webpack:///./node_modules/lodash-es/_baseMatches.js","webpack:///./node_modules/lodash-es/_baseHasIn.js","webpack:///./node_modules/lodash-es/_hasPath.js","webpack:///./node_modules/lodash-es/hasIn.js","webpack:///./node_modules/lodash-es/_baseMatchesProperty.js","webpack:///./node_modules/lodash-es/_baseProperty.js","webpack:///./node_modules/lodash-es/_basePropertyDeep.js","webpack:///./node_modules/lodash-es/property.js","webpack:///./node_modules/lodash-es/_baseIteratee.js","webpack:///./node_modules/lodash-es/cond.js","webpack:///./node_modules/lodash-es/_baseConformsTo.js","webpack:///./node_modules/lodash-es/_baseConforms.js","webpack:///./node_modules/lodash-es/conforms.js","webpack:///./node_modules/lodash-es/conformsTo.js","webpack:///./node_modules/lodash-es/_arrayAggregator.js","webpack:///./node_modules/lodash-es/_createBaseFor.js","webpack:///./node_modules/lodash-es/_baseFor.js","webpack:///./node_modules/lodash-es/_baseForOwn.js","webpack:///./node_modules/lodash-es/_createBaseEach.js","webpack:///./node_modules/lodash-es/_baseEach.js","webpack:///./node_modules/lodash-es/_baseAggregator.js","webpack:///./node_modules/lodash-es/_createAggregator.js","webpack:///./node_modules/lodash-es/countBy.js","webpack:///./node_modules/lodash-es/create.js","webpack:///./node_modules/lodash-es/curry.js","webpack:///./node_modules/lodash-es/curryRight.js","webpack:///./node_modules/lodash-es/now.js","webpack:///./node_modules/lodash-es/debounce.js","webpack:///./node_modules/lodash-es/defaultTo.js","webpack:///./node_modules/lodash-es/defaults.js","webpack:///./node_modules/lodash-es/_assignMergeValue.js","webpack:///./node_modules/lodash-es/isArrayLikeObject.js","webpack:///./node_modules/lodash-es/_safeGet.js","webpack:///./node_modules/lodash-es/toPlainObject.js","webpack:///./node_modules/lodash-es/_baseMergeDeep.js","webpack:///./node_modules/lodash-es/_baseMerge.js","webpack:///./node_modules/lodash-es/_customDefaultsMerge.js","webpack:///./node_modules/lodash-es/mergeWith.js","webpack:///./node_modules/lodash-es/defaultsDeep.js","webpack:///./node_modules/lodash-es/_baseDelay.js","webpack:///./node_modules/lodash-es/defer.js","webpack:///./node_modules/lodash-es/delay.js","webpack:///./node_modules/lodash-es/_arrayIncludesWith.js","webpack:///./node_modules/lodash-es/_baseDifference.js","webpack:///./node_modules/lodash-es/difference.js","webpack:///./node_modules/lodash-es/last.js","webpack:///./node_modules/lodash-es/differenceBy.js","webpack:///./node_modules/lodash-es/differenceWith.js","webpack:///./node_modules/lodash-es/divide.js","webpack:///./node_modules/lodash-es/drop.js","webpack:///./node_modules/lodash-es/dropRight.js","webpack:///./node_modules/lodash-es/_baseWhile.js","webpack:///./node_modules/lodash-es/dropRightWhile.js","webpack:///./node_modules/lodash-es/dropWhile.js","webpack:///./node_modules/lodash-es/_castFunction.js","webpack:///./node_modules/lodash-es/forEach.js","webpack:///./node_modules/lodash-es/_arrayEachRight.js","webpack:///./node_modules/lodash-es/_baseForRight.js","webpack:///./node_modules/lodash-es/_baseForOwnRight.js","webpack:///./node_modules/lodash-es/_baseEachRight.js","webpack:///./node_modules/lodash-es/forEachRight.js","webpack:///./node_modules/lodash-es/endsWith.js","webpack:///./node_modules/lodash-es/_baseToPairs.js","webpack:///./node_modules/lodash-es/_setToPairs.js","webpack:///./node_modules/lodash-es/_createToPairs.js","webpack:///./node_modules/lodash-es/toPairs.js","webpack:///./node_modules/lodash-es/toPairsIn.js","webpack:///./node_modules/lodash-es/_escapeHtmlChar.js","webpack:///./node_modules/lodash-es/escape.js","webpack:///./node_modules/lodash-es/escapeRegExp.js","webpack:///./node_modules/lodash-es/_arrayEvery.js","webpack:///./node_modules/lodash-es/_baseEvery.js","webpack:///./node_modules/lodash-es/every.js","webpack:///./node_modules/lodash-es/toLength.js","webpack:///./node_modules/lodash-es/_baseFill.js","webpack:///./node_modules/lodash-es/fill.js","webpack:///./node_modules/lodash-es/_baseFilter.js","webpack:///./node_modules/lodash-es/filter.js","webpack:///./node_modules/lodash-es/_createFind.js","webpack:///./node_modules/lodash-es/findIndex.js","webpack:///./node_modules/lodash-es/find.js","webpack:///./node_modules/lodash-es/_baseFindKey.js","webpack:///./node_modules/lodash-es/findKey.js","webpack:///./node_modules/lodash-es/findLastIndex.js","webpack:///./node_modules/lodash-es/findLast.js","webpack:///./node_modules/lodash-es/findLastKey.js","webpack:///./node_modules/lodash-es/head.js","webpack:///./node_modules/lodash-es/_baseMap.js","webpack:///./node_modules/lodash-es/map.js","webpack:///./node_modules/lodash-es/flatMap.js","webpack:///./node_modules/lodash-es/flatMapDeep.js","webpack:///./node_modules/lodash-es/flatMapDepth.js","webpack:///./node_modules/lodash-es/flattenDeep.js","webpack:///./node_modules/lodash-es/flattenDepth.js","webpack:///./node_modules/lodash-es/flip.js","webpack:///./node_modules/lodash-es/floor.js","webpack:///./node_modules/lodash-es/_createFlow.js","webpack:///./node_modules/lodash-es/flow.js","webpack:///./node_modules/lodash-es/flowRight.js","webpack:///./node_modules/lodash-es/forIn.js","webpack:///./node_modules/lodash-es/forInRight.js","webpack:///./node_modules/lodash-es/forOwn.js","webpack:///./node_modules/lodash-es/forOwnRight.js","webpack:///./node_modules/lodash-es/fromPairs.js","webpack:///./node_modules/lodash-es/_baseFunctions.js","webpack:///./node_modules/lodash-es/functions.js","webpack:///./node_modules/lodash-es/functionsIn.js","webpack:///./node_modules/lodash-es/groupBy.js","webpack:///./node_modules/lodash-es/_baseGt.js","webpack:///./node_modules/lodash-es/_createRelationalOperation.js","webpack:///./node_modules/lodash-es/gt.js","webpack:///./node_modules/lodash-es/gte.js","webpack:///./node_modules/lodash-es/_baseHas.js","webpack:///./node_modules/lodash-es/has.js","webpack:///./node_modules/lodash-es/_baseInRange.js","webpack:///./node_modules/lodash-es/inRange.js","webpack:///./node_modules/lodash-es/isString.js","webpack:///./node_modules/lodash-es/_baseValues.js","webpack:///./node_modules/lodash-es/values.js","webpack:///./node_modules/lodash-es/includes.js","webpack:///./node_modules/lodash-es/indexOf.js","webpack:///./node_modules/lodash-es/initial.js","webpack:///./node_modules/lodash-es/_baseIntersection.js","webpack:///./node_modules/lodash-es/_castArrayLikeObject.js","webpack:///./node_modules/lodash-es/intersection.js","webpack:///./node_modules/lodash-es/intersectionBy.js","webpack:///./node_modules/lodash-es/intersectionWith.js","webpack:///./node_modules/lodash-es/_baseInverter.js","webpack:///./node_modules/lodash-es/_createInverter.js","webpack:///./node_modules/lodash-es/invert.js","webpack:///./node_modules/lodash-es/invertBy.js","webpack:///./node_modules/lodash-es/_parent.js","webpack:///./node_modules/lodash-es/_baseInvoke.js","webpack:///./node_modules/lodash-es/invoke.js","webpack:///./node_modules/lodash-es/invokeMap.js","webpack:///./node_modules/lodash-es/_baseIsArrayBuffer.js","webpack:///./node_modules/lodash-es/isArrayBuffer.js","webpack:///./node_modules/lodash-es/isBoolean.js","webpack:///./node_modules/lodash-es/_baseIsDate.js","webpack:///./node_modules/lodash-es/isDate.js","webpack:///./node_modules/lodash-es/isElement.js","webpack:///./node_modules/lodash-es/isEmpty.js","webpack:///./node_modules/lodash-es/isEqual.js","webpack:///./node_modules/lodash-es/isEqualWith.js","webpack:///./node_modules/lodash-es/isFinite.js","webpack:///./node_modules/lodash-es/isInteger.js","webpack:///./node_modules/lodash-es/isMatch.js","webpack:///./node_modules/lodash-es/isMatchWith.js","webpack:///./node_modules/lodash-es/isNumber.js","webpack:///./node_modules/lodash-es/isNaN.js","webpack:///./node_modules/lodash-es/_isMaskable.js","webpack:///./node_modules/lodash-es/isNative.js","webpack:///./node_modules/lodash-es/isNil.js","webpack:///./node_modules/lodash-es/isNull.js","webpack:///./node_modules/lodash-es/_baseIsRegExp.js","webpack:///./node_modules/lodash-es/isRegExp.js","webpack:///./node_modules/lodash-es/isSafeInteger.js","webpack:///./node_modules/lodash-es/isUndefined.js","webpack:///./node_modules/lodash-es/isWeakMap.js","webpack:///./node_modules/lodash-es/isWeakSet.js","webpack:///./node_modules/lodash-es/iteratee.js","webpack:///./node_modules/lodash-es/join.js","webpack:///./node_modules/lodash-es/kebabCase.js","webpack:///./node_modules/lodash-es/keyBy.js","webpack:///./node_modules/lodash-es/_strictLastIndexOf.js","webpack:///./node_modules/lodash-es/lastIndexOf.js","webpack:///./node_modules/lodash-es/lowerCase.js","webpack:///./node_modules/lodash-es/lowerFirst.js","webpack:///./node_modules/lodash-es/_baseLt.js","webpack:///./node_modules/lodash-es/lt.js","webpack:///./node_modules/lodash-es/lte.js","webpack:///./node_modules/lodash-es/mapKeys.js","webpack:///./node_modules/lodash-es/mapValues.js","webpack:///./node_modules/lodash-es/matches.js","webpack:///./node_modules/lodash-es/matchesProperty.js","webpack:///./node_modules/lodash-es/_baseExtremum.js","webpack:///./node_modules/lodash-es/max.js","webpack:///./node_modules/lodash-es/maxBy.js","webpack:///./node_modules/lodash-es/_baseSum.js","webpack:///./node_modules/lodash-es/_baseMean.js","webpack:///./node_modules/lodash-es/mean.js","webpack:///./node_modules/lodash-es/meanBy.js","webpack:///./node_modules/lodash-es/merge.js","webpack:///./node_modules/lodash-es/method.js","webpack:///./node_modules/lodash-es/methodOf.js","webpack:///./node_modules/lodash-es/min.js","webpack:///./node_modules/lodash-es/minBy.js","webpack:///./node_modules/lodash-es/mixin.js","webpack:///./node_modules/lodash-es/multiply.js","webpack:///./node_modules/lodash-es/negate.js","webpack:///./node_modules/lodash-es/_iteratorToArray.js","webpack:///./node_modules/lodash-es/toArray.js","webpack:///./node_modules/lodash-es/next.js","webpack:///./node_modules/lodash-es/_baseNth.js","webpack:///./node_modules/lodash-es/nth.js","webpack:///./node_modules/lodash-es/nthArg.js","webpack:///./node_modules/lodash-es/_baseUnset.js","webpack:///./node_modules/lodash-es/_customOmitClone.js","webpack:///./node_modules/lodash-es/omit.js","webpack:///./node_modules/lodash-es/_baseSet.js","webpack:///./node_modules/lodash-es/_basePickBy.js","webpack:///./node_modules/lodash-es/pickBy.js","webpack:///./node_modules/lodash-es/omitBy.js","webpack:///./node_modules/lodash-es/once.js","webpack:///./node_modules/lodash-es/_baseSortBy.js","webpack:///./node_modules/lodash-es/_compareAscending.js","webpack:///./node_modules/lodash-es/_compareMultiple.js","webpack:///./node_modules/lodash-es/_baseOrderBy.js","webpack:///./node_modules/lodash-es/orderBy.js","webpack:///./node_modules/lodash-es/_createOver.js","webpack:///./node_modules/lodash-es/over.js","webpack:///./node_modules/lodash-es/_castRest.js","webpack:///./node_modules/lodash-es/overArgs.js","webpack:///./node_modules/lodash-es/overEvery.js","webpack:///./node_modules/lodash-es/overSome.js","webpack:///./node_modules/lodash-es/_baseRepeat.js","webpack:///./node_modules/lodash-es/_asciiSize.js","webpack:///./node_modules/lodash-es/_unicodeSize.js","webpack:///./node_modules/lodash-es/_stringSize.js","webpack:///./node_modules/lodash-es/_createPadding.js","webpack:///./node_modules/lodash-es/pad.js","webpack:///./node_modules/lodash-es/padEnd.js","webpack:///./node_modules/lodash-es/padStart.js","webpack:///./node_modules/lodash-es/parseInt.js","webpack:///./node_modules/lodash-es/partial.js","webpack:///./node_modules/lodash-es/partialRight.js","webpack:///./node_modules/lodash-es/partition.js","webpack:///./node_modules/lodash-es/_basePick.js","webpack:///./node_modules/lodash-es/pick.js","webpack:///./node_modules/lodash-es/plant.js","webpack:///./node_modules/lodash-es/propertyOf.js","webpack:///./node_modules/lodash-es/_baseIndexOfWith.js","webpack:///./node_modules/lodash-es/_basePullAll.js","webpack:///./node_modules/lodash-es/pullAll.js","webpack:///./node_modules/lodash-es/pull.js","webpack:///./node_modules/lodash-es/pullAllBy.js","webpack:///./node_modules/lodash-es/pullAllWith.js","webpack:///./node_modules/lodash-es/_basePullAt.js","webpack:///./node_modules/lodash-es/pullAt.js","webpack:///./node_modules/lodash-es/_baseRandom.js","webpack:///./node_modules/lodash-es/random.js","webpack:///./node_modules/lodash-es/_baseRange.js","webpack:///./node_modules/lodash-es/_createRange.js","webpack:///./node_modules/lodash-es/range.js","webpack:///./node_modules/lodash-es/rangeRight.js","webpack:///./node_modules/lodash-es/rearg.js","webpack:///./node_modules/lodash-es/_baseReduce.js","webpack:///./node_modules/lodash-es/reduce.js","webpack:///./node_modules/lodash-es/_arrayReduceRight.js","webpack:///./node_modules/lodash-es/reduceRight.js","webpack:///./node_modules/lodash-es/reject.js","webpack:///./node_modules/lodash-es/remove.js","webpack:///./node_modules/lodash-es/repeat.js","webpack:///./node_modules/lodash-es/replace.js","webpack:///./node_modules/lodash-es/rest.js","webpack:///./node_modules/lodash-es/result.js","webpack:///./node_modules/lodash-es/reverse.js","webpack:///./node_modules/lodash-es/round.js","webpack:///./node_modules/lodash-es/_arraySample.js","webpack:///./node_modules/lodash-es/_baseSample.js","webpack:///./node_modules/lodash-es/sample.js","webpack:///./node_modules/lodash-es/_shuffleSelf.js","webpack:///./node_modules/lodash-es/_arraySampleSize.js","webpack:///./node_modules/lodash-es/_baseSampleSize.js","webpack:///./node_modules/lodash-es/sampleSize.js","webpack:///./node_modules/lodash-es/set.js","webpack:///./node_modules/lodash-es/setWith.js","webpack:///./node_modules/lodash-es/_arrayShuffle.js","webpack:///./node_modules/lodash-es/_baseShuffle.js","webpack:///./node_modules/lodash-es/shuffle.js","webpack:///./node_modules/lodash-es/size.js","webpack:///./node_modules/lodash-es/slice.js","webpack:///./node_modules/lodash-es/snakeCase.js","webpack:///./node_modules/lodash-es/_baseSome.js","webpack:///./node_modules/lodash-es/some.js","webpack:///./node_modules/lodash-es/sortBy.js","webpack:///./node_modules/lodash-es/_baseSortedIndexBy.js","webpack:///./node_modules/lodash-es/_baseSortedIndex.js","webpack:///./node_modules/lodash-es/sortedIndex.js","webpack:///./node_modules/lodash-es/sortedIndexBy.js","webpack:///./node_modules/lodash-es/sortedIndexOf.js","webpack:///./node_modules/lodash-es/sortedLastIndex.js","webpack:///./node_modules/lodash-es/sortedLastIndexBy.js","webpack:///./node_modules/lodash-es/sortedLastIndexOf.js","webpack:///./node_modules/lodash-es/_baseSortedUniq.js","webpack:///./node_modules/lodash-es/sortedUniq.js","webpack:///./node_modules/lodash-es/sortedUniqBy.js","webpack:///./node_modules/lodash-es/split.js","webpack:///./node_modules/lodash-es/spread.js","webpack:///./node_modules/lodash-es/startCase.js","webpack:///./node_modules/lodash-es/startsWith.js","webpack:///./node_modules/lodash-es/stubObject.js","webpack:///./node_modules/lodash-es/stubString.js","webpack:///./node_modules/lodash-es/stubTrue.js","webpack:///./node_modules/lodash-es/subtract.js","webpack:///./node_modules/lodash-es/sum.js","webpack:///./node_modules/lodash-es/sumBy.js","webpack:///./node_modules/lodash-es/tail.js","webpack:///./node_modules/lodash-es/take.js","webpack:///./node_modules/lodash-es/takeRight.js","webpack:///./node_modules/lodash-es/takeRightWhile.js","webpack:///./node_modules/lodash-es/takeWhile.js","webpack:///./node_modules/lodash-es/tap.js","webpack:///./node_modules/lodash-es/_customDefaultsAssignIn.js","webpack:///./node_modules/lodash-es/_escapeStringChar.js","webpack:///./node_modules/lodash-es/_reInterpolate.js","webpack:///./node_modules/lodash-es/_reEscape.js","webpack:///./node_modules/lodash-es/_reEvaluate.js","webpack:///./node_modules/lodash-es/templateSettings.js","webpack:///./node_modules/lodash-es/template.js","webpack:///./node_modules/lodash-es/throttle.js","webpack:///./node_modules/lodash-es/thru.js","webpack:///./node_modules/lodash-es/times.js","webpack:///./node_modules/lodash-es/toIterator.js","webpack:///./node_modules/lodash-es/_baseWrapperValue.js","webpack:///./node_modules/lodash-es/wrapperValue.js","webpack:///./node_modules/lodash-es/toLower.js","webpack:///./node_modules/lodash-es/toPath.js","webpack:///./node_modules/lodash-es/toSafeInteger.js","webpack:///./node_modules/lodash-es/toUpper.js","webpack:///./node_modules/lodash-es/transform.js","webpack:///./node_modules/lodash-es/_charsEndIndex.js","webpack:///./node_modules/lodash-es/_charsStartIndex.js","webpack:///./node_modules/lodash-es/trim.js","webpack:///./node_modules/lodash-es/trimEnd.js","webpack:///./node_modules/lodash-es/trimStart.js","webpack:///./node_modules/lodash-es/truncate.js","webpack:///./node_modules/lodash-es/unary.js","webpack:///./node_modules/lodash-es/_unescapeHtmlChar.js","webpack:///./node_modules/lodash-es/unescape.js","webpack:///./node_modules/lodash-es/_createSet.js","webpack:///./node_modules/lodash-es/_baseUniq.js","webpack:///./node_modules/lodash-es/union.js","webpack:///./node_modules/lodash-es/unionBy.js","webpack:///./node_modules/lodash-es/unionWith.js","webpack:///./node_modules/lodash-es/uniq.js","webpack:///./node_modules/lodash-es/uniqBy.js","webpack:///./node_modules/lodash-es/uniqWith.js","webpack:///./node_modules/lodash-es/uniqueId.js","webpack:///./node_modules/lodash-es/unset.js","webpack:///./node_modules/lodash-es/unzip.js","webpack:///./node_modules/lodash-es/unzipWith.js","webpack:///./node_modules/lodash-es/_baseUpdate.js","webpack:///./node_modules/lodash-es/update.js","webpack:///./node_modules/lodash-es/updateWith.js","webpack:///./node_modules/lodash-es/upperCase.js","webpack:///./node_modules/lodash-es/valuesIn.js","webpack:///./node_modules/lodash-es/without.js","webpack:///./node_modules/lodash-es/wrap.js","webpack:///./node_modules/lodash-es/wrapperAt.js","webpack:///./node_modules/lodash-es/wrapperChain.js","webpack:///./node_modules/lodash-es/wrapperReverse.js","webpack:///./node_modules/lodash-es/_baseXor.js","webpack:///./node_modules/lodash-es/xor.js","webpack:///./node_modules/lodash-es/xorBy.js","webpack:///./node_modules/lodash-es/xorWith.js","webpack:///./node_modules/lodash-es/zip.js","webpack:///./node_modules/lodash-es/_baseZipObject.js","webpack:///./node_modules/lodash-es/zipObject.js","webpack:///./node_modules/lodash-es/zipObjectDeep.js","webpack:///./node_modules/lodash-es/zipWith.js","webpack:///./node_modules/lodash-es/array.default.js","webpack:///./node_modules/lodash-es/collection.default.js","webpack:///./node_modules/lodash-es/date.default.js","webpack:///./node_modules/lodash-es/function.default.js","webpack:///./node_modules/lodash-es/lang.default.js","webpack:///./node_modules/lodash-es/math.default.js","webpack:///./node_modules/lodash-es/number.default.js","webpack:///./node_modules/lodash-es/object.default.js","webpack:///./node_modules/lodash-es/seq.default.js","webpack:///./node_modules/lodash-es/string.default.js","webpack:///./node_modules/lodash-es/util.default.js","webpack:///./node_modules/lodash-es/_lazyClone.js","webpack:///./node_modules/lodash-es/_lazyReverse.js","webpack:///./node_modules/lodash-es/_getView.js","webpack:///./node_modules/lodash-es/_lazyValue.js","webpack:///./node_modules/lodash-es/lodash.default.js","webpack:///./node_modules/lodash-es/lodash.js","webpack:///./node_modules/@jsonquerylang/jsonquery/lib/jsonquery.js","webpack:///./node_modules/@fortawesome/free-regular-svg-icons/index.mjs","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.mjs","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/jsonpath-plus/dist/index-browser-esm.js","webpack:///./node_modules/@marijn/find-cluster-break/src/index.js","webpack:///./node_modules/@codemirror/state/dist/index.js","webpack:///./node_modules/style-mod/src/style-mod.js","webpack:///./node_modules/w3c-keyname/index.js","webpack:///./node_modules/@codemirror/view/dist/index.js","webpack:///./node_modules/@lezer/common/dist/index.js","webpack:///./node_modules/@lezer/highlight/dist/index.js","webpack:///./node_modules/@codemirror/language/dist/index.js","webpack:///./node_modules/@codemirror/commands/dist/index.js","webpack:///./node_modules/crelt/index.js","webpack:///./node_modules/@codemirror/lint/dist/index.js","webpack:///./node_modules/@lezer/lr/dist/index.js","webpack:///./node_modules/@lezer/json/dist/index.js","webpack:///./node_modules/@codemirror/lang-json/dist/index.js","webpack:///./node_modules/@codemirror/search/dist/index.js","webpack:///./node_modules/@codemirror/autocomplete/dist/index.js","webpack:///./node_modules/@replit/codemirror-indentation-markers/dist/index.js","webpack:///./node_modules/vanilla-jsoneditor/index.js","webpack:///./node_modules/json-editor-vue/node_modules/vue-demi/lib/index.mjs","webpack:///./node_modules/json-editor-vue/dist/json-editor-vue.mjs","webpack:///./node_modules/call-bound/index.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/lodash/round.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/core-js/modules/esnext.iterator.some.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/enum.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/format/format.js","webpack:///./node_modules/@syncfusion/ej2-vue-grids/src/grid/columns.directive.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/core-js/internals/set-iterate.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@syncfusion/ej2-lists/src/common/list-base.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/core-js/modules/esnext.set.intersection.v2.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/stackframe/stackframe.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/core-js/internals/iterate-simple.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/vuex/dist/vuex.esm-bundler.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/es-errors/eval.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-consumer.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/not.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/core-js/modules/esnext.set.difference.v2.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/core-js/modules/es.array.push.js","webpack:///./node_modules/core-js/internals/set-union.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/lodash/_createSet.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/names.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/call-bind-apply-helpers/reflectApply.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/core-js/modules/web.url-search-params.has.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/codegen/code.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/fast-uri/index.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/common/collision.js","webpack:///./node_modules/get-proto/Reflect.getPrototypeOf.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/resolve.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/required.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/array-set.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/lodash/divide.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-node.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/core.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/@syncfusion/ej2-layouts/src/splitter/splitter.js","webpack:///./node_modules/@syncfusion/ej2-vue-layouts/src/splitter/splitter.component.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-generator.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/allOf.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/core-js/internals/set-is-subset-of.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/core-js/modules/esnext.iterator.filter.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/metadata.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitItems.js","webpack:///./node_modules/core-js/internals/dom-exception-constants.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/binary-search.js","webpack:///./node_modules/lodash/mean.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_baseUniq.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_baseLt.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/vue-json-viewer/vue-json-viewer.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/errors.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/@syncfusion/ej2-vue-charts/src/chart/series.directive.js","webpack:///./node_modules/es-errors/syntax.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/json-schema-traverse/index.js","webpack:///./node_modules/stack-generator/stack-generator.js","webpack:///./node_modules/math-intrinsics/floor.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/format/index.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/@syncfusion/ej2-vue-grids/src/grid/aggregates.directive.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/@syncfusion/ej2-buttons/src/button/button.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/quick-sort.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/uniq.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/ref_error.js","webpack:///./node_modules/lodash/set.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/core-js/internals/set-is-disjoint-from.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/fast-uri/lib/scopedChars.js","webpack:///./node_modules/core-js/modules/web.dom-exception.stack.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/modules/esnext.set.union.v2.js","webpack:///./node_modules/vue-loader/dist/exportHelper.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/subschema.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@syncfusion/ej2-base/src/util.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","webpack:///./node_modules/@syncfusion/ej2-base/src/hijri-parser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/observer.js","webpack:///./node_modules/@syncfusion/ej2-base/src/internationalization.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","webpack:///./node_modules/@syncfusion/ej2-base/src/ajax.js","webpack:///./node_modules/@syncfusion/ej2-base/src/fetch.js","webpack:///./node_modules/@syncfusion/ej2-base/src/browser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/event-handler.js","webpack:///./node_modules/@syncfusion/ej2-base/src/dom.js","webpack:///./node_modules/@syncfusion/ej2-base/src/base.js","webpack:///./node_modules/@syncfusion/ej2-base/src/notify-property-change.js","webpack:///./node_modules/@syncfusion/ej2-base/src/animation.js","webpack:///./node_modules/@syncfusion/ej2-base/src/module-loader.js","webpack:///./node_modules/@syncfusion/ej2-base/src/child-property.js","webpack:///./node_modules/@syncfusion/ej2-base/src/validate-lic.js","webpack:///./node_modules/@syncfusion/ej2-base/src/component.js","webpack:///./node_modules/@syncfusion/ej2-base/src/draggable.js","webpack:///./node_modules/@syncfusion/ej2-base/src/droppable.js","webpack:///./node_modules/@syncfusion/ej2-base/src/keyboard.js","webpack:///./node_modules/@syncfusion/ej2-base/src/l10n.js","webpack:///./node_modules/@syncfusion/ej2-base/src/touch.js","webpack:///./node_modules/@syncfusion/ej2-base/src/template.js","webpack:///./node_modules/@syncfusion/ej2-base/src/template-engine.js","webpack:///./node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","webpack:///./node_modules/@syncfusion/ej2-base/src/index.js","webpack:///./node_modules/@syncfusion/ej2-base/index.js","webpack:///./node_modules/math-intrinsics/min.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","webpack:///./node_modules/core-js/internals/set-intersection.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/util.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/es-errors/index.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/es-errors/type.js","webpack:///./node_modules/lodash/transform.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/math-intrinsics/round.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/get-proto/Object.getPrototypeOf.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/lodash/_baseToNumber.js","webpack:///./node_modules/math-intrinsics/abs.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/side-channel-weakmap/index.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/core-js/modules/esnext.iterator.find.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/math-intrinsics/sign.js","webpack:///./node_modules/call-bind-apply-helpers/index.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/@vue/reactivity/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/vue/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/vue/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js","webpack:///./node_modules/vue/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js","webpack:///./node_modules/vue/dist/vue.esm-bundler.js","webpack:///./node_modules/lodash/_createRound.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/vue-router/dist/vue-router.mjs","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/math-intrinsics/pow.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/boolSchema.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/jmespath/jmespath.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/ajv.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/validation_error.js","webpack:///./node_modules/@syncfusion/ej2-vue-progressbar/src/progressbar/annotations.directive.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/@syncfusion/ej2-vue-layouts/src/splitter/panesettings.directive.js","webpack:///./node_modules/es-errors/range.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/@syncfusion/ej2-vue-navigations/src/tab/items.directive.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/es-errors/ref.js","webpack:///./node_modules/es-object-atoms/index.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_createMathOperation.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/side-channel-map/index.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/core-js/modules/esnext.iterator.map.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/lodash/_baseMean.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/spinner/spinner.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/core-js/internals/set-difference.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/core-js/internals/set-symmetric-difference.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/core-js/internals/get-set-record.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/core/index.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/internals/set-method-accept-set-like.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/index.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/@syncfusion/ej2-buttons/src/common/common.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/items.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/natural-compare-lite/index.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/@syncfusion/ej2-data/src/query.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/lodash/add.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/rules.js","webpack:///./node_modules/core-js/internals/set-clone.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/src/component-base.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/src/template.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/src/index.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/index.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/@syncfusion/ej2-data/src/util.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/core/ref.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/lodash/subtract.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/lodash/_baseExtremum.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/get-proto/index.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/core-js/internals/set-helpers.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/math-intrinsics/isNaN.js","webpack:///./node_modules/lodash/max.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/core-js/internals/a-set.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/time.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/core-js/modules/web.url-search-params.size.js","webpack:///./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/@syncfusion/ej2-notifications/src/toast/toast.js","webpack:///./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","var createMathOperation = require('./_createMathOperation');\n\n/**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\nvar multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n}, 1);\n\nmodule.exports = multiply;\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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\nmodule.exports = isBuffer;\n","/**\n * Resize library\n */\nimport { isNullOrUndefined as isNOU, createElement, EventHandler, detach, Browser } from '@syncfusion/ej2-base';\nvar elementClass = ['north-west', 'north', 'north-east', 'west', 'east', 'south-west', 'south', 'south-east'];\nvar RESIZE_HANDLER = 'e-resize-handle';\nvar FOCUSED_HANDLER = 'e-focused-handle';\nvar DIALOG_RESIZABLE = 'e-dlg-resizable';\nvar RESTRICT_LEFT = ['e-restrict-left'];\nvar RESIZE_WITHIN_VIEWPORT = 'e-resize-viewport';\nvar dialogBorderResize = ['north', 'west', 'east', 'south'];\nvar targetElement;\nvar selectedHandler;\nvar originalWidth = 0;\nvar originalHeight = 0;\nvar originalX = 0;\nvar originalY = 0;\nvar originalMouseX = 0;\nvar originalMouseY = 0;\nvar minHeight;\nvar maxHeight;\nvar minWidth;\nvar maxWidth;\nvar containerElement;\nvar resizeStart = null;\nvar resize = null;\nvar resizeEnd = null;\nvar resizeWestWidth;\nvar setLeft = true;\nvar previousWidth = 0;\nvar setWidth = true;\n// eslint-disable-next-line\nvar proxy;\n/**\n *\n * @param {ResizeArgs} args - specifies the resize args\n * @returns {void}\n */\nexport function createResize(args) {\n resizeStart = args.resizeBegin;\n resize = args.resizing;\n resizeEnd = args.resizeComplete;\n targetElement = getDOMElement(args.element);\n containerElement = getDOMElement(args.boundary);\n var directions = args.direction.split(' ');\n for (var i = 0; i < directions.length; i++) {\n if (dialogBorderResize.indexOf(directions[i]) >= 0 && directions[i]) {\n setBorderResizeElm(directions[i]);\n }\n else if (directions[i].trim() !== '') {\n var resizeHandler = createElement('div', { className: 'e-icons ' + RESIZE_HANDLER + ' ' + 'e-' + directions[i] });\n targetElement.appendChild(resizeHandler);\n }\n }\n minHeight = args.minHeight;\n minWidth = args.minWidth;\n maxWidth = args.maxWidth;\n maxHeight = args.maxHeight;\n if (args.proxy && args.proxy.element && args.proxy.element.classList.contains('e-dialog')) {\n wireEvents(args.proxy);\n }\n else {\n wireEvents();\n }\n}\n/**\n *\n * @param {string} direction - specifies the string\n * @returns {void}\n */\nfunction setBorderResizeElm(direction) {\n calculateValues();\n var borderBottom = createElement('span', {\n attrs: {\n 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n borderBottom.setAttribute('class', 'e-dialog-border-resize e-' + direction);\n if (direction === 'south') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.bottom = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'north') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.top = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'east') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.right = '0px';\n borderBottom.style.top = '0px';\n }\n if (direction === 'west') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.left = '0px';\n borderBottom.style.top = '0px';\n }\n targetElement.appendChild(borderBottom);\n}\n/**\n *\n * @param {string} element - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction getDOMElement(element) {\n var domElement;\n if (!isNOU(element)) {\n if (typeof (element) === 'string') {\n domElement = document.querySelector(element);\n }\n else {\n domElement = element;\n }\n }\n return domElement;\n}\n/**\n * Wires up the event handlers for the resizable elements.\n *\n * @param {any} [args] - Optional arguments that provide context for the event handlers.\n * @returns {void}\n */\nfunction wireEvents(args) {\n var context = args || this;\n var resizers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < resizers.length; i++) {\n selectedHandler = resizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, context);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, context);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n selectedHandler = borderResizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, context);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, context);\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {string} e - specifies the string\n * @returns {string} - returns the string\n */\nfunction getEventType(e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the mouse event\n * @returns {void}\n */\nfunction onMouseDown(e) {\n e.preventDefault();\n targetElement = e.target.parentElement;\n calculateValues();\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n e.target.classList.add(FOCUSED_HANDLER);\n if (!isNOU(resizeStart)) {\n var proxy_1 = null || this;\n if (resizeStart(e, proxy_1) === true) {\n return;\n }\n }\n if (this.targetEle && targetElement && targetElement.querySelector('.' + DIALOG_RESIZABLE)) {\n containerElement = this.target === ('body' || 'document.body' || document.body) ? null : this.targetEle;\n maxWidth = this.targetEle.clientWidth;\n maxHeight = this.targetEle.clientHeight;\n }\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, 'mousemove', onMouseMove, this);\n EventHandler.add(document, 'mouseup', onMouseUp, this);\n for (var i = 0; i < RESTRICT_LEFT.length; i++) {\n if (targetElement.classList.contains(RESTRICT_LEFT[i])) {\n setLeft = false;\n }\n else {\n setLeft = true;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseUp(e) {\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.remove(target, 'mousemove', onMouseMove);\n EventHandler.remove(target, touchMoveEvent, onMouseMove);\n EventHandler.remove(target, eventName, onMouseMove);\n if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n document.body.querySelector('.' + FOCUSED_HANDLER).classList.remove(FOCUSED_HANDLER);\n }\n if (!isNOU(resizeEnd)) {\n var proxy_2 = null || this;\n resizeEnd(e, proxy_2);\n }\n EventHandler.remove(document, 'mouseup', onMouseUp);\n EventHandler.remove(document, touchEndEvent, onMouseUp);\n}\n/* istanbul ignore next */\n/**\n * @returns {void}\n */\nfunction calculateValues() {\n originalWidth = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('width').replace('px', ''));\n originalHeight = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('height').replace('px', ''));\n originalX = targetElement.getBoundingClientRect().left;\n originalY = targetElement.getBoundingClientRect().top;\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onTouchStart(e) {\n targetElement = e.target.parentElement;\n calculateValues();\n var dialogResizeElement = targetElement.classList.contains('e-dialog');\n if ((e.target.classList.contains(RESIZE_HANDLER) || e.target.classList.contains('e-dialog-border-resize')) && dialogResizeElement) {\n e.target.classList.add(FOCUSED_HANDLER);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n originalMouseX = coordinates.pageX;\n originalMouseY = coordinates.pageY;\n if (!isNOU(resizeStart)) {\n var proxy_3 = null || this;\n if (resizeStart(e, proxy_3) === true) {\n return;\n }\n }\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, touchMoveEvent, onMouseMove, this);\n EventHandler.add(document, touchEndEvent, onMouseUp, this);\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseMove(e) {\n if (e.target.classList.contains(RESIZE_HANDLER) && e.target.classList.contains(FOCUSED_HANDLER)) {\n selectedHandler = e.target;\n }\n else if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n selectedHandler = document.body.querySelector('.' + FOCUSED_HANDLER);\n }\n if (!isNOU(selectedHandler)) {\n var resizeTowards = '';\n for (var i = 0; i < elementClass.length; i++) {\n if (selectedHandler.classList.contains('e-' + elementClass[i])) {\n resizeTowards = elementClass[i];\n }\n }\n if (!isNOU(resize)) {\n var proxy_4 = null || this;\n resize(e, proxy_4);\n }\n switch (resizeTowards) {\n case 'south':\n resizeSouth(e);\n break;\n case 'north':\n resizeNorth(e);\n break;\n case 'west':\n resizeWest(e);\n break;\n case 'east':\n resizeEast(e);\n break;\n case 'south-east':\n resizeSouth(e);\n resizeEast(e);\n break;\n case 'south-west':\n resizeSouth(e);\n resizeWest(e);\n break;\n case 'north-east':\n resizeNorth(e);\n resizeEast(e);\n break;\n case 'north-west':\n resizeNorth(e);\n resizeWest(e);\n break;\n default: break;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {HTMLElement} element - specifies the eleemnt\n * @returns {ClientRect} - returns the client\n */\nfunction getClientRectValues(element) {\n return element.getBoundingClientRect();\n}\n/**\n * @param {MouseEvent | TouchEvent} e - specifies the event\n * @returns {void}\n */\nfunction resizeSouth(e) {\n var documentHeight = document.documentElement.clientHeight;\n var calculateValue = false;\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var currentpageY = coordinates.pageY;\n var targetRectValues = getClientRectValues(targetElement);\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && ((documentHeight - currentpageY) >= 0 || (targetRectValues.top < 0))) {\n calculateValue = true;\n }\n var calculatedHeight = originalHeight + (currentpageY - originalMouseY);\n calculatedHeight = (calculatedHeight > minHeight) ? calculatedHeight : minHeight;\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = containerRectValues.top;\n }\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\n var topWithoutborder = (targetRectValues.top - containerTop) - (borderValue / 2);\n topWithoutborder = (topWithoutborder < 0) ? 0 : topWithoutborder;\n if (targetRectValues.top > 0 && (topWithoutborder + calculatedHeight) > maxHeight) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.height = (maxHeight - parseInt(topWithoutborder.toString(), 10)) + 'px';\n return;\n }\n var targetTop = 0;\n if (calculateValue) {\n if (targetRectValues.top < 0 && (documentHeight + (targetRectValues.height + targetRectValues.top) > 0)) {\n targetTop = targetRectValues.top;\n if ((calculatedHeight + targetTop) <= 30) {\n calculatedHeight = (targetRectValues.height - (targetRectValues.height + targetRectValues.top)) + 30;\n }\n }\n if (((calculatedHeight + targetRectValues.top) >= maxHeight)) {\n targetElement.style.height = targetRectValues.height +\n (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px';\n }\n var calculatedTop = (isNOU(containerElement)) ? targetTop : topWithoutborder;\n if (calculatedHeight >= minHeight && ((calculatedHeight + calculatedTop) <= maxHeight)) {\n targetElement.style.height = calculatedHeight + 'px';\n }\n }\n}\n/**\n * Resizes the element towards the north direction.\n *\n * @param {MouseEvent | TouchEvent} e - The event object.\n * @returns {void}\n */\nfunction resizeNorth(e) {\n var calculateValue = false;\n var boundaryRectValues;\n var pageY = (getEventType(e.type) === 'mouse') ? e.pageY : e.touches[0].pageY;\n var targetRectValues = getClientRectValues(targetElement);\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\n if (!isNOU(containerElement)) {\n boundaryRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement) && (targetRectValues.top - boundaryRectValues.top) > 0) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageY > 0) {\n calculateValue = true;\n }\n else if (!isNOU(containerElement) &&\n (Math.floor((targetRectValues.top - boundaryRectValues.top) + targetRectValues.height +\n (boundaryRectValues.bottom - targetRectValues.bottom)) - borderValue) <= maxHeight) {\n calculateValue = true;\n }\n var currentHeight = originalHeight - (pageY - originalMouseY);\n if (calculateValue) {\n if (currentHeight >= minHeight && currentHeight <= maxHeight) {\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = boundaryRectValues.top;\n }\n var top_1 = (originalY - containerTop) + (pageY - originalMouseY);\n top_1 = top_1 > 0 ? top_1 : 1;\n targetElement.style.height = currentHeight + 'px';\n targetElement.style.top = top_1 + 'px';\n }\n }\n}\n/**\n * Resizes the element towards the west direction.\n *\n * @param {MouseEvent | TouchEvent} e - The event object.\n * @returns {void}\n */\nfunction resizeWest(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var rectValues;\n if (!isNOU(containerElement)) {\n rectValues = getClientRectValues(containerElement);\n }\n var pageX = (getEventType(e.type) === 'mouse') ? e.pageX : e.touches[0].pageX;\n var targetRectValues = getClientRectValues(targetElement);\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetWidth - containerElement.clientWidth;\n /* eslint-disable */\n var left = isNOU(containerElement) ? 0 : rectValues.left;\n var containerWidth = isNOU(containerElement) ? 0 : rectValues.width;\n /* eslint-enable */\n if (isNOU(resizeWestWidth)) {\n if (!isNOU(containerElement)) {\n resizeWestWidth = (((targetRectValues.left - left) - borderValue / 2)) + targetRectValues.width;\n resizeWestWidth = resizeWestWidth + (containerWidth - borderValue - resizeWestWidth);\n }\n else {\n resizeWestWidth = documentWidth;\n }\n }\n if (!isNOU(containerElement) &&\n (Math.floor((targetRectValues.left - rectValues.left) + targetRectValues.width +\n (rectValues.right - targetRectValues.right)) - borderValue) <= maxWidth) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageX >= 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth - (pageX - originalMouseX);\n if (setLeft) {\n calculatedWidth = (calculatedWidth > resizeWestWidth) ? resizeWestWidth : calculatedWidth;\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = rectValues.left;\n }\n var left_1 = (originalX - containerLeft) + (pageX - originalMouseX);\n left_1 = (left_1 > 0) ? left_1 : 1;\n if (calculatedWidth !== previousWidth && setWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n if (setLeft) {\n targetElement.style.left = left_1 + 'px';\n if (left_1 === 1) {\n setWidth = false;\n }\n else {\n setWidth = true;\n }\n }\n }\n }\n previousWidth = calculatedWidth;\n}\n/**\n * Resizes the element towards the east direction.\n *\n * @param {MouseEvent | TouchEvent} e - The event object.\n * @returns {void}\n */\nfunction resizeEast(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var pageX = coordinates.pageX;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement) && (((targetRectValues.left - containerRectValues.left) + targetRectValues.width) <= maxWidth\n || (targetRectValues.right - containerRectValues.left) >= targetRectValues.width)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && (documentWidth - pageX) > 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth + (pageX - originalMouseX);\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = containerRectValues.left;\n }\n if (((targetRectValues.left - containerLeft) + calculatedWidth) > maxWidth) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.width = maxWidth - (targetRectValues.left - containerLeft) + 'px';\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {number} minimumHeight - specifies the number\n * @returns {void}\n */\nexport function setMinHeight(minimumHeight) {\n minHeight = minimumHeight;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxWidth(value) {\n maxWidth = value;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxHeight(value) {\n maxHeight = value;\n}\n/**\n * @returns {void}\n */\nexport function removeResize() {\n var handlers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < handlers.length; i++) {\n detach(handlers[i]);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n detach(borderResizers[i]);\n }\n }\n}\n/**\n * @returns {void}\n */\nexport function resizeDestroy() {\n targetElement = null;\n selectedHandler = null;\n containerElement = null;\n resizeWestWidth = null;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, Collection, L10n, Complex, compile, createElement, animationMode } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, detach, attributes, prepend, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, isBlazor } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, append, EventHandler, Draggable, extend } from '@syncfusion/ej2-base';\nimport { SanitizeHtmlHelper, Browser } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup, PositionData, getZindexPartial } from '../popup/popup';\nimport { createResize, removeResize, setMinHeight, setMaxWidth, setMaxHeight, resizeDestroy } from '../common/resize';\nvar ButtonProps = /** @class */ (function (_super) {\n __extends(ButtonProps, _super);\n function ButtonProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ButtonProps.prototype, \"isFlat\", void 0);\n __decorate([\n Property()\n ], ButtonProps.prototype, \"buttonModel\", void 0);\n __decorate([\n Property('Button')\n ], ButtonProps.prototype, \"type\", void 0);\n __decorate([\n Event()\n ], ButtonProps.prototype, \"click\", void 0);\n return ButtonProps;\n}(ChildProperty));\nexport { ButtonProps };\n/**\n * Configures the animation properties for both open and close the dialog.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Fade')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property(0)\n ], AnimationSettings.prototype, \"delay\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\nvar ROOT = 'e-dialog';\nvar RTL = 'e-rtl';\nvar DLG_HEADER_CONTENT = 'e-dlg-header-content';\nvar DLG_HEADER = 'e-dlg-header';\nvar DLG_FOOTER_CONTENT = 'e-footer-content';\nvar MODAL_DLG = 'e-dlg-modal';\nvar DLG_CONTENT = 'e-dlg-content';\nvar DLG_CLOSE_ICON = 'e-icon-dlg-close';\nvar DLG_OVERLAY = 'e-dlg-overlay';\nvar DLG_TARGET = 'e-dlg-target';\nvar DLG_CONTAINER = 'e-dlg-container';\nvar SCROLL_DISABLED = 'e-scroll-disabled';\nvar DLG_PRIMARY_BUTTON = 'e-primary';\nvar ICON = 'e-icons';\nvar POPUP_ROOT = 'e-popup';\nvar DEVICE = 'e-device';\nvar FULLSCREEN = 'e-dlg-fullscreen';\nvar DLG_CLOSE_ICON_BTN = 'e-dlg-closeicon-btn';\nvar DLG_HIDE = 'e-popup-close';\nvar DLG_SHOW = 'e-popup-open';\nvar DLG_UTIL_DEFAULT_TITLE = 'Information';\nvar DLG_UTIL_ROOT = 'e-scroll-disabled';\nvar DLG_UTIL_ALERT = 'e-alert-dialog';\nvar DLG_UTIL_CONFIRM = 'e-confirm-dialog';\nvar DLG_RESIZABLE = 'e-dlg-resizable';\nvar DLG_RESTRICT_LEFT_VALUE = 'e-restrict-left';\nvar DLG_RESTRICT_WIDTH_VALUE = 'e-resize-viewport';\nvar DLG_REF_ELEMENT = 'e-dlg-ref-element';\nvar DLG_USER_ACTION_CLOSED = 'user action';\nvar DLG_CLOSE_ICON_CLOSED = 'close icon';\nvar DLG_ESCAPE_CLOSED = 'escape';\nvar DLG_OVERLAYCLICK_CLOSED = 'overlayClick';\nvar DLG_DRAG = 'e-draggable';\n/**\n * Represents the dialog component that displays the information and get input from the user.\n * Two types of dialog components are `Modal and Modeless (non-modal)` depending on its interaction with parent application.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Dialog = /** @class */ (function (_super) {\n __extends(Dialog, _super);\n /*\n * * Constructor for creating the widget\n *\n * @param\n * @param\n * @hidden\n */\n function Dialog(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n *Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.render = function () {\n this.initialize();\n this.initRender();\n this.wireEvents();\n if (this.width === '100%') {\n this.element.style.width = '';\n }\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n if (this.enableResize) {\n this.setResize();\n if (this.isModal) {\n this.isModelResize = true;\n }\n if (this.animationSettings.effect === 'None') {\n this.getMinHeight();\n }\n }\n this.renderComplete();\n };\n Dialog.prototype.initializeValue = function () {\n this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n };\n /**\n *Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.preRender = function () {\n var _this = this;\n this.initializeValue();\n this.headerContent = null;\n this.allowMaxHeight = true;\n this.preventVisibility = true;\n this.clonedEle = this.element.cloneNode(true);\n this.closeIconClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_CLOSE_ICON_CLOSED;\n _this.hide(event);\n };\n this.dlgOverlayClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_OVERLAYCLICK_CLOSED;\n event.preventFocus = false;\n _this.trigger('overlayClick', event, function (overlayClickEventArgs) {\n if (!overlayClickEventArgs.preventFocus) {\n _this.focusContent();\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n };\n var localeText = { close: 'Close' };\n this.l10n = new L10n('dialog', localeText, this.locale);\n this.checkPositionData();\n if (isNullOrUndefined(this.target)) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.target = document.body;\n this.isProtectedOnChange = prevOnChange;\n }\n };\n Dialog.prototype.updatePersistData = function () {\n if (this.enablePersistence) {\n this.setProperties({ width: parseFloat(this.element.style.width), height: parseFloat(this.element.style.height),\n position: { X: parseFloat(this.dragObj.element.style.left), Y: parseFloat(this.dragObj.element.style.top) } }, true);\n }\n };\n Dialog.prototype.isNumberValue = function (value) {\n var isNumber = /^[-+]?\\d*\\.?\\d+$/.test(value);\n return isNumber;\n };\n Dialog.prototype.checkPositionData = function () {\n if (!isNullOrUndefined(this.position)) {\n if (!isNullOrUndefined(this.position.X) && (typeof (this.position.X) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.X);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.X = parseFloat(this.position.X);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n if (!isNullOrUndefined(this.position.Y) && (typeof (this.position.Y) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.Y);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.Y = parseFloat(this.position.Y);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n }\n };\n Dialog.prototype.getEle = function (list, selector) {\n var element = undefined;\n for (var i = 0; i < list.length; i++) {\n if (list[i].classList.contains(selector)) {\n element = list[i];\n break;\n }\n }\n return element;\n };\n /* istanbul ignore next */\n Dialog.prototype.getMinHeight = function () {\n var computedHeaderHeight = '0px';\n var computedFooterHeight = '0px';\n if (!isNullOrUndefined(this.element.querySelector('.' + DLG_HEADER_CONTENT))) {\n computedHeaderHeight = getComputedStyle(this.headerContent).height;\n }\n var footerEle = this.getEle(this.element.children, DLG_FOOTER_CONTENT);\n if (!isNullOrUndefined(footerEle)) {\n computedFooterHeight = getComputedStyle(footerEle).height;\n }\n var headerHeight = parseInt(computedHeaderHeight.slice(0, computedHeaderHeight.indexOf('p')), 10);\n var footerHeight = parseInt(computedFooterHeight.slice(0, computedFooterHeight.indexOf('p')), 10);\n setMinHeight(headerHeight + 30 + (isNaN(footerHeight) ? 0 : footerHeight));\n return (headerHeight + 30 + footerHeight);\n };\n Dialog.prototype.onResizeStart = function (args, dialogObj) {\n dialogObj.trigger('resizeStart', args);\n if (!args.cancel && this.isModelResize && !isNullOrUndefined(this.dlgContainer) && this.dlgContainer.classList.contains('e-dlg-' + this.position.X + '-' + this.position.Y)) {\n this.setPopupPosition();\n this.dlgContainer.classList.remove('e-dlg-' + this.position.X + '-' + this.position.Y);\n var targetType = this.getTargetContainer(this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n this.element.style.position = 'absolute';\n }\n else {\n this.element.style.position = 'relative';\n }\n }\n else {\n this.element.style.position = 'relative';\n }\n if (this.element.classList.contains(DLG_RESTRICT_LEFT_VALUE)) {\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n }\n this.isModelResize = false;\n }\n return args.cancel;\n };\n Dialog.prototype.onResizing = function (args, dialogObj) {\n dialogObj.trigger('resizing', args);\n };\n Dialog.prototype.onResizeComplete = function (args, dialogObj) {\n dialogObj.trigger('resizeStop', args);\n this.updatePersistData();\n };\n Dialog.prototype.setResize = function () {\n if (this.enableResize) {\n this.element.classList.add(DLG_RESIZABLE);\n var computedHeight = getComputedStyle(this.element).minHeight;\n var computedWidth = getComputedStyle(this.element).minWidth;\n var direction = '';\n for (var i = 0; i < this.resizeHandles.length; i++) {\n if (this.resizeHandles[i] === 'All') {\n direction = 'south north east west north-east north-west south-east south-west';\n break;\n }\n else {\n var directionValue = '';\n switch (this.resizeHandles[i].toString()) {\n case 'SouthEast':\n directionValue = 'south-east';\n break;\n case 'SouthWest':\n directionValue = 'south-west';\n break;\n case 'NorthEast':\n directionValue = 'north-east';\n break;\n case 'NorthWest':\n directionValue = 'north-west';\n break;\n default:\n directionValue = this.resizeHandles[i].toString();\n break;\n }\n direction += directionValue.toLocaleLowerCase() + ' ';\n }\n }\n if (this.enableRtl && direction.trim() === 'south-east') {\n direction = 'south-west';\n }\n else if (this.enableRtl && direction.trim() === 'south-west') {\n direction = 'south-east';\n }\n if (this.isModal && this.enableRtl) {\n this.element.classList.add(DLG_RESTRICT_LEFT_VALUE);\n }\n else if (this.isModal && this.target === document.body) {\n this.element.classList.add(DLG_RESTRICT_WIDTH_VALUE);\n }\n createResize({\n element: this.element,\n direction: direction,\n minHeight: parseInt(computedHeight.slice(0, computedWidth.indexOf('p')), 10),\n maxHeight: this.targetEle.clientHeight,\n minWidth: parseInt(computedWidth.slice(0, computedWidth.indexOf('p')), 10),\n maxWidth: this.targetEle.clientWidth,\n boundary: this.target === document.body ? null : this.targetEle,\n resizeBegin: this.onResizeStart.bind(this),\n resizeComplete: this.onResizeComplete.bind(this),\n resizing: this.onResizing.bind(this),\n proxy: this\n });\n this.wireWindowResizeEvent();\n }\n else {\n removeResize();\n this.unWireWindowResizeEvent();\n if (this.isModal) {\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n }\n else {\n this.element.classList.remove(DLG_RESTRICT_WIDTH_VALUE);\n }\n this.element.classList.remove(DLG_RESIZABLE);\n }\n };\n Dialog.prototype.getFocusElement = function (target) {\n var value = 'input,select,textarea,button:enabled,a,[contenteditable=\"true\"],[tabindex]';\n var items = target.querySelectorAll(value);\n return { element: items[items.length - 1] };\n };\n /* istanbul ignore next */\n Dialog.prototype.keyDown = function (event) {\n var _this = this;\n if (event.keyCode === 9) {\n if (this.isModal) {\n var buttonObj = void 0;\n if (!isNullOrUndefined(this.btnObj)) {\n buttonObj = this.btnObj[this.btnObj.length - 1];\n }\n if ((isNullOrUndefined(this.btnObj)) && (!isNullOrUndefined(this.ftrTemplateContent))) {\n buttonObj = this.getFocusElement(this.ftrTemplateContent);\n }\n if (isNullOrUndefined(this.btnObj) && isNullOrUndefined(this.ftrTemplateContent) && !isNullOrUndefined(this.contentEle)) {\n buttonObj = this.getFocusElement(this.contentEle);\n }\n if (!isNullOrUndefined(buttonObj) && document.activeElement === buttonObj.element && !event.shiftKey) {\n event.preventDefault();\n this.focusableElements(this.element).focus();\n }\n if (document.activeElement === this.focusableElements(this.element) && event.shiftKey) {\n event.preventDefault();\n if (!isNullOrUndefined(buttonObj)) {\n buttonObj.element.focus();\n }\n }\n }\n }\n var element = document.activeElement;\n var isTagName = (['input', 'textarea'].indexOf(element.tagName.toLowerCase()) > -1);\n var isContentEdit = false;\n if (!isTagName) {\n isContentEdit = element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') === 'true';\n }\n if (event.keyCode === 27 && this.closeOnEscape) {\n this.dlgClosedBy = DLG_ESCAPE_CLOSED;\n var query = document.querySelector('.e-popup-open:not(.e-dialog)');\n // 'document.querySelector' is used to find the elements rendered based on body\n if (!(!isNullOrUndefined(query) && !query.classList.contains('e-toolbar-pop') && !query.classList.contains('e-slider-tooltip'))) {\n this.hide(event);\n }\n }\n if ((event.keyCode === 13 && !event.ctrlKey && element.tagName.toLowerCase() !== 'textarea' &&\n isTagName && !isNullOrUndefined(this.primaryButtonEle)) ||\n (event.keyCode === 13 && event.ctrlKey && (element.tagName.toLowerCase() === 'textarea' ||\n isContentEdit)) && !isNullOrUndefined(this.primaryButtonEle)) {\n var buttonIndex_1;\n var firstPrimary = this.buttons.some(function (data, index) {\n buttonIndex_1 = index;\n var buttonModel = data.buttonModel;\n return !isNullOrUndefined(buttonModel) && buttonModel.isPrimary === true;\n });\n if (firstPrimary && typeof (this.buttons[buttonIndex_1].click) === 'function') {\n setTimeout(function () {\n _this.buttons[buttonIndex_1].click.call(_this, event);\n });\n }\n }\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initialize = function () {\n if (!isNullOrUndefined(this.target)) {\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n }\n if (!this.isBlazorServerRender()) {\n addClass([this.element], ROOT);\n }\n if (Browser.isDevice) {\n addClass([this.element], DEVICE);\n }\n if (!this.isBlazorServerRender()) {\n this.setCSSClass();\n }\n this.setMaxHeight();\n };\n /**\n * Initialize the rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initRender = function () {\n var _this = this;\n this.initialRender = true;\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { role: 'dialog' });\n }\n if (this.zIndex === 1000) {\n this.setzIndex(this.element, false);\n this.calculatezIndex = true;\n }\n else {\n this.calculatezIndex = false;\n }\n this.setTargetContent();\n if (this.header !== '' && !isNullOrUndefined(this.header)) {\n this.setHeader();\n }\n this.renderCloseIcon();\n this.setContent();\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setFooterTemplate();\n }\n else if (!isNullOrUndefined(this.buttons[0]) && !isNullOrUndefined(this.buttons[0].buttonModel)) {\n this.setButton();\n }\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n attributes(this.element, { 'aria-modal': (this.isModal ? 'true' : 'false') });\n if (this.isModal) {\n this.setIsModal();\n }\n if (this.element.classList.contains(DLG_UTIL_ALERT) !== true && this.element.classList.contains(DLG_UTIL_CONFIRM) !== true\n && !isNullOrUndefined(this.element.parentElement)) {\n var parentEle = this.isModal ? this.dlgContainer.parentElement : this.element.parentElement;\n this.refElement = this.createElement('div', { className: DLG_REF_ELEMENT });\n parentEle.insertBefore(this.refElement, (this.isModal ? this.dlgContainer : this.element));\n }\n if (!isNullOrUndefined(this.targetEle)) {\n if (this.isModal) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n else {\n this.targetEle.appendChild(this.element);\n }\n }\n this.popupObj = new Popup(this.element, {\n height: this.height,\n width: this.width,\n zIndex: this.zIndex,\n relateTo: this.target,\n actionOnScroll: 'none',\n enableRtl: this.enableRtl,\n // eslint-disable-next-line\n open: function (event) {\n var eventArgs = {\n container: _this.isModal ? _this.dlgContainer : _this.element,\n element: _this.element,\n target: _this.target,\n preventFocus: false\n };\n if (_this.enableResize) {\n _this.resetResizeIcon();\n }\n _this.trigger('open', eventArgs, function (openEventArgs) {\n if (!openEventArgs.preventFocus) {\n _this.focusContent();\n }\n });\n },\n // eslint-disable-next-line\n close: function (event) {\n if (_this.isModal) {\n addClass([_this.dlgOverlay], 'e-fade');\n }\n _this.unBindEvent(_this.element);\n if (_this.isModal) {\n _this.dlgContainer.style.display = 'none';\n }\n _this.trigger('close', _this.closeArgs);\n var activeEle = document.activeElement;\n if (!isNullOrUndefined(activeEle) && !isNullOrUndefined((activeEle).blur)) {\n activeEle.blur();\n }\n if (!isNullOrUndefined(_this.storeActiveElement) && !isNullOrUndefined(_this.storeActiveElement.focus)) {\n _this.storeActiveElement.focus();\n }\n }\n });\n this.positionChange();\n this.setEnableRTL();\n if (!this.isBlazorServerRender()) {\n addClass([this.element], DLG_HIDE);\n if (this.isModal) {\n this.setOverlayZindex();\n }\n }\n if (this.visible) {\n this.show();\n if (this.isModal) {\n var targetType = this.getTargetContainer(this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n this.setPopupPosition();\n }\n }\n }\n }\n else {\n if (this.isModal) {\n this.dlgOverlay.style.display = 'none';\n }\n }\n this.initialRender = false;\n };\n Dialog.prototype.getTargetContainer = function (targetValue) {\n var targetElement = null;\n if (typeof targetValue === 'string') {\n if (targetValue.startsWith('#')) {\n targetElement = document.getElementById(targetValue.substring(1));\n }\n else if (targetValue.startsWith('.')) {\n var elements = document.getElementsByClassName(targetValue.substring(1));\n targetElement = elements.length > 0 ? elements[0] : null;\n }\n else {\n if (!(targetValue instanceof HTMLElement) && targetValue !== document.body) {\n targetElement = document.querySelector(targetValue);\n }\n }\n }\n else if (targetValue instanceof HTMLElement) {\n targetElement = targetValue;\n }\n return targetElement;\n };\n Dialog.prototype.resetResizeIcon = function () {\n var dialogConHeight = this.getMinHeight();\n if (this.targetEle.offsetHeight < dialogConHeight) {\n var className = this.enableRtl ? 'e-south-west' : 'e-south-east';\n var resizeIcon = this.element.querySelector('.' + className);\n if (!isNullOrUndefined(resizeIcon)) {\n resizeIcon.style.bottom = '-' + dialogConHeight.toString() + 'px';\n }\n }\n };\n Dialog.prototype.setOverlayZindex = function (zIndexValue) {\n var zIndex;\n if (isNullOrUndefined(zIndexValue)) {\n zIndex = parseInt(this.element.style.zIndex, 10) ? parseInt(this.element.style.zIndex, 10) : this.zIndex;\n }\n else {\n zIndex = zIndexValue;\n }\n this.dlgOverlay.style.zIndex = (zIndex - 1).toString();\n this.dlgContainer.style.zIndex = zIndex.toString();\n };\n Dialog.prototype.positionChange = function () {\n if (this.isModal) {\n if (!isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y))) {\n this.setPopupPosition();\n }\n else if ((!isNaN(parseFloat(this.position.X)) && isNaN(parseFloat(this.position.Y)))\n || (isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y)))) {\n this.setPopupPosition();\n }\n else {\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n this.dlgContainer.classList.add('e-dlg-' + this.position.X + '-' + this.position.Y);\n }\n }\n else {\n this.setPopupPosition();\n }\n };\n Dialog.prototype.setPopupPosition = function () {\n this.popupObj.setProperties({\n position: {\n X: this.position.X, Y: this.position.Y\n }\n });\n };\n Dialog.prototype.setAllowDragging = function () {\n var _this = this;\n var handleContent = '.' + DLG_HEADER_CONTENT;\n if (!this.element.classList.contains(DLG_DRAG)) {\n this.dragObj = new Draggable(this.element, {\n clone: false,\n isDragScroll: true,\n abort: '.e-dlg-closeicon-btn',\n handle: handleContent,\n dragStart: function (event) {\n _this.trigger('dragStart', event, function (dragEventArgs) {\n if (isBlazor()) {\n dragEventArgs.bindEvents(event.dragElement);\n }\n });\n },\n dragStop: function (event) {\n if (_this.isModal) {\n _this.IsDragStop = true;\n if (!isNullOrUndefined(_this.position)) {\n _this.dlgContainer.classList.remove('e-dlg-' + _this.position.X + '-' + _this.position.Y);\n }\n // Reset the dialog position after drag completion.\n var targetType = _this.getTargetContainer(_this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n _this.element.style.position = 'absolute';\n }\n else {\n _this.element.style.position = 'relative';\n }\n }\n else {\n _this.element.style.position = 'relative';\n }\n }\n _this.trigger('dragStop', event);\n _this.isModelResize = false;\n _this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n _this.updatePersistData();\n },\n drag: function (event) {\n _this.trigger('drag', event);\n }\n });\n if (!isNullOrUndefined(this.targetEle)) {\n this.dragObj.dragArea = this.targetEle;\n }\n }\n };\n Dialog.prototype.setButton = function () {\n if (!this.isBlazorServerRender()) {\n this.buttonContent = [];\n this.btnObj = [];\n for (var i = 0; i < this.buttons.length; i++) {\n if (isNullOrUndefined(this.buttons[i].buttonModel)) {\n continue;\n }\n var buttonType = !isNullOrUndefined(this.buttons[i].type) ?\n this.buttons[i].type.toLowerCase() : 'button';\n var btn = this.createElement('button', { className: this.cssClass, attrs: { type: buttonType } });\n this.buttonContent.push(btn.outerHTML);\n }\n this.setFooterTemplate();\n }\n var footerBtn;\n for (var i = 0, childNodes = this.element.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(DLG_FOOTER_CONTENT)) {\n footerBtn = childNodes[i].querySelectorAll('button');\n }\n }\n for (var i = 0; i < this.buttons.length; i++) {\n if (isNullOrUndefined(this.buttons[i].buttonModel)) {\n continue;\n }\n if (!this.isBlazorServerRender()) {\n this.btnObj[i] = new Button(this.buttons[i].buttonModel);\n }\n if (!isNullOrUndefined(this.ftrTemplateContent) && footerBtn.length > 0) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.add(footerBtn[i], 'click', this.buttons[i].click, this);\n }\n if (typeof (this.buttons[i].click) === 'object') {\n EventHandler.add(footerBtn[i], 'click', this.buttonClickHandler.bind(this, i), this);\n }\n }\n if (!this.isBlazorServerRender() && !isNullOrUndefined(this.ftrTemplateContent)) {\n this.btnObj[i].appendTo(this.ftrTemplateContent.children[i]);\n if (this.buttons[i].isFlat) {\n this.btnObj[i].element.classList.add('e-flat');\n }\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n }\n };\n Dialog.prototype.buttonClickHandler = function (index) {\n this.trigger('buttons[' + index + '].click', {});\n };\n Dialog.prototype.setContent = function () {\n this.contentEle = this.createElement('div', { className: DLG_CONTENT, id: this.element.id + '_dialog-content' });\n if (this.headerEle) {\n attributes(this.element, { 'aria-describedby': this.element.id + '_title' + ' ' + this.element.id + '_dialog-content' });\n }\n else {\n attributes(this.element, { 'aria-describedby': this.element.id + '_dialog-content' });\n }\n if (this.innerContentElement) {\n this.contentEle.appendChild(this.innerContentElement);\n }\n else if (!isNullOrUndefined(this.content) && this.content !== '' || !this.initialRender) {\n if (typeof (this.content) === 'string' && !isBlazor()) {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n else if (this.content instanceof HTMLElement) {\n this.contentEle.appendChild(this.content);\n }\n else {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n }\n if (!isNullOrUndefined(this.headerContent)) {\n this.element.insertBefore(this.contentEle, this.element.children[1]);\n }\n else {\n this.element.insertBefore(this.contentEle, this.element.children[0]);\n }\n if (this.height === 'auto') {\n if (!this.isBlazorServerRender() && Browser.isIE && this.element.style.width === '' && !isNullOrUndefined(this.width)) {\n this.element.style.width = formatUnit(this.width);\n }\n this.setMaxHeight();\n }\n };\n Dialog.prototype.setTemplate = function (template, toElement, prop) {\n var templateFn;\n var templateProps;\n if (toElement.classList.contains(DLG_HEADER)) {\n templateProps = this.element.id + 'header';\n }\n else if (toElement.classList.contains(DLG_FOOTER_CONTENT)) {\n templateProps = this.element.id + 'footerTemplate';\n }\n else {\n templateProps = this.element.id + 'content';\n }\n var templateValue;\n if (!isNullOrUndefined(template.outerHTML)) {\n toElement.appendChild(template);\n }\n else if ((typeof template === 'string') || (typeof template !== 'string') || (isBlazor() && !this.isStringTemplate)) {\n if ((typeof template === 'string')) {\n template = this.sanitizeHelper(template);\n }\n if (this.isVue || typeof template !== 'string') {\n templateFn = compile(template);\n templateValue = template;\n }\n else {\n toElement.innerHTML = template;\n }\n }\n var fromElements = [];\n if (!isNullOrUndefined(templateFn)) {\n var isString = (isBlazor() &&\n !this.isStringTemplate && (templateValue).indexOf('
Blazor') === 0) ?\n this.isStringTemplate : true;\n for (var _i = 0, _a = templateFn({}, this, prop, templateProps, isString); _i < _a.length; _i++) {\n var item = _a[_i];\n fromElements.push(item);\n }\n append([].slice.call(fromElements), toElement);\n }\n };\n /*\n * @returns {void}\n * @hidden\n * @value\n */\n Dialog.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var dialogItem = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(dialogItem, dialogItem, beforeEvent);\n this.trigger('beforeSanitizeHtml', dialogItem);\n if (dialogItem.cancel && !isNullOrUndefined(dialogItem.helper)) {\n value = dialogItem.helper(value);\n }\n else if (!dialogItem.cancel) {\n value = SanitizeHtmlHelper.serializeValue(dialogItem, value);\n }\n }\n return value;\n };\n Dialog.prototype.setMaxHeight = function () {\n if (!this.allowMaxHeight) {\n return;\n }\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) && (this.targetEle.offsetHeight < window.innerHeight) ?\n (this.targetEle.offsetHeight - 20) + 'px' : (window.innerHeight - 20) + 'px';\n this.element.style.display = display;\n if (Browser.isIE && this.height === 'auto' && !isNullOrUndefined(this.contentEle)\n && this.element.offsetHeight < this.contentEle.offsetHeight) {\n this.element.style.height = 'inherit';\n }\n };\n Dialog.prototype.setEnableRTL = function () {\n if (!this.isBlazorServerRender()) {\n if (this.enableRtl) {\n addClass([this.element], RTL);\n }\n else {\n removeClass([this.element], RTL);\n }\n }\n if (!isNullOrUndefined(this.element.querySelector('.e-resize-handle'))) {\n removeResize();\n this.setResize();\n }\n };\n Dialog.prototype.setTargetContent = function () {\n var _this = this;\n if (isNullOrUndefined(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s|<(\\/?|\\/?)(!--!--)>/g, '') !== '';\n if (this.element.children.length > 0 || isContent) {\n this.innerContentElement = document.createDocumentFragment();\n [].slice.call(this.element.childNodes).forEach(function (el) {\n if (el.nodeType !== 8) {\n _this.innerContentElement.appendChild(el);\n }\n });\n }\n }\n };\n Dialog.prototype.setHeader = function () {\n if (this.headerEle) {\n this.headerEle.innerHTML = '';\n }\n else {\n this.headerEle = this.createElement('div', { id: this.element.id + '_title', className: DLG_HEADER });\n }\n this.createHeaderContent();\n this.headerContent.appendChild(this.headerEle);\n this.setTemplate(this.header, this.headerEle, 'header');\n attributes(this.element, { 'aria-describedby': this.element.id + '_title' });\n attributes(this.element, { 'aria-labelledby': this.element.id + '_dialog-header' });\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n };\n Dialog.prototype.setFooterTemplate = function () {\n if (this.ftrTemplateContent) {\n this.ftrTemplateContent.innerHTML = '';\n }\n else {\n this.ftrTemplateContent = this.createElement('div', {\n className: DLG_FOOTER_CONTENT\n });\n }\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setTemplate(this.footerTemplate, this.ftrTemplateContent, 'footerTemplate');\n }\n else {\n this.ftrTemplateContent.innerHTML = this.buttonContent.join('');\n }\n this.element.appendChild(this.ftrTemplateContent);\n };\n Dialog.prototype.createHeaderContent = function () {\n if (isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.createElement('div', { id: this.element.id + '_dialog-header', className: DLG_HEADER_CONTENT });\n }\n };\n Dialog.prototype.renderCloseIcon = function () {\n if (this.showCloseIcon) {\n this.closeIcon = this.createElement('button', { className: DLG_CLOSE_ICON_BTN, attrs: { type: 'button' } });\n this.closeIconBtnObj = new Button({ cssClass: 'e-flat', iconCss: DLG_CLOSE_ICON + ' ' + ICON });\n this.closeIconTitle();\n if (!isNullOrUndefined(this.headerContent)) {\n prepend([this.closeIcon], this.headerContent);\n }\n else {\n this.createHeaderContent();\n prepend([this.closeIcon], this.headerContent);\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n }\n this.closeIconBtnObj.appendTo(this.closeIcon);\n }\n };\n Dialog.prototype.closeIconTitle = function () {\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n this.closeIcon.setAttribute('title', closeIconTitle);\n this.closeIcon.setAttribute('aria-label', closeIconTitle);\n };\n Dialog.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n removeClass([this.dlgContainer], oldCSSClass.split(' '));\n }\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n addClass([this.dlgContainer], this.cssClass.split(' '));\n }\n }\n };\n Dialog.prototype.setIsModal = function () {\n this.dlgContainer = this.createElement('div', { className: DLG_CONTAINER });\n this.setCSSClass();\n this.element.classList.remove(DLG_SHOW);\n this.element.parentNode.insertBefore(this.dlgContainer, this.element);\n this.dlgContainer.appendChild(this.element);\n addClass([this.element], MODAL_DLG);\n this.dlgOverlay = this.createElement('div', { className: DLG_OVERLAY });\n this.dlgOverlay.style.zIndex = (this.zIndex - 1).toString();\n this.dlgContainer.appendChild(this.dlgOverlay);\n };\n Dialog.prototype.getValidFocusNode = function (items) {\n var node;\n for (var u = 0; u < items.length; u++) {\n node = items[u];\n if ((node.clientHeight > 0 || (node.tagName.toLowerCase() === 'a' && node.hasAttribute('href'))) && node.tabIndex > -1 &&\n !node.disabled && !this.disableElement(node, '[disabled],[aria-disabled=\"true\"],[type=\"hidden\"]')) {\n return node;\n }\n else {\n node = null;\n }\n }\n return node;\n };\n Dialog.prototype.focusableElements = function (content) {\n if (!isNullOrUndefined(content)) {\n var value = 'input,select,textarea,button,a,[contenteditable=\"true\"],[tabindex]';\n var items = content.querySelectorAll(value);\n return this.getValidFocusNode(items);\n }\n return null;\n };\n Dialog.prototype.getAutoFocusNode = function (container) {\n var node = container.querySelector('.' + DLG_CLOSE_ICON_BTN);\n var value = '[autofocus]';\n var items = container.querySelectorAll(value);\n var validNode = this.getValidFocusNode(items);\n if (isBlazor()) {\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n if (!isNullOrUndefined(validNode)) {\n node = validNode;\n }\n else {\n validNode = this.focusableElements(this.contentEle);\n if (!isNullOrUndefined(validNode)) {\n return node = validNode;\n }\n else if (!isNullOrUndefined(this.primaryButtonEle)) {\n return this.element.querySelector('.' + DLG_PRIMARY_BUTTON);\n }\n }\n return node;\n };\n Dialog.prototype.disableElement = function (element, t) {\n var elementMatch = element ? element.matches || element.webkitMatchesSelector || element.msGetRegionContent : null;\n if (elementMatch) {\n for (; element; element = element.parentNode) {\n if (element instanceof Element && elementMatch.call(element, t)) {\n /* istanbul ignore next */\n return element;\n }\n }\n }\n return null;\n };\n Dialog.prototype.focusContent = function () {\n var element = this.getAutoFocusNode(this.element);\n var node = !isNullOrUndefined(element) ? element : this.element;\n var userAgent = Browser.userAgent;\n if (userAgent.indexOf('MSIE ') > 0 || userAgent.indexOf('Trident/') > 0) {\n this.element.focus();\n }\n node.focus();\n this.unBindEvent(this.element);\n this.bindEvent(this.element);\n };\n Dialog.prototype.bindEvent = function (element) {\n EventHandler.add(element, 'keydown', this.keyDown, this);\n };\n Dialog.prototype.unBindEvent = function (element) {\n EventHandler.remove(element, 'keydown', this.keyDown);\n };\n Dialog.prototype.updateSanitizeContent = function () {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = this.sanitizeHelper(this.content);\n }\n };\n Dialog.prototype.isBlazorServerRender = function () {\n return isBlazor() && this.isServerRendered;\n };\n /**\n * Module required function\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getModuleName = function () {\n return 'dialog';\n };\n /**\n * Called internally if any of the property value changed\n *\n * @param {DialogModel} newProp - specifies the new property\n * @param {DialogModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Dialog.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!isNullOrUndefined(this.content) && this.content !== '') {\n if (this.isBlazorServerRender()) {\n this.contentEle = this.element.querySelector('.e-dlg-content');\n }\n if (!isNullOrUndefined(this.contentEle) && this.contentEle.getAttribute('role') !== 'dialog') {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = '';\n }\n if (typeof (this.content) === 'function') {\n this.clearTemplate(['content']);\n detach(this.contentEle);\n this.contentEle = null;\n this.setContent();\n }\n else {\n if (typeof (this.content) === 'string') {\n this.updateSanitizeContent();\n }\n else {\n this.contentEle.appendChild(this.content);\n }\n }\n this.setMaxHeight();\n }\n else {\n this.setContent();\n }\n }\n else if (!isNullOrUndefined(this.contentEle)) {\n detach(this.contentEle);\n this.contentEle = null;\n }\n break;\n case 'header':\n if (this.header === '' || isNullOrUndefined(this.header)) {\n if (this.headerEle) {\n detach(this.headerEle);\n this.headerEle = null;\n }\n }\n else {\n this.setHeader();\n }\n break;\n case 'footerTemplate':\n if (this.footerTemplate === '' || isNullOrUndefined(this.footerTemplate)) {\n if (!this.ftrTemplateContent) {\n return;\n }\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n this.buttons = [{}];\n }\n else {\n this.setFooterTemplate();\n this.buttons = [{}];\n }\n break;\n case 'showCloseIcon':\n if (this.element.getElementsByClassName(DLG_CLOSE_ICON).length > 0) {\n if (!this.showCloseIcon && (this.header === '' || isNullOrUndefined(this.header))) {\n detach(this.headerContent);\n this.headerContent = null;\n }\n else if (!this.showCloseIcon) {\n detach(this.closeIcon);\n }\n }\n else {\n this.renderCloseIcon();\n this.wireEvents();\n }\n break;\n case 'locale':\n if (this.showCloseIcon) {\n this.closeIconTitle();\n }\n break;\n case 'visible':\n if (this.visible) {\n this.show();\n }\n else {\n this.hide();\n }\n break;\n case 'isModal':\n this.updateIsModal();\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n this.updatePersistData();\n break;\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n this.updatePersistData();\n break;\n case 'zIndex':\n this.popupObj.zIndex = this.zIndex;\n if (this.isModal) {\n this.setOverlayZindex(this.zIndex);\n }\n if (this.element.style.zIndex !== this.zIndex.toString()) {\n this.calculatezIndex = false;\n }\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'buttons': {\n this.unWireButtonEvents();\n this.destroyButtons();\n if (!isNullOrUndefined(this.ftrTemplateContent)) {\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n }\n this.footerTemplate = '';\n this.setButton();\n break;\n }\n case 'allowDragging':\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n else {\n this.dragObj.destroy();\n }\n break;\n case 'target':\n this.setTarget(newProp.target);\n break;\n case 'position':\n this.checkPositionData();\n if (this.isModal) {\n var positionX = this.position.X;\n var positionY = this.position.Y;\n if (!isNullOrUndefined(oldProp.position)) {\n if (!isNullOrUndefined(oldProp.position.X)) {\n positionX = oldProp.position.X;\n }\n if (!isNullOrUndefined(oldProp.position.Y)) {\n positionY = oldProp.position.Y;\n }\n }\n if (this.dlgContainer.classList.contains('e-dlg-' + positionX + '-' + positionY)) {\n this.dlgContainer.classList.remove('e-dlg-' + positionX + '-' + positionY);\n }\n }\n this.positionChange();\n this.updatePersistData();\n break;\n case 'enableRtl':\n this.setEnableRTL();\n break;\n case 'enableResize':\n this.setResize();\n this.isModelResize = this.enableResize && this.isModal;\n if (this.enableResize && this.dialogOpen) {\n this.resetResizeIcon();\n }\n break;\n case 'minHeight':\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n break;\n }\n }\n };\n Dialog.prototype.setTarget = function (target) {\n this.popupObj.relateTo = target;\n this.target = target;\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n if (this.dragObj) {\n this.dragObj.dragArea = this.targetEle;\n }\n this.setMaxHeight();\n if (this.isModal) {\n this.updateIsModal();\n }\n if (this.enableResize) {\n this.setResize();\n }\n if (!isNullOrUndefined(this.targetEle)) {\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n else if (!isNullOrUndefined(this.element)) {\n this.targetEle.appendChild(this.element);\n }\n }\n };\n Dialog.prototype.updateIsModal = function () {\n this.element.setAttribute('aria-modal', this.isModal ? 'true' : 'false');\n if (this.isModal) {\n if (isNullOrUndefined(this.dlgOverlay)) {\n this.setIsModal();\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n if (!isNullOrUndefined(this.targetEle)) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n }\n }\n else {\n removeClass([this.element], MODAL_DLG);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n detach(this.dlgOverlay);\n while (this.dlgContainer.firstChild) {\n this.dlgContainer.parentElement.insertBefore(this.dlgContainer.firstChild, this.dlgContainer);\n }\n this.dlgContainer.parentElement.removeChild(this.dlgContainer);\n }\n if (this.visible) {\n this.show();\n }\n this.positionChange();\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n Dialog.prototype.setzIndex = function (zIndexElement, setPopupZindex) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var currentzIndex = getZindexPartial(zIndexElement);\n this.zIndex = currentzIndex > this.zIndex ? currentzIndex : this.zIndex;\n this.isProtectedOnChange = prevOnChange;\n if (setPopupZindex) {\n this.popupObj.zIndex = this.zIndex;\n }\n };\n Dialog.prototype.windowResizeHandler = function () {\n setMaxWidth(this.targetEle.clientWidth);\n setMaxHeight(this.targetEle.clientHeight);\n this.setMaxHeight();\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getPersistData = function () {\n return this.addOnPersist(['width', 'height', 'position']);\n };\n Dialog.prototype.removeAllChildren = function (element) {\n while (element.children[0]) {\n this.removeAllChildren(element.children[0]);\n element.removeChild(element.children[0]);\n }\n };\n /**\n * To destroy the widget\n *\n * @returns {void}\n */\n Dialog.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n var classArray = [RTL, MODAL_DLG, DLG_RESIZABLE, DLG_RESTRICT_LEFT_VALUE, FULLSCREEN, DEVICE];\n var attrs = ['role', 'aria-modal', 'aria-labelledby', 'aria-describedby', 'aria-grabbed', 'tabindex', 'style'];\n removeClass([this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n if (!isNullOrUndefined(this.element) && this.element.classList.contains(FULLSCREEN)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n if (this.isModal) {\n removeClass([(!isNullOrUndefined(this.targetEle) ? this.targetEle : document.body)], SCROLL_DISABLED);\n }\n this.unWireEvents();\n this.unWireButtonEvents();\n this.destroyButtons();\n if (!isNullOrUndefined(this.closeIconBtnObj)) {\n this.closeIconBtnObj.destroy();\n }\n if (!isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n if (!isNullOrUndefined(this.popupObj.element) && this.popupObj.element.classList.contains(POPUP_ROOT)) {\n this.popupObj.destroy();\n }\n removeClass([this.element], classArray);\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n removeClass([this.element], this.cssClass.split(' '));\n }\n if (!isNullOrUndefined(this.refElement) && !isNullOrUndefined(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore((this.isModal ? this.dlgContainer : this.element), this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (this.isModal) {\n detach(this.dlgOverlay);\n this.dlgContainer.parentNode.insertBefore(this.element, this.dlgContainer);\n detach(this.dlgContainer);\n }\n this.element.innerHTML = this.clonedEle.innerHTML;\n for (var i = 0; i < attrs.length; i++) {\n this.element.removeAttribute(attrs[i]);\n }\n this.ftrTemplateContent = null;\n this.headerContent = null;\n if (!this.isReact && !this.isVue && !isNullOrUndefined(this.contentEle)) {\n this.removeAllChildren(this.contentEle);\n }\n this.contentEle = null;\n resizeDestroy();\n _super.prototype.destroy.call(this);\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n Dialog.prototype.wireWindowResizeEvent = function () {\n this.boundWindowResizeHandler = this.windowResizeHandler.bind(this);\n window.addEventListener('resize', this.boundWindowResizeHandler);\n };\n Dialog.prototype.unWireWindowResizeEvent = function () {\n window.removeEventListener('resize', this.boundWindowResizeHandler);\n this.boundWindowResizeHandler = null;\n };\n /**\n * Binding event to the element while widget creation\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.wireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.add(this.closeIcon, 'click', this.closeIconClickEventHandler, this);\n }\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n /**\n * Unbinding event to the element while widget destroy\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.unWireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.remove(this.closeIcon, 'click', this.closeIconClickEventHandler);\n }\n if (this.isModal) {\n EventHandler.remove(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler);\n }\n };\n /**\n * Refreshes the dialog's position when the user changes its header and footer height/width dynamically.\n *\n * @returns {void}\n */\n Dialog.prototype.refreshPosition = function () {\n this.popupObj.refreshPosition();\n if (this.element.classList.contains(MODAL_DLG)) {\n this.positionChange();\n }\n };\n /**\n * Returns the current width and height of the Dialog\n *\n * @returns {DialogDimension}- returns the dialog element Dimension.\n * @public\n */\n Dialog.prototype.getDimension = function () {\n var dialogWidth = this.element.offsetWidth;\n var dialogHeight = this.element.offsetHeight;\n return { width: dialogWidth, height: dialogHeight };\n };\n /**\n * Opens the dialog if it is in hidden state.\n * To open the dialog with full screen width, set the parameter to true.\n *\n * @param { boolean } isFullScreen - Enable the fullScreen Dialog.\n * @returns {void}\n */\n Dialog.prototype.show = function (isFullScreen) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (!this.element.classList.contains(DLG_SHOW) || (!isNullOrUndefined(isFullScreen))) {\n if (!isNullOrUndefined(isFullScreen)) {\n this.fullScreen(isFullScreen);\n }\n var eventArgs_1 = isBlazor() ? {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n maxHeight: this.element.style.maxHeight\n } : {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n target: this.target,\n maxHeight: this.element.style.maxHeight\n };\n this.trigger('beforeOpen', eventArgs_1, function (beforeOpenArgs) {\n if (!beforeOpenArgs.cancel) {\n if (_this.element.style.maxHeight !== eventArgs_1.maxHeight) {\n _this.allowMaxHeight = false;\n _this.element.style.maxHeight = eventArgs_1.maxHeight;\n }\n if (_this.enableResize && _this.boundWindowResizeHandler == null && !_this.initialRender) {\n _this.wireWindowResizeEvent();\n }\n _this.storeActiveElement = document.activeElement;\n _this.element.tabIndex = -1;\n if (_this.isModal && (!isNullOrUndefined(_this.dlgOverlay))) {\n _this.dlgOverlay.style.display = 'block';\n _this.dlgContainer.style.display = 'flex';\n removeClass([_this.dlgOverlay], 'e-fade');\n if (!isNullOrUndefined(_this.targetEle)) {\n if (_this.targetEle === document.body) {\n _this.dlgContainer.style.position = 'fixed';\n }\n else {\n _this.dlgContainer.style.position = 'absolute';\n }\n _this.dlgOverlay.style.position = 'absolute';\n var targetType = _this.getTargetContainer(_this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n _this.element.style.position = 'absolute';\n }\n else {\n _this.element.style.position = 'relative';\n }\n }\n else {\n _this.element.style.position = 'relative';\n }\n addClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n else {\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n var openAnimation = {\n name: (_this.animationSettings.effect === 'None' && animationMode === 'Enable') ? 'Zoom' + 'In' : _this.animationSettings.effect + 'In',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n var zIndexElement = (_this.isModal) ? _this.element.parentElement : _this.element;\n if (_this.calculatezIndex) {\n _this.setzIndex(zIndexElement, true);\n setStyleAttribute(_this.element, { 'zIndex': _this.zIndex });\n if (_this.isModal) {\n _this.setOverlayZindex(_this.zIndex);\n }\n }\n // eslint-disable-next-line\n (_this.animationSettings.effect === 'None' && animationMode === 'Enable') ? _this.popupObj.show(openAnimation) : ((_this.animationSettings.effect === 'None') ? _this.popupObj.show() : _this.popupObj.show(openAnimation));\n if (_this.isModal) {\n var targetType = _this.getTargetContainer(_this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl' && !_this.IsDragStop) {\n _this.setPopupPosition();\n }\n }\n }\n _this.dialogOpen = true;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = true;\n _this.preventVisibility = true;\n _this.isProtectedOnChange = prevOnChange;\n }\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Closes the dialog if it is in visible state.\n *\n * @param { Event } event - specifies the event\n * @returns {void}\n */\n Dialog.prototype.hide = function (event) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (this.preventVisibility) {\n var eventArgs = isBlazor() ? {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event\n } : {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n target: this.target,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event,\n closedBy: this.dlgClosedBy\n };\n this.closeArgs = eventArgs;\n this.trigger('beforeClose', eventArgs, function (beforeCloseArgs) {\n if (!beforeCloseArgs.cancel) {\n if (_this.enableResize) {\n _this.unWireWindowResizeEvent();\n }\n var closeAnimation = {\n name: (_this.animationSettings.effect === 'None' && animationMode === 'Enable') ? 'Zoom' + 'Out' : _this.animationSettings.effect + 'Out',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n if (_this.animationSettings.effect === 'None' && animationMode === 'Enable') {\n _this.popupObj.hide(closeAnimation);\n }\n else if (_this.animationSettings.effect === 'None') {\n _this.popupObj.hide();\n }\n else {\n _this.popupObj.hide(closeAnimation);\n }\n setTimeout(function () {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.targetEle) && _this.targetEle.classList.contains(DLG_TARGET) &&\n _this.targetEle.classList.contains(SCROLL_DISABLED)) {\n removeClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n if (document.body.classList.contains(DLG_TARGET) &&\n document.body.classList.contains(SCROLL_DISABLED)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }, (_this.animationSettings.duration + _this.animationSettings.delay));\n _this.dialogOpen = false;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = false;\n _this.preventVisibility = false;\n _this.isProtectedOnChange = prevOnChange;\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n }\n };\n /**\n * Specifies to view the Full screen Dialog.\n *\n * @param {boolean} args - specifies the arguments\n * @returns {boolean} - returns the boolean value\n * @private\n */\n Dialog.prototype.fullScreen = function (args) {\n /* eslint-disable */\n var top = this.element.offsetTop;\n var left = this.element.offsetLeft;\n /* eslint-enable */\n if (args) {\n if (!this.isModal) {\n this.element.style.top = document.scrollingElement.scrollTop + 'px';\n }\n addClass([this.element], FULLSCREEN);\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) ?\n (this.targetEle.offsetHeight) + 'px' : (window.innerHeight) + 'px';\n this.element.style.display = display;\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && !isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n }\n else {\n removeClass([this.element], FULLSCREEN);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n }\n return args;\n };\n /**\n * Returns the dialog button instances.\n * Based on that, you can dynamically change the button states.\n *\n * @param { number } index - Index of the button.\n * @returns {Button} - returns the button element\n */\n Dialog.prototype.getButtons = function (index) {\n if (!isNullOrUndefined(index)) {\n return this.btnObj[index];\n }\n return this.btnObj;\n };\n Dialog.prototype.unWireButtonEvents = function () {\n if (this.buttons.length > 0 && this.footerTemplate === '' && this.ftrTemplateContent) {\n for (var i = 0; i < this.buttons.length; i++) {\n if (this.buttons[i].click && typeof (this.buttons[i].click) === 'function'\n && this.ftrTemplateContent.children[i]) {\n EventHandler.remove(this.ftrTemplateContent.children[i], 'click', this.buttons[i].click);\n }\n }\n }\n };\n Dialog.prototype.destroyButtons = function () {\n if (!isNullOrUndefined(this.btnObj)) {\n for (var i = 0; i < this.btnObj.length; i++) {\n if (this.btnObj[i] && !this.btnObj[i].isDestroyed) {\n this.btnObj[i].destroy();\n }\n }\n }\n };\n __decorate([\n Property('')\n ], Dialog.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"showCloseIcon\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"isModal\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enableResize\", void 0);\n __decorate([\n Property(['South-East'])\n ], Dialog.prototype, \"resizeHandles\", void 0);\n __decorate([\n Property('auto')\n ], Dialog.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"minHeight\", void 0);\n __decorate([\n Property('100%')\n ], Dialog.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"cssClass\", void 0);\n __decorate([\n Property(1000)\n ], Dialog.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], Dialog.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"allowDragging\", void 0);\n __decorate([\n Collection([{}], ButtonProps)\n ], Dialog.prototype, \"buttons\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"closeOnEscape\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], Dialog.prototype, \"animationSettings\", void 0);\n __decorate([\n Complex({ X: 'center', Y: 'center' }, PositionData)\n ], Dialog.prototype, \"position\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"overlayClick\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"destroyed\", void 0);\n Dialog = __decorate([\n NotifyPropertyChanges\n ], Dialog);\n return Dialog;\n}(Component));\nexport { Dialog };\n/**\n * Base for creating Alert and Confirmation Dialog through util method.\n */\n// eslint-disable-next-line\nexport var DialogUtility;\n(function (DialogUtility) {\n /**\n * An alert dialog box is used to display warning like messages to the users.\n * ```\n * Eg : DialogUtility.alert('Alert message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {AlertDialogArgs} args - specifies the string\n * @returns {Dialog} - returns the dialog element.\n */\n function alert(args) {\n var dialogElement = createElement('div', { 'className': DLG_UTIL_ALERT });\n document.body.appendChild(dialogElement);\n var alertDialogObj;\n var okButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n alertDialogObj = createDialog({ content: args,\n position: { X: 'center', Y: 'top' },\n isModal: true, header: DLG_UTIL_DEFAULT_TITLE,\n buttons: okButtonModel }, dialogElement);\n }\n else {\n alertDialogObj = createDialog(alertOptions(args), dialogElement);\n }\n alertDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(alertDialogObj);\n }\n alertDialogObj.destroy();\n if (alertDialogObj.element.classList.contains('e-dlg-modal')) {\n alertDialogObj.element.parentElement.remove();\n alertDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n alertDialogObj.element.remove();\n }\n };\n return alertDialogObj;\n }\n DialogUtility.alert = alert;\n /**\n * A confirm dialog displays a specified message along with ‘OK’ and ‘Cancel’ button.\n * ```\n * Eg : DialogUtility.confirm('Confirm dialog message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {ConfirmDialogArgs} args - specifies the args\n * @returns {Dialog} - returns te element\n */\n function confirm(args) {\n var dialogElement = createElement('div', { 'className': DLG_UTIL_CONFIRM });\n document.body.appendChild(dialogElement);\n var confirmDialogObj;\n var okCancelButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }, {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n confirmDialogObj = createDialog({ position: { X: 'center', Y: 'top' }, content: args, isModal: true,\n header: DLG_UTIL_DEFAULT_TITLE, buttons: okCancelButtonModel\n }, dialogElement);\n }\n else {\n confirmDialogObj = createDialog(confirmOptions(args), dialogElement);\n }\n confirmDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(confirmDialogObj);\n }\n confirmDialogObj.destroy();\n if (confirmDialogObj.element.classList.contains('e-dlg-modal')) {\n confirmDialogObj.element.parentElement.remove();\n confirmDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n confirmDialogObj.element.remove();\n }\n };\n return confirmDialogObj;\n }\n DialogUtility.confirm = confirm;\n // eslint-disable-next-line\n function createDialog(options, element) {\n var dialogObject = new Dialog(options);\n dialogObject.appendTo(element);\n return dialogObject;\n }\n // eslint-disable-next-line\n function alertOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setAlertButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function confirmOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setConfirmButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function formOptions(options, option) {\n options.header = !isNullOrUndefined(option.title) ? option.title : null;\n options.content = !isNullOrUndefined(option.content) ? option.content : '';\n options.isModal = !isNullOrUndefined(option.isModal) ? option.isModal : true;\n options.showCloseIcon = !isNullOrUndefined(option.showCloseIcon) ? option.showCloseIcon : false;\n options.allowDragging = !isNullOrUndefined(option.isDraggable) ? option.isDraggable : false;\n options.closeOnEscape = !isNullOrUndefined(option.closeOnEscape) ? option.closeOnEscape : false;\n options.position = !isNullOrUndefined(option.position) ? option.position : { X: 'center', Y: 'top' };\n options.animationSettings = !isNullOrUndefined(option.animationSettings) ? option.animationSettings :\n { effect: 'Fade', duration: 400, delay: 0 };\n options.cssClass = !isNullOrUndefined(option.cssClass) ? option.cssClass : '';\n options.zIndex = !isNullOrUndefined(option.zIndex) ? option.zIndex : 1000;\n options.open = !isNullOrUndefined(option.open) ? option.open : null;\n options.width = !isNullOrUndefined(option.width) ? option.width : 'auto';\n options.height = !isNullOrUndefined(option.height) ? option.height : 'auto';\n return options;\n }\n // eslint-disable-next-line\n function setAlertButtonModel(options, option) {\n var alertButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, alertButtonModel[0]);\n }\n else {\n options.buttons = alertButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function setConfirmButtonModel(options, option) {\n var okButtonModel = {\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n };\n var cancelButtonModel = {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n };\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, okButtonModel);\n }\n else {\n options.buttons[0] = okButtonModel;\n }\n if (!isNullOrUndefined(option.cancelButton)) {\n options.buttons[1] = formButtonModel(options.buttons[1], option.cancelButton, cancelButtonModel);\n }\n else {\n options.buttons[1] = cancelButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function formButtonModel(buttonModel, option, buttonPropModel) {\n var buttonProps = buttonPropModel;\n if (!isNullOrUndefined(option.text)) {\n buttonProps.buttonModel.content = option.text;\n }\n if (!isNullOrUndefined(option.icon)) {\n buttonProps.buttonModel.iconCss = option.icon;\n }\n if (!isNullOrUndefined(option.cssClass)) {\n buttonProps.buttonModel.cssClass = option.cssClass;\n }\n if (!isNullOrUndefined(option.click)) {\n buttonProps.click = option.click;\n }\n if (!isNullOrUndefined(option.isFlat)) {\n buttonProps.isFlat = option.isFlat;\n }\n return buttonProps;\n }\n})(DialogUtility || (DialogUtility = {}));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n anObject(this);\n aCallable(fn);\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","/**\n * Size defines and processes the size(width/height) of the objects\n */\nvar Size = /** @class */ (function () {\n function Size(width, height) {\n this.width = width;\n this.height = height;\n }\n /**\n * isEmpty method \\\n *\n * @returns { boolean } isEmpty method .\\\n *\n * @private\n */\n Size.prototype.isEmpty = function () {\n return this.height === 0 && this.width === 0;\n };\n // public static get empty(): Size {\n // return new Size();\n // }\n // public get isEmpty(): boolean {\n // return this.equals(Size.empty);\n // }\n // public equals(size2: Size): boolean {\n // return this.width === size2.width && this.height === size2.height;\n // }\n // public union(size: Size): void {\n // size.width = Math.max(size.width, this.width);\n // size.height = Math.max(size.height, this.height);\n // }\n /**\n * clone method \\\n *\n * @returns { Size } clone method .\\\n *\n * @private\n */\n Size.prototype.clone = function () {\n return new Size(this.width, this.height);\n };\n return Size;\n}());\nexport { Size };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines and processes coordinates\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * equals method \\\n *\n * @returns { boolean } equals method .\\\n * @param {PointModel} point1 - provide the point1 value.\n * @param {PointModel} point2 - provide the point1 value.\n *\n * @private\n */\n Point.equals = function (point1, point2) {\n if (point1 === point2) {\n return true;\n }\n if (!point1 || !point2) {\n return false;\n }\n return !point1 || !point2 || point1.x === point2.x && point1.y === point2.y;\n };\n /**\n * isEmptyPoint method \\\n *\n * @returns { boolean } isEmptyPoint method .\\\n * @param {PointModel} point - provide the points value.\n *\n * @private\n */\n Point.isEmptyPoint = function (point) {\n if (point.x && point.y) {\n return false;\n }\n return true;\n };\n // public add(point1: PointModel, point2: PointModel): PointModel {\n // return { x: point1.x + point2.x, y: point1.y + point2.y };\n // }\n // public subtract(point1: PointModel, point2: PointModel): PointModel {\n // return { x: point1.x - point2.x, y: point1.y - point2.y };\n // }\n // public multiply(point1: PointModel, point2: PointModel): PointModel {\n // return {\n // x: point1.x * point2.x, y: point1.y * point2.y\n // };\n // }\n // public crossProduct(point1: PointModel, point2: PointModel): PointModel {\n // return {\n // x: point1.x * point2.y, y: point2.x * point1.y\n // };\n // }\n // public offset(offsetX: number, offsetY: number): void {\n // this.x += offsetX;\n // this.y += offsetY;\n // }\n // public rotate(angle: number): PointModel {\n // let c: number = Math.cos(angle);\n // let s: number = Math.sin(angle);\n // return {\n // x: c * this.x - s * this.y, y: s * this.x + c * this.y\n // };\n // }\n // public distance(point2: PointModel): number {\n // return Math.sqrt(Math.pow(this.x - point2.x, 2) + Math.pow(this.y - point2.y, 2));\n // }\n /**\n * transform method \\\n *\n * @returns { PointModel } transform method .\\\n * @param {PointModel} point - provide the points value.\n * @param {number} angle - provide the points value.\n * @param {number} length - provide the points value.\n *\n * @private\n */\n Point.transform = function (point, angle, length) {\n var pt = { x: 0, y: 0 };\n pt.x = Math.round((point.x + length * Math.cos(angle * Math.PI / 180)) * 100) / 100;\n pt.y = Math.round((point.y + length * Math.sin(angle * Math.PI / 180)) * 100) / 100;\n return pt;\n };\n /**\n * findLength method \\\n *\n * @returns { number } findLength method .\\\n * @param {PointModel} s - provide the points value.\n * @param {PointModel} e - provide the points value.\n *\n * @private\n */\n Point.findLength = function (s, e) {\n var length = Math.sqrt(Math.pow((s.x - e.x), 2) + Math.pow((s.y - e.y), 2));\n return length;\n };\n /**\n * findAngle method \\\n *\n * @returns { number } findAngle method .\\\n * @param {PointModel} point1 - provide the points value.\n * @param {PointModel} point2 - provide the points value.\n *\n * @private\n */\n Point.findAngle = function (point1, point2) {\n var angle = Math.atan2(point2.y - point1.y, point2.x - point1.x);\n angle = (180 * angle / Math.PI);\n angle %= 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n };\n /**\n * distancePoints method \\\n *\n * @returns { number } distancePoints method .\\\n * @param {PointModel} pt1 - provide the points value.\n * @param {PointModel} pt2 - provide the points value.\n *\n * @private\n */\n Point.distancePoints = function (pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n /**\n * getLengthFromListOfPoints method \\\n *\n * @returns { number } getLengthFromListOfPoints method .\\\n * @param {PointModel[]} points - provide the points value.\n *\n * @private\n */\n Point.getLengthFromListOfPoints = function (points) {\n var length = 0;\n for (var j = 0; j < points.length - 1; j++) {\n length += this.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n }\n return length;\n };\n /**\n * adjustPoint method \\\n *\n * @returns { PointModel } adjustPoint method .\\\n * @param {PointModel} source - provide the points value.\n * @param {PointModel} target - provide the points value.\n * @param {boolean} isStart - provide the isStart value.\n * @param {number} length - provide the length value.\n *\n * @private\n */\n Point.adjustPoint = function (source, target, isStart, length) {\n var pt = isStart ? { x: source.x, y: source.y } : { x: target.x, y: target.y };\n var angle;\n if (source.x === target.x) {\n if (source.y < target.y && isStart || source.y > target.y && !isStart) {\n pt.y += length;\n }\n else {\n pt.y -= length;\n }\n }\n else if (source.y === target.y) {\n if (source.x < target.x && isStart || source.x > target.x && !isStart) {\n pt.x += length;\n }\n else {\n pt.x -= length;\n }\n }\n else {\n if (isStart) {\n angle = this.findAngle(source, target);\n pt = this.transform(source, angle, length);\n }\n else {\n angle = this.findAngle(target, source);\n pt = this.transform(target, angle, length);\n }\n }\n return pt;\n };\n /**\n * direction method \\\n *\n * @returns { string } direction method .\\\n * @param {PointModel} pt1 - provide the points value.\n * @param {PointModel} pt2 - provide the points value.\n *\n * @private\n */\n Point.direction = function (pt1, pt2) {\n if (Math.abs(pt2.x - pt1.x) > Math.abs(pt2.y - pt1.y)) {\n return pt1.x < pt2.x ? 'Right' : 'Left';\n }\n else {\n return pt1.y < pt2.y ? 'Bottom' : 'Top';\n }\n };\n //Move these methods to util\n //public CompareTo(point: PointModel): number {\n // let result: number = this.X.CompareTo(point.X);\n // return result != 0 ? result : this.Y.CompareTo(point.Y);\n //}\n //public CompareOnYAxis(point: PointModel): number {\n // let result: number = this.X.CompareTo(point.X);\n // return result != 0 ? result : this.Y.CompareTo(point.Y);\n //}\n //public CompareOnXAxis(point: PointModel): number {\n // let result: number = this.Y.CompareTo(point.Y);\n // return result != 0 ? result : this.X.CompareTo(point.X);\n //}\n // public round(): void {\n // this.x = Math.round(this.x);\n // this.y = Math.round(this.y);\n // }\n /**\n * getClassName method \\\n *\n * @returns { string } getClassName method .\\\n *\n * @private\n */\n Point.prototype.getClassName = function () {\n return 'Point';\n };\n __decorate([\n Property(0)\n ], Point.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], Point.prototype, \"y\", void 0);\n return Point;\n}(ChildProperty));\nexport { Point };\n","/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/**\n * processPathData method \\\n *\n * @returns {Object[]} processPathData method .\\\n * @param { string } data - provide the data value.\n * @private\n */\nexport function processPathData(data) {\n var collection = [];\n var j;\n var arrayCollection = parsePathData(data);\n if (arrayCollection.length > 0) {\n for (var i = 0; i < arrayCollection.length; i++) {\n var ob = arrayCollection[parseInt(i.toString(), 10)];\n var char = '';\n char = ob[0];\n switch (char.toLowerCase()) {\n case 'm':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n if (char === 'm') {\n char = 'l';\n }\n else if (char === 'M') {\n char = 'L';\n }\n }\n break;\n case 'l':\n case 't':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n }\n break;\n case 'h':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'v':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, y: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'z':\n collection.push({ command: char });\n break;\n case 'c':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x2: ob[j + 2],\n y2: ob[j + 3], x: ob[j + 4], y: ob[j + 5]\n });\n j = j + 5;\n }\n break;\n case 's':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x2: ob[parseInt(j.toString(), 10)], y2: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'q':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'a':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, r1: ob[parseInt(j.toString(), 10)], r2: ob[j + 1], angle: ob[j + 2], largeArc: ob[j + 3],\n sweep: ob[j + 4], x: ob[j + 5], y: ob[j + 6]\n });\n j = j + 6;\n }\n break;\n }\n }\n }\n return collection;\n}\n/**\n * parsePathData method \\\n *\n * @returns {Object[]} parsePathData method .\\\n * @param { string } data - provide the data value.\n * @private\n */\nexport function parsePathData(data) {\n var tokenizer = /([a-z]+)|([+-]?(?:\\d+\\.?\\d*|\\.\\d+))/gi;\n var current = [];\n var commands = [];\n var match = {};\n tokenizer.lastIndex = 0;\n var isExponential = false;\n match = tokenizer.exec(data);\n while (match) {\n if (match[1] === 'e') {\n //let s1: string = '';\n isExponential = true;\n }\n else if (match[1]) {\n if (match[1].toLowerCase() === 'zm') {\n if (current.length) {\n commands.push(current);\n }\n commands.push(['Z']);\n current = [match[1].substring(1, 2)];\n }\n else {\n if (current.length) {\n commands.push(current);\n }\n current = [match[1]];\n }\n isExponential = false;\n }\n else {\n if (!current.length) {\n current = [];\n }\n if (!isExponential) {\n current.push(Number(match[2]));\n }\n isExponential = false;\n }\n match = tokenizer.exec(data);\n }\n if (current.length) {\n commands.push(current);\n }\n return commands;\n}\n/**\n * getRectanglePath method \\\n *\n * @returns {string} getRectanglePath method .\\\n * @param { number } cornerRadius - provide the data value.\n * @param { number } height - provide the height value.\n * @param { number } width - provide the width value.\n * @private\n */\nexport function getRectanglePath(cornerRadius, height, width) {\n var x = 0;\n var y = 0;\n var path = '';\n var points = [{ x: x + cornerRadius, y: y }, { x: x + width - cornerRadius, y: y },\n { x: x + width, y: y + cornerRadius }, { x: x + width, y: y + height - cornerRadius },\n { x: x + width - cornerRadius, y: y + height }, { x: x + cornerRadius, y: y + height },\n { x: x, y: y + height - cornerRadius }, { x: x, y: y + cornerRadius }\n ];\n var corners = [{ x: x + width, y: y }, { x: x + width, y: y + height }, { x: x, y: y + height }, { x: x, y: y }];\n var corner = 0;\n var point2;\n var next;\n path = 'M' + points[0].x + ' ' + points[0].y;\n var i;\n for (i = 0; i < points.length; i = i + 2) {\n point2 = points[i + 1];\n path += 'L' + point2.x + ' ' + point2.y;\n next = points[i + 2] || points[0];\n path += 'Q' + corners[parseInt(corner.toString(), 10)].x + ' ' + corners[parseInt(corner.toString(), 10)].y + ' ' + next.x + ' ' + next.y;\n corner++;\n }\n return path;\n}\n/**\n * getPolygonPath method \\\n *\n * @returns {string} getPolygonPath method .\\\n * @param { PointModel[] } collection - provide the data value.\n * @private\n */\nexport function getPolygonPath(collection) {\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n path += 'Z';\n return path;\n}\n/**\n * getFreeHandPath method \\\n *\n * @returns {string} getFreeHandPath method .\\\n * @param { PointModel[] } collection - provide the data value.\n * @private\n */\nexport function getFreeHandPath(collection) {\n var k;\n for (k = 0; k < collection.length; k++) {\n collection[parseInt(k.toString(), 10)].x = Math.round(collection[parseInt(k.toString(), 10)].x);\n collection[parseInt(k.toString(), 10)].y = Math.round(collection[parseInt(k.toString(), 10)].y);\n }\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n return path;\n}\n/* eslint-disable */\n/**\n * pathSegmentCollection method \\\n *\n * @returns {string} pathSegmentCollection method .\\\n * @param { Object[]} collection - provide the collection value.\n * @private\n */\nexport function pathSegmentCollection(collection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var initx;\n var inity;\n var segments = [];\n for (x = 0, y = 0, i = 0, length = collection.length; i < length; ++i) {\n var obj = collection[i];\n var seg = obj;\n var char = '';\n char = seg.command;\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n var prev = segments[segments.length - 1];\n switch (char) {\n case 'M':\n segments.push({ command: 'M', x: x, y: y });\n break;\n case 'L':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y });\n break;\n case 'H':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y0 });\n break;\n case 'V':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x0, y: y });\n break;\n case 'C':\n segments.push({ command: 'C', x0: x0, y0: y0, x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y });\n break;\n case 'S':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'C' || prev.command === 'S') {\n ctrl = { x: prev.x2, y: prev.y2 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'C', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x2: x2, y2: y2, x: x, y: y });\n }\n break;\n case 'Q':\n //ctx.quadraticCurveTo(x1, y1, x, y);\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: x1, y1: y1, x: x, y: y });\n break;\n case 'T':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'Q') {\n ctrl = { x: prev.x1, y: prev.y1 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x: x, y: y });\n }\n break;\n case 'A':\n var newSeg = seg;\n newSeg.command = 'A';\n segments.push(newSeg);\n break;\n case 'Z':\n case 'z':\n segments.push({ command: 'Z' });\n x = x0;\n y = y0;\n break;\n }\n if (char === 'M' || char === 'm') {\n initx = x;\n inity = y;\n }\n x0 = x;\n y0 = y;\n }\n return segments;\n}\n/**\n * transformPath method \\\n *\n * @returns {string} transformPath method .\\\n * @param { Object[]} arr - provide the collection value.\n * @param { number} sX - provide the collection value.\n * @param { number} sY - provide the collection value.\n * @param { boolean} s - provide the collection value.\n * @param {number} bX - provide the collection value.\n * @param { number} bY - provide the collection value.\n * @param { number} iX - provide the collection value.\n * @param { number} iY - provide the collection value.\n * @private\n */\nexport function transformPath(arr, sX, sY, s, bX, bY, iX, iY) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var newSeg;\n for (x = 0, y = 0, i = 0, length = arr.length; i < length; ++i) {\n var obj = arr[i];\n var seg = obj;\n var char = seg.command;\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if (s) {\n if (x !== undefined) {\n x = scalePathData(x, sX, bX, iX);\n }\n if (y !== undefined) {\n y = scalePathData(y, sY, bY, iY);\n }\n if (x1 !== undefined) {\n x1 = scalePathData(x1, sX, bX, iX);\n }\n if (y1 !== undefined) {\n y1 = scalePathData(y1, sY, bY, iY);\n }\n if (x2 !== undefined) {\n x2 = scalePathData(x2, sX, bX, iX);\n }\n if (y2 !== undefined) {\n y2 = scalePathData(y2, sY, bY, iY);\n }\n }\n else {\n if (x !== undefined) {\n x = Number((x + sX).toFixed(2));\n }\n if (y !== undefined) {\n y = Number((y + sY).toFixed(2));\n }\n if (x1 !== undefined) {\n x1 = Number((x1 + sX).toFixed(2));\n }\n if (y1 !== undefined) {\n y1 = Number((y1 + sY).toFixed(2));\n }\n if (x2 !== undefined) {\n x2 = Number((x2 + sX).toFixed(2));\n }\n if (y2 !== undefined) {\n y2 = Number((y2 + sY).toFixed(2));\n }\n }\n var scaledPath = { x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2, r1: seg.r1, r2: seg.r2 };\n newSeg = updatedSegment(seg, char, scaledPath, s, sX, sY);\n if (newSeg) {\n arr[i] = newSeg;\n }\n // Record the start of a subpath\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n var pathData = getPathString(arr);\n return pathData;\n}\n/**\n * updatedSegment method \\\n *\n * @returns {string} updatedSegment method .\\\n * @param { PathSegment} segment - provide the collection value.\n * @param { PathSegment} char - provide the collection value.\n * @param { number} obj - provide the collection value.\n * @param { boolean} isScale - provide the collection value.\n * @param {number} sX - provide the collection value.\n * @param { number} sY - provide the collection value.\n * @private\n */\nexport function updatedSegment(segment, char, obj, isScale, sX, sY) {\n switch (char) {\n case 'M':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'L':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'H':\n segment.x = obj.x;\n break;\n case 'V':\n segment.y = obj.y;\n break;\n case 'C':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'S':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'Q':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n break;\n case 'T':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'A':\n var r1 = obj.r1;\n var r2 = obj.r2;\n if (isScale) {\n obj.r1 = r1 = (r1 * sX);\n obj.r2 = r2 = (r2 * sY);\n }\n segment.x = obj.x;\n segment.y = obj.y;\n segment.r1 = obj.r1;\n segment.r2 = obj.r2;\n break;\n case 'z':\n case 'Z':\n segment = { command: 'Z' };\n break;\n }\n return segment;\n}\n/* eslint-enable */\n/**\n * scalePathData method \\\n *\n * @returns {string} scalePathData method .\\\n * @param { number} val - provide the val value.\n * @param { number} scaleFactor - provide the scaleFactor value.\n * @param { number} oldOffset - provide the oldOffset value.\n * @param { number} newOffset - provide the newOffset value.\n * @private\n */\nexport function scalePathData(val, scaleFactor, oldOffset, newOffset) {\n if (val !== oldOffset) {\n if (newOffset !== oldOffset) {\n val = (((val * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)))\n + (newOffset - Number(oldOffset)));\n }\n else {\n val = ((Number(val) * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)));\n }\n }\n else {\n if (newOffset !== oldOffset) {\n val = newOffset;\n }\n }\n return Number(val.toFixed(2));\n}\n/**\n * splitArrayCollection method \\\n *\n * @returns {Object[]} splitArrayCollection method .\\\n * @param { Object[]} arrayCollection - provide the val value.\n * @private\n */\nexport function splitArrayCollection(arrayCollection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n for (x = 0, y = 0, i = 0, length = arrayCollection.length; i < length; ++i) {\n var path = arrayCollection[parseInt(i.toString(), 10)];\n var seg = path;\n var char = seg.command;\n if (/[MLHVCSQTA]/.test(char)) {\n if ('x' in seg) {\n seg.x = x = seg.x;\n }\n if ('y' in seg) {\n seg.y = y = seg.y;\n }\n }\n else {\n if ('x1' in seg) {\n seg.x1 = x1 = x + seg.x1;\n }\n if ('x2' in seg) {\n seg.x2 = x2 = x + seg.x2;\n }\n if ('y1' in seg) {\n seg.y1 = y1 = y + seg.y1;\n }\n if ('y2' in seg) {\n seg.y2 = y2 = y + seg.y2;\n }\n if ('x' in seg) {\n seg.x = x += seg.x;\n }\n if ('y' in seg) {\n seg.y = y += seg.y;\n }\n var newSeg = void 0;\n switch (char) {\n case 'm':\n case 'M':\n newSeg = { command: 'M', x: x, y: y };\n break;\n case 'l':\n case 'L':\n newSeg = { command: 'L', x: x, y: y };\n break;\n case 'h':\n case 'H':\n newSeg = { command: 'H', x: x };\n break;\n case 'v':\n case 'V':\n newSeg = { command: 'V', y: y };\n break;\n case 'c':\n case 'C':\n newSeg = { command: 'C', x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2 };\n break;\n case 's':\n case 'S':\n newSeg = { command: 'S', x: x, y: y, x2: x2, y2: y2 };\n break;\n case 'q':\n case 'Q':\n newSeg = { command: 'Q', x: x, y: y, x1: x1, y1: y1 };\n break;\n case 't':\n case 'T':\n newSeg = { command: 'T', x: x, y: y };\n break;\n case 'a':\n case 'A':\n newSeg = { command: 'A', x: x, y: y };\n newSeg.r1 = seg.r1;\n newSeg.r2 = seg.r2;\n newSeg.angle = seg.angle;\n newSeg.largeArc = seg.largeArc;\n newSeg.sweep = seg.sweep;\n break;\n case 'z':\n case 'Z':\n newSeg = { command: 'Z' };\n x = x0;\n y = y0;\n newSeg = arrayCollection[parseInt(i.toString(), 10)];\n break;\n }\n if (newSeg) {\n arrayCollection[parseInt(i.toString(), 10)] = newSeg;\n }\n }\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n return arrayCollection;\n}\n/**\n * getPathString method \\\n *\n * @returns {string} getPathString method .\\\n * @param { Object[]} arrayCollection - provide the val value.\n * @private\n */\nexport function getPathString(arrayCollection) {\n var getNewString = '';\n var i;\n for (i = 0; i < arrayCollection.length; i++) {\n if (i === 0) {\n getNewString += getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n else {\n getNewString += ' ' + getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n }\n return getNewString;\n}\n/* eslint-disable */\n/**\n * getString method \\\n *\n * @returns {string} getString method .\\\n * @param { PathSegment} arrayCollection - provide the val value.\n * @private\n */\nexport function getString(obj) {\n var string = '';\n switch (obj.command) {\n case 'Z':\n case 'z':\n string = obj.command;\n break;\n case 'M':\n case 'm':\n case 'L':\n case 'l':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'C':\n case 'c':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'Q':\n case 'q':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'A':\n case 'a':\n var cmd = obj.command;\n var ang = obj.angle;\n var l = (obj.largeArc ? '1' : '0');\n var s = (obj.sweep ? '1' : '0');\n string = cmd + ' ' + obj.r1 + ' ' + obj.r2 + ' ' + ang + ' ' + l + ' ' + s + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'H':\n case 'h':\n string = obj.command + ' ' + obj.x;\n break;\n case 'V':\n case 'v':\n string = obj.command + ' ' + obj.y;\n break;\n case 'S':\n case 's':\n string = obj.command + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'T':\n case 't':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n }\n return string;\n}\n","/**\n * Rect defines and processes rectangular regions\n */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, width, height) {\n /**\n * Sets the x-coordinate of the starting point of a rectangular region\n *\n * @default 0\n */\n this.x = Number.MAX_VALUE;\n /**\n * Sets the y-coordinate of the starting point of a rectangular region\n *\n * @default 0\n */\n this.y = Number.MAX_VALUE;\n /**\n * Sets the width of a rectangular region\n *\n * @default 0\n */\n this.width = 0;\n /**\n * Sets the height of a rectangular region\n *\n * @default 0\n */\n this.height = 0;\n if (x === undefined || y === undefined) {\n x = y = Number.MAX_VALUE;\n width = height = 0;\n }\n else {\n if (width === undefined) {\n width = 0;\n }\n if (height === undefined) {\n height = 0;\n }\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n Object.defineProperty(Rect.prototype, \"left\", {\n // eslint-disable-next-line jsdoc/require-returns\n /** @private */\n get: function () {\n return this.x;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"right\", {\n /**\n * right method \\\n *\n * @returns { Rect } right method .\\\n *\n * @private\n */\n get: function () {\n return this.x + this.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"top\", {\n /**\n * toBounds method \\\n *\n * @returns { Rect } toBounds method .\\\n *\n * @private\n */\n get: function () {\n return this.y;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottom\", {\n /**\n * bottom method \\\n *\n * @returns { Rect } bottom method .\\\n *\n * @private\n */\n get: function () {\n return this.y + this.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topLeft\", {\n /**\n * topLeft method \\\n *\n * @returns { Rect } topLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topRight\", {\n /**\n * topRight method \\\n *\n * @returns { Rect } topRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomLeft\", {\n /**\n * bottomLeft method \\\n *\n * @returns { Rect } bottomLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomRight\", {\n /**\n * bottomRight method \\\n *\n * @returns { Rect } bottomRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleLeft\", {\n /**\n * middleLeft method \\\n *\n * @returns { Rect } middleLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleRight\", {\n /**\n * middleRight method \\\n *\n * @returns { Rect } middleRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topCenter\", {\n /**\n * topCenter method \\\n *\n * @returns { Rect } topCenter method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomCenter\", {\n /**\n * bottomCenter method \\\n *\n * @returns { Rect } bottomCenter method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"center\", {\n /**\n * center method \\\n *\n * @returns { PointModel } center method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * equals method \\\n *\n * @returns { boolean } equals method .\\\n * @param {Rect} rect1 - provide the rect1 value.\n * @param {Rect} rect2 - provide the rect2 value.\n *\n * @private\n */\n Rect.prototype.equals = function (rect1, rect2) {\n return rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height;\n };\n /**\n * uniteRect method \\\n *\n * @returns { Rect } uniteRect method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.uniteRect = function (rect) {\n var right = Math.max(isNaN(this.right) || this.x === Number.MAX_VALUE ? rect.right : this.right, rect.right);\n var bottom = Math.max(isNaN(this.bottom) || this.y === Number.MAX_VALUE ? rect.bottom : this.bottom, rect.bottom);\n this.x = Math.min(this.left, rect.left);\n this.y = Math.min(this.top, rect.top);\n this.width = right - this.x;\n this.height = bottom - this.y;\n return this;\n };\n /**\n * unitePoint method \\\n *\n * @returns { void } unitePoint method .\\\n * @param {PointModel} point - provide the points value.\n *\n * @private\n */\n Rect.prototype.unitePoint = function (point) {\n if (this.x === Number.MAX_VALUE) {\n this.x = point.x;\n this.y = point.y;\n return;\n }\n var x = Math.min(this.left, point.x);\n var y = Math.min(this.top, point.y);\n var right = Math.max(this.right, point.x);\n var bottom = Math.max(this.bottom, point.y);\n this.x = x;\n this.y = y;\n this.width = right - this.x;\n this.height = bottom - this.y;\n };\n // public intersection(rect: Rect): Rect {\n // if (this.intersects(rect)) {\n // let left: number = Math.max(this.left, rect.left);\n // let top: number = Math.max(this.top, rect.top);\n // let right: number = Math.min(this.right, rect.right);\n // let bottom: number = Math.min(this.bottom, rect.bottom);\n // return new Rect(left, top, right - left, bottom - top);\n // }\n // return Rect.empty;\n // }\n /**\n * Inflate method \\\n *\n * @returns { Rect } Inflate method .\\\n * @param {number} padding - provide the points value.\n *\n * @private\n */\n Rect.prototype.Inflate = function (padding) {\n this.x -= padding;\n this.y -= padding;\n this.width += padding * 2;\n this.height += padding * 2;\n return this;\n };\n //public Inflate(size: Size): Rect {\n // this.x -= size.Width;\n // this.y -= size.Height;\n // this.width += size.Width * 2;\n // this.height += size.Height * 2;\n // return this;\n //}\n // public inflate(width: number, height: number): void {\n // this.x -= width;\n // this.y -= height;\n // this.width += width * 2;\n // this.height += height * 2;\n // }\n /**\n * intersects method \\\n *\n * @returns { boolean } intersects method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.intersects = function (rect) {\n if (this.right < rect.left || this.left > rect.right || this.top > rect.bottom || this.bottom < rect.top) {\n return false;\n }\n return true;\n };\n /**\n * containsRect method \\\n *\n * @returns { boolean } containsRect method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.containsRect = function (rect) {\n return this.left <= rect.left && this.right >= rect.right && this.top <= rect.top && this.bottom >= rect.bottom;\n };\n /**\n * containsPoint method \\\n *\n * @returns { boolean } containsPoint method .\\\n * @param {PointModel} point - provide the points value.\n * @param {number} padding - provide the padding value.\n *\n * @private\n */\n Rect.prototype.containsPoint = function (point, padding) {\n if (padding === void 0) { padding = 0; }\n return this.left - padding <= point.x && this.right + padding >= point.x\n && this.top - padding <= point.y && this.bottom + padding >= point.y;\n };\n // public toPoints(): PointModel[] {\n // let points: PointModel[] = [];\n // points.push(this.topLeft);\n // points.push(this.topRight);\n // points.push(this.bottomLeft);\n // points.push(this.bottomRight);\n // return points;\n // }\n /**\n * toBounds method \\\n *\n * @returns { Rect } toBounds method .\\\n * @param {PointModel[]} points - provide the points value.\n *\n * @private\n */\n Rect.toBounds = function (points) {\n var rect = new Rect();\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var pt = points_1[_i];\n rect.unitePoint(pt);\n }\n return rect;\n };\n /** @private */\n Rect.empty = new Rect(Number.MAX_VALUE, Number.MIN_VALUE, 0, 0);\n return Rect;\n}());\nexport { Rect };\n","/**\n * Matrix module is used to transform points based on offsets, angle\n */\n/** @private */\nexport var MatrixTypes;\n(function (MatrixTypes) {\n MatrixTypes[MatrixTypes[\"Identity\"] = 0] = \"Identity\";\n MatrixTypes[MatrixTypes[\"Translation\"] = 1] = \"Translation\";\n MatrixTypes[MatrixTypes[\"Scaling\"] = 2] = \"Scaling\";\n MatrixTypes[MatrixTypes[\"Unknown\"] = 4] = \"Unknown\";\n})(MatrixTypes || (MatrixTypes = {}));\n/** @private */\nvar Matrix = /** @class */ (function () {\n function Matrix(m11, m12, m21, m22, offsetX, offsetY, type) {\n this.m11 = m11;\n this.m12 = m12;\n this.m21 = m21;\n this.m22 = m22;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n // if (type === undefined) {\n // this.type = MatrixTypes.Unknown;\n // } else {\n // this.type = type;\n // }\n this.type = type;\n }\n return Matrix;\n}());\nexport { Matrix };\n/**\n * Will identify the matrix .\\\n *\n * @returns {Matrix} Will identify the matrix .\n * @private\n */\nexport function identityMatrix() {\n return new Matrix(1, 0, 0, 1, 0, 0, MatrixTypes.Identity);\n}\n/**\n * Will transform the points by matrix .\\\n *\n * @returns {PointModel[]} Will transform the points by matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} point - provide the points value.\n * @private\n */\nexport function transformPointByMatrix(matrix, point) {\n var pt = multiplyPoint(matrix, point.x, point.y);\n return { x: Math.round(pt.x * 100) / 100, y: Math.round(pt.y * 100) / 100 };\n}\n/**\n * Will transform the points by matrix .\\\n *\n * @returns {PointModel[]} Will transform the points by matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} points - provide the points value.\n * @private\n */\nexport function transformPointsByMatrix(matrix, points) {\n var transformedPoints = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n transformedPoints.push(transformPointByMatrix(matrix, point));\n }\n return transformedPoints;\n}\n/**\n * Will rotate the matrix .\\\n *\n * @returns {void} Will rotate the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} angle - provide the angle value.\n * @param {number} centerX - provide the centerX value .\n * @param {number} centerY - provide the centerY value .\n * @private\n */\nexport function rotateMatrix(matrix, angle, centerX, centerY) {\n angle %= 360.0;\n multiplyMatrix(matrix, createRotationRadians(angle * 0.017453292519943295, centerX ? centerX : 0, centerY ? centerY : 0));\n}\n/**\n * Will scale the matrix .\\\n *\n * @returns {void} Will scale the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} scaleX - provide the scaleXvalue.\n * @param {number} scaleY - provide the scaleY value .\n * @param {number} centerX - provide the centerX value .\n * @param {number} centerY - provide the centerY value .\n * @private\n */\nexport function scaleMatrix(matrix, scaleX, scaleY, centerX, centerY) {\n if (centerX === void 0) { centerX = 0; }\n if (centerY === void 0) { centerY = 0; }\n multiplyMatrix(matrix, createScaling(scaleX, scaleY, centerX, centerY));\n}\n/**\n * Will translate the matrix .\\\n *\n * @returns {void} Will translate the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} offsetX - provide the offset x value.\n * @param {number} offsetY - provide the offset y value .\n * @private\n */\nexport function translateMatrix(matrix, offsetX, offsetY) {\n //Removed identity and unknown matrix type checking\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n matrix.type |= MatrixTypes.Translation;\n}\n/**\n * Will create scaling value .\\\n *\n * @returns {Matrix} Will create scaling value . .\n *\n * @param {Matrix} scaleX - provide the scale x value .\n * @param {number} scaleY - provide the scale y value.\n * @param {number} centerX - provide the centerX x value .\n * @param {number} centerY - provide the centerX y value .\n * @private\n */\nfunction createScaling(scaleX, scaleY, centerX, centerY) {\n var result = identityMatrix();\n result.type = !(centerX || centerY) ? MatrixTypes.Scaling : MatrixTypes.Scaling | MatrixTypes.Translation;\n setMatrix(result, scaleX, 0.0, 0.0, scaleY, centerX - scaleX * centerX, centerY - scaleY * centerY);\n return result;\n}\n/**\n * Will create the rotation radians.\\\n *\n * @returns {Matrix} Will create the rotation radians .\n *\n * @param {Matrix} angle - provide the angle .\n * @param {number} centerX - provide the x value .\n * @param {number} centerY - provide the y value .\n * @private\n */\nfunction createRotationRadians(angle, centerX, centerY) {\n var result = identityMatrix();\n var num = Math.sin(angle);\n var num2 = Math.cos(angle);\n var offsetX = centerX * (1.0 - num2) + centerY * num;\n var offsetY = centerY * (1.0 - num2) - centerX * num;\n result.type = MatrixTypes.Unknown;\n setMatrix(result, num2, num, -num, num2, offsetX, offsetY);\n return result;\n}\n/**\n * Multiply the point .\\\n *\n * @returns {void} Multiply the point .\n *\n * @param {Matrix} matrix - Provide the matrix .\n * @param {number} x - provide the x value .\n * @param {number} y - provide the y value .\n * @private\n */\nfunction multiplyPoint(matrix, x, y) {\n switch (matrix.type) {\n //Removed identity and translation and scaling matrix type checking\n case MatrixTypes.Translation | MatrixTypes.Scaling:\n x *= matrix.m11;\n x += matrix.offsetX;\n y *= matrix.m22;\n y += matrix.offsetY;\n break;\n default:\n // eslint-disable-next-line no-case-declarations\n var num = y * matrix.m21 + matrix.offsetX;\n // eslint-disable-next-line no-case-declarations\n var num2 = x * matrix.m12 + matrix.offsetY;\n x *= matrix.m11;\n x += num;\n y *= matrix.m22;\n y += num2;\n break;\n }\n return { x: x, y: y };\n}\n/**\n * Will multiply the matrix .\\\n *\n * @returns {void} Will multiply the matrix .\n *\n * @param {Matrix} matrix1 - Provide the matrix 1 value .\n * @param {Matrix} matrix2 - Provide the matrix 2 value .\n * @private\n */\nexport function multiplyMatrix(matrix1, matrix2) {\n var type = matrix1.type;\n var type2 = matrix2.type;\n //Removed identity matrix type checking\n if (type === MatrixTypes.Identity) {\n assignMatrix(matrix1, matrix2);\n matrix1.type = matrix2.type;\n return;\n }\n //Removed translation matrix type checking\n if (type !== MatrixTypes.Translation) {\n var num = type << 4 | type2;\n //Removed num 34,35,36\n switch (num) {\n case 50:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX *= matrix2.m11;\n matrix1.offsetY *= matrix2.m22;\n return;\n case 51:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.m11 * matrix1.offsetX + matrix2.offsetX;\n matrix1.offsetY = matrix2.m22 * matrix1.offsetY + matrix2.offsetY;\n return;\n case 52: break;\n default:\n switch (num) {\n case 66:\n case 67:\n case 68: break;\n default: return;\n }\n break;\n }\n var result = identityMatrix();\n var m11New = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21;\n var m12New = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22;\n var m21New = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21;\n var m22New = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22;\n var offsetX_1 = matrix1.offsetX * matrix2.m11 + matrix1.offsetY * matrix2.m21 + matrix2.offsetX;\n var offsetY_1 = matrix1.offsetX * matrix2.m12 + matrix1.offsetY * matrix2.m22 + matrix2.offsetY;\n setMatrix(result, m11New, m12New, m21New, m22New, offsetX_1, offsetY_1);\n if (result.m21 || result.m12) {\n result.type = MatrixTypes.Unknown;\n }\n else {\n if (result.m11 && result.m11 !== 1.0 || result.m22 && result.m22 !== 1.0) {\n result.type = MatrixTypes.Scaling;\n }\n if (result.offsetX || result.offsetY) {\n result.type |= MatrixTypes.Translation;\n }\n if ((result.type & (MatrixTypes.Translation | MatrixTypes.Scaling)) === MatrixTypes.Identity) {\n result.type = MatrixTypes.Identity;\n }\n result.type = MatrixTypes.Scaling | MatrixTypes.Translation;\n }\n assignMatrix(matrix1, result);\n matrix1.type = result.type;\n return;\n }\n var offsetX = matrix1.offsetX;\n var offsetY = matrix1.offsetY;\n matrix1.offsetX = offsetX * matrix2.m11 + offsetY * matrix2.m21 + matrix2.offsetX;\n matrix1.offsetY = offsetX * matrix2.m12 + offsetY * matrix2.m22 + matrix2.offsetY;\n if (type2 === MatrixTypes.Unknown) {\n matrix1.type = MatrixTypes.Unknown;\n return;\n }\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n}\n/**\n * set the matrix .\\\n *\n * @returns {void} set the matrix .\n *\n * @param {Matrix} mat - Provide the matrix 1 value .\n * @param {number} m11 - Provide the matrix m11 value .\n * @param {number} m12 - Provide the matrix m11 value .\n * @param {number} m21 - Provide the matrix m11 value .\n * @param {number} m22 - Provide the matrix m11 value .\n * @param {number} x - Provide the matrix m11 value .\n * @param {number} y - Provide the matrix m11 value .\n * @private\n */\nfunction setMatrix(mat, m11, m12, m21, m22, x, y) {\n mat.m11 = m11;\n mat.m12 = m12;\n mat.m21 = m21;\n mat.m22 = m22;\n mat.offsetX = x;\n mat.offsetY = y;\n}\n/**\n * Assign the matrix .\\\n *\n * @returns {void} Assign the matrix .\n *\n * @param {Matrix} matrix1 - Provide the element type as string .\n * @param {Matrix} matrix2 - Provide the element type as string .\n * @private\n */\nfunction assignMatrix(matrix1, matrix2) {\n matrix1.m11 = matrix2.m11;\n matrix1.m12 = matrix2.m12;\n matrix1.m21 = matrix2.m21;\n matrix1.m22 = matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = matrix2.type;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Property, ChildProperty, Collection, ComplexFactory } from '@syncfusion/ej2-base';\n/** @private */\n// eslint-disable-next-line prefer-const\nvar getGradientType = function (obj) {\n if (obj) {\n //Removed isBlazor code\n switch (obj.type) {\n case 'Linear':\n return LinearGradient;\n case 'Radial':\n return RadialGradient;\n default:\n return LinearGradient;\n }\n }\n return LinearGradient;\n};\n/**\n * Layout Model module defines the styles and types to arrange objects in containers\n */\nvar Thickness = /** @class */ (function () {\n function Thickness(left, right, top, bottom) {\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n }\n return Thickness;\n}());\nexport { Thickness };\n/**\n * Defines the space to be left between an object and its immediate parent\n */\nvar Margin = /** @class */ (function (_super) {\n __extends(Margin, _super);\n function Margin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Margin.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"right\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"top\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"bottom\", void 0);\n return Margin;\n}(ChildProperty));\nexport { Margin };\n/**\n * Defines the Shadow appearance of the objects\n * ```html\n *
\n * ```\n * ```typescript\n * let nodes: NodeModel[] = [{ id: 'node2', width: 100, height: 100,\n * constraints: NodeConstraints.Default | NodeConstraints.Shadow,\n * shadow: { angle: 45, distance: 5, opacity: 0.7, color: 'grey'}\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Shadow = /** @class */ (function (_super) {\n __extends(Shadow, _super);\n function Shadow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(45)\n ], Shadow.prototype, \"angle\", void 0);\n __decorate([\n Property(5)\n ], Shadow.prototype, \"distance\", void 0);\n __decorate([\n Property(0.7)\n ], Shadow.prototype, \"opacity\", void 0);\n __decorate([\n Property('lightgrey')\n ], Shadow.prototype, \"color\", void 0);\n return Shadow;\n}(ChildProperty));\nexport { Shadow };\n/**\n * Defines the different colors and the region of color transitions\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Stop = /** @class */ (function (_super) {\n __extends(Stop, _super);\n function Stop() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the name of class Stop\n */\n Stop.prototype.getClassName = function () {\n return 'Stop';\n };\n __decorate([\n Property('')\n ], Stop.prototype, \"color\", void 0);\n __decorate([\n Property(0)\n ], Stop.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], Stop.prototype, \"opacity\", void 0);\n return Stop;\n}(ChildProperty));\nexport { Stop };\n/**\n * Paints the node with a smooth transition from one color to another color\n */\nvar Gradient = /** @class */ (function (_super) {\n __extends(Gradient, _super);\n function Gradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], Stop)\n ], Gradient.prototype, \"stops\", void 0);\n __decorate([\n Property('None')\n ], Gradient.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Gradient.prototype, \"id\", void 0);\n return Gradient;\n}(ChildProperty));\nexport { Gradient };\n/**\n * Defines the linear gradient of styles\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: LinearGradientModel = { x1: 0, x2: 50, y1: 0, y2: 50, stops: stopscol, type: 'Linear' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n/**\n * Paints the node with linear color transitions\n */\nvar DiagramGradient = /** @class */ (function (_super) {\n __extends(DiagramGradient, _super);\n function DiagramGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"x1\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"x2\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"y1\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"y2\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"cx\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"cy\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"fx\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"fy\", void 0);\n __decorate([\n Property(50)\n ], DiagramGradient.prototype, \"r\", void 0);\n return DiagramGradient;\n}(Gradient));\nexport { DiagramGradient };\n/**\n * Paints the node with linear color transitions\n */\nvar LinearGradient = /** @class */ (function (_super) {\n __extends(LinearGradient, _super);\n function LinearGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"x1\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"x2\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"y1\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"y2\", void 0);\n return LinearGradient;\n}(Gradient));\nexport { LinearGradient };\n/**\n * A focal point defines the beginning of the gradient, and a circle defines the end point of the gradient\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar RadialGradient = /** @class */ (function (_super) {\n __extends(RadialGradient, _super);\n function RadialGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"cx\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"cy\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"fx\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"fy\", void 0);\n __decorate([\n Property(50)\n ], RadialGradient.prototype, \"r\", void 0);\n return RadialGradient;\n}(Gradient));\nexport { RadialGradient };\n/**\n * Defines the style of shape/path\n */\nvar ShapeStyle = /** @class */ (function (_super) {\n __extends(ShapeStyle, _super);\n function ShapeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('white')\n ], ShapeStyle.prototype, \"fill\", void 0);\n __decorate([\n Property('black')\n ], ShapeStyle.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('')\n ], ShapeStyle.prototype, \"strokeDashArray\", void 0);\n __decorate([\n Property(1)\n ], ShapeStyle.prototype, \"strokeWidth\", void 0);\n __decorate([\n Property(1)\n ], ShapeStyle.prototype, \"opacity\", void 0);\n __decorate([\n ComplexFactory(getGradientType)\n ], ShapeStyle.prototype, \"gradient\", void 0);\n return ShapeStyle;\n}(ChildProperty));\nexport { ShapeStyle };\n/**\n * Defines the stroke style of a path\n */\nvar StrokeStyle = /** @class */ (function (_super) {\n __extends(StrokeStyle, _super);\n function StrokeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('transparent')\n ], StrokeStyle.prototype, \"fill\", void 0);\n return StrokeStyle;\n}(ShapeStyle));\nexport { StrokeStyle };\n/**\n * Defines the appearance of text\n * ```html\n *
\n * ```\n * ```typescript\n * let style: TextStyleModel = { strokeColor: 'black', opacity: 0.5, whiteSpace:'CollapseSpace', strokeWidth: 1 };\n * let node: NodeModel;\n * node = {\n * ...\n * id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,\n * annotations : [{\n * content: 'text', style: style }];\n * ...\n * };\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: [node],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar TextStyle = /** @class */ (function (_super) {\n __extends(TextStyle, _super);\n function TextStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('black')\n ], TextStyle.prototype, \"color\", void 0);\n __decorate([\n Property('Arial')\n ], TextStyle.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(12)\n ], TextStyle.prototype, \"fontSize\", void 0);\n __decorate([\n Property(false)\n ], TextStyle.prototype, \"italic\", void 0);\n __decorate([\n Property(false)\n ], TextStyle.prototype, \"bold\", void 0);\n __decorate([\n Property('CollapseSpace')\n ], TextStyle.prototype, \"whiteSpace\", void 0);\n __decorate([\n Property('WrapWithOverflow')\n ], TextStyle.prototype, \"textWrapping\", void 0);\n __decorate([\n Property('Center')\n ], TextStyle.prototype, \"textAlign\", void 0);\n __decorate([\n Property('None')\n ], TextStyle.prototype, \"textDecoration\", void 0);\n __decorate([\n Property('Wrap')\n ], TextStyle.prototype, \"textOverflow\", void 0);\n __decorate([\n Property('transparent')\n ], TextStyle.prototype, \"fill\", void 0);\n return TextStyle;\n}(ShapeStyle));\nexport { TextStyle };\n/**\n * Defines the style of shape/path\n */\nvar DiagramShapeStyle = /** @class */ (function (_super) {\n __extends(DiagramShapeStyle, _super);\n function DiagramShapeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('white')\n ], DiagramShapeStyle.prototype, \"fill\", void 0);\n __decorate([\n Property('Wrap')\n ], DiagramShapeStyle.prototype, \"textOverflow\", void 0);\n __decorate([\n Property(1)\n ], DiagramShapeStyle.prototype, \"strokeWidth\", void 0);\n __decorate([\n ComplexFactory(getGradientType)\n ], DiagramShapeStyle.prototype, \"gradient\", void 0);\n __decorate([\n Property(1)\n ], DiagramShapeStyle.prototype, \"opacity\", void 0);\n __decorate([\n Property(false)\n ], DiagramShapeStyle.prototype, \"italic\", void 0);\n __decorate([\n Property('')\n ], DiagramShapeStyle.prototype, \"strokeDashArray\", void 0);\n __decorate([\n Property('black')\n ], DiagramShapeStyle.prototype, \"color\", void 0);\n __decorate([\n Property(12)\n ], DiagramShapeStyle.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Arial')\n ], DiagramShapeStyle.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('CollapseSpace')\n ], DiagramShapeStyle.prototype, \"whiteSpace\", void 0);\n __decorate([\n Property('Center')\n ], DiagramShapeStyle.prototype, \"textAlign\", void 0);\n __decorate([\n Property('None')\n ], DiagramShapeStyle.prototype, \"textDecoration\", void 0);\n __decorate([\n Property(false)\n ], DiagramShapeStyle.prototype, \"bold\", void 0);\n __decorate([\n Property('black')\n ], DiagramShapeStyle.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('WrapWithOverflow')\n ], DiagramShapeStyle.prototype, \"textWrapping\", void 0);\n return DiagramShapeStyle;\n}(ChildProperty));\nexport { DiagramShapeStyle };\n","/**\n * enum module defines the public enumerations\n */\n/**\n * @private\n */\nexport var BlazorAction;\n(function (BlazorAction) {\n /** Return the layout value is true when doLayout is called */\n BlazorAction[BlazorAction[\"Default\"] = 0] = \"Default\";\n /** Need to return the layout value when doLayout is called */\n BlazorAction[BlazorAction[\"expandNode\"] = 2] = \"expandNode\";\n /** Enabled during the mouse interaction */\n BlazorAction[BlazorAction[\"interaction\"] = 4] = \"interaction\";\n /** Enable when the group action start in history */\n BlazorAction[BlazorAction[\"GroupingInProgress\"] = 8] = \"GroupingInProgress\";\n /** Enable when the group action start to clone another group node */\n BlazorAction[BlazorAction[\"GroupClipboardInProcess\"] = 16] = \"GroupClipboardInProcess\";\n /** Enable when the clear the object to prevent the server update */\n BlazorAction[BlazorAction[\"ClearObject\"] = 32] = \"ClearObject\";\n})(BlazorAction || (BlazorAction = {}));\n/**\n * Constraints to define when a port has to be visible\n * Visible - Always shows the port\n * Hidden - Always hides the port\n * Hover - Shows the port when the mouse hovers over a node\n * Connect - Shows the port when a connection end point is dragged over a node\n * Default - By default the ports will be visible when a node is hovered and being tried to connect\n *\n * @aspNumberEnum\n */\nexport var PortVisibility;\n(function (PortVisibility) {\n /** Always shows the port */\n PortVisibility[PortVisibility[\"Visible\"] = 1] = \"Visible\";\n /** Always hides the port */\n PortVisibility[PortVisibility[\"Hidden\"] = 2] = \"Hidden\";\n /** Shows the port when the mouse hovers over a node */\n PortVisibility[PortVisibility[\"Hover\"] = 4] = \"Hover\";\n /** Shows the port when a connection end point is dragged over a node */\n PortVisibility[PortVisibility[\"Connect\"] = 8] = \"Connect\";\n})(PortVisibility || (PortVisibility = {}));\n/**\n * Defines the constraints to Enables / Disables some features of Snapping.\n * None - Snapping does not happen\n * ShowHorizontalLines - Displays only the horizontal gridlines in diagram.\n * ShowVerticalLines - Displays only the Vertical gridlines in diagram.\n * ShowLines - Display both Horizontal and Vertical gridlines.\n * SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines.\n * SnapToVerticalLines - Enables the object to snap only with horizontal gridlines.\n * SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines.\n * snapToObject - Enables the object to snap with the other objects in the diagram.\n *\n * @IgnoreSingular\n * @aspNumberEnum\n */\nexport var SnapConstraints;\n(function (SnapConstraints) {\n /** None - Snapping does not happen */\n SnapConstraints[SnapConstraints[\"None\"] = 0] = \"None\";\n /** ShowHorizontalLines - Displays only the horizontal gridlines in diagram. */\n SnapConstraints[SnapConstraints[\"ShowHorizontalLines\"] = 1] = \"ShowHorizontalLines\";\n /** ShowVerticalLines - Displays only the Vertical gridlines in diagram */\n SnapConstraints[SnapConstraints[\"ShowVerticalLines\"] = 2] = \"ShowVerticalLines\";\n /** ShowLines - Display both Horizontal and Vertical gridlines */\n SnapConstraints[SnapConstraints[\"ShowLines\"] = 3] = \"ShowLines\";\n /** SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines */\n SnapConstraints[SnapConstraints[\"SnapToHorizontalLines\"] = 4] = \"SnapToHorizontalLines\";\n /** SnapToVerticalLines - Enables the object to snap only with horizontal gridlines */\n SnapConstraints[SnapConstraints[\"SnapToVerticalLines\"] = 8] = \"SnapToVerticalLines\";\n /** SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines */\n SnapConstraints[SnapConstraints[\"SnapToLines\"] = 12] = \"SnapToLines\";\n /** SnapToObject - Enables the object to snap with the other objects in the diagram. */\n SnapConstraints[SnapConstraints[\"SnapToObject\"] = 16] = \"SnapToObject\";\n /** Shows gridlines and enables snapping */\n SnapConstraints[SnapConstraints[\"All\"] = 31] = \"All\";\n})(SnapConstraints || (SnapConstraints = {}));\n/**\n * Defines the visibility of the selector handles\n * None - Hides all the selector elements\n * ConnectorSourceThumb - Shows/hides the source thumb of the connector\n * ConnectorTargetThumb - Shows/hides the target thumb of the connector\n * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector\n * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector\n * ResizeNorthEast - Shows/hides the top right resize handle of the selector\n * ResizeNorthWest - Shows/hides the top left resize handle of the selector\n * ResizeEast - Shows/hides the middle right resize handle of the selector\n * ResizeWest - Shows/hides the middle left resize handle of the selector\n * ResizeSouth - Shows/hides the bottom center resize handle of the selector\n * ResizeNorth - Shows/hides the top center resize handle of the selector\n * Rotate - Shows/hides the rotate handle of the selector\n * UserHandles - Shows/hides the user handles of the selector\n * Resize - Shows/hides all resize handles of the selector\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var SelectorConstraints;\n(function (SelectorConstraints) {\n /** Hides all the selector elements */\n SelectorConstraints[SelectorConstraints[\"None\"] = 1] = \"None\";\n /** Shows/hides the source thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorSourceThumb\"] = 2] = \"ConnectorSourceThumb\";\n /** Shows/hides the target thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorTargetThumb\"] = 4] = \"ConnectorTargetThumb\";\n /** Shows/hides the bottom right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthEast\"] = 8] = \"ResizeSouthEast\";\n /** Shows/hides the bottom left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthWest\"] = 16] = \"ResizeSouthWest\";\n /** Shows/hides the top right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthEast\"] = 32] = \"ResizeNorthEast\";\n /** Shows/hides the top left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthWest\"] = 64] = \"ResizeNorthWest\";\n /** Shows/hides the middle right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeEast\"] = 128] = \"ResizeEast\";\n /** Shows/hides the middle left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeWest\"] = 256] = \"ResizeWest\";\n /** Shows/hides the bottom center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouth\"] = 512] = \"ResizeSouth\";\n /** Shows/hides the top center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorth\"] = 1024] = \"ResizeNorth\";\n /** Shows/hides the rotate handle of the selector */\n SelectorConstraints[SelectorConstraints[\"Rotate\"] = 2048] = \"Rotate\";\n /** Shows/hides the user handles of the selector */\n SelectorConstraints[SelectorConstraints[\"UserHandle\"] = 4096] = \"UserHandle\";\n /** Shows/hides the default tooltip of nodes and connectors */\n SelectorConstraints[SelectorConstraints[\"ToolTip\"] = 8192] = \"ToolTip\";\n /** Shows/hides all resize handles of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeAll\"] = 2046] = \"ResizeAll\";\n /** Shows all handles of the selector */\n SelectorConstraints[SelectorConstraints[\"All\"] = 16382] = \"All\";\n})(SelectorConstraints || (SelectorConstraints = {}));\n/**\n * Defines the connection point of the connectors in the layout\n * SamePoint - Connectors will connect with same point in the layout\n * DifferentPoint - Connectors will connect with different points in the layout\n */\nexport var ConnectionPointOrigin;\n(function (ConnectionPointOrigin) {\n /** SamePoint - Connectors will connect with same point in the layout */\n ConnectionPointOrigin[\"SamePoint\"] = \"SamePoint\";\n /** DifferentPoint - Connectors will connect with different points in the layout */\n ConnectionPointOrigin[\"DifferentPoint\"] = \"DifferentPoint\";\n})(ConnectionPointOrigin || (ConnectionPointOrigin = {}));\n/**\n * Defines the child nodes need to arranged in linear manner in layout\n * Linear - Child nodes will be arranged in linear manner\n * Nonlinear - Child nodes will be arranged in not linear manner\n */\nexport var ChildArrangement;\n(function (ChildArrangement) {\n /** Linear - Child nodes will be arranged in linear manner */\n ChildArrangement[\"Linear\"] = \"Linear\";\n /** Nonlinear - Child nodes will be arranged in not linear manner */\n ChildArrangement[\"Nonlinear\"] = \"Nonlinear\";\n})(ChildArrangement || (ChildArrangement = {}));\n/**\n * Defines the constraints to enable/disable certain features of connector.\n * * None - Interaction of the connectors cannot be done.\n * * Select - Selects the connector.\n * * Delete - Delete the connector.\n * * Drag - Drag the connector.\n * * DragSourceEnd - Drag the source end of the connector.\n * * DragTargetEnd - Drag the target end of the connector.\n * * DragSegmentThump - Drag the segment thumb of the connector.\n * * AllowDrop - Allow to drop a node.\n * * Bridging - Creates bridge on intersection of two connectors.\n * * BridgeObstacle -\n * * InheritBridging - Creates bridge on intersection of two connectors.\n * * PointerEvents - Sets the pointer events.\n * * Tooltip - Displays a tooltip for the connectors.\n * * InheritToolTip - Displays a tooltip for the connectors.\n * * Interaction - Features of the connector used for interaction.\n * * ReadOnly - Enables ReadOnly\n * * InheritSegmentThumbShape - Enables or disables to inherit the value of segmentThumbShape\n * * InheritSegmentThumbSize - Enables or disables to inherit the value of segmentThumbSize\n * * Default - Default features of the connector.\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var ConnectorConstraints;\n(function (ConnectorConstraints) {\n /** Disable all connector Constraints. */\n ConnectorConstraints[ConnectorConstraints[\"None\"] = 1] = \"None\";\n /** Enables connector to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables connector to be Deleted. */\n ConnectorConstraints[ConnectorConstraints[\"Delete\"] = 4] = \"Delete\";\n /** Enables connector to be Dragged. */\n ConnectorConstraints[ConnectorConstraints[\"Drag\"] = 8] = \"Drag\";\n /** Enables connectors source end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragSourceEnd\"] = 16] = \"DragSourceEnd\";\n /** Enables connectors target end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragTargetEnd\"] = 32] = \"DragTargetEnd\";\n /** Enables control point and end point of every segment in a connector for editing. */\n ConnectorConstraints[ConnectorConstraints[\"DragSegmentThumb\"] = 64] = \"DragSegmentThumb\";\n /** Enables AllowDrop constraints to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"AllowDrop\"] = 128] = \"AllowDrop\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"Bridging\"] = 256] = \"Bridging\";\n /** Enables or Disables Bridge Obstacles with overlapping of connectors. */\n ConnectorConstraints[ConnectorConstraints[\"BridgeObstacle\"] = 512] = \"BridgeObstacle\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritBridging\"] = 1024] = \"InheritBridging\";\n /** Used to set the pointer events. */\n ConnectorConstraints[ConnectorConstraints[\"PointerEvents\"] = 2048] = \"PointerEvents\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"Tooltip\"] = 4096] = \"Tooltip\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"InheritTooltip\"] = 8192] = \"InheritTooltip\";\n /** Enables Interaction. */\n ConnectorConstraints[ConnectorConstraints[\"Interaction\"] = 4218] = \"Interaction\";\n /** Enables ReadOnly */\n ConnectorConstraints[ConnectorConstraints[\"ReadOnly\"] = 16384] = \"ReadOnly\";\n /** Enables or disables routing to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"LineRouting\"] = 32768] = \"LineRouting\";\n /** Enables or disables routing to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritLineRouting\"] = 65536] = \"InheritLineRouting\";\n /** Enables or disables near node padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByNode\"] = 131072] = \"ConnectToNearByNode\";\n /** Enables or disables near port padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByPort\"] = 262144] = \"ConnectToNearByPort\";\n /** Enables or disables Enables or disables near port and node padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByElement\"] = 393216] = \"ConnectToNearByElement\";\n /**Enables or disables to inherit the value of segmentThumbShape */\n ConnectorConstraints[ConnectorConstraints[\"InheritSegmentThumbShape\"] = 524288] = \"InheritSegmentThumbShape\";\n /**Enables or disables to inherit the value of segmentThumbSize */\n ConnectorConstraints[ConnectorConstraints[\"InheritSegmentThumbSize\"] = 1048576] = \"InheritSegmentThumbSize\";\n /** Enables all constraints. */\n ConnectorConstraints[ConnectorConstraints[\"Default\"] = 2043454] = \"Default\";\n})(ConnectorConstraints || (ConnectorConstraints = {}));\n/**\n * Enables/Disables the annotation constraints\n * ReadOnly - Enables/Disables the ReadOnly Constraints\n * InheritReadOnly - Enables/Disables the InheritReadOnly Constraints\n * Select -Enables/Disable select support for the annotation\n * Drag - Enables/Disable drag support for the annotation\n * Resize - Enables/Disable resize support for the annotation\n * Rotate - Enables/Disable rotate support for the annotation\n * Interaction - Enables annotation to inherit the interaction option\n * None - Disable all annotation constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var AnnotationConstraints;\n(function (AnnotationConstraints) {\n /** Enables/Disables the ReadOnly Constraints */\n AnnotationConstraints[AnnotationConstraints[\"ReadOnly\"] = 2] = \"ReadOnly\";\n /** Enables/Disables the InheritReadOnly Constraints */\n AnnotationConstraints[AnnotationConstraints[\"InheritReadOnly\"] = 4] = \"InheritReadOnly\";\n /** Enables/Disable select support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Select\"] = 8] = \"Select\";\n /** Enables/Disable drag support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Drag\"] = 16] = \"Drag\";\n /** Enables/Disable resize support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Resize\"] = 32] = \"Resize\";\n /** Enables/Disable rotate support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Rotate\"] = 64] = \"Rotate\";\n /** Enables or disables tool tip for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Tooltip\"] = 128] = \"Tooltip\";\n /** Enables annotation to inherit the interaction option */\n AnnotationConstraints[AnnotationConstraints[\"Interaction\"] = 120] = \"Interaction\";\n /** Disable all annotation Constraints */\n AnnotationConstraints[AnnotationConstraints[\"None\"] = 0] = \"None\";\n})(AnnotationConstraints || (AnnotationConstraints = {}));\n/**\n * Enables/Disables certain features of node\n * None - Disable all node Constraints\n * Select - Enables node to be selected\n * Drag - Enables node to be Dragged\n * Rotate - Enables node to be Rotate\n * Shadow - Enables node to display shadow\n * PointerEvents - Enables node to provide pointer option\n * Delete - Enables node to delete\n * InConnect - Enables node to provide in connect option\n * OutConnect - Enables node to provide out connect option\n * Individual - Enables node to provide individual resize option\n * Expandable - Enables node to provide Expandable option\n * AllowDrop - Enables node to provide allow to drop option\n * Inherit - Enables node to inherit the interaction option\n * ResizeNorthEast - Enable ResizeNorthEast of the node\n * ResizeEast - Enable ResizeEast of the node\n * ResizeSouthEast - Enable ResizeSouthEast of the node\n * ResizeSouth - Enable ResizeSouthWest of the node\n * ResizeSouthWest - Enable ResizeSouthWest of the node\n * ResizeSouth - Enable ResizeSouth of the node\n * ResizeSouthWest - Enable ResizeSouthWest of the node\n * ResizeWest - Enable ResizeWest of the node\n * ResizeNorth - Enable ResizeNorth of the node\n * Resize - Enables the Aspect ratio fo the node\n * AspectRatio - Enables the Aspect ratio fo the node\n * Tooltip - Enables or disables tool tip for the Nodes\n * InheritTooltip - Enables or disables tool tip for the Nodes\n * ReadOnly - Enables the ReadOnly support for Annotation\n * Default - Enables all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var NodeConstraints;\n(function (NodeConstraints) {\n /** Disable all node Constraints. */\n NodeConstraints[NodeConstraints[\"None\"] = 0] = \"None\";\n /** Enables node to be selected. */\n NodeConstraints[NodeConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables node to be Dragged. */\n NodeConstraints[NodeConstraints[\"Drag\"] = 4] = \"Drag\";\n /** Enables node to be Rotate. */\n NodeConstraints[NodeConstraints[\"Rotate\"] = 8] = \"Rotate\";\n /** Enables node to display shadow. */\n NodeConstraints[NodeConstraints[\"Shadow\"] = 16] = \"Shadow\";\n /** Enables node to provide pointer option */\n NodeConstraints[NodeConstraints[\"PointerEvents\"] = 32] = \"PointerEvents\";\n /** Enables node to delete */\n NodeConstraints[NodeConstraints[\"Delete\"] = 64] = \"Delete\";\n /** Enables node to provide in connect option */\n NodeConstraints[NodeConstraints[\"InConnect\"] = 128] = \"InConnect\";\n /** Enables node to provide out connect option */\n NodeConstraints[NodeConstraints[\"OutConnect\"] = 256] = \"OutConnect\";\n /** Enables node to provide individual resize option */\n NodeConstraints[NodeConstraints[\"Individual\"] = 512] = \"Individual\";\n /** Enables node to provide Expandable option */\n NodeConstraints[NodeConstraints[\"Expandable\"] = 1024] = \"Expandable\";\n /** Enables node to provide allow to drop option */\n NodeConstraints[NodeConstraints[\"AllowDrop\"] = 2048] = \"AllowDrop\";\n /** Enables node to inherit the interaction option */\n NodeConstraints[NodeConstraints[\"Inherit\"] = 78] = \"Inherit\";\n /** Enable ResizeNorthEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorthEast\"] = 4096] = \"ResizeNorthEast\";\n /** Enable ResizeEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeEast\"] = 8192] = \"ResizeEast\";\n /** Enable ResizeSouthEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouthEast\"] = 16384] = \"ResizeSouthEast\";\n /** Enable ResizeSouth of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouth\"] = 32768] = \"ResizeSouth\";\n /** Enable ResizeSouthWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouthWest\"] = 65536] = \"ResizeSouthWest\";\n /** Enable ResizeWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeWest\"] = 131072] = \"ResizeWest\";\n /** Enable ResizeNorthWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorthWest\"] = 262144] = \"ResizeNorthWest\";\n /** Enable ResizeNorth of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorth\"] = 524288] = \"ResizeNorth\";\n /** Enable Resize of the node */\n NodeConstraints[NodeConstraints[\"Resize\"] = 1044480] = \"Resize\";\n /** Enables the Aspect ratio fo the node */\n NodeConstraints[NodeConstraints[\"AspectRatio\"] = 1048576] = \"AspectRatio\";\n /** Enables or disables tool tip for the Nodes */\n NodeConstraints[NodeConstraints[\"Tooltip\"] = 2097152] = \"Tooltip\";\n /** Enables or disables tool tip for the Nodes */\n NodeConstraints[NodeConstraints[\"InheritTooltip\"] = 4194304] = \"InheritTooltip\";\n /** Enables the ReadOnly support for Annotation */\n NodeConstraints[NodeConstraints[\"ReadOnly\"] = 8388608] = \"ReadOnly\";\n /** hide all resize support for node */\n NodeConstraints[NodeConstraints[\"HideThumbs\"] = 16777216] = \"HideThumbs\";\n /** Enables or disables child in parent for the swimLane node */\n NodeConstraints[NodeConstraints[\"AllowMovingOutsideLane\"] = 33554432] = \"AllowMovingOutsideLane\";\n /** Enables all constraints */\n NodeConstraints[NodeConstraints[\"Default\"] = 5240814] = \"Default\";\n})(NodeConstraints || (NodeConstraints = {}));\n/** Enables/Disables The element actions\n * None - Diables all element actions are none\n * ElementIsPort - Enable element action is port\n * ElementIsGroup - Enable element action as Group\n *\n * @private\n */\nexport var ElementAction;\n(function (ElementAction) {\n /** Disables all element actions are none */\n ElementAction[ElementAction[\"None\"] = 0] = \"None\";\n /** Enable the element action is Port */\n ElementAction[ElementAction[\"ElementIsPort\"] = 2] = \"ElementIsPort\";\n /** Enable the element action as Group */\n ElementAction[ElementAction[\"ElementIsGroup\"] = 4] = \"ElementIsGroup\";\n /** Enable the element action if swimlaneHeader is rendered */\n ElementAction[ElementAction[\"HorizontalLaneHeader\"] = 8] = \"HorizontalLaneHeader\";\n})(ElementAction || (ElementAction = {}));\n/** Enables/Disables the handles of the selector\n * Rotate - Enable Rotate Thumb\n * ConnectorSource - Enable Connector source point\n * ConnectorTarget - Enable Connector target point\n * ResizeNorthEast - Enable ResizeNorthEast Resize\n * ResizeEast - Enable ResizeEast Resize\n * ResizeSouthEast - Enable ResizeSouthEast Resize\n * ResizeSouth - Enable ResizeSouth Resize\n * ResizeSouthWest - Enable ResizeSouthWest Resize\n * ResizeWest - Enable ResizeWest Resize\n * ResizeNorthWest - Enable ResizeNorthWest Resize\n * ResizeNorth - Enable ResizeNorth Resize\n * Default - Enables all constraints\n *\n * @private\n */\nexport var ThumbsConstraints;\n(function (ThumbsConstraints) {\n /** Enable Rotate Thumb */\n ThumbsConstraints[ThumbsConstraints[\"Rotate\"] = 2] = \"Rotate\";\n /** Enable Connector source point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorSource\"] = 4] = \"ConnectorSource\";\n /** Enable Connector target point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorTarget\"] = 8] = \"ConnectorTarget\";\n /** Enable ResizeNorthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthEast\"] = 16] = \"ResizeNorthEast\";\n /** Enable ResizeEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeEast\"] = 32] = \"ResizeEast\";\n /** Enable ResizeSouthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthEast\"] = 64] = \"ResizeSouthEast\";\n /** Enable ResizeSouth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouth\"] = 128] = \"ResizeSouth\";\n /** Enable ResizeSouthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthWest\"] = 256] = \"ResizeSouthWest\";\n /** Enable ResizeWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeWest\"] = 512] = \"ResizeWest\";\n /** Enable ResizeNorthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthWest\"] = 1024] = \"ResizeNorthWest\";\n /** Enable ResizeNorth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorth\"] = 2048] = \"ResizeNorth\";\n /** Enables all constraints */\n ThumbsConstraints[ThumbsConstraints[\"Default\"] = 4094] = \"Default\";\n})(ThumbsConstraints || (ThumbsConstraints = {}));\n/**\n * Enables/Disables certain features of diagram\n * None - Disable DiagramConstraints constraints\n * Bridging - Enables/Disable Bridging support for connector\n * UndoRedo - Enables/Disable the Undo/Redo support\n * Tooltip - Enables/Disable Tooltip support\n * UserInteraction - Enables/Disable UserInteraction support for the diagram\n * ApiUpdate - Enables/Disable ApiUpdate support for the diagram\n * PageEditable - Enables/Disable PageEditable support for the diagram\n * Zoom - Enables/Disable Zoom support for the diagram\n * PanX - Enables/Disable PanX support for the diagram\n * PanY - Enables/Disable PanY support for the diagram\n * Pan - Enables/Disable Pan support the diagram\n * ZoomTextEdit - Enables/Disables zooming the text box while editing the text\n * Virtualization - Enables/Disable Virtualization support the diagram\n * Default - Enables/Disable all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var DiagramConstraints;\n(function (DiagramConstraints) {\n /** Disable DiagramConstraints constraints */\n DiagramConstraints[DiagramConstraints[\"None\"] = 1] = \"None\";\n /** Enables/Disable Bridging support for connector */\n DiagramConstraints[DiagramConstraints[\"Bridging\"] = 2] = \"Bridging\";\n /** Enables/Disable the Undo/Redo support */\n DiagramConstraints[DiagramConstraints[\"UndoRedo\"] = 4] = \"UndoRedo\";\n /** Enables/Disable Tooltip support */\n DiagramConstraints[DiagramConstraints[\"Tooltip\"] = 8] = \"Tooltip\";\n /** Enables/Disable UserInteraction support for the diagram */\n DiagramConstraints[DiagramConstraints[\"UserInteraction\"] = 16] = \"UserInteraction\";\n /** Enables/Disable ApiUpdate support for the diagram */\n DiagramConstraints[DiagramConstraints[\"ApiUpdate\"] = 32] = \"ApiUpdate\";\n /** Enables/Disable PageEditable support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PageEditable\"] = 48] = \"PageEditable\";\n /** Enables/Disable Zoom support for the diagram */\n DiagramConstraints[DiagramConstraints[\"Zoom\"] = 64] = \"Zoom\";\n /** Enables/Disable PanX support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PanX\"] = 128] = \"PanX\";\n /** Enables/Disable PanY support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PanY\"] = 256] = \"PanY\";\n /** Enables/Disable Pan support the diagram */\n DiagramConstraints[DiagramConstraints[\"Pan\"] = 384] = \"Pan\";\n /** Enables/Disables zooming the text box while editing the text */\n DiagramConstraints[DiagramConstraints[\"ZoomTextEdit\"] = 512] = \"ZoomTextEdit\";\n /** Enables/Disable Virtualization support the diagram */\n DiagramConstraints[DiagramConstraints[\"Virtualization\"] = 1024] = \"Virtualization\";\n /** Enables/ Disable the line routing */\n DiagramConstraints[DiagramConstraints[\"LineRouting\"] = 2048] = \"LineRouting\";\n /** Enables/Disable all constraints */\n DiagramConstraints[DiagramConstraints[\"Default\"] = 500] = \"Default\";\n})(DiagramConstraints || (DiagramConstraints = {}));\n/**\n * Activates the diagram tools\n * None - Enables/Disable single select support for the diagram\n * SingleSelect - Enables/Disable single select support for the diagram\n * MultipleSelect - Enables/Disable MultipleSelect select support for the diagram\n * ZoomPan - Enables/Disable ZoomPan support for the diagram\n * DrawOnce - Enables/Disable continuousDraw support for the diagram\n * ContinuousDraw - Enables/Disable continuousDraw support for the diagram\n * Default - Enables/Disable all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var DiagramTools;\n(function (DiagramTools) {\n /** Disable all constraints */\n DiagramTools[DiagramTools[\"None\"] = 0] = \"None\";\n /** Enables/Disable single select support for the diagram */\n DiagramTools[DiagramTools[\"SingleSelect\"] = 1] = \"SingleSelect\";\n /** Enables/Disable MultipleSelect select support for the diagram */\n DiagramTools[DiagramTools[\"MultipleSelect\"] = 2] = \"MultipleSelect\";\n /** Enables/Disable ZoomPan support for the diagram */\n DiagramTools[DiagramTools[\"ZoomPan\"] = 4] = \"ZoomPan\";\n /** Enables/Disable DrawOnce support for the diagram */\n DiagramTools[DiagramTools[\"DrawOnce\"] = 8] = \"DrawOnce\";\n /** Enables/Disable continuousDraw support for the diagram */\n DiagramTools[DiagramTools[\"ContinuousDraw\"] = 16] = \"ContinuousDraw\";\n /** Enables/Disable all constraints */\n DiagramTools[DiagramTools[\"Default\"] = 3] = \"Default\";\n})(DiagramTools || (DiagramTools = {}));\n/**\n * Defines the container/canvas transform\n * Self - Sets the transform type as Self\n * Parent - Sets the transform type as Parent\n */\nexport var Transform;\n(function (Transform) {\n /** Self - Sets the transform type as Self */\n Transform[Transform[\"Self\"] = 1] = \"Self\";\n /** Parent - Sets the transform type as Parent */\n Transform[Transform[\"Parent\"] = 2] = \"Parent\";\n})(Transform || (Transform = {}));\n/**\n * Defines the rendering mode for diagram\n * Canvas - Sets the rendering mode type as Canvas\n * Svg - Sets the rendering mode type as Svg\n */\nexport var RenderMode;\n(function (RenderMode) {\n /** Canvas - Sets the rendering mode type as Canvas */\n RenderMode[RenderMode[\"Canvas\"] = 0] = \"Canvas\";\n /** Svg - Sets the rendering mode type as Svg */\n RenderMode[RenderMode[\"Svg\"] = 1] = \"Svg\";\n})(RenderMode || (RenderMode = {}));\n/**\n * Sets a combination of key modifiers, on recognition of which the command will be executed.They are\n * * None - no modifiers are pressed\n * * Control - ctrl key\n * * Meta - meta key im mac\n * * Alt - alt key\n * * Shift - shift key\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var KeyModifiers;\n(function (KeyModifiers) {\n /** No modifiers are pressed */\n KeyModifiers[KeyModifiers[\"None\"] = 0] = \"None\";\n /** The CTRL key */\n KeyModifiers[KeyModifiers[\"Control\"] = 1] = \"Control\";\n /** The Meta key pressed in Mac */\n KeyModifiers[KeyModifiers[\"Meta\"] = 1] = \"Meta\";\n /** The ALT key */\n KeyModifiers[KeyModifiers[\"Alt\"] = 2] = \"Alt\";\n /** The Shift key */\n KeyModifiers[KeyModifiers[\"Shift\"] = 4] = \"Shift\";\n})(KeyModifiers || (KeyModifiers = {}));\n/**\n * Sets the key value, on recognition of which the command will be executed. They are\n * * none - no key\n * * Number0 = The 0 key\n * * Number1 = The 1 key\n * * Number2 = The 2 key\n * * Number3 = The 3 key\n * * Number4 = The 4 key\n * * Number5 = The 5 key\n * * Number6 = The 6 key\n * * Number7 = The 7 key\n * * Number8 = The 8 key\n * * Number9 = The 9 key\n * * Number0 = The 0 key\n * * BackSpace = The BackSpace key\n * * F1 = The f1 key\n * * F2 = The f2 key\n * * F3 = The f3 key\n * * F4 = The f4 key\n * * F5 = The f5 key\n * * F6 = The f6 key\n * * F7 = The f7 key\n * * F8 = The f8 key\n * * F9 = The f9 key\n * * F10 = The f10 key\n * * F11 = The f11 key\n * * F12 = The f12 key\n * * A = The a key\n * * B = The b key\n * * C = The c key\n * * D = The d key\n * * E = The e key\n * * F = The f key\n * * G = The g key\n * * H = The h key\n * * I = The i key\n * * J = The j key\n * * K = The k key\n * * L = The l key\n * * M = The m key\n * * N = The n key\n * * O = The o key\n * * P = The p key\n * * Q = The q key\n * * R = The r key\n * * S = The s key\n * * T = The t key\n * * U = The u key\n * * V = The v key\n * * W = The w key\n * * X = The x key\n * * Y = The y key\n * * Z = The z key\n * * Left = The left key\n * * Right = The right key\n * * Top = The top key\n * * Bottom = The bottom key\n * * Escape = The Escape key\n * * Tab = The tab key\n * * Delete = The delete key\n * * Enter = The enter key\n * * The Space key\n * * The page up key\n * * The page down key\n * * The end key\n * * The home key\n * * The Minus\n * * The Plus\n * * The Star\n * * The Open Square Bracket\n * * The close Square Bracket\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var Keys;\n(function (Keys) {\n /** No key pressed */\n Keys[Keys[\"None\"] = null] = \"None\";\n /** The 0 key */\n Keys[Keys[\"Number0\"] = 0] = \"Number0\";\n /** The 1 key */\n Keys[Keys[\"Number1\"] = 1] = \"Number1\";\n /** The 2 key */\n Keys[Keys[\"Number2\"] = 2] = \"Number2\";\n /** The 3 key */\n Keys[Keys[\"Number3\"] = 3] = \"Number3\";\n /** The 4 key */\n Keys[Keys[\"Number4\"] = 4] = \"Number4\";\n /** The 5 key */\n Keys[Keys[\"Number5\"] = 5] = \"Number5\";\n /** The 6 key */\n Keys[Keys[\"Number6\"] = 6] = \"Number6\";\n /** The 7 key */\n Keys[Keys[\"Number7\"] = 7] = \"Number7\";\n /** The 8 key */\n Keys[Keys[\"Number8\"] = 8] = \"Number8\";\n /** The 9 key */\n Keys[Keys[\"Number9\"] = 9] = \"Number9\";\n /** The A key */\n Keys[Keys[\"A\"] = 65] = \"A\";\n /** The B key */\n Keys[Keys[\"B\"] = 66] = \"B\";\n /** The C key */\n Keys[Keys[\"C\"] = 67] = \"C\";\n /** The D key */\n Keys[Keys[\"D\"] = 68] = \"D\";\n /** The E key */\n Keys[Keys[\"E\"] = 69] = \"E\";\n /** The F key */\n Keys[Keys[\"F\"] = 70] = \"F\";\n /** The G key */\n Keys[Keys[\"G\"] = 71] = \"G\";\n /** The H key */\n Keys[Keys[\"H\"] = 72] = \"H\";\n /** The I key */\n Keys[Keys[\"I\"] = 73] = \"I\";\n /** The J key */\n Keys[Keys[\"J\"] = 74] = \"J\";\n /** The K key */\n Keys[Keys[\"K\"] = 75] = \"K\";\n /** The L key */\n Keys[Keys[\"L\"] = 76] = \"L\";\n /** The M key */\n Keys[Keys[\"M\"] = 77] = \"M\";\n /** The N key */\n Keys[Keys[\"N\"] = 78] = \"N\";\n /** The O key */\n Keys[Keys[\"O\"] = 79] = \"O\";\n /** The P key */\n Keys[Keys[\"P\"] = 80] = \"P\";\n /** The Q key */\n Keys[Keys[\"Q\"] = 81] = \"Q\";\n /** The R key */\n Keys[Keys[\"R\"] = 82] = \"R\";\n /** The S key */\n Keys[Keys[\"S\"] = 83] = \"S\";\n /** The T key */\n Keys[Keys[\"T\"] = 84] = \"T\";\n /** The U key */\n Keys[Keys[\"U\"] = 85] = \"U\";\n /** The V key */\n Keys[Keys[\"V\"] = 86] = \"V\";\n /** The W key */\n Keys[Keys[\"W\"] = 87] = \"W\";\n /** The X key */\n Keys[Keys[\"X\"] = 88] = \"X\";\n /** The Y key */\n Keys[Keys[\"Y\"] = 89] = \"Y\";\n /** The Z key */\n Keys[Keys[\"Z\"] = 90] = \"Z\";\n /** The left arrow key */\n Keys[Keys[\"Left\"] = 37] = \"Left\";\n /** The up arrow key */\n Keys[Keys[\"Up\"] = 38] = \"Up\";\n /** The right arrow key */\n Keys[Keys[\"Right\"] = 39] = \"Right\";\n /** The down arrow key */\n Keys[Keys[\"Down\"] = 40] = \"Down\";\n /** The Escape key */\n Keys[Keys[\"Escape\"] = 27] = \"Escape\";\n /** The Space key */\n Keys[Keys[\"Space\"] = 32] = \"Space\";\n /** The page up key */\n Keys[Keys[\"PageUp\"] = 33] = \"PageUp\";\n /** The Space key */\n Keys[Keys[\"PageDown\"] = 34] = \"PageDown\";\n /** The Space key */\n Keys[Keys[\"End\"] = 35] = \"End\";\n /** The Space key */\n Keys[Keys[\"Home\"] = 36] = \"Home\";\n /** The delete key */\n Keys[Keys[\"Delete\"] = 46] = \"Delete\";\n /** The tab key */\n Keys[Keys[\"Tab\"] = 9] = \"Tab\";\n /** The enter key */\n Keys[Keys[\"Enter\"] = 13] = \"Enter\";\n /** The BackSpace key */\n Keys[Keys[\"BackSpace\"] = 8] = \"BackSpace\";\n /** The F1 key */\n Keys[Keys[\"F1\"] = 112] = \"F1\";\n /** The F2 key */\n Keys[Keys[\"F2\"] = 113] = \"F2\";\n /** The F3 key */\n Keys[Keys[\"F3\"] = 114] = \"F3\";\n /** The F4 key */\n Keys[Keys[\"F4\"] = 115] = \"F4\";\n /** The F5 key */\n Keys[Keys[\"F5\"] = 116] = \"F5\";\n /** The F6 key */\n Keys[Keys[\"F6\"] = 117] = \"F6\";\n /** The F7 key */\n Keys[Keys[\"F7\"] = 118] = \"F7\";\n /** The F8 key */\n Keys[Keys[\"F8\"] = 119] = \"F8\";\n /** The F9 key */\n Keys[Keys[\"F9\"] = 120] = \"F9\";\n /** The F10 key */\n Keys[Keys[\"F10\"] = 121] = \"F10\";\n /** The F111 key */\n Keys[Keys[\"F11\"] = 122] = \"F11\";\n /** The F12 key */\n Keys[Keys[\"F12\"] = 123] = \"F12\";\n /** The Star */\n Keys[Keys[\"Star\"] = 56] = \"Star\";\n /** The Plus */\n Keys[Keys[\"Plus\"] = 187] = \"Plus\";\n /** The Minus */\n Keys[Keys[\"Minus\"] = 189] = \"Minus\";\n /** The Open Square bracket */\n Keys[Keys[\"BracketLeft\"] = 219] = \"BracketLeft\";\n /** The close Square bracket */\n Keys[Keys[\"BracketRight\"] = 221] = \"BracketRight\";\n})(Keys || (Keys = {}));\n/**\n * Enables/Disables certain actions of diagram\n * * Render - Indicates the diagram is in render state.\n * * PublicMethod - Indicates the diagram public method is in action.\n * * ToolAction - Indicates the diagram Tool is in action.\n * * UndoRedo - Indicates the diagram undo/redo is in action.\n * * TextEdit - Indicates the text editing is in progress.\n * * Group - Indicates the group is in progress.\n * * Clear - Indicates diagram have clear all.\n * * PreventClearSelection - prevents diagram from clear selection\n */\nexport var DiagramAction;\n(function (DiagramAction) {\n /** Indicates the diagram is in render state.r */\n DiagramAction[DiagramAction[\"Render\"] = 2] = \"Render\";\n /** Indicates the diagram public method is in action. */\n DiagramAction[DiagramAction[\"PublicMethod\"] = 4] = \"PublicMethod\";\n /** Indicates the diagram Tool is in action. */\n DiagramAction[DiagramAction[\"ToolAction\"] = 8] = \"ToolAction\";\n /** Indicates the diagram undo/redo is in action. */\n DiagramAction[DiagramAction[\"UndoRedo\"] = 16] = \"UndoRedo\";\n /** Indicates the text editing is in progress. */\n DiagramAction[DiagramAction[\"TextEdit\"] = 32] = \"TextEdit\";\n /** Indicates the group is in progress. */\n DiagramAction[DiagramAction[\"Group\"] = 64] = \"Group\";\n /** Indicates diagram have clear all. */\n DiagramAction[DiagramAction[\"Clear\"] = 128] = \"Clear\";\n /** prevents diagram from clear selection. */\n DiagramAction[DiagramAction[\"PreventClearSelection\"] = 256] = \"PreventClearSelection\";\n /** Indicates whether drag or rotate tool has been activated */\n DiagramAction[DiagramAction[\"Interactions\"] = 512] = \"Interactions\";\n /** Use to prevent the history during some action in diagram */\n DiagramAction[DiagramAction[\"PreventHistory\"] = 1024] = \"PreventHistory\";\n /** Use to prevent the icon while expand a node in diagram */\n DiagramAction[DiagramAction[\"PreventIconsUpdate\"] = 2048] = \"PreventIconsUpdate\";\n /** Use to prevent the collection change event while dragging lane from palette and over it in diagram */\n DiagramAction[DiagramAction[\"PreventCollectionChangeOnDragOver\"] = 4096] = \"PreventCollectionChangeOnDragOver\";\n /** Use to prevent the z order on dragging the diagram elements */\n DiagramAction[DiagramAction[\"PreventZIndexOnDragging\"] = 8192] = \"PreventZIndexOnDragging\";\n /** Indicates whether group dragging has been activated */\n DiagramAction[DiagramAction[\"isGroupDragging\"] = 16384] = \"isGroupDragging\";\n /** Indicates whether drag is initiated by mouse */\n DiagramAction[DiagramAction[\"DragUsingMouse\"] = 32768] = \"DragUsingMouse\";\n /** Indicates whether decorator property is changed or not */\n DiagramAction[DiagramAction[\"DecoratorPropertyChange\"] = 65536] = \"DecoratorPropertyChange\";\n /** Avoid dropping of child nodes into the swim lane */\n DiagramAction[DiagramAction[\"PreventLaneContainerUpdate\"] = 131072] = \"PreventLaneContainerUpdate\";\n})(DiagramAction || (DiagramAction = {}));\n/**\n * Defines the Selector type to be drawn\n * None - Draws Normal selector with resize handles\n * Symbol - Draws only the rectangle for the selector\n */\nexport var RendererAction;\n(function (RendererAction) {\n /** None - Draws Normal selector with resize handles */\n RendererAction[RendererAction[\"None\"] = 2] = \"None\";\n /** DrawSelectorBorder - Draws only the Border for the selector */\n RendererAction[RendererAction[\"DrawSelectorBorder\"] = 4] = \"DrawSelectorBorder\";\n /** PreventRenderSelector - Avoid the render of selector during interaction */\n RendererAction[RendererAction[\"PreventRenderSelector\"] = 8] = \"PreventRenderSelector\";\n})(RendererAction || (RendererAction = {}));\nexport var RealAction;\n(function (RealAction) {\n RealAction[RealAction[\"None\"] = 0] = \"None\";\n RealAction[RealAction[\"PreventDrag\"] = 2] = \"PreventDrag\";\n RealAction[RealAction[\"PreventScale\"] = 4] = \"PreventScale\";\n RealAction[RealAction[\"PreventDataInit\"] = 8] = \"PreventDataInit\";\n /** Indicates when the diagram is scrolled horizontal using scroll bar */\n RealAction[RealAction[\"hScrollbarMoved\"] = 16] = \"hScrollbarMoved\";\n /** Indicates when the diagram is scrolled vertical using scroll bar */\n RealAction[RealAction[\"vScrollbarMoved\"] = 32] = \"vScrollbarMoved\";\n /** Indicates whether animation happens or not */\n RealAction[RealAction[\"AnimationClick\"] = 64] = \"AnimationClick\";\n /** Enable the group action */\n RealAction[RealAction[\"EnableGroupAction\"] = 128] = \"EnableGroupAction\";\n /** Indicate action in Progress */\n RealAction[RealAction[\"PanInProgress\"] = 256] = \"PanInProgress\";\n /** Indicate overview action */\n RealAction[RealAction[\"OverViewAction\"] = 512] = \"OverViewAction\";\n})(RealAction || (RealAction = {}));\n/** @private */\nexport var ScrollActions;\n(function (ScrollActions) {\n ScrollActions[ScrollActions[\"None\"] = 0] = \"None\";\n /** Indicates when the scroll properties are changed using property change */\n ScrollActions[ScrollActions[\"PropertyChange\"] = 1024] = \"PropertyChange\";\n /** Indicates when the scroll properties are changed using interaction */\n ScrollActions[ScrollActions[\"Interaction\"] = 2048] = \"Interaction\";\n})(ScrollActions || (ScrollActions = {}));\n/** @private */\nexport var NoOfSegments;\n(function (NoOfSegments) {\n NoOfSegments[NoOfSegments[\"Zero\"] = 0] = \"Zero\";\n NoOfSegments[NoOfSegments[\"One\"] = 1] = \"One\";\n NoOfSegments[NoOfSegments[\"Two\"] = 2] = \"Two\";\n NoOfSegments[NoOfSegments[\"Three\"] = 3] = \"Three\";\n NoOfSegments[NoOfSegments[\"Four\"] = 4] = \"Four\";\n NoOfSegments[NoOfSegments[\"Five\"] = 5] = \"Five\";\n})(NoOfSegments || (NoOfSegments = {}));\n/**\n * events of diagram\n *\n * @private\n */\nexport var DiagramEvent;\n(function (DiagramEvent) {\n DiagramEvent[DiagramEvent[\"collectionChange\"] = 0] = \"collectionChange\";\n DiagramEvent[DiagramEvent[\"rotateChange\"] = 1] = \"rotateChange\";\n DiagramEvent[DiagramEvent[\"positionChange\"] = 2] = \"positionChange\";\n DiagramEvent[DiagramEvent[\"propertyChange\"] = 3] = \"propertyChange\";\n DiagramEvent[DiagramEvent[\"selectionChange\"] = 4] = \"selectionChange\";\n DiagramEvent[DiagramEvent[\"sizeChange\"] = 5] = \"sizeChange\";\n DiagramEvent[DiagramEvent[\"drop\"] = 6] = \"drop\";\n DiagramEvent[DiagramEvent[\"sourcePointChange\"] = 7] = \"sourcePointChange\";\n DiagramEvent[DiagramEvent[\"targetPointChange\"] = 8] = \"targetPointChange\";\n DiagramEvent[DiagramEvent[\"connectionChange\"] = 9] = \"connectionChange\";\n DiagramEvent[DiagramEvent[\"animationComplete\"] = 10] = \"animationComplete\";\n DiagramEvent[DiagramEvent[\"click\"] = 11] = \"click\";\n DiagramEvent[DiagramEvent[\"doubleClick\"] = 12] = \"doubleClick\";\n DiagramEvent[DiagramEvent[\"scrollChange\"] = 13] = \"scrollChange\";\n DiagramEvent[DiagramEvent[\"dragEnter\"] = 14] = \"dragEnter\";\n DiagramEvent[DiagramEvent[\"dragLeave\"] = 15] = \"dragLeave\";\n DiagramEvent[DiagramEvent[\"dragOver\"] = 16] = \"dragOver\";\n DiagramEvent[DiagramEvent[\"textEdit\"] = 17] = \"textEdit\";\n DiagramEvent[DiagramEvent[\"paletteSelectionChange\"] = 18] = \"paletteSelectionChange\";\n DiagramEvent[DiagramEvent[\"historyChange\"] = 19] = \"historyChange\";\n DiagramEvent[DiagramEvent[\"mouseEnter\"] = 20] = \"mouseEnter\";\n DiagramEvent[DiagramEvent[\"mouseLeave\"] = 21] = \"mouseLeave\";\n DiagramEvent[DiagramEvent[\"mouseOver\"] = 22] = \"mouseOver\";\n DiagramEvent[DiagramEvent[\"expandStateChange\"] = 23] = \"expandStateChange\";\n DiagramEvent[DiagramEvent[\"segmentCollectionChange\"] = 24] = \"segmentCollectionChange\";\n DiagramEvent[DiagramEvent[\"commandExecute\"] = 25] = \"commandExecute\";\n DiagramEvent[DiagramEvent[\"historyStateChange\"] = 26] = \"historyStateChange\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseDown\"] = 27] = \"onUserHandleMouseDown\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseUp\"] = 28] = \"onUserHandleMouseUp\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseEnter\"] = 29] = \"onUserHandleMouseEnter\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseLeave\"] = 30] = \"onUserHandleMouseLeave\";\n DiagramEvent[DiagramEvent[\"onImageLoad\"] = 31] = \"onImageLoad\";\n DiagramEvent[DiagramEvent[\"onDoBindingInit\"] = 32] = \"onDoBindingInit\";\n DiagramEvent[DiagramEvent[\"keyUp\"] = 33] = \"keyUp\";\n DiagramEvent[DiagramEvent[\"keyDown\"] = 34] = \"keyDown\";\n DiagramEvent[DiagramEvent[\"fixedUserHandleClick\"] = 35] = \"fixedUserHandleClick\";\n DiagramEvent[DiagramEvent[\"elementDraw\"] = 36] = \"elementDraw\";\n DiagramEvent[DiagramEvent[\"mouseWheel\"] = 37] = \"mouseWheel\";\n DiagramEvent[DiagramEvent[\"segmentChange\"] = 38] = \"segmentChange\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseDown\"] = 39] = \"onFixedUserHandleMouseDown\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseUp\"] = 40] = \"onFixedUserHandleMouseUp\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseEnter\"] = 41] = \"onFixedUserHandleMouseEnter\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseLeave\"] = 42] = \"onFixedUserHandleMouseLeave\";\n DiagramEvent[DiagramEvent[\"loaded\"] = 43] = \"loaded\";\n})(DiagramEvent || (DiagramEvent = {}));\n/** Enables/Disables certain features of port connection\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var PortConstraints;\n(function (PortConstraints) {\n /** Disable all constraints */\n PortConstraints[PortConstraints[\"None\"] = 1] = \"None\";\n /** Enables connections with connector */\n PortConstraints[PortConstraints[\"Drag\"] = 2] = \"Drag\";\n /** Enables to create the connection when mouse hover on the port */\n PortConstraints[PortConstraints[\"Draw\"] = 4] = \"Draw\";\n /** Enables to only connect the target end of connector */\n PortConstraints[PortConstraints[\"InConnect\"] = 8] = \"InConnect\";\n /** Enables to only connect the source end of connector */\n PortConstraints[PortConstraints[\"OutConnect\"] = 16] = \"OutConnect\";\n /**Enables or disables the Tooltip for the ports*/\n PortConstraints[PortConstraints[\"ToolTip\"] = 32] = \"ToolTip\";\n /** Enables or disables the Tooltip for the ports */\n PortConstraints[PortConstraints[\"InheritTooltip\"] = 64] = \"InheritTooltip\";\n /** Enables all constraints */\n PortConstraints[PortConstraints[\"Default\"] = 24] = \"Default\";\n})(PortConstraints || (PortConstraints = {}));\n/**\n * Defines the context menu click\n * contextMenuClick - Sets the context menu click as contextMenuClick\n */\nexport var contextMenuClick = \n/** contextMenuClick - Sets the context menu click as contextMenuClick */\n'contextMenuClick';\n/**\n * Defines the context menu open\n * contextMenuOpen - Sets the context menu open as contextMenuOpen\n */\nexport var contextMenuOpen = \n/** contextMenuOpen - Sets the context menu open as contextMenuOpen */\n'contextMenuOpen';\n/**\n * Defines the context menu Before Item Render\n * contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender\n */\nexport var contextMenuBeforeItemRender = \n/** contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender */\n'contextMenuBeforeItemRender';\n/**\n * Defines the visibility of the control points in the Bezier connector\n */\nexport var ControlPointsVisibility;\n(function (ControlPointsVisibility) {\n /** None - Hides all the control points of the Bezier connector*/\n ControlPointsVisibility[ControlPointsVisibility[\"None\"] = 1] = \"None\";\n /** Source - Shows the source control point*/\n ControlPointsVisibility[ControlPointsVisibility[\"Source\"] = 2] = \"Source\";\n /** Target - Shows the target control point*/\n ControlPointsVisibility[ControlPointsVisibility[\"Target\"] = 4] = \"Target\";\n /** Intermediate - Shows the intermediate control points*/\n ControlPointsVisibility[ControlPointsVisibility[\"Intermediate\"] = 8] = \"Intermediate\";\n /** All - Shows all the control points of the Bezier connector*/\n ControlPointsVisibility[ControlPointsVisibility[\"All\"] = 14] = \"All\";\n})(ControlPointsVisibility || (ControlPointsVisibility = {}));\nexport var BezierSmoothness;\n(function (BezierSmoothness) {\n /** Disable all smoothness Constraints. */\n BezierSmoothness[BezierSmoothness[\"None\"] = 0] = \"None\";\n /** Enables the SymmetricAngle for a bezier segment to the angle between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"SymmetricAngle\"] = 2] = \"SymmetricAngle\";\n /** Enables the SymmetricDistance for bezier segment to the distance between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"SymmetricDistance\"] = 4] = \"SymmetricDistance\";\n /** Enables the symmetric for bezier segment to the distance and angle between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"Default\"] = 6] = \"Default\";\n})(BezierSmoothness || (BezierSmoothness = {}));\n","import { Transform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { getBounds } from '../../utility/base-util';\n/**\n * DiagramElement module defines the basic unit of diagram\n */\nvar DiagramElement = /** @class */ (function () {\n function DiagramElement() {\n /**\n * Sets/Gets the reference point of the element\n * ```html\n *
\n * ```\n * ```typescript\n * let stackPanel: StackPanel = new StackPanel();\n * stackPanel.offsetX = 300; stackPanel.offsetY = 200;\n * stackPanel.width = 100; stackPanel.height = 100;\n * stackPanel.style.fill = 'red';\n * stackPanel.pivot = { x: 0.5, y: 0.5 };\n * let diagram: Diagram = new Diagram({\n * ...\n * basicElements: [stackPanel],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n this.pivot = { x: 0.5, y: 0.5 };\n /**\n * Sets or gets whether the content of the element needs to be measured\n */\n this.isDirt = true;\n /**\n * set to true during print and eport\n */\n /** @private */\n this.isExport = false;\n /**\n * set scaling value for print and export\n */\n /** @private */\n this.exportScaleValue = { x: 0, y: 0 };\n /**\n * set scaling value for print and export\n */\n /** @private */\n this.exportScaleOffset = { x: 0, y: 0 };\n /**\n * Check whether style need to be apply or not\n */\n /** @private */\n this.canApplyStyle = true;\n /**\n * Sets or gets whether the content of the element to be visible\n */\n this.visible = true;\n /**\n * Sets/Gets the x-coordinate of the element\n */\n this.offsetX = 0;\n /**\n * Sets/Gets the y-coordinate of the element\n */\n this.offsetY = 0;\n /**\n * Set the corner of the element\n */\n this.cornerRadius = 0;\n /**\n * Sets/Gets the minimum height of the element\n */\n this.minHeight = undefined;\n /**\n * Sets/Gets the minimum width of the element\n */\n this.minWidth = undefined;\n /**\n * Sets/Gets the maximum width of the element\n */\n this.maxWidth = undefined;\n /**\n * Sets/Gets the maximum height of the element\n */\n this.maxHeight = undefined;\n /**\n * Sets/Gets the width of the element\n */\n this.width = undefined;\n /**\n * Sets/Gets the height of the element\n */\n this.height = undefined;\n /**\n * Sets/Gets the rotate angle of the element\n */\n this.rotateAngle = 0;\n /**\n * Sets/Gets the margin of the element\n */\n this.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n /**\n * Sets/Gets the allowed direction for connections to the port\n */\n this.connectionDirection = 'Auto';\n /**\n * Sets/Gets how the element has to be horizontally arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Left - Aligns the diagram element at the left of its immediate parent\n * * Right - Aligns the diagram element at the right of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.horizontalAlignment = 'Auto';\n /**\n * Sets/Gets how the element has to be vertically arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Top - Aligns the diagram element at the top of its immediate parent\n * * Bottom - Aligns the diagram element at the bottom of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.verticalAlignment = 'Auto';\n /**\n * Sets/Gets the mirror image of diagram element in both horizontal and vertical directions\n * * FlipHorizontal - Translate the diagram element throughout its immediate parent\n * * FlipVertical - Rotate the diagram element throughout its immediate parent\n */\n this.flip = 'None';\n /**\n * Sets/Gets the element that is to be flipped in assigned flip direction along with the node\n */\n this.flipMode = 'All';\n /**\n * Sets whether the element has to be aligned with respect to a point/with respect to its immediate parent\n * * Point - Diagram elements will be aligned with respect to a point\n * * Object - Diagram elements will be aligned with respect to its immediate parent\n */\n this.relativeMode = 'Point';\n /**\n * Sets whether the element has to be transformed based on its parent or not\n * * Self - Sets the transform type as Self\n * * Parent - Sets the transform type as Parent\n */\n this.transform = Transform.Self | Transform.Parent;\n /**\n * Sets the style of the element\n */\n this.style = { fill: 'white', strokeColor: 'black', opacity: 1, strokeWidth: 1 };\n /**\n * Gets the minimum size that is required by the element\n */\n this.desiredSize = new Size();\n /**\n * Gets the size that the element will be rendered\n */\n this.actualSize = new Size();\n /**\n * Gets the rotate angle that is set to the immediate parent of the element\n */\n this.parentTransform = 0;\n /** @private */\n this.preventContainer = false;\n /**\n * Gets/Set the boolean value for the element\n */\n this.isSvgRender = false;\n /**\n * Gets/Sets the boundary of the element\n */\n this.bounds = new Rect(0, 0, 0, 0);\n /**\n * Defines the appearance of the shadow of the element\n */\n this.shadow = null;\n /**\n * Defines the description of the diagram element\n */\n this.description = '';\n /**\n * Defines whether the element has to be measured or not\n */\n this.staticSize = false;\n /**\n * Defines the shape of the diagram element\n */\n this.shapeType = '';\n /**\n * check whether the element is rect or not\n */\n this.isRectElement = false;\n /** @private */\n this.isCalculateDesiredSize = true;\n /**\n * Set the offset values for container in flipping\n */\n /** @private */\n this.flipOffset = { x: 0, y: 0 };\n /**\n * Defines whether the element is group or port\n */\n /** @private */\n this.elementActions = ElementAction.None;\n /** @private */\n this.inversedAlignment = true;\n //private variables\n this.position = undefined;\n this.unitMode = undefined;\n /** @private */\n this.float = false;\n this.floatingBounds = undefined;\n }\n // public constructor() {\n // this.id = randomId();\n // }\n /**\n * Sets the offset of the element with respect to its parent \\\n *\n * @returns { void }Sets the offset of the element with respect to its parent\\\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {UnitMode} mode - provide the id value.\n *\n * @private\n */\n DiagramElement.prototype.setOffsetWithRespectToBounds = function (x, y, mode) {\n this.unitMode = mode;\n this.position = { x: x, y: y };\n };\n /**\n * Gets the position of the element with respect to its parent \\\n *\n * @returns { PointModel } Gets the position of the element with respect to its parent\\\n * @param {Size} size - provide the x value.\n *\n * @private\n */\n DiagramElement.prototype.getAbsolutePosition = function (size) {\n if (this.position !== undefined) {\n if (this.unitMode === 'Absolute') {\n return this.position;\n }\n else {\n return {\n x: this.position.x * size.width, y: this.position.y * size.height\n };\n }\n }\n return undefined;\n };\n Object.defineProperty(DiagramElement.prototype, \"outerBounds\", {\n get: function () {\n return this.floatingBounds || this.bounds;\n },\n /**\n * used to set the outer bounds value \\\n *\n * @returns { void } used to set the outer bounds value.\\\n * @param {Rect} bounds - provide the id value.\n *\n * @private\n */\n set: function (bounds) {\n this.floatingBounds = bounds;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that the element requires \\\n *\n * @returns { void } Measures the minimum space that the element requires.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Object} obj - provide the id value.\n * @param {Function} callback - provide the id value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n DiagramElement.prototype.measure = function (availableSize, obj, callback) {\n var width = this.width !== undefined ? this.width : (availableSize.width || 0) - this.margin.left - this.margin.right;\n var height = this.height !== undefined ? this.height : (availableSize.height || 0) - this.margin.top - this.margin.bottom;\n if (this.id) {\n if (height === 0 && (this.elementActions & ElementAction.HorizontalLaneHeader)) {\n height = this.actualSize.height;\n }\n }\n this.desiredSize = new Size(width, height);\n if (this.isCalculateDesiredSize) {\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n }\n return this.desiredSize;\n };\n /**\n * Arranges the element \\\n *\n * @returns { PointModel } Arranges the element\\\n * @param {Size} desiredSize - provide the x value.\n *\n * @private\n */\n DiagramElement.prototype.arrange = function (desiredSize) {\n this.actualSize = desiredSize;\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Updates the bounds of the element \\\n *\n * @returns { void } Updates the bounds of the element\\\n *\n * @private\n */\n DiagramElement.prototype.updateBounds = function () {\n this.bounds = getBounds(this);\n };\n /**\n * Validates the size of the element with respect to its minimum and maximum size \\\n *\n * @returns { Size } Validates the size of the element with respect to its minimum and maximum size.\\\n * @param {Size} desiredSize - provide the id value.\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n DiagramElement.prototype.validateDesiredSize = function (desiredSize, availableSize) {\n //Empty canvas\n if (this.isRectElement && !this.width && !this.minWidth && !this.maxWidth) {\n desiredSize.width = 50;\n }\n if (this.isRectElement && !this.height && !this.minHeight && !this.maxHeight) {\n desiredSize.height = 50;\n }\n if (desiredSize === undefined || this.width !== undefined &&\n this.height !== undefined) {\n desiredSize = desiredSize || new Size();\n desiredSize.width = this.width === undefined ? (availableSize.width || 0)\n - this.margin.left - this.margin.right : this.width;\n desiredSize.height = this.height === undefined ? (availableSize.height || 0)\n - this.margin.top - this.margin.bottom : this.height;\n }\n //Considering min values\n if (this.minWidth !== undefined) {\n desiredSize.width = Math.max(desiredSize.width, this.minWidth);\n }\n if (this.minHeight !== undefined) {\n desiredSize.height = Math.max(desiredSize.height, this.minHeight);\n }\n //Considering max values\n if (this.maxWidth !== undefined && this.maxWidth !== 0) {\n desiredSize.width = Math.min(desiredSize.width, this.maxWidth);\n }\n if (this.maxHeight !== undefined && this.maxHeight !== 0) {\n desiredSize.height = Math.min(desiredSize.height, this.maxHeight);\n }\n return desiredSize;\n };\n return DiagramElement;\n}());\nexport { DiagramElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { DiagramElement } from '../elements/diagram-element';\nimport { ElementAction } from '../../enum/enum';\nimport { Thickness } from '../appearance';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { rotatePoint, getOffset } from '../../utility/base-util';\n/**\n * Container module is used to group related objects\n */\nvar Container = /** @class */ (function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Gets/Sets the space between the container and its immediate children\n */\n _this.padding = new Thickness(0, 0, 0, 0);\n //private members\n _this.desiredBounds = undefined;\n /** @private */\n _this.measureChildren = true;\n /** @private */\n _this.prevRotateAngle = 0;\n return _this;\n }\n /**\n * returns whether the container has child elements or not\n */\n Container.prototype.hasChildren = function () {\n if (this.children !== undefined && this.children.length > 0) {\n return true;\n }\n return false;\n };\n /**\n * Measures the minimum space that the container requires\n *\n * @param {Size} availableSize\n * @param {string} id\n * @param {Function} callback\n */\n Container.prototype.measure = function (availableSize, id, callback) {\n // measure the element and find the desired size\n this.desiredBounds = undefined;\n var desired = undefined;\n var child;\n var center = { x: 0, y: 0 };\n var y;\n var x;\n var childBounds;\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n if (child.horizontalAlignment === 'Stretch' && !availableSize.width) {\n availableSize.width = child.bounds.width;\n }\n if (child.verticalAlignment === 'Stretch' && !availableSize.height) {\n availableSize.height = child.bounds.height;\n }\n var force = child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch';\n if (this.measureChildren || force || (child instanceof Container && child.measureChildren !== undefined)) {\n child.measure(availableSize, id, callback);\n }\n childBounds = this.GetChildrenBounds(child);\n if (child.horizontalAlignment !== 'Stretch' && child.verticalAlignment !== 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = childBounds;\n }\n else {\n this.desiredBounds.uniteRect(childBounds);\n }\n }\n else if (this.actualSize && !this.actualSize.width && !this.actualSize.height &&\n !child.preventContainer && child.horizontalAlignment === 'Stretch' && child.verticalAlignment === 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = child.bounds;\n }\n else {\n this.desiredBounds.uniteRect(child.bounds);\n }\n }\n }\n if (this.desiredBounds !== undefined && this.rotateAngle !== 0) {\n var offsetPt = {\n x: this.desiredBounds.x + this.desiredBounds.width * this.pivot.x,\n y: this.desiredBounds.y + this.desiredBounds.height * this.pivot.y\n };\n var newPoint = rotatePoint(this.rotateAngle, undefined, undefined, offsetPt);\n this.desiredBounds.x = newPoint.x - this.desiredBounds.width * this.pivot.x;\n this.desiredBounds.y = newPoint.y - this.desiredBounds.height * this.pivot.y;\n }\n /**\n * Adding padding to the group bounds during initial rendering and for the group selection\n */\n if (this.desiredBounds !== undefined) {\n this.desiredBounds.width += this.padding.left + this.padding.right;\n this.desiredBounds.height += this.padding.top + this.padding.bottom;\n this.desiredBounds.x -= this.padding.left;\n this.desiredBounds.y -= this.padding.top;\n }\n if (this.desiredBounds) {\n desired = new Size(this.desiredBounds.width, this.desiredBounds.height);\n }\n }\n desired = this.validateDesiredSize(desired, availableSize);\n this.stretchChildren(desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the container and its children\n *\n * @param {Size} desiredSize - provide the desiredSize value\n */\n Container.prototype.arrange = function (desiredSize) {\n var child;\n var bounds;\n var childBounds = this.desiredBounds;\n if (childBounds) {\n var x = this.offsetX;\n var y = this.offsetY;\n this.offsetX = childBounds.x + childBounds.width * this.pivot.x;\n this.offsetY = childBounds.y + childBounds.height * this.pivot.y;\n // container has rotateAngle\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n var arrange = false;\n if (child.horizontalAlignment === 'Stretch') {\n child.offsetX = this.offsetX;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n if (this.flip && (this.elementActions & ElementAction.ElementIsGroup)) {\n child.parentTransform = (this.flip === 'Horizontal' || this.flip === 'Vertical') ?\n -child.parentTransform : child.parentTransform;\n }\n arrange = true;\n }\n if (child.verticalAlignment === 'Stretch') {\n child.offsetY = this.offsetY;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (arrange || this.measureChildren || (child instanceof Container && child.measureChildren !== undefined)) {\n child.arrange(child.desiredSize);\n }\n //EJ2-839298 - Connector draw cursor is not enabled while hover the group node port\n if (i === 0) {\n this.outerBounds = child.outerBounds;\n }\n else {\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.prevRotateAngle = this.rotateAngle;\n return desiredSize;\n };\n //protected methods\n /**\n * Stretches the child elements based on the size of the container\n *\n * @param {Size} size - provide the size value\n */\n Container.prototype.stretchChildren = function (size) {\n if (this.hasChildren()) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.horizontalAlignment === 'Stretch' || child.desiredSize.width === undefined) {\n child.desiredSize.width = size.width - child.margin.left - child.margin.right;\n }\n if (child.verticalAlignment === 'Stretch' || child.desiredSize.height === undefined) {\n child.desiredSize.height = size.height - child.margin.top - child.margin.bottom;\n }\n if (child instanceof Container) {\n child.stretchChildren(child.desiredSize);\n }\n }\n }\n };\n /**\n * Considers the padding of the element when measuring its desired size\n * @param {Size} size - provide the size value\n */\n Container.prototype.applyPadding = function (size) {\n size.width += this.padding.left + this.padding.right;\n size.height += this.padding.top + this.padding.bottom;\n };\n /**\n * Finds the offset of the child element with respect to the container\n *\n * @param {DiagramElement} child - provide the child value\n * @param {PointModel} center - provide the center value\n */\n Container.prototype.findChildOffsetFromCenter = function (child, center) {\n var topLeft = { x: center.x - child.desiredSize.width / 2, y: center.y - child.desiredSize.height / 2 };\n var offset = getOffset(topLeft, child);\n //Rotate based on child rotate angle\n offset = rotatePoint(child.rotateAngle, center.x, center.y, offset);\n //Rotate based on parent pivot\n offset = rotatePoint(this.rotateAngle + this.parentTransform, this.offsetX, this.offsetY, offset);\n child.offsetX = offset.x;\n child.offsetY = offset.y;\n };\n //private methods - check its need\n Container.prototype.GetChildrenBounds = function (child) {\n var childBounds;\n var childSize = child.desiredSize.clone();\n var diffAngle = child.rotateAngle - this.rotateAngle;\n var refPoint = { x: child.offsetX, y: child.offsetY };\n var left = refPoint.x - childSize.width * child.pivot.x;\n var top = refPoint.y - childSize.height * child.pivot.y;\n var right = left + childSize.width;\n var bottom = top + childSize.height;\n var topLeft = { x: left, y: top };\n var topRight = { x: right, y: top };\n var bottomLeft = { x: left, y: bottom };\n var bottomRight = { x: right, y: bottom };\n topLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topLeft);\n topRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topRight);\n bottomLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomLeft);\n bottomRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomRight);\n if (this.rotateAngle !== 0) {\n topLeft = rotatePoint(-this.rotateAngle, undefined, undefined, topLeft);\n topRight = rotatePoint(-this.rotateAngle, undefined, undefined, topRight);\n bottomLeft = rotatePoint(-this.rotateAngle, undefined, undefined, bottomLeft);\n bottomRight = rotatePoint(-this.rotateAngle, undefined, undefined, bottomRight);\n }\n return Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n };\n return Container;\n}(DiagramElement));\nexport { Container };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureText } from './../../utility/dom-util';\n/**\n * TextElement is used to display text/annotations\n */\nvar TextElement = /** @class */ (function (_super) {\n __extends(TextElement, _super);\n /**\n * set the id for each element\n */\n function TextElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.textContent = '';\n /** @private */\n _this.canMeasure = true;\n /**Gets or sets the reference mode for annotation rotation. */\n /** @private */\n _this.rotationReference = 'Parent';\n /** @private */\n _this.isLaneOrientation = false;\n /** @private */\n _this.canConsiderBounds = true;\n /** @private */\n _this.annotationVisibility = 'Visible';\n /**\n * sets the hyperlink color to blue\n */\n _this.hyperlink = {\n color: 'blue'\n };\n /** @private */\n _this.doWrap = true;\n _this.textNodes = [];\n /**\n * Defines the appearance of the text element\n */\n _this.style = {\n color: 'black', fill: 'transparent', strokeColor: 'black',\n strokeWidth: 1, fontFamily: 'Arial', fontSize: 12, whiteSpace: 'CollapseSpace',\n textWrapping: 'WrapWithOverflow', textAlign: 'Center', italic: false, bold: false,\n textDecoration: 'None', strokeDashArray: '', opacity: 5, gradient: null,\n textOverflow: 'Wrap'\n };\n _this.style.fill = 'transparent';\n _this.style.strokeColor = 'transparent';\n return _this;\n }\n Object.defineProperty(TextElement.prototype, \"content\", {\n /**\n * gets the content for the text element \\\n *\n * @returns { string | SVGElement } gets the content for the text element.\\\n *\n * @private\n */\n get: function () {\n return this.textContent;\n },\n /**\n * sets the content for the text element \\\n *\n * @returns { void } sets the content for the text element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n if (this.textContent !== value) {\n this.textContent = value;\n this.isDirt = true;\n this.doWrap = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"childNodes\", {\n /**\n * gets the content for the text element \\\n *\n * @returns { string | SVGElement } gets the content for the text element.\\\n *\n * @private\n */\n get: function () {\n return this.textNodes;\n },\n /**\n * sets the content for the text element \\\n *\n * @returns { void } sets the content for the text element.\\\n * @param {SubTextElement[]} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.textNodes = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"wrapBounds\", {\n /**\n * gets the wrapBounds for the text \\\n *\n * @returns { string | SVGElement } gets the wrapBounds for the text.\\\n *\n * @private\n */\n get: function () {\n return this.textWrapBounds;\n },\n /**\n * sets the wrapBounds for the text \\\n *\n * @returns { void } sets the wrapBounds for the text.\\\n * @param {TextBounds} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.textWrapBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * sets the wrapBounds for the text \\\n *\n * @returns { void } sets the wrapBounds for the text.\\\n *\n * @private\n */\n TextElement.prototype.refreshTextElement = function () {\n this.isDirt = true;\n };\n /**\n *Measures the minimum size that is required for the text element\\\n *\n * @returns { Size } Measures the minimum size that is required for the text element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n TextElement.prototype.measure = function (availableSize) {\n var size;\n if (this.isDirt && this.canMeasure) {\n size = measureText(this, this.style, this.content, this.isLaneOrientation ?\n availableSize.height : (this.width || availableSize.width));\n }\n else {\n size = this.desiredSize;\n }\n if (this.width === undefined || this.height === undefined) {\n this.desiredSize = new Size(size.width, size.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the text element\\\n *\n * @returns { Size } Arranges the text element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n TextElement.prototype.arrange = function (desiredSize) {\n if (desiredSize.width !== this.actualSize.width || desiredSize.height !== this.actualSize.height || this.isDirt) {\n this.doWrap = true;\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n return TextElement;\n}(DiagramElement));\nexport { TextElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\nimport { Container } from './container';\nimport { rotateSize } from '../../utility/base-util';\nimport { Transform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { TextElement } from '../elements/text-element';\n/**\n * Canvas module is used to define a plane(canvas) and to arrange the children based on margin\n */\nvar Canvas = /** @class */ (function (_super) {\n __extends(Canvas, _super);\n function Canvas() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Not applicable for canvas\n *\n * @private\n */\n _this.measureChildren = undefined;\n return _this;\n }\n /**\n * Measures the minimum space that the canvas requires \\\n *\n * @returns { Size } Measures the minimum space that the canvas requires .\\\n * @param {string} id - provide the id value.\n * @param {Function} callback - provide the Connector value.\n *\n * @private\n */\n Canvas.prototype.measure = function (availableSize, id, callback) {\n var desired = undefined;\n var desiredBounds = undefined;\n if (this.hasChildren()) {\n //Measuring the children\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child instanceof TextElement) {\n if (child.canMeasure) {\n availableSize.width = availableSize.width || this.maxWidth || this.minWidth;\n child.measure(availableSize);\n }\n }\n else if (!(child instanceof TextElement)) {\n child.measure(availableSize, id, callback);\n }\n var childSize = child.desiredSize.clone();\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n var right = childSize.width + child.margin.right;\n var bottom = childSize.height + child.margin.bottom;\n var childBounds = new Rect(child.margin.left, child.margin.top, right, bottom);\n if (child.float) {\n var position = child.getAbsolutePosition(childSize);\n if (position !== undefined) {\n continue;\n }\n }\n if ((!(child instanceof TextElement)) || (child instanceof TextElement && child.canConsiderBounds)) {\n if (desiredBounds === undefined) {\n desiredBounds = childBounds;\n }\n else {\n desiredBounds.uniteRect(childBounds);\n }\n }\n }\n if (desiredBounds) {\n var leftMargin = 0;\n var topMargin = 0;\n leftMargin = Math.max(desiredBounds.left, 0);\n topMargin = Math.max(desiredBounds.top, 0);\n desired = new Size(desiredBounds.width + leftMargin, desiredBounds.height + topMargin);\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n _super.prototype.stretchChildren.call(this, desired);\n //Considering padding values\n desired.width += this.padding.left + this.padding.right;\n desired.height += this.padding.top + this.padding.bottom;\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the child elements of the canvas\n */\n Canvas.prototype.arrange = function (desiredSize, isStack) {\n this.outerBounds = new Rect();\n if (this.hasChildren()) {\n //let y: number;\n //let x: number;\n var y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top;\n var x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if ((child.transform & Transform.Parent) !== 0) {\n child.parentTransform = this.parentTransform + this.rotateAngle;\n if (this.flip !== 'None' || this.elementActions & ElementAction.ElementIsGroup) {\n // EJ2-911095 - Restrict negative rotate angle for the non flipped text\n child.parentTransform = ((this.flip === 'Horizontal' || this.flip === 'Vertical') && (!(child instanceof TextElement && (this.flipMode === 'Port' || this.flipMode === 'Label' || this.flipMode === 'PortAndLabel' || this.flipMode === 'None')))) ?\n -child.parentTransform : child.parentTransform;\n }\n var childSize = child.desiredSize.clone();\n var topLeft = void 0;\n var center = { x: 0, y: 0 };\n var childX = x;\n var childY = y;\n if (child.relativeMode === 'Point') {\n var position = child.getAbsolutePosition(desiredSize);\n if (position !== undefined) {\n childX += position.x;\n childY += position.y;\n }\n }\n if (child.relativeMode === 'Object') {\n topLeft = this.alignChildBasedOnParent(child, childSize, desiredSize, childX, childY);\n // 896059: Update the flip position of the node to get the docking point of node and connector\n child.flip = this.flip;\n }\n else {\n topLeft = this.alignChildBasedOnaPoint(child, childX, childY);\n }\n center = { x: topLeft.x + childSize.width / 2, y: topLeft.y + childSize.height / 2 };\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n }\n if (isStack && (child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch')) {\n child.arrange(desiredSize);\n }\n else {\n if (child instanceof TextElement && child.canMeasure) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n else if (!(child instanceof TextElement)) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.outerBounds.uniteRect(this.bounds);\n return desiredSize;\n };\n //Aligns the child element based on its parent\n Canvas.prototype.alignChildBasedOnParent = function (child, childSize, parentSize, x, y) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x += child.margin.left;\n break;\n case 'Right':\n x += parentSize.width - childSize.width - child.margin.right;\n break;\n case 'Stretch':\n case 'Center':\n x += parentSize.width / 2 - childSize.width / 2;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y += child.margin.top;\n break;\n case 'Bottom':\n y += parentSize.height - childSize.height - child.margin.bottom;\n break;\n case 'Stretch':\n case 'Center':\n y += parentSize.height / 2 - childSize.height / 2;\n break;\n }\n return { x: x, y: y };\n };\n //Aligns the child elements based on a point\n Canvas.prototype.alignChildBasedOnaPoint = function (child, x, y) {\n x += child.margin.left - child.margin.right;\n y += child.margin.top - child.margin.bottom;\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x = child.inversedAlignment ? x : (x - child.desiredSize.width);\n break;\n case 'Stretch':\n case 'Center':\n x -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n x = child.inversedAlignment ? (x - child.desiredSize.width) : x;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y = child.inversedAlignment ? y : (y - child.desiredSize.height);\n break;\n case 'Stretch':\n case 'Center':\n y -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n y = child.inversedAlignment ? (y - child.desiredSize.height) : y;\n break;\n }\n return { x: x, y: y };\n };\n return Canvas;\n}(Container));\nexport { Canvas };\n","/**\n * BasicShapeDictionary defines the shape of the built-in basic shapes \\\n *\n * @returns { string } BasicShapeDictionary defines the shape of the built-in basic shapes .\\\n * @param {string} shape - provide the element value.\n *\n * @private\n */\nexport function getBasicShape(shape) {\n return basicShapes[shape.toString()];\n}\n// eslint-disable-next-line prefer-const\nvar basicShapes = {\n //Rectangle,\n 'Rectangle': 'M0,0 L50,0 L50,50 L0,50 z',\n //Ellipse,\n 'Ellipse': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z',\n //Hexagon,\n 'Hexagon': 'M30,0 L60,0 L90,30 L60,60 L30,60 L0,30 L30,0 z',\n //Parallelogram,\n 'Parallelogram': 'M30,0 L60,0 L45,30 L15,30 z',\n //Triangle,\n 'Triangle': 'M45,0 L90,45 L0,45 L45,0 z',\n //Plus,\n 'Plus': 'M696.6084,158.2656 L674.8074,158.2656 L674.8074,136.4656 L658.4084,136.4656 L658.4084,158.2656 L636.6084,158.2656' +\n 'L636.6084,174.6646 L658.4084,174.6646 L658.4084,196.4656 L674.8074,196.4656 L674.8074,174.6646 L696.6084,174.6646' +\n 'L696.6084,158.2656 z',\n //Star,\n 'Star': 'M540.3643,137.9336 L546.7973,159.7016 L570.3633,159.7296 L550.7723,171.9366 L558.9053,194.9966 L540.3643,179.4996' +\n 'L521.8223,194.9966 L529.9553,171.9366 L510.3633,159.7296 L533.9313,159.7016 L540.3643,137.9336 z',\n //Pentagon,\n 'Pentagon': 'M30,0 L60,30 L50,70 L10,70 L0,30 L30,0 z',\n //Heptagon,\n 'Heptagon': 'M223.7783,195.7134 L207.1303,174.8364 L213.0713,148.8034 L237.1303,137.2174 L261.1883,148.8034 L267.1303,174.8364' +\n 'L250.4813,195.7134 L223.7783,195.7134 z',\n //Octagon,\n 'Octagon': 'M98.7319,196.4653 L81.1579,178.8923 L81.1579,154.0393 L98.7319,136.4653 L123.5849,136.4653' +\n 'L141.1579,154.0393 L141.1579,178.8923 L123.5849,196.4653 L98.7319,196.4653 z',\n //Trapezoid,\n 'Trapezoid': 'M127.2842,291.4492 L95.0322,291.4492 L81.1582,256.3152 L141.1582,256.3152 L127.2842,291.4492 z',\n //Decagon,\n 'Decagon': 'M657.3379,302.4141 L642.3369,291.5161 L636.6089,273.8821 L642.3369,256.2481 L657.3379,245.3511 L675.8789,245.3511' +\n 'L690.8789,256.2481 L696.6089,273.8821' +\n 'L690.8789,291.5161 L675.8789,302.4141 L657.3379,302.4141 z',\n //RightTriangle,\n 'RightTriangle': 'M836.293,292.9238 L776.293,292.9238 L776.293,254.8408 L836.293,292.9238 z',\n //Cylinder,\n 'Cylinder': 'M 542.802,362.009C 542.802,368.452 525.341,373.676 503.802,373.676C 482.263,373.676 464.802,368.452 464.802,362.009' +\n 'L 464.802,466.484C 464.802,472.928 482.263,478.151 503.802,478.151' +\n 'C 525.341,478.151 542.802,472.928 542.802,466.484L 542.802,362.016C 542.802,368.459 525.341,373.534 503.802,373.534' +\n 'C 482.263,373.534 464.802,368.31 464.802,361.867' +\n 'L 464.802,362.016C 464.802,355.572 482.263,350.349 503.802,350.349C 525.341,350.349 542.802,355.572 542.802,362.016',\n //Diamond,\n 'Diamond': 'M397.784,287.875 L369.5,316.159 L341.216,287.875 L369.5,259.591 L397.784,287.875 z'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { Rect } from '../../primitives/rect';\nimport { measurePath, findSegmentPoints, translatePoints } from './../../utility/dom-util';\nimport { processPathData, splitArrayCollection, transformPath, getPathString } from '../../utility/path-util';\n/**\n * PathElement takes care of how to align the path based on offsetX and offsetY\n */\nvar PathElement = /** @class */ (function (_super) {\n __extends(PathElement, _super);\n /**\n * set the id for each element\n */\n function PathElement() {\n var _this = _super.call(this) || this;\n /**\n * Gets or sets the geometry of the path element\n */\n _this.pathData = '';\n /**\n * Gets/Sets whether the path has to be transformed to fit the given x,y, width, height\n */\n _this.transformPath = true;\n /**\n * Gets/Sets the equivalent path, that will have the origin as 0,0\n */\n _this.absolutePath = '';\n /** @private */\n _this.canMeasurePath = false;\n //Private variables\n /** @private */\n _this.absoluteBounds = new Rect();\n return _this;\n }\n Object.defineProperty(PathElement.prototype, \"data\", {\n /**\n * Gets the geometry of the path element\\\n *\n * @returns { string | SVGElement } Gets the geometry of the path element.\\\n *\n * @private\n */\n get: function () {\n return this.pathData;\n },\n /**\n * Sets the geometry of the path element \\\n *\n * @returns { void } Sets the geometry of the path element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n if (this.pathData !== value) {\n this.pathData = value;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * getPoints methods \\\n *\n * @returns { PointModel[] } Sets the geometry of the path element.\\\n *\n * @private\n */\n PathElement.prototype.getPoints = function () {\n var _this = this;\n if (!this.pointTimer) {\n this.pointTimer = setTimeout(function () {\n _this.points = null;\n _this.pointTimer = null;\n }, 200);\n }\n this.points = this.points || findSegmentPoints(this);\n return translatePoints(this, this.points);\n };\n /**\n * Measures the minimum space that is required to render the element \\\n *\n * @returns { Size } Measures the minimum space that is required to render the element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.measure = function (availableSize) {\n //Performance issue - Avoiding measuring the connector path\n if (this.staticSize && this.width !== undefined && this.height !== undefined) {\n this.absoluteBounds = new Rect(this.offsetX - this.width * this.pivot.x, this.offsetY - this.height * this.pivot.y, this.width, this.height);\n }\n else if (this.isDirt && (this.transformPath || (this.width === undefined || this.height === undefined))\n && (!this.absoluteBounds || this.absoluteBounds.height === 0) || this.canMeasurePath) {\n //Measure the element only whent the path data is changed/ size is not specified\n this.absoluteBounds = measurePath(this.data ? this.data : '');\n }\n if (this.width === undefined) {\n this.desiredSize = new Size(this.absoluteBounds.width, this.height || this.absoluteBounds.height);\n }\n else if (this.height === undefined) {\n this.desiredSize = new Size(this.width || this.absoluteBounds.width, this.absoluteBounds.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n this.canMeasurePath = false;\n return this.desiredSize;\n };\n /**\n * Arranges the path element \\\n *\n * @returns { Size } Arranges the path element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.arrange = function (desiredSize) {\n if (this.isDirt || this.actualSize.width !== desiredSize.width || this.actualSize.height !== desiredSize.height) {\n this.isDirt = true;\n this.absolutePath = this.updatePath(this.data, this.absoluteBounds, desiredSize);\n if (!this.staticSize) {\n this.points = null;\n }\n }\n this.actualSize = this.desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n /**\n * Translates the path to 0,0 and scales the path based on the actual size \\\n *\n * @returns { Size } Arranges the path element.\\\n * @param {string} pathData - provide the id value.\n * @param {Rect} bounds - provide the id value.\n * @param {Size} actualSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.updatePath = function (pathData, bounds, actualSize) {\n var isScale = false;\n var newPathString = '';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n if (actualSize.width !== bounds.width || actualSize.height !== bounds.height) {\n scaleX = actualSize.width / Number(bounds.width ? bounds.width : 1);\n scaleY = actualSize.height / Number(bounds.height ? bounds.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(pathData);\n arrayCollection = splitArrayCollection(arrayCollection);\n if ((isScale || this.isDirt) && this.transformPath) {\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bounds.x, bounds.y, 0, 0);\n }\n else {\n newPathString = getPathString(arrayCollection);\n }\n isScale = false;\n return newPathString;\n };\n return PathElement;\n}(DiagramElement));\nexport { PathElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureImage } from './../../utility/dom-util';\n/**\n * ImageElement defines a basic image elements\n */\nvar ImageElement = /** @class */ (function (_super) {\n __extends(ImageElement, _super);\n /**\n * set the id for each element\n */\n function ImageElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.imageSource = '';\n /**\n * sets scaling factor of the image\n */\n _this.imageScale = 'None';\n /**\n * sets the alignment of the image\n */\n _this.imageAlign = 'None';\n /**\n * Sets how to stretch the image\n */\n _this.stretch = 'Stretch';\n return _this;\n }\n Object.defineProperty(ImageElement.prototype, \"source\", {\n /**\n * Gets the source for the image element\n */\n /**\n * Gets the source for the image element \\\n *\n * @returns { void }Gets the source for the image element.\\\n *\n * @private\n */\n get: function () {\n return this.imageSource;\n },\n /**\n * Sets the source for the image element \\\n *\n * @returns { void }Sets the source for the image element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.imageSource = value;\n this.isDirt = true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures minimum space that is required to render the image \\\n *\n * @returns { Size }Measures minimum space that is required to render the image.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Object} id - provide the id value.\n * @param {Function} callback - provide the id value.\n *\n * @private\n */\n ImageElement.prototype.measure = function (availableSize, id, callback) {\n if (this.isDirt && (this.stretch !== 'Stretch' || this.width === undefined && this.height === undefined)) {\n this.contentSize = measureImage(this.source, this.contentSize, id, callback);\n this.isDirt = false;\n }\n if (this.width !== undefined && this.height !== undefined) {\n this.desiredSize = new Size(this.width, this.height);\n this.contentSize = this.desiredSize;\n }\n else {\n this.desiredSize = this.contentSize;\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the image\n * @param {Size} desiredSize\n */\n /**\n * Arranges the image \\\n *\n * @returns { Size }Arranges the image.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n ImageElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return ImageElement;\n}(DiagramElement));\nexport { ImageElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureNativeContent, getContent, measureNativeSvg } from './../../utility/dom-util';\n/**\n * NativeElement defines the basic native elements\n */\nvar DiagramNativeElement = /** @class */ (function (_super) {\n __extends(DiagramNativeElement, _super);\n /**\n * set the id for each element \\\n *\n * @returns { void } set the id for each element.\\\n * @param {string} nodeId - provide the id value.\n * @param {string} diagramId - provide the id value.\n *\n * @private\n */\n function DiagramNativeElement(nodeId, diagramId) {\n var _this = _super.call(this) || this;\n _this.data = '';\n /**\n * set the node id\n */\n _this.nodeId = '';\n /**\n * set the diagram id\n */\n _this.diagramId = '';\n /**\n * sets scaling factor of the Native Element\n */\n _this.scale = 'Stretch';\n _this.diagramId = diagramId;\n _this.nodeId = nodeId;\n return _this;\n }\n Object.defineProperty(DiagramNativeElement.prototype, \"content\", {\n /**\n * get the id for each element \\\n *\n * @returns { string | SVGElement } get the id for each element.\\\n *\n * @private\n */\n get: function () {\n return this.data;\n },\n /**\n * sets the geometry of the native element \\\n *\n * @returns { void } sets the geometry of the native element.\\\n * @param {string | SVGElement} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.data = value;\n if (!this.canReset) {\n this.canReset = true;\n this.template = getContent(this, false);\n this.canReset = false;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *Measures minimum space that is required to render the Native Element \\\n *\n * @returns { Size }Measures minimum space that is required to render the Native Element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n DiagramNativeElement.prototype.measure = function (availableSize) {\n if (this.isDirt) {\n var rect = measureNativeContent(this.template);\n this.contentSize = new Size();\n this.contentSize.width = rect.width;\n this.contentSize.height = rect.height;\n var x = rect.x;\n var y = rect.y;\n this.templatePosition = { x: x, y: y };\n this.isDirt = false;\n }\n if (this.width === undefined || this.height === undefined) {\n var getAvailableSize = measureNativeSvg(this.template);\n this.desiredSize = new Size(getAvailableSize.width, getAvailableSize.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n *Arranges the Native Element \\\n *\n * @returns { Size }Arranges the Native Element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DiagramNativeElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return DiagramNativeElement;\n}(DiagramElement));\nexport { DiagramNativeElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n/**\n * Defines the tooltip that should be shown when the mouse hovers over node.\n * An object that defines the description, appearance and alignments of tooltip\n */\nvar DiagramTooltip = /** @class */ (function (_super) {\n __extends(DiagramTooltip, _super);\n function DiagramTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DiagramTooltip.prototype, \"content\", void 0);\n __decorate([\n Property('TopLeft')\n ], DiagramTooltip.prototype, \"position\", void 0);\n __decorate([\n Property('Mouse')\n ], DiagramTooltip.prototype, \"relativeMode\", void 0);\n __decorate([\n Property(true)\n ], DiagramTooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property('auto')\n ], DiagramTooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], DiagramTooltip.prototype, \"height\", void 0);\n __decorate([\n Property('Auto')\n ], DiagramTooltip.prototype, \"openOn\", void 0);\n __decorate([\n Property()\n ], DiagramTooltip.prototype, \"animation\", void 0);\n __decorate([\n Property(false)\n ], DiagramTooltip.prototype, \"isSticky\", void 0);\n return DiagramTooltip;\n}(ChildProperty));\nexport { DiagramTooltip };\n/**\n * initTooltip method \\\n *\n * @returns { Tooltip } initTooltip method .\\\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\nexport function initTooltip(diagram) {\n var tooltipOption = new Tooltip;\n tooltipOption = updateTooltipContent(diagram.tooltip, tooltipOption);\n var tooltip = new Tooltip(tooltipOption);\n tooltip.beforeCollision = beforeCollision;\n tooltip.beforeOpen = beforeOpen;\n tooltip.cssClass = 'e-diagram-tooltip';\n tooltip.opensOn = 'custom';\n tooltip.appendTo('#' + diagram.element.id);\n tooltip.close();\n return tooltip;\n}\n/**\n * beforeOpen method \\\n *\n * @returns { void } beforeOpen method .\\\n * @param {TooltipEventArgs} args - provide the points value.\n *\n * @private\n */\nfunction beforeOpen(args) {\n if ((this.content === '' || this.content === undefined)) {\n args.element.style.display = 'none';\n }\n}\n/**\n * beforeCollision method \\\n *\n * @returns { void } beforeCollision method .\\\n * @param {TooltipEventArgs} args - provide the points value.\n *\n * @private\n */\nfunction beforeCollision(args) {\n if ((args.collidedPosition && args.collidedPosition !== this.position)) {\n args.element.style.display = 'none';\n }\n}\n/**\n * updateTooltip method \\\n *\n * @returns { Tooltip } updateTooltip method .\\\n * @param {Diagram} diagram - provide the points value.\n * @param {NodeModel | ConnectorModel} node - provide the points value.\n *\n * @private\n */\nexport function updateTooltip(diagram, node) {\n //let tooltip: DiagramTooltipModel;\n var tooltipObject = diagram.tooltipObject;\n var tooltip = node ? node.tooltip : diagram.tooltip;\n updateTooltipContent(tooltip, tooltipObject);\n return tooltipObject;\n}\n/**\n * updateTooltipContent method \\\n *\n * @returns { Tooltip } updateTooltipContent method .\\\n * @param {DiagramTooltipModel} tooltip - provide the points value.\n * @param {Tooltip} tooltipObject - provide the points value.\n *\n * @private\n */\nfunction updateTooltipContent(tooltip, tooltipObject) {\n if (tooltip.content) {\n tooltipObject.content = tooltip.content;\n //Task 834121: Content-Security-Policy support for diagram\n if (typeof tooltip.content === 'string') {\n var contentTemp = function () {\n return tooltip.content;\n };\n tooltipObject.content = initializeCSPTemplate(contentTemp);\n }\n tooltipObject.position = tooltip.position;\n tooltipObject.showTipPointer = tooltip.showTipPointer;\n tooltipObject.width = tooltip.width;\n tooltipObject.height = tooltip.height;\n if (!tooltip.animation) {\n tooltipObject.animation = { close: { effect: 'None' } };\n }\n else {\n tooltipObject.animation = tooltip.animation;\n }\n }\n else {\n tooltipObject.close();\n }\n return tooltipObject;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { ShapeStyle, Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { PortConstraints, PortVisibility } from '../enum/enum';\nimport { DiagramTooltip } from './tooltip';\n/**\n * Defines the behavior of connection ports\n */\nvar Port = /** @class */ (function (_super) {\n __extends(Port, _super);\n // tslint:disable-next-line:no-any\n function Port(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n _this.inEdges = [];\n _this.outEdges = [];\n return _this;\n }\n __decorate([\n Property('')\n ], Port.prototype, \"id\", void 0);\n __decorate([\n Property('Center')\n ], Port.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], Port.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Port.prototype, \"margin\", void 0);\n __decorate([\n Property(12)\n ], Port.prototype, \"width\", void 0);\n __decorate([\n Property(12)\n ], Port.prototype, \"height\", void 0);\n __decorate([\n Complex({}, ShapeStyle)\n ], Port.prototype, \"style\", void 0);\n __decorate([\n Property('Square')\n ], Port.prototype, \"shape\", void 0);\n __decorate([\n Property('Auto')\n ], Port.prototype, \"connectionDirection\", void 0);\n __decorate([\n Property(PortVisibility.Connect)\n ], Port.prototype, \"visibility\", void 0);\n __decorate([\n Property('')\n ], Port.prototype, \"pathData\", void 0);\n __decorate([\n Property(PortConstraints.Default)\n ], Port.prototype, \"constraints\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"addInfo\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"outEdges\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"inEdges\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Port.prototype, \"tooltip\", void 0);\n return Port;\n}(ChildProperty));\nexport { Port };\n/**\n * Defines the behavior of a port, that sticks to a point\n */\nvar PointPort = /** @class */ (function (_super) {\n __extends(PointPort, _super);\n function PointPort(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n PointPort.prototype.getClassName = function () {\n return 'PointPort';\n };\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], PointPort.prototype, \"offset\", void 0);\n return PointPort;\n}(Port));\nexport { PointPort };\n/**\n * Defines the behavior of a port, that sticks to a point\n */\nvar PathPort = /** @class */ (function (_super) {\n __extends(PathPort, _super);\n function PathPort(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n PathPort.prototype.getClassName = function () {\n return 'PathPort';\n };\n __decorate([\n Property(0.5)\n ], PathPort.prototype, \"offset\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PathPort.prototype, \"displacement\", void 0);\n __decorate([\n Property('Center')\n ], PathPort.prototype, \"alignment\", void 0);\n return PathPort;\n}(Port));\nexport { PathPort };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { TextStyle, Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { AnnotationConstraints } from '../enum/enum';\nimport { randomId } from '../utility/base-util';\nimport { DiagramTooltip } from './tooltip';\n/**\n * Defines the hyperlink for the annotations in the nodes/connectors\n */\nvar Hyperlink = /** @class */ (function (_super) {\n __extends(Hyperlink, _super);\n function Hyperlink() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('blue')\n ], Hyperlink.prototype, \"color\", void 0);\n __decorate([\n Property('')\n ], Hyperlink.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], Hyperlink.prototype, \"link\", void 0);\n __decorate([\n Property('None')\n ], Hyperlink.prototype, \"textDecoration\", void 0);\n __decorate([\n Property('NewTab')\n ], Hyperlink.prototype, \"hyperlinkOpenState\", void 0);\n return Hyperlink;\n}(ChildProperty));\nexport { Hyperlink };\n/**\n * Defines the textual description of nodes/connectors\n */\nvar Annotation = /** @class */ (function (_super) {\n __extends(Annotation, _super);\n // tslint:disable-next-line:no-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Annotation(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n if (!defaultValue.id) {\n if (parent.parentObj && parent.parentObj.propName && parent.parentObj.propName === 'phases') {\n _this.id = parent.parentObj.id;\n }\n else {\n _this.id = randomId();\n }\n }\n return _this;\n }\n __decorate([\n Property('')\n ], Annotation.prototype, \"content\", void 0);\n __decorate([\n Property(undefined)\n ], Annotation.prototype, \"template\", void 0);\n __decorate([\n Property('String')\n ], Annotation.prototype, \"annotationType\", void 0);\n __decorate([\n Property(true)\n ], Annotation.prototype, \"visibility\", void 0);\n __decorate([\n Property(AnnotationConstraints.InheritReadOnly)\n ], Annotation.prototype, \"constraints\", void 0);\n __decorate([\n Complex(undefined, Hyperlink)\n ], Annotation.prototype, \"hyperlink\", void 0);\n __decorate([\n Property('')\n ], Annotation.prototype, \"id\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Annotation.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property('Parent')\n ], Annotation.prototype, \"rotationReference\", void 0);\n __decorate([\n Complex({ strokeWidth: 0, strokeColor: 'transparent', fill: 'transparent' }, TextStyle)\n ], Annotation.prototype, \"style\", void 0);\n __decorate([\n Property('Center')\n ], Annotation.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], Annotation.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Annotation.prototype, \"margin\", void 0);\n __decorate([\n Complex({ top: undefined, bottom: undefined, left: undefined, right: undefined }, Margin)\n ], Annotation.prototype, \"dragLimit\", void 0);\n __decorate([\n Property('Shape')\n ], Annotation.prototype, \"type\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Annotation.prototype, \"tooltip\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"addInfo\", void 0);\n return Annotation;\n}(ChildProperty));\nexport { Annotation };\n/**\n * Defines the textual description of nodes/connectors with respect to bounds\n */\nvar ShapeAnnotation = /** @class */ (function (_super) {\n __extends(ShapeAnnotation, _super);\n /* eslint-disable */\n function ShapeAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n // eslint-disable-next-line valid-jsdoc\n /**\n * @private\n * Returns the module of class ShapeAnnotation\n */\n ShapeAnnotation.prototype.getClassName = function () {\n return 'ShapeAnnotation';\n };\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], ShapeAnnotation.prototype, \"offset\", void 0);\n return ShapeAnnotation;\n}(Annotation));\nexport { ShapeAnnotation };\n/**\n * Defines the connector annotation\n */\nvar PathAnnotation = /** @class */ (function (_super) {\n __extends(PathAnnotation, _super);\n /* eslint-disable */\n function PathAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /* eslint-enable */\n /**\n * Returns the module of class PathAnnotation.\n *\n * @returns {string} Returns the module of class PathAnnotation.\n * @private\n */\n PathAnnotation.prototype.getClassName = function () {\n return 'PathAnnotation';\n };\n __decorate([\n Property(0.5)\n ], PathAnnotation.prototype, \"offset\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PathAnnotation.prototype, \"displacement\", void 0);\n __decorate([\n Property('Center')\n ], PathAnnotation.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], PathAnnotation.prototype, \"segmentAngle\", void 0);\n return PathAnnotation;\n}(Annotation));\nexport { PathAnnotation };\n","/**\n *ShapeDictionary defines the shape of the default nodes and ports \\\n *\n * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\\\n * @param {PortShapes} shape - provide the element value.\n *\n * @private\n */\nexport function getPortShape(shape) {\n return portShapes[shape.toString()];\n}\n/**\n *ShapeDictionary defines the shape of the default nodes and ports \\\n *\n * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\\\n * @param {DecoratorShapes} shape - provide the element value.\n * @param {DecoratorModel} decorator - provide the element value.\n *\n * @private\n */\nexport function getDecoratorShape(shape, decorator) {\n if (shape === 'Custom') {\n return decorator.pathData;\n }\n return decoratorShapes[\"\" + shape];\n}\nexport function getSegmentThumbShapeHorizontal(shapes) {\n return segmentThumbShapeHorizontal[\"\" + shapes];\n}\nexport function getSegmentThumbShapeVertical(shapes) {\n return segmentThumbShapeVertical[\"\" + shapes];\n}\n/**\n *sets the path data for different icon shapes \\\n *\n * @returns { string } sets the path data for different icon shapes\\\n * @param {IconShapeModel} icon - provide the element value.\n *\n * @private\n */\nexport function getIconShape(icon) {\n var data;\n switch (icon.shape) {\n case 'Minus':\n data = 'M0,50 L100,50';\n break;\n case 'Plus':\n data = 'M0,-50 L0,50 M-50,0 L50,0';\n break;\n case 'ArrowUp':\n data = 'M0,100 L50,0 L100,100 Z';\n break;\n case 'ArrowDown':\n data = 'M0,0 L50,100 L100,0 Z';\n break;\n case 'Path':\n data = icon.pathData;\n break;\n }\n return data;\n}\n// eslint-disable-next-line prefer-const\nvar portShapes = {\n 'X': 'M14,14 L106,106 M106,14 L14,106',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z'\n};\n// eslint-disable-next-line prefer-const\nvar decoratorShapes = {\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Fletch': 'M14.8,10c0,0-3.5,6,0.2,12c0,0-2.5-6-10.9-6C4.1,16,11.3,16,14.8,10z',\n 'OpenFetch': 'M6,17c-0.6,0-1-0.4-1-1s0.4-1,1-1c10.9,0,11-5,11-5' +\n 'c0-0.6,0.4-1,1-1s1,0.4,1,1C19,10.3,18.9,17,6,17C6,17,6,17,6,17z ' +\n 'M18,23c-0.5,0-1-0.4-1-1c0-0.2-0.3-5-11-5c-0.6,0-1-0.5-1-1s0.4-1,1-1c0,0,0,0,0,0' +\n 'c12.9,0,13,6.7,13,7 C19,22.6,18.6,23,18,23z',\n 'IndentedArrow': 'M17,10c0,0-4.5,5.5,0,12L5,16L17,10z',\n 'OutdentedArrow': 'M14.6,10c0,0,5.4,6,0,12L5,16L14.6,10z',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M12,23l-7-7l7-7l6.9,7L12,23z',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z'\n};\nvar segmentThumbShapeHorizontal = {\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z ',\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ',\n 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ',\n 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ',\n 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ',\n 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z '\n};\nvar segmentThumbShapeVertical = {\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z',\n 'OpenArrow': 'M23,15.9 L16,5 L9,15.9 L10.7,17 L16,8.7 L21,17.3Z',\n 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ',\n 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ',\n 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ',\n 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ',\n 'DoubleArrow': 'M10,19 L22,19 L16,13Z M10,12 L22,12 L16,6Z',\n 'Arrow': 'M10,15 L22,15 L16,5Z',\n 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ',\n 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z '\n};\n","/**\n * FlowShapeDictionary defines the shape of the built-in flow shapes \\\n *\n * @returns { string } FlowShapeDictionary defines the shape of the built-in flow shapes .\\\n * @param {string} shape - provide the element value.\n *\n * @private\n */\nexport function getFlowShape(shape) {\n return flowShapes[shape.toString()];\n}\n/* eslint-disable */\nvar flowShapes = {\n // Process,\n 'Process': 'M419.511,76.687L359.511,76.687L359.511,43.086L419.511,43.086z',\n // Decision,\n 'Decision': 'M 253.005,115.687L 200.567,146.071L 148.097,115.687L 200.534,85.304L 253.005,115.687 Z',\n // Document,\n 'Document': 'M 60 31.9 c 0 0 -11 -7.7 -30 0 s -30 0 -30 0 V 0 h 60 V 31.9 Z',\n // PreDefinedProcess,\n 'PreDefinedProcess': 'M 0,0 L 50,0 L 50,50 L 0,50 Z M 8.334,0 L 8.334,50 M 41.667,0 L 41.667,50',\n // Terminator,\n 'Terminator': 'M 269.711,29.33C 269.71,44.061 257.77,56 243.04,56L 158.058,56C 143.33,56 131.39,44.061 131.39,29.33L 131.39,29.33' +\n 'C 131.391,14.6057 143.33,2.669 158.058,2.669L 243.044,2.669C 257.772,2.669 269.711,14.6057 269.711,29.333 Z',\n // PaperTap,\n 'PaperTap': 'M0.0009,17.2042 L0.0009,47.165 C0.001,47.165 14.403,53.5455 25.00,47.165 C35.599,40.7852 44.403,43.5087 50.00,47.165' +\n 'L50.001,17.2042 M50.001,32.7987 L50.001,2.8405 C50.001,2.8405 35.599,-3.5427 25.001,2.8405' +\n 'C14.403,9.2237 5.599,6.494 0.0009,2.8405 L0.0009,32.7987',\n // DirectData,\n 'DirectData': 'M 132.62 0 L 17.38 0 C 7.78 0 0 13.43 0 30 C 0 46.57 7.78 60 17.38 60 L 132.62 60 M 132.62 0' +\n 'C 123.02 0 115.24 13.43 115.24 30 C 115.24 46.57 123.02 60 132.62 60 C 142.22 60 150 46.57 150 30 C 150 13.43 142.22 0 132.62 0 z ',\n // SequentialData,\n 'SequentialData': 'M0.0029,24.999 C0.0029,11.1922 10.433,0.0021 23.295,0.0021 C36.159,0.00216 46.585,11.1922 46.585,24.999' +\n 'C46.585,38.8057 36.159,49.9979 23.295,49.9979 C10.433,49.9979 0.0029,38.8057 0.0029,24.999 z M23.294,49.999 L50.002,49.999',\n // Sort,\n 'Sort': 'M50.001,24.9971 L25.001,49.9971 L0.00097,24.9971 L25.001,-0.00286865 L50.001,24.9971 z' +\n ' M0.000976562,24.9971 L50.001,24.9971',\n // MultiDocument,\n 'MultiDocument': 'M43.6826,40 C44.8746,40.6183 45.8586,41.3502 46.8366,42.1122 L46.8366,4.74487 L3.09857,4.74487 L3.09857,10.9544' +\n ' M46.837,35.143 C48.027,35.765 49.025,36.604 50.003,37.369 L50.003,0.002 L6.264,0.002 L6.264,4.744 M43.682,47.113 L43.682,10.765' +\n ' L0.0025,10.7652 L0.0025,47.1132 C0.0025,47.1132 12.5846,53.6101 21.8426,47.1132 C31.1006,40.6163 38.792,43.393 43.6826,47.1132 z',\n // Collate,\n 'Collate': 'M50.001,0.0028 L25.001,25.0029 L0.00097,0.0028 L50.001,0.002 z M0.0009,50.002 L25.001,25.002' +\n 'L50.001,50.002 L0.0009,50.0029 z',\n // SummingJunction,\n 'SummingJunction': 'M7.3252,42.6768 L42.6772,7.3247 M42.6768,42.6768 L7.3248,7.3247 M0.0009,25.001 ' +\n 'C0.0009,11.193 11.197,0.0009 25.001,0.0009' +\n ' C38.809,0.0009 50.001,11.193 50.001,25.001 C50.001,38.809 38.809,50.001 25.001,50.001 C11.197,50.00 0.0009,38.809 0.0009,25.00 z',\n // Or,\n 'Or': 'M 0 50 L 100 50 M 50 100 L 50 0.0 M 0 50 C 0 22.384 22.392 0 50 0 C 77.616 0 100 22.384 100 50' +\n ' C 100 77.616 77.616 100 50 100 C 22.392 100 0 77.616 0 50 Z',\n // InternalStorage,\n 'InternalStorage': 'M 0 3.81946A 2.5,3.81946 0 0,1 2.5,0L 47.5 0A 2.5,3.81946 0 0,1 50,3.81946' +\n 'L 50 45.836A 2.5,3.819446 0 0,1 47.5,49.652778' +\n 'L 2.5 49.652778A 2.5,3.819446 0 0,1 0,45.8336L 0 3.819446ZM 0 11.45834L 50 11.4583334M 12.5 0L 12.5 49.652778',\n // Extract,\n 'Extract': 'M0,35 L30,0 L60,35 Z',\n // ManualOperation,\n 'ManualOperation': 'M46.4,28.8 L14.8,28.8 L0,0 L60,0 Z',\n // Merge,\n 'Merge': 'M60,0 L30,35 L0,0 Z',\n // OffPageReference,\n 'OffPageReference': 'M60,33.3 L30.1,39 L0,33.3 L0,0 L60,0 Z',\n // SequentialAccessStorage,\n 'SequentialAccessStorage': 'M 60 30 C 60 13.4 46.6 0 30 0 S 0 13.4 0 30 s 13.4 30 30 30 h 28.6 v -6.5 h -9.9' +\n 'C 55.5 48 60 39.5 60 30 Z',\n // Annotation,\n 'Annotation': 'M49.9984,50.0029 L-0.00271199,50.0029 L-0.00271199,0.00286865 L49.9984,0.00286865',\n // Annotation2,\n 'Annotation2': 'M49.9977,50.0029 L25.416,50.0029 L25.416,0.00286865 L49.9977,0.00286865 M25.4166,25.0029 L-0.00227869,25.0029',\n // Data,\n 'Data': 'M 10 0 L 40 0 L 30 40 L 0 40 Z',\n // Card,\n 'Card': 'M275,60 L400,60 L400,110 L260,110 L260,75 Z',\n // Delay,\n 'Delay': 'M0,0 L12.029,0 C14.212999,0 16,1.7869979 16,3.9709952 C16,6.1549926 14.212999,7.9409904 12.029,7.9409904 L0,7.9409904 z',\n // Preparation,\n 'Preparation': 'M 1048.17 572 C 1051.06 568.86 1055.17 567.05 1059.5 567 L 1094.51 567'\n + ' C 1098.84 567.05 1102.95 568.86 1105.84 572' +\n ' L 1126.43 595 C 1127.01 596.28 1127.01 597.72 1126.43 599 L 1105.84 622 C 1102.95 625.14 1098.84 626.95 1094.51 627' +\n ' L 1059.5 627 C 1055.17 626.95 1051.06 625.14 1048.17 622 L 1027.58 599 C 1027 597.72 1027 596.28 1027.58 595 L 1048.17 572 Z',\n // Display,\n 'Display': 'M47.8809,19.2914 L32.7968,-0.00594145 L11.3902,-0.00594145 C7.93166,-0.00594145 0.00124586,11.187 0.00124586,24.9968' +\n 'C0.00124586,38.8032 7.93166,49.9962 11.3902,49.9962 L32.7968,49.99 L47.615,31.038 C47.615,31.0388 52.798,24.9968 47.880,19.2914 z',\n // ManualInput,\n 'ManualInput': 'M 912 732 L 1006.85 707 C 1008.2 707 1009.5 707.53 1010.46 708.46 C 1011.41 709.4 1011.95 710.67 1011.95 712' +\n ' L 1011.95 762C 1012 764.41 1010.28 766.52 1007.87 767 L 917.1 767 C 915.75 767 914.45 766.47 913.49 765.54' +\n ' C 912.54 764.6 912 763.33 912 762 L 912 732 Z',\n // LoopLimit,\n 'LoopLimit': 'M 8 9 L 27 9 L 33 15 L 33 26 C 33 27 33 27 32 27 L 4 27 C 3 27 2 27 2 26 L 2 15 L 8 9 Z',\n // StoredData\n 'StoredData': 'M 5.55 0L 50 0A 1.5,30 0 0,1 50,0A 5.555,25 0 0,0 50,50A 1.5,30 0 0,1 50,50L 5.555 50A 5.55,25 0 0,1 5.555,0Z',\n};\n/* eslint-enable */\n","/* eslint-disable jsdoc/require-returns-check */\nimport { Point } from './../primitives/point';\nimport { Rect } from './../primitives/rect';\nimport { getPoints, intersect3 } from './diagram-util';\nimport { NoOfSegments } from '../enum/enum';\nimport { StraightSegment, BezierSegment, OrthogonalSegment } from './../objects/connector';\nimport { PathElement } from './../core/elements/path-element';\nimport { cornersPointsBeforeRotation, rotatePoint } from './base-util';\n/**\n * Connector modules are used to dock and update the connectors\n */\n/**\n * intermeditatePoints method\\\n *\n * @returns { Function } getFunction method .\\\n * @param {PointModel} element - provide the angle value.\n * @param {PointModel} layoutOrientation - provide the angle value.\n * @param {PointModel} lineDistribution - provide the angle value.\n * @private\n */\nexport function findConnectorPoints(element, layoutOrientation, lineDistribution) {\n //const intermeditatePoints: PointModel[];\n var sourcePoint;\n if (element.type === 'Straight' || !element.sourceWrapper) {\n sourcePoint = getSourcePoint(element);\n }\n else {\n sourcePoint = element.sourceWrapper.corners.center;\n }\n // eslint-disable-next-line\n var intermeditatePoints = terminateConnection(element, sourcePoint, element.targetPoint, layoutOrientation, lineDistribution);\n setLineEndPoint(element, intermeditatePoints[0], false);\n setLineEndPoint(element, intermeditatePoints[intermeditatePoints.length - 1], true);\n return intermeditatePoints;\n}\n/**\n * getSourcePoint method\\\n *\n * @returns { PointModel } getFunction method .\\\n * @param {PointModel} element - provide the angle value.\n * @private\n */\nfunction getSourcePoint(element) {\n var srcPoint;\n if (element.sourcePortWrapper) {\n var srcPort = element.sourcePortWrapper;\n //const srcNode: DiagramElement = element.sourceWrapper;\n var pt = { x: srcPort.offsetX, y: srcPort.offsetY };\n //const direction: string = getPortDirection(pt, cornersPointsBeforeRotation(srcNode), srcNode.bounds, false);\n srcPoint = pt;\n }\n else if (element.sourceID && element.sourceWrapper) {\n if (element.targetWrapper) {\n var sPoint = element.sourceWrapper.corners.center;\n var tPoint = element.targetWrapper.corners.center;\n srcPoint = getIntersection(element, element.sourceWrapper, sPoint, tPoint, false);\n }\n else {\n srcPoint = element.sourcePoint;\n }\n }\n else {\n srcPoint = element.sourcePoint;\n }\n return srcPoint;\n}\n/**\n * getDirection method \\\n *\n * @returns { void } getDirection method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value.\n *\n * @private\n */\nfunction getDirection(source, target, layoutOrientation) {\n if (layoutOrientation === 'LeftToRight') {\n source.direction = source.direction ? source.direction : 'Right';\n target.direction = target.direction ? target.direction : 'Left';\n }\n else if (layoutOrientation === 'RightToLeft') {\n source.direction = source.direction ? source.direction : 'Left';\n target.direction = target.direction ? target.direction : 'Right';\n }\n else if (layoutOrientation === 'TopToBottom') {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else if (layoutOrientation === 'BottomToTop') {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n}\n/**\n * terminateConnection method \\\n *\n * @returns { PointModel[] } terminateConnection method .\\\n * @param {Connector} element - provide the element value.\n * @param {PointModel} srcPoint - provide the srcPoint value.\n * @param {PointModel} tarPoint - provide the tarPoint value.\n * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n *\n * @private\n */\nfunction terminateConnection(element, srcPoint, tarPoint, layoutOrientation, lineDistribution) {\n var sourceNode = element.sourceWrapper;\n var targetNode = element.targetWrapper;\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var srcCorner;\n var tarCorner;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var intermeditatePoints = [];\n var segPoint;\n var srcDir;\n var tarDir;\n var minSpace = findMargin(element);\n var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var source = { corners: srcCorner, point: srcPoint, direction: srcDir, margin: sourceMargin };\n var target = { corners: tarCorner, point: tarPoint, direction: tarDir, margin: targetMargin };\n var sourceCorners;\n var targetCorners;\n if (sourceNode !== undefined && targetNode !== undefined) {\n sourceCorners = cornersPointsBeforeRotation(sourceNode);\n targetCorners = cornersPointsBeforeRotation(targetNode);\n source.corners = sourceNode.corners;\n target.corners = targetNode.corners;\n }\n if (sourcePort !== undefined) {\n var port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n if (sourcePort.connectionDirection === 'Left' || sourcePort.connectionDirection === 'Top' || sourcePort.connectionDirection === 'Bottom' || sourcePort.connectionDirection === 'Right') {\n source.direction = sourcePort.connectionDirection;\n }\n else {\n source.direction = getPortDirection(port, sourceCorners, sourceNode.bounds, false);\n }\n }\n if (targetPort !== undefined) {\n var tarPortPt = { x: targetPort.offsetX, y: targetPort.offsetY };\n if (targetPort.connectionDirection === 'Left' || targetPort.connectionDirection === 'Right' || targetPort.connectionDirection === 'Bottom' || targetPort.connectionDirection === 'Top') {\n target.direction = targetPort.connectionDirection;\n }\n else {\n target.direction = getPortDirection(tarPortPt, targetCorners, targetNode.bounds, false);\n }\n }\n if (element.type === 'Bezier') {\n if (!element.isBezierEditing) {\n if (element.segments.length > 0) {\n var i = element.segments.length - 1;\n while (i >= 0) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n if (seg.isInternalSegment) {\n element.segments.pop();\n }\n i--;\n }\n }\n }\n }\n if (sourceNode !== undefined && targetNode !== undefined) {\n if (source.direction === undefined || target.direction === undefined) {\n if (layoutOrientation) {\n getDirection(source, target, layoutOrientation);\n }\n else {\n if (source.corners.top > target.corners.bottom &&\n Math.abs(source.corners.top - target.corners.bottom) > minSpace) {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n else if (source.corners.bottom < target.corners.top &&\n Math.abs(source.corners.bottom - target.corners.top) > minSpace) {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else if ((source.corners.right < target.corners.left &&\n Math.abs(source.corners.right - target.corners.left) > minSpace) ||\n ((source.corners.right + minSpace < target.corners.left) ||\n (target.corners.right >= source.corners.left - minSpace && source.corners.left > target.corners.left))) {\n source.direction = source.direction ? source.direction : 'Right';\n target.direction = target.direction ? target.direction : 'Left';\n }\n else if ((source.corners.left > target.corners.right &&\n Math.abs(source.corners.left - target.corners.right) > (source.margin.left + source.margin.right)) ||\n ((target.corners.right + minSpace < source.corners.left ||\n (source.corners.right >= target.corners.left - minSpace\n && source.corners.left < target.corners.left)))) {\n source.direction = source.direction ? source.direction : 'Left';\n target.direction = target.direction ? target.direction : 'Right';\n }\n else {\n if (sourceNode.id !== targetNode.id && (!sourceCorners.equals(sourceCorners, targetCorners)) &&\n targetCorners.containsPoint(sourceCorners.topCenter, source.margin.top)) {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n }\n }\n }\n return defaultOrthoConnection(element, source.direction, target.direction, source.point, target.point, lineDistribution);\n }\n //It will be called only when there is only one end node\n checkLastSegmentasTerminal(element);\n if (element.sourceWrapper || element.targetWrapper) {\n connectToOneEnd(element, source, target);\n }\n if (element.type === 'Straight' || element.type === 'Bezier') {\n intermeditatePoints = intermeditatePointsForStraight(element, source, target);\n }\n else {\n if (element.type === 'Orthogonal' && element.segments && element.segments.length > 0 &&\n element.segments[0].length !== null &&\n element.segments[0].direction !== null) {\n intermeditatePoints = findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort);\n }\n else {\n var extra = void 0;\n if (!source.direction) {\n source.direction = (target.direction) ? ((element.targetPortWrapper !== undefined) ? target.direction : getOppositeDirection(target.direction)) :\n Point.direction(source.point, target.point);\n }\n else {\n extra = adjustSegmentLength(sourceNode.bounds, source, 20);\n }\n element.segments[0].points = intermeditatePoints = orthoConnection3Segment(element, source, target, extra);\n }\n }\n return intermeditatePoints;\n}\n/**\n * updateSegmentPoints method \\\n *\n * @returns { PointModel[] } updateSegmentPoints method .\\\n * @param {End} source - provide the source value.\n * @param {OrthogonalSegment} segment - provide the segment value.\n *\n * @private\n */\nfunction updateSegmentPoints(source, segment) {\n //let segPoint: PointModel; //let angle: number; //let extra: number;\n source.direction = segment.direction;\n segment.points = [];\n segment.points.push(source.point);\n var extra = (segment.direction === 'Left' || segment.direction === 'Top') ? -(segment.length) : segment.length;\n var angle = (segment.direction === 'Left' || segment.direction === 'Right') ? 0 : 90;\n var segPoint = addLineSegment(source.point, extra, angle);\n segment.points.push(segPoint);\n return segPoint;\n}\n/**\n * pointToPoint method \\\n *\n * @returns { void } pointToPoint method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToPoint(element, source, target) {\n var point;\n var direction;\n var portdirection;\n source.corners = (element.sourceWrapper) ? element.sourceWrapper.corners : undefined;\n if (element.sourcePortWrapper) {\n var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(element.sourceWrapper), element.sourceWrapper.bounds, false);\n if (source.corners && (source.direction === 'Bottom' || source.direction === 'Top')) {\n if (target.point.x > source.corners.left && target.point.x < source.corners.right) {\n direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n }\n else if (source.corners && (source.direction === 'Left' || source.direction === 'Right')) {\n if (target.point.y > source.corners.top && target.point.y < source.corners.bottom) {\n direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n }\n }\n if (element.sourcePortWrapper && portdirection === getOppositeDirection(direction)) {\n var length_1;\n if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top\n && source.point.y <= source.corners.center.y) &&\n (target.point.y >= source.corners.top && target.point.y <= source.corners.center.y)) {\n source.direction = 'Top';\n length_1 = source.point.y - source.corners.top + 20;\n }\n else if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y > source.corners.center.y\n && source.point.y <= source.corners.bottom) &&\n (target.point.y > source.corners.center.y && target.point.y <= source.corners.bottom)) {\n source.direction = 'Bottom';\n length_1 = source.corners.bottom - source.point.y + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left\n && source.point.x <= source.corners.center.x) &&\n (target.point.x >= source.corners.left && target.point.x <= source.corners.center.x)) {\n source.direction = 'Left';\n length_1 = source.point.x - source.corners.left + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x <= source.corners.right\n && source.point.x > source.corners.center.x) &&\n (target.point.x <= source.corners.right && target.point.x < source.corners.center.x)) {\n source.direction = 'Right';\n length_1 = source.corners.right - source.point.x + 20;\n }\n if (source.direction && length_1) {\n point = orthoConnection3Segment(element, source, target, length_1, true);\n }\n }\n else {\n source.direction = (direction) ? direction : findSourceDirection(source.direction, source.point, target.point);\n point = orthoConnection2Segment(source, target);\n }\n return point;\n}\n/**\n * pointToNode method \\\n *\n * @returns { void } pointToNode method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToNode(element, source, target) {\n var point;\n target.corners = element.targetWrapper.corners;\n findDirection(element.targetWrapper, source, target, element);\n var direction = findSourceDirection(target.direction, source.point, target.point);\n if (source.direction === target.direction && (source.direction === 'Left' || source.direction === 'Right')) {\n source.direction = direction;\n point = orthoConnection3Segment(element, source, target, element.targetWrapper.width / 2 + 20);\n var source1 = source;\n source1.point = point[1];\n findDirection(element.targetWrapper, source, target, element);\n point = orthoConnection3Segment(element, source, target);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n return point;\n}\n/**\n * addPoints method \\\n *\n * @returns { void } addPoints method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction addPoints(element, source, target) {\n target.corners = element.targetWrapper.corners;\n var direction;\n var length;\n if (source.direction !== 'Left' && source.direction !== 'Right') {\n if (target.corners.center.y === source.point.y &&\n (!(target.corners.left <= source.point.x && source.point.x <= target.corners.right))) {\n direction = 'Top';\n length = target.corners.height / 2 + 20;\n }\n else if ((target.corners.center.y === source.point.y &&\n element.segments[element.segments.length - 2].direction === 'Bottom') ||\n (target.corners.center.y > source.point.y && source.point.y >= target.corners.top)) {\n direction = 'Top';\n length = (source.point.y - target.corners.top) + 20;\n }\n else if ((target.corners.center.y === source.point.y &&\n element.segments[element.segments.length - 2].direction === 'Top') ||\n (target.corners.center.y < source.point.y && source.point.y <= target.corners.bottom)) {\n direction = 'Bottom';\n length = (target.corners.bottom - source.point.y) + 20;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n source.corners.top <= source.point.y && source.point.y <= source.corners.bottom) {\n direction = source.direction;\n length = (source.point.y > target.point.y) ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n }\n }\n else {\n if (target.corners.center.x === source.point.x &&\n (!(target.corners.top < source.point.y && source.point.y <= target.corners.bottom))) {\n direction = 'Left';\n length = target.corners.width / 2 + 20;\n }\n else if ((target.corners.center.x === source.point.x &&\n element.segments[element.segments.length - 2].direction === 'Right')\n || (target.corners.center.x > source.point.x && source.point.x >= target.corners.left)) {\n direction = 'Left';\n length = (source.point.x - target.corners.left) + 20;\n }\n else if ((target.corners.center.x === source.point.x &&\n element.segments[element.segments.length - 2].direction === 'Left') ||\n (target.corners.center.x <= source.point.x && source.point.x <= target.corners.right)) {\n direction = 'Right';\n length = (target.corners.right - source.point.x) + 20;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n source.corners.left <= source.point.x && source.point.x <= source.corners.right) {\n direction = source.direction;\n length = (source.point.x > target.point.x) ? (source.point.x - source.corners.left + 20) :\n (source.corners.right - source.point.x + 20);\n }\n }\n var extra = (direction === 'Left' || direction === 'Top') ? -(length) : length;\n var angle = (direction === 'Left' || direction === 'Right') ? 0 : 90;\n var refPoint = source.point;\n source.point = addLineSegment(source.point, extra, angle);\n source.direction = Point.direction(source.point, target.point);\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n (source.corners.center.x === target.corners.center.x || source.corners.center.y === target.corners.center.y)) {\n source.direction = target.direction;\n }\n var point = orthoConnection3Segment(element, source, target);\n point.splice(0, 0, refPoint);\n return point;\n}\n/**\n * findSegmentDirection method \\\n *\n * @returns { void } findSegmentDirection method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {Direction} portDir - provide the target value.\n *\n * @private\n */\nfunction findSegmentDirection(element, source, target, portDir) {\n var update = false;\n switch (target.direction) {\n case 'Left':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Right' &&\n source.point.x > target.point.x && source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom)\n || (((portDir === 'Bottom' && source.point.y > target.point.y) ||\n (portDir === 'Top' && source.point.y < target.point.y)) &&\n source.point.x >= source.corners.left && source.point.x <= source.corners.right)) {\n source.direction = (portDir === 'Right') ? ((source.point.y > target.point.y) ? 'Top' : 'Bottom') :\n (source.point.x < target.point.x ? 'Right' : 'Left');\n update = true;\n }\n else if (source.point.x > target.point.x && (source.point.y > target.point.y || source.point.y < target.point.y)\n && (!(target.corners.top > source.point.y && target.corners.bottom < source.point.y))) {\n source.direction = 'Left';\n }\n else if ((source.point.x < target.point.x && source.point.y > target.point.y) ||\n (source.point.x > target.point.x && (source.point.y <= target.point.y)\n && ((target.corners.top < source.point.y && target.corners.center.y >= source.point.y)))) {\n source.direction = 'Top';\n }\n else if ((source.point.x < target.point.x && source.point.y < target.point.y) ||\n (source.point.x > target.point.x && (source.point.y > target.point.y)\n && ((target.corners.bottom < source.point.y && target.corners.center.y > source.point.y)))) {\n source.direction = 'Bottom';\n }\n else if (source.point.y === target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n break;\n case 'Right':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n ((portDir === 'Bottom' && source.point.y > target.point.y) ||\n (portDir === 'Top' && source.point.y < target.point.y)) && source.point.x > target.point.x &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)) {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n update = true;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n portDir === 'Left' && source.point.x < target.point.x && (source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom)) {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n update = true;\n }\n else if (source.point.x < target.point.x && target.corners.top <= source.point.y\n && target.corners.bottom >= source.point.y && source.point.y === target.point.y) {\n source.direction = 'Top';\n }\n else if (source.point.y > target.point.y && source.point.x > target.point.x) {\n source.direction = 'Top';\n }\n else if (source.point.y < target.point.y && source.point.x > target.point.x) {\n source.direction = 'Bottom';\n }\n else if (source.point.x < target.point.x && (source.point.y > target.point.y ||\n source.point.y < target.point.y)) {\n source.direction = 'Right';\n }\n else if (source.point.y === target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n break;\n case 'Top':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Bottom' &&\n source.point.y > target.point.y && source.point.x >= source.corners.left &&\n source.point.x <= source.corners.right) || (((portDir === 'Right' && source.point.x > target.point.x) ||\n (portDir === 'Left' && target.point.y > source.point.y && target.point.x > source.point.x)) &&\n (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom))) {\n source.direction = (portDir === 'Bottom') ? ((source.point.x > target.point.x) ? 'Left' : 'Right') :\n (source.point.y < target.point.y) ? 'Bottom' : 'Top';\n update = true;\n }\n else if (source.point.x === target.point.x && source.point.y < target.point.y) {\n source.direction = 'Bottom';\n }\n else if (source.point.y > target.point.y && source.point.x > target.corners.left &&\n source.point.x < target.corners.right) {\n source.direction = 'Left';\n }\n else if (source.point.y >= target.point.y) {\n source.direction = 'Top';\n }\n else if (source.point.y < target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y < target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n break;\n case 'Bottom':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && ((((portDir === 'Right') ||\n (portDir === 'Left' && target.point.x > source.point.x)) && (source.point.y > target.point.y) &&\n source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) ||\n (((portDir === 'Top' && source.point.y < target.point.y)) &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) {\n if (portDir === 'Right' || portDir === 'Left') {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n else {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n update = true;\n }\n else if (source.point.y < target.point.y && source.point.x > target.corners.left &&\n target.corners.right > source.point.x) {\n if (source.point.y < target.point.y && source.point.x > target.corners.left &&\n target.corners.center.x >= source.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y < target.point.y && source.point.x < target.corners.right &&\n target.corners.center.x < source.point.x) {\n source.direction = 'Right';\n }\n }\n else if (source.point.y > target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y > target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n else if (source.point.y <= target.point.y && (source.point.x > target.point.x || target.point.x > source.point.x)) {\n source.direction = 'Bottom';\n }\n break;\n }\n return update;\n}\n/**\n * pointToPort method \\\n *\n * @returns { void } pointToPort method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToPort(element, source, target) {\n var point;\n target.corners = element.targetWrapper.corners;\n var portdirection;\n var length;\n if (element.sourcePortWrapper !== undefined) {\n var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(element.sourceWrapper), element.sourceWrapper.bounds, false);\n }\n var update = findSegmentDirection(element, source, target, portdirection);\n // EJ2-65063 - Added below condition !selectedSegmentIndex to prevent the connector segment to split from two points into four points\n if ((!element.selectedSegmentIndex) && element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n target.direction === getOppositeDirection(portdirection) &&\n ((((target.direction === 'Left' && source.point.x > target.point.x) || (target.direction === 'Right' &&\n source.point.x < target.point.x)) && source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom) || (target.direction === 'Bottom' && source.point.y < target.point.y &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) {\n point = addPoints(element, source, target);\n }\n else if ((!element.selectedSegmentIndex) && source.direction === target.direction) {\n point = orthoConnection3Segment(element, source, target);\n }\n else if ((!element.selectedSegmentIndex) && (((target.direction === 'Left' && source.point.x > target.point.x) ||\n (target.direction === 'Right' && source.point.x < target.point.x)) && (source.direction === 'Top' || source.direction === 'Bottom')\n && ((source.point.y <= target.point.y) &&\n ((target.corners.top <= source.point.y && target.corners.bottom >= source.point.y)))) ||\n ((target.direction === 'Top' && source.point.y > target.point.y) ||\n (target.direction === 'Bottom' && source.point.y < target.point.y) &&\n ((target.corners.left <= source.point.x && target.corners.right >= source.point.x)))) {\n // EJ2-69304 - Return the 2 segment points if allowNodeOverlap is set as true.\n if (!element.selectedSegmentIndex) {\n point = addPoints(element, source, target);\n }\n else {\n point = orthoConnection2Segment(source, target);\n }\n }\n else {\n if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined\n && element.targetPortWrapper !== undefined && ((source.direction === 'Left' || source.direction === 'Right')\n && (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom)\n && (target.direction === 'Top' || target.direction === 'Bottom') &&\n (target.corners.center.x === source.corners.center.x))) {\n source.direction = (target.direction === 'Top') ? 'Bottom' : 'Top';\n length = (target.direction === 'Top') ? (source.corners.bottom - source.point.y + 20) :\n (source.point.y - source.corners.top + 20);\n point = orthoConnection3Segment(element, source, target, length);\n }\n else if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined\n && element.targetPortWrapper !== undefined && ((source.direction === 'Top' || source.direction === 'Bottom') &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right) &&\n (target.direction === 'Left' || target.direction === 'Right') && (target.corners.center.y === source.corners.center.y))) {\n source.direction = (target.direction === 'Left') ? 'Right' : 'Left';\n length = (target.direction === 'Left') ? (source.corners.right - source.point.x + 20) :\n (source.point.x - source.corners.left + 20);\n point = orthoConnection3Segment(element, source, target, length);\n }\n else if (update) {\n if (source.direction === 'Left' || source.direction === 'Right') {\n length = (source.direction === 'Left') ? (source.point.x - source.corners.left + 20) :\n (source.corners.right - source.point.x + 20);\n }\n else {\n length = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n }\n point = orthoConnection3Segment(element, source, target, length);\n }\n else {\n point = orthoConnection2Segment(source, target);\n }\n }\n return point;\n}\n/**\n * findPointToPointOrtho method \\\n *\n * @returns { void } findPointToPointOrtho method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the source value.\n * @param {DiagramElement} target - provide the target value.\n * @param {DiagramElement} sourceNode - provide the target value.\n * @param {DiagramElement} targetNode - provide the target value.\n * @param {DiagramElement} sourcePort - provide the sourcePort value.\n * @param {DiagramElement} targetPort - provide the targetPort value.\n *\n * @private\n */\nfunction findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort) {\n var j;\n var point;\n var intermeditatePoints = [];\n var direction;\n var port; //let seg: OrthogonalSegment;\n checkLastSegmentasTerminal(element);\n var removeSegment;\n if (element.segments.length > 0) {\n for (var i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n if (i === 0 && element.sourcePortWrapper !== undefined) {\n port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n direction = getPortDirection(port, cornersPointsBeforeRotation(sourceNode), sourceNode.bounds, false);\n if (seg.direction === getOppositeDirection(direction)) {\n seg.direction = direction;\n }\n }\n if (i > 0 && element.segments[i - 1].direction === seg.direction) {\n i = checkConsectiveSegmentAsSame(element, i, source);\n }\n else {\n var lastSegment = element.segments[i - 1];\n source.point = (seg.direction) ? updateSegmentPoints(source, seg) :\n lastSegment.points[lastSegment.points.length - 1];\n }\n if (i === element.segments.length - 1) {\n if (!targetPort && !targetNode) {\n point = pointToPoint(element, source, target);\n }\n else if (element.targetWrapper && element.targetPortWrapper === undefined) {\n checkSourcePointInTarget(element, source);\n point = pointToNode(element, source, target);\n }\n else {\n point = pointToPort(element, source, target);\n }\n if (point) {\n checkPreviousSegment(point, element, source);\n seg.points = [];\n if (point.length >= 2) {\n for (j = 0; j < point.length; j++) {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n }\n else {\n removeSegment = i;\n }\n }\n }\n if (sourcePort && i === 0) {\n var sourcePoint = checkPortdirection(element, sourcePort, sourceNode);\n if (sourcePoint) {\n source.point = sourcePoint;\n }\n }\n }\n if (removeSegment !== undefined) {\n if (removeSegment === element.segments.length - 1) {\n element.segments[removeSegment - 1].direction = null;\n element.segments[removeSegment - 1].length = null;\n }\n element.segments.splice(removeSegment, 1);\n }\n intermeditatePoints = returnIntermeditatePoints(element, intermeditatePoints);\n }\n return intermeditatePoints;\n}\n/**\n * checkPortdirection method \\\n *\n * @returns { PointModel } checkPortdirection method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} sourcePort - provide the target value.\n * @param {DiagramElement} sourceNode - provide the target value.\n *\n * @private\n */\nfunction checkPortdirection(element, sourcePort, sourceNode) {\n var port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n var point;\n var bounds = cornersPointsBeforeRotation(sourceNode);\n var direction = getPortDirection(port, bounds, sourceNode.bounds, false);\n var seg = element.segments[0];\n if (seg.direction !== direction) {\n pointsFromNodeToPoint(seg, direction, bounds, seg.points[0], seg.points[seg.points.length - 1], false);\n point = seg.points[seg.points.length - 1];\n seg.direction = Point.direction(seg.points[seg.points.length - 2], seg.points[seg.points.length - 1]);\n }\n return point;\n}\n/**\n * checkPreviousSegment method \\\n *\n * @returns { PointModel } checkPreviousSegment method .\\\n * @param {Connector} tPoints - provide the element value.\n * @param {DiagramElement} connector - provide the target value.\n * @param {DiagramElement} source - provide the target value.\n *\n * @private\n */\nfunction checkPreviousSegment(tPoints, connector, source) {\n var actualSegment = connector.segments[connector.segments.length - 2];\n var actualLastPoint = actualSegment.points[actualSegment.points.length - 1];\n var direction;\n if (((actualSegment.direction === 'Top' || actualSegment.direction === 'Bottom') && (actualLastPoint.x === tPoints[1].x)) ||\n ((actualSegment.direction === 'Left' || actualSegment.direction === 'Right') && (actualLastPoint.y === tPoints[1].y))) {\n actualSegment.points[actualSegment.points.length - 1] = tPoints[1];\n direction = Point.direction(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]);\n if (connector.sourceWrapper !== undefined && connector.sourcePortWrapper === undefined &&\n direction === getOppositeDirection(actualSegment.direction)) {\n if (actualSegment.direction === 'Left' || actualSegment.direction === 'Right') {\n actualSegment.points[0].x = (actualSegment.direction === 'Right') ?\n actualSegment.points[0].x - connector.sourceWrapper.corners.width :\n actualSegment.points[0].x + connector.sourceWrapper.corners.width;\n }\n else {\n actualSegment.points[0].y = (actualSegment.direction === 'Bottom') ?\n actualSegment.points[0].y - connector.sourceWrapper.corners.height :\n actualSegment.points[0].y + connector.sourceWrapper.corners.height;\n }\n }\n actualSegment.direction = direction;\n actualSegment.length = Point.distancePoints(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]);\n tPoints.splice(0, 1);\n }\n}\n/**\n * connectToOneEnd method \\\n *\n * @returns { void } connectToOneEnd method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the target value.\n * @param {DiagramElement} target - provide the target value.\n *\n * @private\n */\nfunction connectToOneEnd(element, source, target) {\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var node = element.sourceWrapper;\n var fixedPoint = source.point;\n var nodeMargin = { left: 0, right: 0, top: 0, bottom: 0 };\n var nodeConnectingPoint = { x: 0, y: 0 };\n var refPoint;\n var nodeDirection = 'Top';\n if (!node) {\n node = element.targetWrapper;\n nodeMargin = target.margin;\n }\n else {\n fixedPoint = target.point;\n nodeMargin = source.margin;\n }\n if (element.type === 'Orthogonal') {\n if ((element.segments && element.segments.length > 0) && element.sourceWrapper &&\n element.segments[0].direction) {\n source.direction = element.segments[0].direction;\n nodeConnectingPoint = findPoint(node.corners, source.direction);\n refPoint = findPoint(node.corners, getOppositeDirection(source.direction));\n nodeConnectingPoint = getIntersection(element, node, nodeConnectingPoint, refPoint, false);\n }\n else {\n var source_1 = { corners: null, direction: null, point: fixedPoint, margin: nodeMargin };\n var target_1 = { corners: null, direction: null, point: null, margin: null };\n findDirection(node, source_1, target_1, element);\n nodeConnectingPoint = target_1.point;\n nodeDirection = target_1.direction;\n }\n }\n else {\n var segmentPoint = void 0;\n if (element.segments && element.segments.length > 1) {\n if (node === element.sourceWrapper) {\n segmentPoint = element.segments[0].point;\n }\n else {\n segmentPoint = element.segments[element.segments.length - 2].point;\n }\n }\n nodeConnectingPoint = getIntersection(element, node, node.bounds.center, (element.segments && element.segments.length > 1) ? segmentPoint : fixedPoint, node === element.targetWrapper);\n }\n if (node === element.sourceWrapper) {\n source.direction = source.direction || nodeDirection;\n source.point = nodeConnectingPoint;\n if (element.sourcePortWrapper) {\n source.point = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n if (element.sourcePadding) {\n source.point = addPaddingToConnector(element, source, target, false);\n }\n }\n }\n else {\n target.direction = target.direction || nodeDirection;\n target.point = nodeConnectingPoint;\n if (element.targetPortWrapper) {\n target.point = { x: targetPort.offsetX, y: targetPort.offsetY };\n if (element.targetPadding) {\n target.point = addPaddingToConnector(element, source, target, true);\n }\n }\n }\n}\n/**\n * addPaddingToConnector method \\\n *\n * @returns { void } addPaddingToConnector method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the target value.\n * @param {DiagramElement} target - provide the target value.\n * @param {DiagramElement} isTarget - provide the target value.\n *\n * @private\n */\nfunction addPaddingToConnector(element, source, target, isTarget) {\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var padding = (isTarget) ? element.targetPadding : element.sourcePadding;\n var paddingPort = (isTarget) ? targetPort : sourcePort;\n var rect = new Rect(paddingPort.bounds.x - padding, paddingPort.bounds.y - padding, paddingPort.actualSize.width + 2 * padding, paddingPort.actualSize.height + 2 * padding);\n var segmentPoints = [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft];\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n //const length: number = segmentPoints.length;\n var thisSegment = { x1: source.point.x, y1: source.point.y, x2: target.point.x, y2: target.point.y };\n var point = (isTarget) ? target.point : source.point;\n return getIntersectionPoints(thisSegment, segmentPoints, true, point) || point;\n}\n/**\n * checkSourceAndTargetIntersect method \\\n *\n * @returns { void } checkSourceAndTargetIntersect method .\\\n * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value.\n * @param {DiagramElement} targetWrapper - provide the targetWrapper value.\n * @param {Connector} connector - provide the Connector value.\n *\n * @private\n */\nfunction checkSourceAndTargetIntersect(sourceWrapper, targetWrapper, connector) {\n var sourceSegment = createSegmentsCollection(sourceWrapper, connector.sourcePadding);\n var targetSegment = createSegmentsCollection(targetWrapper, connector.targetPadding);\n for (var i = 0; i < sourceSegment.length - 1; i++) {\n var srcSegment = sourceSegment[parseInt(i.toString(), 10)];\n for (var j = 0; j < targetSegment.length - 1; j++) {\n var tarSegmet = targetSegment[parseInt(j.toString(), 10)];\n if (intersect3(srcSegment, tarSegmet).enabled) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * createSegmentsCollection method \\\n *\n * @returns { Segment[] } createSegmentsCollection method .\\\n * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value.\n * @param {number} padding - provide the padding value.\n *\n * @private\n */\nfunction createSegmentsCollection(sourceWrapper, padding) {\n var segments = [];\n var points = getPoints(sourceWrapper, sourceWrapper.corners, padding);\n points.push(points[0]);\n for (var i = 0; i < points.length - 1; i++) {\n segments.push(createLineSegment(points[parseInt(i.toString(), 10)], points[i + 1]));\n }\n return segments;\n}\n/**\n * createLineSegment method \\\n *\n * @returns { Segment } createLineSegment method .\\\n * @param {PointModel} sPt - provide the sourceWrapper value.\n * @param {PointModel} tPt - provide the padding value.\n *\n * @private\n */\nfunction createLineSegment(sPt, tPt) {\n var line = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y };\n return line;\n}\n/**\n * swapBounds method \\\n *\n * @returns { Corners } swapBounds method .\\\n * @param {PointModel} object - provide the sourceWrapper value.\n * @param {PointModel} bounds - provide the padding value.\n * @param {Rect} outerBounds - provide the padding value.\n *\n * @private\n */\nexport function swapBounds(object, bounds, outerBounds) {\n var rectBounds;\n var rotateAngle = object.rotateAngle + object.parentTransform;\n if (rotateAngle) {\n if (rotateAngle < 45) {\n return bounds;\n }\n else if (rotateAngle <= 135) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.bottomLeft, topCenter: bounds.middleLeft, topRight: bounds.topLeft,\n middleLeft: bounds.bottomCenter, center: outerBounds.center, middleRight: bounds.topCenter,\n bottomLeft: bounds.bottomRight, bottomCenter: bounds.middleRight, bottomRight: bounds.topRight,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom\n };\n }\n else if (rotateAngle <= 225) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.bottomLeft, topCenter: bounds.bottomCenter, topRight: bounds.bottomRight,\n middleLeft: bounds.middleRight, center: outerBounds.center, middleRight: bounds.middleLeft,\n bottomLeft: bounds.topLeft, bottomCenter: bounds.topCenter, bottomRight: bounds.topRight,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top,\n bottom: outerBounds.bottom\n };\n }\n else if (rotateAngle <= 315) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.topRight, topCenter: bounds.middleRight, topRight: bounds.bottomRight,\n middleLeft: bounds.topCenter, center: outerBounds.center, middleRight: bounds.bottomCenter,\n bottomLeft: bounds.topLeft, bottomCenter: bounds.middleLeft, bottomRight: bounds.bottomLeft,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom\n };\n }\n else {\n return bounds;\n }\n return rectBounds;\n }\n return bounds;\n}\n/**\n * defaultOrthoConnection method \\\n *\n * @returns { PointModel[] } defaultOrthoConnection method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {Direction} srcDir - provide the srcDir value.\n * @param {Direction} tarDir - provide the srcDir value.\n * @param {PointModel} sPt - provide the sPt value.\n * @param {PointModel} tPt - provide the tPt value.\n * @param {Rect} lineDistribution - provide the padding value.\n *\n * @private\n */\n/* tslint:disable */\n// eslint-disable-next-line\nfunction defaultOrthoConnection(ele, srcDir, tarDir, sPt, tPt, lineDistribution) {\n var sourceEle = ele.sourceWrapper;\n var targetEle = ele.targetWrapper;\n var srcPort = ele.sourcePortWrapper;\n var tarPort = ele.targetPortWrapper;\n var intermeditatePoints = [];\n var refPoint;\n var srcCor = sourceEle.corners;\n // eslint-disable-next-line\n var tarCor = targetEle.corners;\n var point = tarCor.center; //const i: number;\n var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var source = { corners: srcCor, point: sPt, direction: srcDir, margin: sourceMargin };\n // eslint-disable-next-line\n var target = { corners: tarCor, point: tPt, direction: tarDir, margin: targetMargin };\n var srcBounds = swapBounds(sourceEle, srcCor, ele.sourceWrapper.bounds);\n var tarBounds = swapBounds(targetEle, tarCor, ele.targetWrapper.bounds);\n var isInterSect = false;\n if (ele.sourceWrapper && ele.targetWrapper) {\n isInterSect = checkSourceAndTargetIntersect(ele.sourceWrapper, ele.targetWrapper, ele);\n }\n if (srcPort !== undefined) {\n source.point = { x: srcPort.offsetX, y: srcPort.offsetY };\n switch (source.direction) {\n case 'Bottom':\n case 'Top':\n // eslint-disable-next-line\n source.point.y = source.point.y;\n break;\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n source.point.x = source.point.x;\n break;\n }\n if (ele.sourcePadding && !isInterSect) {\n if (tarPort) {\n target.point = {\n x: tarPort.offsetX,\n y: tarPort.offsetY\n };\n }\n source.point = addPaddingToConnector(ele, source, target, false);\n }\n }\n else {\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n if (ele.segments && ele.segments.length > 0 && ele.segments[0].direction) {\n source.direction = ele.segments[0].direction;\n }\n source.point = findPoint(srcBounds, source.direction);\n refPoint = findPoint(srcBounds, getOppositeDirection(source.direction));\n source.point = getIntersection(ele, sourceEle, source.point, refPoint, false);\n }\n else {\n source.point = sourceEle.corners.center;\n }\n }\n if (tarPort !== undefined) {\n target.point = {\n x: tarPort.offsetX,\n y: tarPort.offsetY\n };\n switch (target.direction) {\n case 'Bottom':\n case 'Top':\n // eslint-disable-next-line\n target.point.y = target.point.y;\n break;\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n target.point.x = target.point.x;\n break;\n }\n if (ele.targetPadding && !isInterSect) {\n target.point = addPaddingToConnector(ele, source, target, true);\n }\n }\n else {\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n target.point = findPoint(tarBounds, target.direction);\n refPoint = findPoint(tarBounds, getOppositeDirection(target.direction));\n target.point = getIntersection(ele, targetEle, target.point, refPoint, true);\n }\n else {\n target.point = targetEle.corners.center;\n }\n }\n if (ele.type !== 'Orthogonal') {\n var segment = void 0;\n var first = void 0;\n if (ele.type === 'Bezier') {\n //EJ2-67651 - Bezier segment points are static when we move the connector's source or target node.\n if ((ele.bezierSettings.allowSegmentsReset || (ele.segments.length === 0 ||\n (!Point.isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) {\n intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution);\n intermeditatePoints = intermeditatePointsForStraight(ele, source, target);\n return intermeditatePoints;\n }\n else {\n checkLastSegmentasTerminal(ele);\n }\n }\n else {\n checkLastSegmentasTerminal(ele);\n }\n if (ele.sourcePortWrapper === undefined) {\n source.point = source.corners.center;\n if (ele.segments && ele.segments.length > 0) {\n first = ele.segments[0];\n segment = (!Point.isEmptyPoint(first.point)) ? first : undefined;\n }\n var tarPoint = (segment !== undefined) ? segment.point : target.point;\n if (ele.type === 'Bezier' && ele.segments.length > 0 &&\n ele.segments[0].vector1.angle && ele.segments[0].vector1.distance) {\n var value = Math.max(source.corners.width, source.corners.height);\n tarPoint = Point.transform(source.point, ele.segments[0].vector1.angle, value / 2);\n }\n source.point = isInterSect ? ele.sourceWrapper.bounds.center : getIntersection(ele, sourceEle, source.point, tarPoint, false);\n }\n if (ele.targetPortWrapper === undefined) {\n target.point = target.corners.center;\n if (ele.segments && ele.segments.length > 1) {\n first = ele.segments[ele.segments.length - 2];\n segment = (!Point.isEmptyPoint(first.point)) ? first : undefined;\n }\n var srcPoint = (segment) ? segment.point : source.point;\n if (ele.type === 'Bezier' && ele.segments.length > 0 &&\n ele.segments[ele.segments.length - 1].vector2.angle &&\n ele.segments[ele.segments.length - 1].vector2.distance) {\n var value = Math.max(source.corners.width, source.corners.height);\n srcPoint = Point.transform(target.point, ele.segments[0].vector2.angle, value / 2);\n }\n target.point = isInterSect ? ele.targetWrapper.bounds.center : getIntersection(ele, targetEle, srcPoint, target.point, true);\n }\n intermeditatePoints = intermeditatePointsForStraight(ele, source, target);\n }\n else {\n if (ele.type === 'Orthogonal' && (ele.segments && ele.segments.length > 0) &&\n ele.segments[0].direction !== null) {\n intermeditatePoints = findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle);\n }\n else {\n if (!ele.segments[0]) {\n var segment = new OrthogonalSegment(ele, 'segments', { type: 'Orthogonal' }, true);\n ele.segments.push(segment);\n }\n // eslint-disable-next-line\n ele.segments[0].points = intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution);\n }\n }\n return intermeditatePoints;\n}\n/**\n * intermeditatePointsForStraight method \\\n *\n * @returns { PointModel[] } intermeditatePointsForStraight method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction intermeditatePointsForStraight(element, source, target) {\n var intermeditatePoints = [];\n if (element.segments && element.segments.length > 0) {\n var i = void 0;\n var segPoint = [];\n var srcPoint = source.point;\n for (i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n segPoint = [];\n segPoint.push(srcPoint);\n if (i !== element.segments.length - 1) {\n segPoint.push(seg.point);\n srcPoint = seg.point;\n }\n else {\n segPoint.push(target.point);\n }\n element.segments[parseInt(i.toString(), 10)].points = segPoint;\n if (element.segments.length > 1 && Point.equals(seg.points[0], seg.points[1])) {\n (element.segments).splice(i, 1);\n }\n if (seg) {\n for (var j = 0; j < seg.points.length; j++) {\n if (j > 0 || i === 0) {\n intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]);\n }\n }\n }\n }\n }\n return intermeditatePoints;\n}\n/**\n * findSourceDirection method \\\n *\n * @returns { PointModel[] } findSourceDirection method .\\\n * @param {Direction} dir - provide the dir value.\n * @param {PointModel} srcPoint - provide the srcPoint value.\n * @param {PointModel} tarPoint - provide the tarPoint value.\n *\n * @private\n */\nfunction findSourceDirection(dir, srcPoint, tarPoint) {\n var direction = (dir === 'Top' || dir === 'Bottom') ?\n ((tarPoint.x > srcPoint.x) ? 'Right' : 'Left') :\n ((tarPoint.y > srcPoint.y) ? 'Bottom' : 'Top');\n return direction;\n}\n/**\n * checkLastSegmentasTerminal method \\\n *\n * @returns { void } checkLastSegmentasTerminal method .\\\n * @param {Connector} ele - provide the Connector value.\n *\n * @private\n */\nfunction checkLastSegmentasTerminal(ele) {\n if (ele.type === 'Straight' || ele.type === 'Bezier') {\n if ((ele.segments.length === 0 || (ele.segments.length > 0 &&\n (!Point.isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) {\n //let segment: BezierSegmentModel | StraightSegmentModel;\n if (ele.type === 'Bezier') {\n var segment = new BezierSegment(ele, 'segments', { type: 'Bezier', isInternalSegment: true }, true);\n (ele.segments).push(segment);\n }\n else {\n var segment = new StraightSegment(ele, 'segments', { type: 'Straight' }, true);\n (ele.segments).push(segment);\n }\n }\n }\n else {\n if (ele.segments.length > 0) {\n var isInvalid = false;\n var i = 0;\n while (i < ele.segments.length) {\n var seg = ele.segments[parseInt(i.toString(), 10)];\n if (isInvalid ||\n (seg && !(seg instanceof OrthogonalSegment || seg instanceof StraightSegment || seg instanceof BezierSegment))) {\n ele.segments.splice(i, 1);\n isInvalid = true;\n }\n else {\n i++;\n }\n }\n }\n if (ele.segments.length === 0 || ele.segments[ele.segments.length - 1].direction) {\n var segment = new OrthogonalSegment(ele, 'segments', { type: 'Orthogonal' }, true);\n ele.segments.push(segment);\n }\n }\n}\n/**\n * checkConsectiveSegmentAsSame method \\\n *\n * @returns { number } checkConsectiveSegmentAsSame method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {Connector} i - provide the Connector value.\n * @param {Connector} source - provide the Connector value.\n *\n * @private\n */\nfunction checkConsectiveSegmentAsSame(ele, i, source) {\n var seg = ele.segments[parseInt(i.toString(), 10)];\n var extra = (seg.direction === 'Left' || seg.direction === 'Top') ? -(seg.length) : seg.length;\n var angle = (seg.direction === 'Left' || seg.direction === 'Right') ? 0 : 90;\n var segPoint = addLineSegment(source.point, extra, angle);\n ele.segments[i - 1].length += seg.length;\n ele.segments[i - 1].points[1] = source.point = segPoint;\n ele.segments.splice(i, 1);\n i--;\n return i;\n}\n/**\n * nodeOrPortToNode method \\\n *\n * @returns { PointModel[] } nodeOrPortToNode method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {End} source - provide the Connector value.\n * @param {End} target - provide the Connector value.\n *\n * @private\n */\nfunction nodeOrPortToNode(ele, source, target) {\n var point;\n var portdirection;\n if (ele.sourcePortWrapper) {\n var port = { x: ele.sourcePortWrapper.offsetX, y: ele.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(ele.sourceWrapper), ele.sourceWrapper.bounds, false);\n }\n findDirection(ele.targetWrapper, source, target, ele);\n var direction = findSourceDirection(target.direction, source.point, target.point);\n if (ele.sourcePortWrapper !== undefined && source.direction === target.direction &&\n ((source.direction === 'Top' || source.direction === 'Bottom') && (source.corners.center.x === target.corners.center.x)\n || (source.direction === 'Left' || source.direction === 'Right') && (source.corners.center.y === target.corners.center.y))) {\n source.direction = direction;\n point = (direction === 'Top' || direction === 'Bottom') ?\n orthoConnection3Segment(ele, source, target, ele.sourceWrapper.height / 2 + 20) :\n orthoConnection3Segment(ele, source, target, ele.sourceWrapper.width / 2 + 20);\n var source1 = source;\n source1.point = point[1];\n if (direction === 'Left' || direction === 'Right') {\n target.direction = direction;\n target.point = (direction === 'Left') ? target.corners.middleLeft : target.corners.middleRight;\n }\n else {\n findDirection(ele.targetWrapper, source, target, ele);\n }\n point = orthoConnection3Segment(ele, source, target);\n }\n else if (target.point.x >= source.corners.left && target.point.x <= source.corners.right &&\n source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n var length_2 = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n point = orthoConnection3Segment(ele, source, target, length_2);\n }\n else if (ele.sourcePortWrapper && portdirection === getOppositeDirection(direction)) {\n var length_3;\n if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top\n && source.point.y <= source.corners.bottom)) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n length_3 = source.corners.height / 2 + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left\n && source.point.x <= source.corners.right)) {\n source.direction = (target.point.x > source.point.x) ? 'Right' : 'Left';\n length_3 = source.corners.width / 2 + 20;\n }\n if (source.direction && length_3) {\n point = orthoConnection3Segment(ele, source, target, length_3, true);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n }\n else if (ele.sourcePortWrapper && portdirection === target.direction && (portdirection === 'Top' || portdirection === 'Bottom') &&\n (source.corners.center.x === target.corners.center.x)) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n var len = (source.direction === 'Bottom') ? (source.corners.bottom - source.point.y + 20) :\n (source.point.y - source.corners.top + 20);\n point = orthoConnection3Segment(ele, source, target, len);\n }\n else { //901771- Connector routing is not proper while setting the segment direction as \"Left\"\n if (source.direction === target.direction) {\n if (((source.direction === 'Left' || source.direction === 'Right') &&\n target.point.y > source.corners.top - 20 && target.point.y < source.corners.bottom + 20) ||\n ((source.direction === 'Top' || source.direction === 'Bottom') &&\n target.point.x > source.corners.left - 20 && target.point.x < source.corners.right + 20)) {\n var prevdirection = source.direction;\n source.direction = direction;\n point = orthoConnection4Segment(source, target, prevdirection, point, 20, false);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n }\n return point;\n}\n/**\n * checkSourcePointInTarget method \\\n *\n * @returns { void } checkSourcePointInTarget method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {End} source - provide the Connector value.\n *\n * @private\n */\nfunction checkSourcePointInTarget(ele, source) {\n if (ele.targetWrapper !== undefined && ele.targetPortWrapper === undefined) {\n var padding = 1;\n if (cornersPointsBeforeRotation(ele.targetWrapper).containsPoint(source.point, padding)) {\n var target = ele.targetWrapper;\n var segment = ele.segments[ele.segments.length - 2];\n var lastPoint = segment.points[segment.points.length - 1];\n var direction = getOppositeDirection(segment.direction);\n if (direction === 'Bottom') {\n if (lastPoint.y < target.corners.bottom + padding) {\n segment.points[segment.points.length - 1].y = target.corners.bottom + 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Top') {\n if (lastPoint.y > target.corners.top - padding) {\n segment.points[segment.points.length - 1].y = target.corners.top - 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Left') {\n if (lastPoint.x > target.corners.left - padding) {\n segment.points[segment.points.length - 1].x = target.corners.left - 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Right') {\n if (lastPoint.x < target.corners.right + padding) {\n segment.points[segment.points.length - 1].x = target.corners.right + 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n source.point = segment.points[segment.points.length - 1];\n }\n }\n}\n/**\n * findIntermeditatePoints method \\\n *\n * @returns { void } findIntermeditatePoints method .\\\n * @param {Connector} ele - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the source value.\n * @param {DiagramElement} srcPort - provide the srcPort value.\n * @param {DiagramElement} tarPort - provide the tarPort value.\n * @param {DiagramElement} sourceEle - provide the sourceEle value.\n * @param {DiagramElement} targetEle - provide the targetEle value.\n * @private\n */\nfunction findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle) {\n var point;\n var intermeditatePoints = [];\n var seg;\n var j;\n var removeSegment;\n checkLastSegmentasTerminal(ele);\n for (var i = 0; i < ele.segments.length; i++) {\n seg = ele.segments[parseInt(i.toString(), 10)];\n if (srcPort && source.direction === getOppositeDirection(seg.direction)) {\n seg.direction = source.direction;\n }\n if (i > 0 && ele.segments[i - 1].direction === seg.direction) {\n i = checkConsectiveSegmentAsSame(ele, i, source);\n }\n else {\n if (seg.direction) {\n source.point = updateSegmentPoints(source, ele.segments[parseInt(i.toString(), 10)]);\n }\n else {\n var segment = ele.segments[i - 1];\n if (segment && segment.points && segment.points.length > 0) {\n source.point = segment.points[segment.points.length - 1];\n }\n }\n }\n if (i === ele.segments.length - 1) {\n checkSourcePointInTarget(ele, source);\n if (tarPort === undefined) {\n point = nodeOrPortToNode(ele, source, target);\n }\n else {\n point = pointToPort(ele, source, target);\n }\n checkPreviousSegment(point, ele, source);\n seg.points = [];\n if (point.length >= 2) {\n for (j = 0; j < point.length; j++) {\n if (!ele.selectedSegmentIndex) {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n else {\n // EJ2-65063 - If point length is greater then 2 means then empty the last segment points and set it as two points instead of four points\n if (j === point.length - 1 && point.length > 2 && ele.segments.length > 2) {\n // EJ2-69304 - Change the point calculation to work for all port combination\n var point2 = { x: point[parseInt(j.toString(), 10)].x, y: source.point.y };\n // EJ2 - 65063 - Empty the segment points\n seg.points = [];\n // EJ2-69304 - Calculate the point for segment and manually push the point in segment point calculation\n seg.points.push(point2);\n seg.points.push(point[parseInt(j.toString(), 10)]);\n var segment = ele.segments[i - 1];\n //EJ2 - Orthogonal connector gets broken when dragging segment thumb\n if (ele.segments.length < 4) {\n segment.points.pop();\n }\n // Bug 834713: Orthogonal connector routing is not proper, When allowNodeOverlap is Set to true.\n segment.points = segment.points.concat(seg.points);\n }\n else {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n }\n }\n }\n else {\n removeSegment = i;\n }\n }\n // EJ2-65063 - Added below condition !selectedSegmentIndex to restrict the connector segment to remove from its collection.\n if (removeSegment !== undefined && !ele.selectedSegmentIndex) {\n if (removeSegment === ele.segments.length - 1) {\n ele.segments[removeSegment - 1].direction = null;\n ele.segments[removeSegment - 1].length = null;\n }\n ele.segments.splice(removeSegment, 1);\n }\n if (srcPort && i === 0) {\n var sourcePoint = checkPortdirection(ele, srcPort, sourceEle);\n if (sourcePoint) {\n source.point = sourcePoint;\n }\n }\n }\n return returnIntermeditatePoints(ele, intermeditatePoints);\n}\n/**\n * returnIntermeditatePoints method \\\n *\n * @returns { PointModel[] } returnIntermeditatePoints method .\\\n * @param {Connector} element - provide the ele value.\n * @param {PointModel[]} intermeditatePoints - provide the source value.\n * @private\n */\nfunction returnIntermeditatePoints(element, intermeditatePoints) {\n for (var i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n for (var j = 0; j < seg.points.length; j++) {\n if (j > 0 || i === 0) {\n intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]);\n }\n }\n }\n return intermeditatePoints;\n}\n/**\n * findDirection method \\\n *\n * @returns { void } findDirection method .\\\n * @param {DiagramElement} node - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the source value.\n * @param {Connector} ele - provide the source value.\n * @private\n */\nfunction findDirection(node, source, target, ele) {\n var nodeDirection;\n var nodeConnectingPoint = { x: 0, y: 0 };\n var nodeCorners = swapBounds(node, node.corners, node.bounds);\n var nodeMargin = source.margin;\n var fixedPoint = source.point;\n if (nodeCorners.bottomCenter.y + nodeMargin.bottom < fixedPoint.y) {\n nodeDirection = 'Bottom';\n nodeConnectingPoint = nodeCorners.bottomCenter;\n }\n else if (nodeCorners.topCenter.y - nodeMargin.top > fixedPoint.y) {\n nodeDirection = 'Top';\n nodeConnectingPoint = nodeCorners.topCenter;\n }\n else if (nodeCorners.middleLeft.x - nodeMargin.left > fixedPoint.x) {\n nodeDirection = 'Left';\n nodeConnectingPoint = nodeCorners.middleLeft;\n }\n else if (nodeCorners.middleRight.x + nodeMargin.right < fixedPoint.x) {\n nodeDirection = 'Right';\n nodeConnectingPoint = nodeCorners.middleRight;\n }\n else {\n var top_1 = Math.abs(fixedPoint.y - nodeCorners.topCenter.y);\n var right = Math.abs(fixedPoint.x - nodeCorners.middleRight.x);\n var bottom = Math.abs(fixedPoint.y - nodeCorners.bottomCenter.y);\n var left = Math.abs(fixedPoint.x - nodeCorners.middleLeft.x);\n var shortes = Number.MAX_VALUE;\n shortes = top_1;\n nodeDirection = 'Top';\n nodeConnectingPoint = nodeCorners.topCenter;\n if (shortes > right) {\n shortes = right;\n nodeDirection = 'Right';\n nodeConnectingPoint = nodeCorners.middleRight;\n }\n if (shortes > bottom) {\n shortes = bottom;\n nodeDirection = 'Bottom';\n nodeConnectingPoint = nodeCorners.bottomCenter;\n }\n if (shortes > left) {\n //shortes = left;\n nodeDirection = 'Left';\n nodeConnectingPoint = nodeCorners.middleLeft;\n }\n }\n target.point = nodeConnectingPoint;\n target.direction = nodeDirection;\n var refPoint = findPoint(nodeCorners, getOppositeDirection(target.direction));\n target.point = getIntersection(ele, node, target.point, refPoint, node === ele.targetWrapper);\n}\n/**\n * findOrthoSegments method \\\n *\n * @returns { PointModel[] } findOrthoSegments method .\\\n * @param {DiagramElement} ele - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {Connector} extra - provide the extra value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n * @private\n */\nfunction findOrthoSegments(ele, source, target, extra, lineDistribution) {\n var swap = false;\n var intermeditatePoints = [];\n var seg;\n swap = getSwapping(source.direction, target.direction);\n if (swap) {\n swapPoints(source, target);\n }\n if (source.direction === 'Right' && target.direction === 'Left') {\n seg = getRightToLeftSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Right' && target.direction === 'Right') {\n seg = getRightToRightSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Right' && target.direction === 'Top') {\n seg = getRightToTopSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Right' && target.direction === 'Bottom') {\n seg = getRightToBottomSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Top') {\n seg = getBottomToTopSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Bottom') {\n /**\n * EJ2-56920-Option to adjust the distance between source node and target node.\n */\n var margin = findMargin(ele);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n seg = getBottomToBottomSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Left') {\n seg = getBottomToLeftSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Left' && target.direction === 'Left') {\n seg = getLeftToLeftSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Left' && target.direction === 'Top') {\n seg = getLeftToTopSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Top' && target.direction === 'Top') {\n seg = getTopToTopSegmentCount(ele, source, target);\n }\n if (swap) {\n swapPoints(source, target);\n }\n intermeditatePoints = addOrthoSegments(ele, seg, source, target, extra, lineDistribution);\n if (ele.type === 'Bezier') {\n convertPointToBezierSegment(ele, seg, intermeditatePoints);\n }\n return intermeditatePoints;\n}\n/**\n * Returns the margin of source node and the target node\n *\n * @returns { number } - findMargin method .\\\n * @param { Connector } element - provide the element value\n * @private\n */\nexport function findMargin(element) {\n var margin;\n if (element.connectorSpacing >= 13) {\n margin = 13;\n }\n else if (element.connectorSpacing <= 1) {\n margin = 1;\n }\n else {\n margin = element.connectorSpacing;\n }\n return margin;\n}\n/**\n * findAngle method \\\n *\n * @returns { number } findAngle method .\\\n * @param {DiagramElement} s - provide the s value.\n * @param {End} e - provide the e value.\n * @private\n */\nexport function findAngle(s, e) {\n var r = { x: e.x, y: s.y };\n //const sr: number = Point.findLength(s, r);\n var re = Point.findLength(r, e);\n var es = Point.findLength(e, s);\n var ang = Math.asin(re / es);\n ang = ang * 180 / Math.PI;\n if (s.x < e.x) {\n if (s.y > e.y) {\n ang = 360 - ang;\n }\n }\n else {\n if (s.y < e.y) {\n ang = 180 - ang;\n }\n else {\n ang = 180 + ang;\n }\n }\n return ang;\n}\n/**\n * findPoint method \\\n *\n * @returns { number } findPoint method .\\\n * @param {Corners} cor - provide the cor value.\n * @param {string} direction - provide the direction value.\n * @private\n */\nexport function findPoint(cor, direction) {\n var point;\n switch (direction) {\n case 'Left':\n point = cor.middleLeft;\n break;\n case 'Top':\n point = cor.topCenter;\n break;\n case 'Right':\n point = cor.middleRight;\n break;\n case 'Bottom':\n point = cor.bottomCenter;\n break;\n }\n return point;\n}\n/**\n * pointsFromNodeToPoint method \\\n *\n * @returns { number } pointsFromNodeToPoint method .\\\n * @param {OrthogonalSegment} seg - provide the seg value.\n * @param {string} direction - provide the direction value.\n * @param {Rect} bounds - provide the bounds value.\n * @param {PointModel} point - provide the point value.\n * @param {PointModel} endPoint - provide the endPoint value.\n * @param {boolean} isTarget - provide the isTarget value.\n * @private\n */\nfunction pointsFromNodeToPoint(seg, direction, bounds, point, endPoint, isTarget) {\n var minSpace = 13;\n var x;\n var points = [];\n var y;\n points.push(point);\n //let straight: boolean;\n var straight = (point.y === endPoint.y && (direction === 'Left' && endPoint.x < point.x ||\n direction === 'Right' && endPoint.x > point.x)) ||\n (point.x === endPoint.x && (direction === 'Top' && endPoint.y < point.y ||\n direction === 'Bottom' && endPoint.y > point.y));\n if (!straight) {\n if (direction === 'Top' || direction === 'Bottom') {\n if (direction === 'Top' && endPoint.y < point.y && endPoint.y > point.y - minSpace ||\n direction === 'Bottom' && endPoint.y > point.y && endPoint.y < point.y + minSpace) {\n y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace;\n points.push({ x: point.x, y: y });\n points.push({ x: point.x + (endPoint.x - point.x) / 2, y: y });\n points.push({ x: point.x + (endPoint.x - point.x) / 2, y: endPoint.y });\n }\n else if (Math.abs(point.x - endPoint.x) > minSpace &&\n (direction === 'Top' && endPoint.y < point.y || direction === 'Bottom' && endPoint.y > point.y)) {\n //twosegments\n points.push({ x: point.x, y: endPoint.y });\n }\n else {\n y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace;\n x = (endPoint.x < point.x) ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: point.x, y: y });\n points.push({ x: endPoint.x, y: y });\n }\n }\n else {\n if (direction === 'Left' && endPoint.x < point.x && endPoint.x > point.x - minSpace || direction === 'right' &&\n endPoint.x > point.x && endPoint.x < point.x + minSpace) {\n x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: x, y: point.y });\n points.push({ x: x, y: point.y + (endPoint.y - point.y) / 2 });\n points.push({ x: endPoint.x, y: point.y + (endPoint.y - point.y) / 2 });\n }\n else if (Math.abs(point.y - endPoint.y) > minSpace &&\n (direction === 'Left' && endPoint.x < point.x || direction === 'Right' && endPoint.x > point.x)) {\n points.push({ x: endPoint.x, y: point.y });\n //twosegments\n }\n else {\n x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: x, y: point.y });\n points.push({ x: x, y: endPoint.y });\n }\n }\n if (isTarget) {\n points.push(seg.points[0]);\n points.reverse();\n }\n seg.points = points;\n }\n}\n/**\n * addLineSegment method \\\n *\n * @returns { PointModel } addLineSegment method .\\\n * @param {PointModel} point - provide the seg value.\n * @param {number} extra - provide the direction value.\n * @param {number} angle - provide the bounds value.\n * @private\n */\nfunction addLineSegment(point, extra, angle) {\n var segEnd = Point.transform(point, angle, extra);\n return segEnd;\n}\n/**\n * getIntersection method \\\n *\n * @returns { PointModel } getIntersection method .\\\n * @param {PointModel} ele - provide the ele value.\n * @param {number} bounds - provide the bounds value.\n * @param {number} sPt - provide the sPt value.\n * @param {number} tPt - provide the tPt value.\n * @param {number} isTar - provide the isTar value.\n * @private\n */\nexport function getIntersection(ele, bounds, sPt, tPt, isTar) {\n sPt = { x: sPt.x, y: sPt.y };\n tPt = { x: tPt.x, y: tPt.y };\n //const angle: number = Point.findAngle(tPt, sPt); ///let child: PathElement;// let intersection: PointModel;\n var wrapper = isTar ? ele.targetWrapper : ele.sourceWrapper;\n var padding = (isTar ? ele.targetPadding : ele.sourcePadding);\n var rect;\n var segmentPoints;\n var point = isTar || (ele.type === 'Orthogonal' || ele.type === 'Bezier') ? sPt : tPt;\n //const sourcePoint: PointModel = Point.transform(sPt, angle, Math.max(wrapper.actualSize.height / 2, wrapper.actualSize.width / 2));\n var child = wrapper;\n var sPt1 = rotatePoint(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt);\n var tPt1 = rotatePoint(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, tPt);\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n var constValue = 5;\n if (sPt1.x === tPt1.x) {\n if (sPt1.y < tPt1.y) {\n sPt1.y -= constValue;\n }\n else {\n sPt1.y += constValue;\n }\n }\n if (sPt1.y === tPt1.y) {\n if (sPt1.x < tPt1.x) {\n sPt1.x -= constValue;\n }\n else {\n sPt1.x += constValue;\n }\n }\n sPt = rotatePoint(wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt1);\n }\n else {\n //const angle: number = isTar ? Point.findAngle(sPt, tPt) : Point.findAngle(tPt, sPt);\n if (isTar) {\n var angle = Point.findAngle(sPt, tPt);\n tPt = Point.transform({ x: tPt.x, y: tPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height));\n }\n else {\n var angle = Point.findAngle(tPt, sPt);\n sPt = Point.transform({ x: sPt.x, y: sPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height));\n }\n }\n if ((ele.sourcePadding || ele.targetPadding)) {\n rect = new Rect(wrapper.bounds.x - padding, wrapper.bounds.y - padding, wrapper.actualSize.width + 2 * padding, wrapper.actualSize.height + 2 * padding);\n }\n if (wrapper instanceof PathElement && wrapper.data) {\n segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : child.getPoints();\n if (((child.data.split('m').length - 1) + (child.data.split('M').length - 1)) === 1) {\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n }\n }\n else {\n segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : getPoints(wrapper, wrapper.corners);\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n }\n //const length: number = segmentPoints.length;\n var thisSegment = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y };\n return getIntersectionPoints(thisSegment, segmentPoints, true, point) || sPt;\n}\n/**\n * setLineEndPoint method \\\n *\n * @returns { PointModel } setLineEndPoint method .\\\n * @param {PointModel} element - provide the ele value.\n * @param {number} point - provide the bounds value.\n * @param {number} isTarget - provide the sPt value.\n * @private\n */\nfunction setLineEndPoint(element, point, isTarget) {\n point.x = Math.round(point.x * 100) / 100;\n point.y = Math.round(point.y * 100) / 100;\n if (isTarget) {\n element.targetPoint = point;\n }\n else {\n element.sourcePoint = point;\n }\n return point;\n}\n/**\n * getIntersectionPoints method \\\n *\n * @returns { PointModel } getIntersectionPoints method .\\\n * @param {Segment} thisSegment - provide the ele value.\n * @param {Object[]} pts - provide the bounds value.\n * @param {boolean} minimal - provide the sPt value.\n * @param {PointModel} point - provide the sPt value.\n * @private\n */\nexport function getIntersectionPoints(thisSegment, pts, minimal, point) {\n var length = pts.length;\n var min;\n var segment = {\n x1: pts[0].x, y1: pts[0].y, x2: pts[1].x,\n y2: pts[1].y\n };\n var intersection = intersectSegment(thisSegment, segment);\n if (intersection) {\n // if (!minimal) { return intersection; } //commented because minimal is always true\n min = Point.distancePoints(intersection, point);\n }\n if (isNaN(min) || min > 0) {\n for (var i = 1; i < length - 1; i++) {\n segment = {\n x1: pts[parseInt(i.toString(), 10)].x, y1: pts[parseInt(i.toString(), 10)].y,\n x2: pts[i + 1].x, y2: pts[i + 1].y\n };\n var intersect = intersectSegment(thisSegment, segment);\n if (intersect) {\n // if (!minimal) { return intersect; }//commented because minimal is always true\n var dist = Point.distancePoints(intersect, point);\n if (isNaN(min) || min > dist) {\n min = dist;\n intersection = intersect;\n }\n if (min >= 0 && min <= 1) {\n break;\n }\n }\n }\n }\n return intersection;\n}\n/**\n * intersectSegment method \\\n *\n * @returns { PointModel } intersectSegment method .\\\n * @param {Segment} segment1 - provide the ele value.\n * @param {Segment} segment2 - provide the bounds value.\n * @private\n */\nfunction intersectSegment(segment1, segment2) {\n var x1 = segment1.x1;\n var y1 = segment1.y1;\n var x2 = segment1.x2;\n var y2 = segment1.y2;\n var x3 = segment2.x1;\n var y3 = segment2.y1;\n var x4 = segment2.x2;\n var y4 = segment2.y2;\n var a1;\n var a2;\n var b1;\n var b2;\n var c1;\n var c2;\n var x;\n var y;\n var r1;\n var r2;\n var r3;\n var r4;\n var offset;\n var num;\n // eslint-disable-next-line\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = (x2 * y1) - (x1 * y2);\n // eslint-disable-next-line\n r3 = ((a1 * x3) + (b1 * y3) + c1);\n r4 = ((a1 * x4) + (b1 * y4) + c1);\n if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {\n return null;\n }\n // eslint-disable-next-line\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = (x4 * y3) - (x3 * y4);\n // eslint-disable-next-line\n r1 = (a2 * x1) + (b2 * y1) + c2;\n r2 = (a2 * x2) + (b2 * y2) + c2;\n if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {\n return null;\n }\n var denom = (a1 * b2) - (a2 * b1);\n if (denom === 0) {\n return null;\n }\n if (denom < 0) {\n offset = -denom / 2;\n }\n else {\n offset = denom / 2;\n }\n offset = 0;\n num = (b1 * c2) - (b2 * c1);\n if (num < 0) {\n x = (num - offset) / denom;\n }\n else {\n x = (num + offset) / denom;\n }\n num = (a2 * c1) - (a1 * c2);\n if (num < 0) {\n y = (num - offset) / denom;\n }\n else {\n y = (num + offset) / denom;\n }\n return { x: x, y: y };\n}\n/**\n * sameSign method \\\n *\n * @returns { boolean } sameSign method .\\\n * @param {Connector} a - provide the Connector value.\n * @param {End} b - provide the source End value.\n * @private\n */\nfunction sameSign(a, b) {\n return ((a * b) >= 0);\n}\n/**\n * getRightToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToLeftSegmentCount method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} source - provide the source End value.\n * @param {End} target - provide the target End value.\n * @param {boolean} swap - provide the swap value.\n * @private\n */\nfunction getRightToLeftSegmentCount(element, source, target, swap) {\n var srcPort = element.sourcePortWrapper;\n //let targetPort: DiagramElement = element.targetPortWrapper;\n var pts;\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n //let diffX: number = Math.round(Math.abs(source.point.x - target.point.x));\n var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n var left = { x: Math.min(target.point.x, target.corners.left), y: target.point.y };\n var margin = findMargin(element);\n if (swap) {\n //let point: PointModel;\n var point = left;\n left = right;\n right = point;\n }\n if (!(source.corners.bottom + margin < target.corners.top - margin ||\n source.corners.top - margin > target.corners.bottom + margin)) {\n if (element.type !== 'Bezier') {\n margin = 0;\n }\n else if (target.corners.left - source.corners.right <= margin * 2 && target.corners.left - source.corners.right >= 5) {\n margin = 0;\n }\n }\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (diffY === 0 && (source.corners.right < target.corners.left\n || (swap && source.corners.right < target.corners.left))) {\n pts = NoOfSegments.One;\n }\n else if (source.point.x + source.margin.right < target.point.x - target.margin.left) {\n pts = NoOfSegments.Three;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(left) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(right))) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom <= target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (source.corners.top >= target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if ((srcPort !== undefined && srcPort.offsetY <= target.corners.top) ||\n (srcPort === undefined && source.corners.right <= target.corners.top)) {\n pts = NoOfSegments.Five;\n }\n else if ((srcPort !== undefined && srcPort.offsetY >= target.corners.bottom) ||\n (srcPort === undefined && source.corners.right >= target.corners.bottom)) {\n pts = NoOfSegments.Five;\n }\n else {\n pts = NoOfSegments.Five;\n }\n return pts;\n}\n/**\n * getRightToRightSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToRightSegmentCount method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} sourceObj - provide the source End value.\n * @param {End} targetObj - provide the target End value.\n * @private\n */\nfunction getRightToRightSegmentCount(element, sourceObj, targetObj) {\n var sourcePort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n var pts;\n var diffX = sourceObj.point.x - targetObj.point.x;\n var diffY = sourceObj.point.y - targetObj.point.y;\n var margin = findMargin(element);\n targetObj.margin = { left: margin, right: margin, top: margin, bottom: margin };\n sourceObj.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (sourceObj.corners.right >= targetObj.corners.right) {\n if ((sourcePort !== undefined && (sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top ||\n sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom)) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y < targetObj.corners.top)) {\n pts = NoOfSegments.Three;\n }\n else if ((sourcePort !== undefined && sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom\n && sourceObj.corners.top > targetObj.corners.bottom) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if ((sourcePort !== undefined && sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top\n && sourceObj.corners.bottom > targetObj.corners.top) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if (sourceObj.corners.right < targetObj.corners.left ||\n targetObj.corners.right < sourceObj.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((tarPort !== undefined && sourceObj.corners.bottom < tarPort.offsetY - targetObj.margin.top) ||\n (tarPort === undefined && sourceObj.corners.bottom < targetObj.corners.middleRight.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && sourceObj.corners.top > tarPort.offsetY + targetObj.margin.right) ||\n (tarPort === undefined && sourceObj.corners.top > targetObj.corners.middleRight.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && ((sourcePort !== undefined && sourcePort.offsetX < targetObj.corners.left &&\n sourcePort.offsetX !== tarPort.offsetX && (Math.abs(sourceObj.corners.right - targetObj.corners.left) <= 20)) ||\n (sourcePort === undefined && sourceObj.corners.right < targetObj.corners.left &&\n sourceObj.corners.center.x !== targetObj.corners.center.x && sourceObj.corners.center.y !== targetObj.corners.center.y)))) {\n pts = NoOfSegments.Three;\n }\n else if (sourceObj.corners.right < targetObj.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getRightToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToTopSegmentCount method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getRightToTopSegmentCount(element, source, target, swap) {\n var tarPort = element.targetPortWrapper;\n var srcPort = element.sourcePortWrapper;\n var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n var margin = findMargin(element);\n var pts;\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n var point = right;\n right = top;\n top = point;\n }\n if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) ||\n (srcPort === undefined && source.corners.bottom < target.corners.top - target.margin.top)) {\n if (source.corners.bottom < target.corners.top) {\n if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right + source.margin.right < target.corners.topCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.topCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (srcPort !== undefined && Math.abs(source.corners.right - target.corners.left) <= 5 &&\n Math.abs(srcPort.offsetY - target.corners.top) <= 5) {\n pts = NoOfSegments.Two;\n }\n else if (tarPort !== undefined && source.corners.right < target.corners.left\n && Math.abs(tarPort.offsetX - source.corners.topCenter.x) >= 25\n && source.corners.middleRight.y + source.margin.right < tarPort.offsetY) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.right < target.corners.left) {\n pts = NoOfSegments.Four;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(top) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(right))) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getRightToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToTopSegmentCount method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getRightToBottomSegmentCount(element, source, target, swap) {\n var margin = findMargin(element);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n var pts;\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n //let right: PointModel = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n //let bottom: PointModel = { x: target.point.x, y: Math.max(target.point.y, target.corners.bottom) };\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n }\n if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) ||\n (srcPort === undefined && source.corners.middleRight.y > target.corners.bottom + target.margin.bottom)) {\n if (source.corners.top > target.corners.bottom) {\n if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right + source.margin.right < target.corners.bottomCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.bottomCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (srcPort !== undefined &&\n Math.abs(source.corners.right - target.corners.left) <= 25 &&\n Math.abs(srcPort.offsetY - target.corners.bottom) <= 25) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.right < target.corners.left) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getBottomToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToTopSegmentCount method .\\\n * @param {Connector} element - provide the connector value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getBottomToTopSegmentCount(element, source, target) {\n var pts;\n var diffX = source.point.x - target.point.x;\n //const diffY: number = source.point.y - target.point.y;\n //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) };\n //let top: PointModel = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n var margin = findMargin(element);\n if (!(source.corners.right + margin < target.corners.left - margin ||\n source.corners.left - margin > target.corners.right + margin)) {\n if (element.type !== 'Bezier') {\n margin = 0;\n }\n else if (target.corners.top - source.corners.bottom <= margin * 2 && target.corners.top - source.corners.bottom >= 5) {\n margin = 0;\n }\n }\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (diffX === 0 && source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.One;\n }\n else if (source.corners.bottom + source.margin.bottom < target.corners.top - target.margin.top) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.right + source.margin.right < target.corners.left - target.margin.left) {\n pts = NoOfSegments.Five;\n }\n else if (source.corners.left - source.margin.left > target.corners.right + target.margin.right) {\n pts = NoOfSegments.Five;\n }\n else {\n pts = NoOfSegments.Five;\n }\n return pts;\n}\n/**\n * getBottomToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToLeftSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getBottomToLeftSegmentCount(element, source, target, swap) {\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) };\n //let left: PointModel = { x: Math.min(target.point.x, target.corners.left), y: target.point.y };\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var pts;\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n }\n if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomCenter.x < target.corners.bottomLeft.x - target.margin.left)) {\n if (source.corners.right < target.corners.left) {\n if ((tarPort !== undefined && source.corners.bottom + source.margin.bottom < tarPort.offsetY) ||\n (tarPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.top > tarPort.offsetY) ||\n (tarPort === undefined && source.corners.top > target.corners.middleLeft.y)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (tarPort !== undefined &&\n Math.abs(source.corners.right - target.corners.left) <= 25 &&\n Math.abs(tarPort.offsetY - source.corners.bottom) <= 25) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getBottomToBottomSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToBottomSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getBottomToBottomSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n var difX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(target.point.y - target.point.y));\n var pts;\n if (source.corners.bottom < target.corners.bottom) {\n if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomCenter.x < target.corners.left - target.margin.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) ||\n (srcPort === undefined && source.corners.bottomCenter.x > target.corners.right + target.margin.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (difX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined &&\n source.corners.right < target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.top > target.corners.bottom) {\n pts = NoOfSegments.Five;\n }\n else if (difX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getLeftToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getLeftToTopSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getLeftToTopSegmentCount(element, source, target, swap) {\n var pts;\n var sourcePort = element.sourcePortWrapper;\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var tarPort = element.targetPortWrapper;\n var left = { x: Math.min(source.point.x, source.corners.left), y: source.point.y };\n var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n if (swap) {\n //let port: DiagramElement;\n var port = sourcePort;\n sourcePort = tarPort;\n tarPort = port;\n var point = left;\n left = top;\n top = point;\n }\n if ((sourcePort !== undefined && sourcePort.offsetY < target.corners.top - target.margin.top) ||\n (sourcePort === undefined && (source.corners.bottom < target.corners.top - target.margin.top ||\n source.corners.middleLeft.y < target.corners.top - target.margin.top))) {\n if (source.corners.bottom < target.corners.top) {\n if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left - source.margin.left > target.corners.topCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right < target.corners.topCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (sourcePort !== undefined &&\n Math.abs(source.corners.left - target.corners.right) <= 25 &&\n Math.abs(sourcePort.offsetY - target.corners.top) <= 25) {\n pts = NoOfSegments.Two;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(top) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(left))) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.left > target.corners.right) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getLeftToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getLeftToLeftSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getLeftToLeftSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var margin = findMargin(element);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n var diffX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n var pts;\n if (source.corners.left < target.corners.left) {\n if ((targetPort !== undefined && source.corners.bottom + source.margin.bottom < targetPort.offsetY) ||\n (targetPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((targetPort !== undefined && source.corners.top - source.margin.top > targetPort.offsetY) ||\n (targetPort === undefined && source.corners.top - source.margin.top > target.corners.middleLeft.y)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.right < target.corners.left ||\n target.corners.right < source.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) ||\n (srcPort === undefined && source.corners.middleLeft.y < target.corners.top)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) ||\n (srcPort === undefined && source.corners.middleLeft.y > target.corners.bottom + target.margin.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.left > target.corners.right) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getTopToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getTopToTopSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getTopToTopSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var diffX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var pts;\n if (source.corners.top < target.corners.top) {\n if ((targetPort !== undefined && source.corners.left - source.margin.left > targetPort.offsetX) ||\n (targetPort === undefined && source.corners.left > target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((targetPort !== undefined && source.corners.right + source.margin.right < targetPort.offsetX) ||\n (targetPort === undefined && source.corners.right < target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) ||\n (srcPort === undefined && source.corners.left > target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomRight.x < target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.top > target.corners.bottom) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * addOrthoSegments method \\\n *\n * @returns { PointModel[] } addOrthoSegments method .\\\n * @param {Connector} element - provide the element value.\n * @param {NoOfSegments} seg - provide the seg value.\n * @param {End} sourceEnd - provide the source value.\n * @param {End} targetEnd - provide the target value.\n * @param {number} segLength - provide the segLength value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n * @private\n */\nfunction addOrthoSegments(element, seg, sourceEnd, targetEnd, segLength, lineDistribution) {\n var src = element.sourceWrapper;\n var tar = element.targetWrapper;\n //let tarPort: DiagramElement = element.targetPortWrapper;\n var intermeditatePoints;\n var srcCorner = src.corners;\n var tarCorner = tar.corners;\n var value;\n var extra = 20;\n var source = { corners: sourceEnd.corners, point: sourceEnd.point, direction: sourceEnd.direction, margin: sourceEnd.margin };\n var target = { corners: targetEnd.corners, point: targetEnd.point, direction: targetEnd.direction, margin: targetEnd.margin };\n if (source.direction !== target.direction || seg === NoOfSegments.Five) {\n if (source.direction === getOppositeDirection(target.direction) || seg === NoOfSegments.Three) {\n switch (source.direction) {\n case 'Left':\n if (srcCorner.middleLeft.x > tarCorner.middleRight.x) {\n value = (srcCorner.middleLeft.x - tarCorner.middleRight.x) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Right':\n if (srcCorner.middleRight.x < tarCorner.middleLeft.x) {\n value = (tarCorner.middleLeft.x - srcCorner.middleRight.x) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Top':\n if (srcCorner.topCenter.y > tarCorner.bottomCenter.y) {\n value = (srcCorner.topCenter.y - tarCorner.bottomCenter.y) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Bottom':\n if (srcCorner.bottomCenter.y < tarCorner.topCenter.y) {\n value = (tarCorner.topCenter.y - srcCorner.bottomCenter.y) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n }\n }\n }\n extra = adjustSegmentLength(srcCorner, source, extra);\n var isBezier = element.type === 'Bezier';\n if (segLength) {\n extra = Math.max(extra, segLength);\n }\n if (seg === NoOfSegments.One) {\n intermeditatePoints = [source.point, target.point];\n }\n if (seg === NoOfSegments.Two) {\n intermeditatePoints = orthoConnection2Segment(source, target);\n }\n if (seg === NoOfSegments.Three) {\n intermeditatePoints = orthoConnection3Segment(element, source, target, extra, undefined, isBezier);\n }\n if (seg === NoOfSegments.Four) {\n var prevDir = undefined;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, extra, isBezier);\n }\n if (seg === NoOfSegments.Five) {\n intermeditatePoints = orthoConnection5Segment(source, target, extra, isBezier);\n }\n return intermeditatePoints;\n}\n/**\n * adjustSegmentLength method \\\n *\n * @returns { PointModel[] } adjustSegmentLength method .\\\n * @param {Rect | Corners} bounds - provide the element value.\n * @param {End} source - provide the seg value.\n * @param {number} extra - provide the source value.\n * @private\n */\nfunction adjustSegmentLength(bounds, source, extra) {\n switch (source.direction) {\n case 'Left':\n if (source.point.x > bounds.left) {\n extra = (source.point.x - bounds.left) > extra ? ((source.point.x - bounds.left) + extra) : extra;\n }\n break;\n case 'Right':\n if (source.point.x < bounds.right) {\n extra = (bounds.right - source.point.x) > extra ? ((bounds.right - source.point.x) + extra) : extra;\n }\n break;\n case 'Top':\n if (source.point.y > bounds.top) {\n extra = (source.point.y - bounds.top) > extra ? ((source.point.y - bounds.top) + extra) : extra;\n }\n break;\n case 'Bottom':\n if (source.point.y < bounds.bottom) {\n extra = (bounds.bottom - source.point.y) > extra ? ((bounds.bottom - source.point.y) + extra) : extra;\n }\n break;\n }\n return extra;\n}\n/**\n * orthoConnection2Segment method \\\n *\n * @returns { PointModel[] } orthoConnection2Segment method .\\\n * @param {Rect | Corners} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nexport function orthoConnection2Segment(source, target) {\n var intermeditatePoints;\n switch (source.direction) {\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n var point1 = { x: target.point.x, y: source.point.y };\n intermeditatePoints = (Point.equals(source.point, point1) || Point.equals(target.point, point1)) ?\n [source.point, target.point] : [source.point, point1, target.point];\n break;\n case 'Top':\n case 'Bottom':\n // eslint-disable-next-line no-case-declarations\n var point2 = { x: source.point.x, y: target.point.y };\n intermeditatePoints = (Point.equals(source.point, point2) || Point.equals(target.point, point2)) ?\n [source.point, target.point] : [source.point, point2, target.point];\n break;\n }\n return intermeditatePoints;\n}\n/**\n * orthoConnection3Segment method \\\n *\n * @returns { PointModel[] } orthoConnection2Segment method .\\\n * @param {Connector} element - provide the source value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {number} extra - provide the target value.\n * @param {boolean} allow - provide the target value.\n * @param {boolean} isBezier - provide the isBezier boolean value.\n * @private\n */\nfunction orthoConnection3Segment(element, source, target, extra, allow, isBezier) {\n if (isBezier === void 0) { isBezier = false; }\n if (!extra) {\n extra = 20;\n }\n if (isBezier) {\n if (source.direction !== target.direction) {\n if (source.direction === 'Left' || source.direction === 'Right') {\n extra = Math.floor(Math.abs(source.point.x - target.point.x) * 0.5);\n }\n else {\n extra = Math.floor(Math.abs(source.point.y - target.point.y) * 0.5);\n }\n }\n }\n var srcPort = element.sourcePortWrapper;\n var intermeditatePoints;\n var segmentValue;\n var next;\n var diffx = target.point.x - source.point.x;\n var diffy = target.point.y - source.point.y;\n var temp;\n if (!allow && (Math.abs(diffx) < 0.001 || Math.abs(diffy) < 0.001)) {\n if (target.direction === undefined) {\n intermeditatePoints = [source.point, target.point];\n return intermeditatePoints;\n }\n }\n if (element.targetWrapper === undefined && Math.abs(diffx) <= 31 && Math.abs(diffy) <= 31) {\n if ((source.direction === 'Left' || source.direction === 'Right')) {\n if (Math.abs(diffy) < 12) {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n }\n else {\n if (Math.abs(diffx) < 12) {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n }\n if (Math.abs(diffx) > 12 || Math.abs(diffy) > 12) {\n return orthoConnection2Segment(source, target);\n }\n else {\n extra += 5;\n }\n }\n if (source.direction === 'Left' || source.direction === 'Right') {\n if (source.direction === 'Right') {\n if (target.direction !== undefined && target.direction === 'Right') {\n extra = Math.max(source.point.x, target.point.x) - source.point.x + extra;\n }\n if (source.point.x > target.point.x && srcPort === undefined) {\n extra = -extra;\n }\n }\n else {\n if (target.direction !== undefined && target.direction === 'Left') {\n extra = source.point.x - Math.min(source.point.x, target.point.x) + extra;\n }\n if (source.point.x > target.point.x || srcPort !== undefined || source.direction === 'Left') {\n extra = -extra;\n }\n }\n temp = target.point.y - source.point.y;\n segmentValue = addLineSegment(source.point, extra, 0);\n temp = target.point.y - segmentValue.y;\n if (temp !== 0) {\n next = addLineSegment(segmentValue, target.point.y - segmentValue.y, 90);\n }\n }\n else if (source.direction === 'Top' || source.direction === 'Bottom') {\n if (source.direction === 'Bottom') {\n if (target.direction !== undefined && target.direction === 'Bottom') {\n extra = Math.max(source.point.y, target.point.y) - source.point.y + extra;\n }\n }\n else {\n if (target.direction !== undefined && target.direction === 'Top') {\n extra = source.point.y - Math.min(source.point.y, target.point.y) + extra;\n }\n if (source.point.y > target.point.y || (srcPort !== undefined) || source.direction === 'Top') {\n extra = -extra;\n }\n }\n temp = target.point.x - source.point.x;\n if (source.direction === 'Top') {\n segmentValue = addLineSegment(source.point, extra, 90);\n }\n else {\n segmentValue = addLineSegment(source.point, extra, 90);\n }\n temp = target.point.x - segmentValue.x;\n if (temp !== 0) {\n next = addLineSegment(segmentValue, target.point.x - segmentValue.x, 0);\n }\n }\n if (temp === 0) {\n return intermeditatePoints = [\n source.point,\n target.point\n ];\n }\n intermeditatePoints = [\n source.point,\n segmentValue,\n next,\n target.point\n ];\n return intermeditatePoints;\n}\n/**\n * orthoConnection5Segment method \\\n *\n * @returns { PointModel[] } orthoConnection5Segment method .\\\n * @param {Connector} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} extra - provide the extra value.\n * @param {boolean} isBezier - provide the isBezier value.\n * @private\n */\nfunction orthoConnection5Segment(source, target, extra, isBezier) {\n if (extra === void 0) { extra = 20; }\n if (isBezier === void 0) { isBezier = false; }\n if (isBezier) {\n extra = 20;\n }\n var intermeditatePoints;\n var length = extra;\n var sLeft = source.corners.left - source.margin.left;\n var sRight = source.corners.right + source.margin.right;\n var sBottom = source.corners.bottom + source.margin.bottom;\n var sTop = source.corners.top - source.margin.top;\n var tLeft = target.corners.left - target.margin.left;\n var tRight = target.corners.right + target.margin.right;\n var tBottom = target.corners.bottom + target.margin.bottom;\n var tTop = target.corners.top - target.margin.top;\n var segmentValue;\n switch (source.direction) {\n case 'Left':\n if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) &&\n sLeft > tLeft && sLeft <= tRight && extra >= 20) {\n length = source.point.x - target.corners.left + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.left > target.corners.left && source.corners.left - target.corners.right >= 20) {\n length = (source.corners.left - target.corners.right) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 180);\n break;\n case 'Top':\n if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) &&\n sTop > tTop && sTop <= tBottom && extra >= 20) {\n length = source.point.y - target.corners.top + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.top > target.corners.top && source.corners.top - target.corners.bottom >= 20) {\n length = (source.corners.top - target.corners.bottom) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 270);\n break;\n case 'Right':\n if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) &&\n sRight < tRight && sRight >= tLeft && extra >= 20) {\n length = target.corners.right - source.point.x + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.right < target.corners.right && target.corners.left - source.corners.right >= 20) {\n length = (target.corners.left - source.corners.right) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 0);\n break;\n case 'Bottom':\n if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) &&\n sBottom < tBottom && sBottom >= tTop && extra >= 20) {\n length = target.corners.bottom - source.point.y + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.bottom < target.corners.bottom && target.corners.top - source.corners.bottom >= 20) {\n length = (target.corners.top - source.corners.bottom) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 90);\n break;\n }\n intermeditatePoints = [\n source.point,\n segmentValue\n ];\n var newExtra = undefined;\n if (source.direction === 'Top' || source.direction === 'Bottom') {\n var prevDir = source.direction;\n source.direction = segmentValue.x > target.point.x ? 'Left' : 'Right';\n source.point = segmentValue;\n newExtra = isBezier ? Math.abs(segmentValue.x - target.point.x) * 0.5 : newExtra;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier);\n }\n else {\n var prevDir = source.direction;\n source.direction = segmentValue.y > target.point.y ? 'Top' : 'Bottom';\n source.point = segmentValue;\n newExtra = isBezier ? Math.abs(segmentValue.y - target.point.y) * 0.5 : newExtra;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier);\n }\n return intermeditatePoints;\n}\n/**\n * orthoConnection4Segment method \\\n *\n * @returns { PointModel[] } orthoConnection4Segment method .\\\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {string} prevDir - provide the target value.\n * @param {PointModel[]} interPt - provide the target value.\n * @param {number} e - provide the target value.\n * @param {boolean} isBezier - provide the target value.\n * @private\n */\nfunction orthoConnection4Segment(source, target, prevDir, interPt, e, isBezier) {\n if (e === void 0) { e = 20; }\n if (isBezier === void 0) { isBezier = false; }\n var segmentValue;\n if (prevDir === undefined) {\n source.margin = { left: 2, right: 2, top: 2, bottom: 2 };\n target.margin = { left: 0, right: 5, top: 0, bottom: 5 };\n if (isBezier) {\n source.margin = { left: 10, right: 10, top: 10, bottom: 10 };\n target.margin = { left: 10, right: 10, top: 10, bottom: 10 };\n if (source.direction === 'Left') {\n e = getLeftLength(source, target, prevDir, e);\n if (source.corners.left - target.corners.right >= 5) {\n e = Math.abs(source.point.x - source.corners.left) + Math.floor(source.corners.left - target.corners.right) * 0.5;\n }\n }\n else if (source.direction === 'Right') {\n e = getRightLength(source, target, e, prevDir);\n if (target.corners.left - source.corners.right >= 5) {\n e = Math.abs(source.point.x - source.corners.right) + Math.floor(target.corners.left - source.corners.right) * 0.5;\n }\n }\n else if (source.direction === 'Top') {\n e = getTopLength(source, target, prevDir, e);\n if (source.corners.top - target.corners.bottom >= 5) {\n e = Math.abs(source.point.y - source.corners.top) + Math.floor(source.corners.top - target.corners.bottom) * 0.5;\n }\n }\n else if (source.direction === 'Bottom') {\n e = getBottomLength(source, target, e, prevDir);\n if (target.corners.top - source.corners.bottom >= 5) {\n e = Math.abs(source.point.y - source.corners.bottom) + Math.floor(target.corners.top - source.corners.bottom) * 0.5;\n }\n }\n }\n }\n else {\n if (source.direction === 'Bottom') {\n if (isBezier) {\n if (target.corners.top - source.corners.bottom < 20) {\n e = (target.corners.bottom - source.point.y) + 25;\n }\n }\n else {\n if (target.corners.top > source.corners.bottom && target.corners.top - source.corners.bottom < 20) {\n e = (target.corners.top - source.corners.bottom) / 2;\n }\n }\n }\n else if (source.direction === 'Top') {\n if (isBezier) {\n if (source.corners.top - target.corners.bottom < 20) {\n e = (source.point.y - target.corners.top) + 25;\n }\n }\n else {\n if (target.corners.bottom < source.corners.top && source.corners.top - target.corners.bottom < 20) {\n e = (source.corners.top - target.corners.bottom) / 2;\n }\n }\n }\n else if (source.direction === 'Right') {\n if (isBezier) {\n if (target.corners.left - source.corners.right < 20) {\n e = (target.corners.right - source.point.x) + 25;\n }\n }\n else {\n if (target.corners.left > source.corners.right && target.corners.left - source.corners.right < 20) {\n e = (target.corners.left - source.corners.right) / 2;\n }\n }\n }\n else if (source.direction === 'Left') {\n if (isBezier) {\n if (source.corners.left - target.corners.right < 20) {\n e = (source.point.x - target.corners.left) + 25;\n }\n }\n else {\n if (target.corners.right < source.corners.left && source.corners.left - target.corners.right < 20) {\n e = (source.corners.left - target.corners.right) / 2;\n }\n }\n }\n if (prevDir === target.direction && isBezier) {\n if ((target.direction === 'Bottom' && source.point.y > target.point.y) ||\n (target.direction === 'Top' && source.point.y < target.point.y)) {\n if (source.direction === 'Left') {\n e = getLeftLength(source, target, prevDir, 20);\n }\n else if (source.direction === 'Right') {\n e = getRightLength(source, target, 20, prevDir);\n }\n }\n else if ((target.direction === 'Right' && source.point.x > target.point.x) ||\n (target.direction === 'Left' && source.point.x < target.point.x)) {\n if (source.direction === 'Top') {\n e = getTopLength(source, target, prevDir, 20);\n }\n else if (source.direction === 'Bottom') {\n e = getBottomLength(source, target, 20, prevDir);\n }\n }\n }\n }\n switch (source.direction) {\n case 'Left':\n e = isBezier ? e : getLeftLength(source, target, prevDir, e);\n segmentValue = addLineSegment(source.point, e, 180);\n break;\n case 'Right':\n e = isBezier ? e : getRightLength(source, target, e, prevDir);\n segmentValue = addLineSegment(source.point, e, 0);\n break;\n case 'Top':\n e = isBezier ? e : getTopLength(source, target, prevDir, e);\n segmentValue = addLineSegment(source.point, e, 270);\n break;\n case 'Bottom':\n e = isBezier ? e : getBottomLength(source, target, e, prevDir);\n segmentValue = addLineSegment(source.point, e, 90);\n }\n if (interPt !== undefined) {\n interPt.push(segmentValue);\n }\n else {\n interPt = [\n source.point,\n segmentValue\n ];\n }\n if (source.direction === 'Top' || source.direction === 'Bottom') {\n getOrtho3Seg(segmentValue, 'horizontal', source, target, interPt, isBezier);\n }\n else if (source.direction === 'Right' || source.direction === 'Left') {\n getOrtho3Seg(segmentValue, 'vertical', source, target, interPt, isBezier);\n }\n return interPt;\n}\n/**\n * getOrtho3Seg method \\\n *\n * @returns { void } getOrtho3Seg method .\\\n * @param {PointModel} sPt - provide the sPt value.\n * @param {string} orientation - provide the orientation value.\n * @param {End} src - provide the src value.\n * @param {End} tar - provide the tar value.\n * @param {PointModel[]} points - provide the points value.\n * @param {boolean} isBezier - provide the isBezier value.\n * @private\n */\nfunction getOrtho3Seg(sPt, orientation, src, tar, points, isBezier) {\n var point1;\n var point2;\n var point3;\n if (orientation === 'horizontal') {\n src.margin = { left: 0, right: 10, top: 0, bottom: 10 };\n tar.margin = { left: 0, right: 10, top: 0, bottom: 10 };\n }\n else if (orientation === 'vertical') {\n src.margin = { left: 10, right: 0, top: 10, bottom: 0 };\n tar.margin = { left: 10, right: 0, top: 10, bottom: 0 };\n }\n var extra = 20;\n if (orientation === 'horizontal') {\n switch (tar.direction) {\n case 'Left':\n if (src.corners.right + src.margin.right < tar.corners.left - tar.margin.left &&\n (tar.corners.left - src.margin.right - src.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y &&\n src.corners.bottom + src.margin.bottom >= tar.point.y))) {\n if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) {\n var gap = Math.abs(tar.corners.left - src.corners.right) / 2;\n extra = src.corners.right - sPt.x + gap;\n }\n else {\n var gap = Math.min(Math.abs(tar.corners.left - src.corners.right) / 2, 20);\n extra = src.corners.right - sPt.x + gap;\n }\n }\n else {\n if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) {\n extra = Math.min(tar.corners.left, sPt.x) - sPt.x - 20;\n }\n else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) {\n extra = Math.min(tar.corners.left, src.corners.left) - sPt.x - 20;\n }\n else {\n extra = tar.corners.left - sPt.x - 20;\n }\n }\n break;\n case 'Right':\n if (src.corners.left - src.margin.left > tar.corners.right + tar.margin.right &&\n (src.corners.left - src.margin.right - tar.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y &&\n src.corners.bottom + src.margin.bottom >= tar.point.y))) {\n if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) {\n var gap = Math.abs(src.corners.left - tar.corners.right) / 2;\n extra = src.corners.left - sPt.x - gap;\n }\n else {\n var gap = Math.min(Math.abs(src.corners.left - tar.corners.right) / 2, 20);\n extra = src.corners.left - sPt.x - gap;\n }\n }\n else {\n if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) {\n extra = Math.max(tar.corners.right, sPt.x) - sPt.x + 20;\n }\n else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) {\n extra = Math.max(tar.corners.right, src.corners.right) - sPt.x + 20;\n }\n else {\n extra = tar.corners.right - sPt.x + 20;\n }\n }\n break;\n }\n point1 = addLineSegment(sPt, extra, 0);\n point2 = addLineSegment(point1, tar.point.y - sPt.y, 90);\n point3 = tar.point;\n }\n else if (orientation === 'vertical') {\n switch (tar.direction) {\n case 'Top':\n if (src.corners.bottom + src.margin.bottom < tar.corners.top - tar.margin.top &&\n (tar.corners.top - src.margin.top - src.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x &&\n src.corners.right + src.margin.right >= tar.point.x))) {\n if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) {\n var gap = Math.abs(tar.corners.top - src.corners.bottom) / 2;\n extra = src.corners.bottom - sPt.y + gap;\n }\n else {\n var gap = Math.min(Math.abs(tar.corners.top - src.corners.bottom) / 2, 20);\n extra = src.corners.bottom - sPt.y + gap;\n }\n }\n else {\n if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) {\n extra = Math.min(tar.corners.top, sPt.y) - sPt.y - 20;\n }\n else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) {\n extra = Math.min(tar.corners.top, src.corners.top) - sPt.y - 20;\n }\n else {\n extra = tar.corners.top - sPt.y - 20;\n }\n }\n break;\n case 'Bottom':\n if (src.corners.top - src.margin.top > tar.corners.bottom + tar.margin.bottom &&\n (src.corners.top - src.margin.top - tar.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x &&\n src.corners.right + src.margin.right >= tar.point.x))) {\n if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) {\n var gap = Math.abs(src.corners.top - tar.corners.bottom) / 2;\n extra = src.corners.top - sPt.y - gap;\n }\n else {\n var gap = Math.min(Math.abs(src.corners.top - tar.corners.bottom) / 2, 20);\n extra = src.corners.top - sPt.y - gap;\n }\n }\n else {\n if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) {\n extra = Math.max(tar.corners.bottom, sPt.y) - sPt.y + 20;\n }\n else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) {\n extra = Math.max(tar.corners.bottom, src.corners.bottom) - sPt.y + 20;\n }\n else {\n extra = tar.corners.bottom - sPt.y + 20;\n }\n }\n break;\n }\n point1 = addLineSegment(sPt, extra, 90);\n point2 = addLineSegment(point1, tar.point.x - sPt.x, 0);\n point3 = tar.point;\n }\n points.push(point1);\n points.push(point2);\n points.push(point3);\n}\n/**\n * getTopLength method \\\n *\n * @returns { number } getTopLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the sPt value.\n * @param {string} preDir - provide the orientation value.\n * @param {number} length - provide the src value.\n * @private\n */\nfunction getTopLength(source, target, preDir, length) {\n if (source.corners.top - source.margin.top > target.corners.top + target.margin.top &&\n source.corners.top - source.margin.top <= target.corners.bottom + target.margin.bottom) {\n if (target.direction === 'Right' && source.point.x < target.point.x) {\n length += source.corners.top - target.corners.top;\n }\n else if (target.direction === 'Left' && source.point.x > target.point.x) {\n length += source.corners.top - target.corners.top;\n }\n length += source.point.y - source.corners.top;\n }\n else {\n if ((preDir !== undefined && preDir !== 'Left') && target.direction === 'Right' && source.point.x < target.point.x) {\n length += Math.abs(source.point.y - target.corners.bottom);\n }\n else if ((preDir !== undefined && preDir !== 'Right') && target.direction === 'Left'\n && target.point.x < source.point.x) {\n length += Math.abs(source.point.y - target.corners.bottom);\n }\n else {\n length += source.point.y - source.corners.top;\n }\n }\n return length;\n}\n/**\n * getLeftLength method \\\n *\n * @returns { number } getLeftLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the sPt value.\n * @param {string} prevDir - provide the orientation value.\n * @param {number} segLength - provide the src value.\n * @private\n */\nfunction getLeftLength(source, target, prevDir, segLength) {\n if (source.corners.left - source.margin.left > target.corners.left - target.margin.left &&\n source.corners.left - source.margin.left <= target.corners.right + target.margin.right) {\n if (target.direction === 'Bottom' && source.point.y < target.point.y) {\n segLength += source.corners.left - target.corners.left;\n }\n else if (target.direction === 'Top' && source.point.y > target.point.y) {\n segLength += source.corners.left - target.corners.left;\n }\n segLength += source.point.x - source.corners.left;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) {\n segLength += Math.abs(source.point.x - target.corners.right);\n }\n else if ((prevDir !== undefined && prevDir !== 'Bottom') &&\n target.direction === 'Top' && target.point.y < source.point.y) {\n segLength += Math.abs(source.point.x - target.corners.right);\n }\n else {\n segLength += source.point.x - source.corners.left;\n }\n }\n return segLength;\n}\n/**\n * getRightLength method \\\n *\n * @returns { number } getRightLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the orientation value.\n * @param {number} length - provide the src value.\n * @param {string} prevDir - provide the src value.\n * @private\n */\nfunction getRightLength(source, target, length, prevDir) {\n if (source.corners.right + source.margin.right < target.corners.right + target.margin.right &&\n source.corners.right + source.margin.right >= target.corners.left - target.margin.left) {\n if (target.direction === 'Bottom' && source.point.y < target.point.y) {\n length += target.corners.right - source.corners.right;\n }\n else if (target.direction === 'Top' && source.point.y > target.point.y) {\n length += target.corners.right - source.corners.right;\n }\n length += source.corners.right - source.point.x;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) {\n length += Math.abs(source.point.x - target.corners.right);\n }\n else if ((prevDir !== undefined && prevDir !== 'Bottom') && target.direction === 'Top' && target.point.y < source.point.y) {\n length += Math.abs(source.point.x - target.corners.right);\n }\n else {\n length += source.corners.right - source.point.x;\n }\n }\n return length;\n}\n/**\n * getBottomLength method \\\n *\n * @returns { number } getBottomLength method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {number} segLength - provide the segLength value.\n * @param {string} prevDir - provide the src value.\n * @private\n */\nfunction getBottomLength(source, target, segLength, prevDir) {\n if (source.corners.bottom + source.margin.bottom < target.corners.bottom + target.margin.bottom &&\n source.corners.bottom + source.margin.bottom >= target.corners.top - target.margin.top) {\n if (target.direction === 'Right' && source.point.x < target.point.x) {\n segLength += target.corners.bottom - source.corners.bottom;\n }\n else if (target.direction === 'Left' && source.point.x > target.point.x) {\n segLength += target.corners.bottom - source.corners.bottom;\n }\n segLength += source.corners.bottom - source.point.y;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Left') &&\n target.direction === 'Right' && source.point.x < target.point.x) {\n segLength += Math.abs(source.point.y - target.corners.bottom);\n }\n else if ((prevDir !== undefined && prevDir !== 'Right') &&\n target.direction === 'Left' && target.point.x < source.point.x) {\n segLength += Math.abs(source.point.y - target.corners.bottom);\n }\n else {\n segLength += source.corners.bottom - source.point.y;\n }\n }\n return segLength;\n}\nfunction convertPointToBezierSegment(element, segCount, pts) {\n if (element.type === 'Bezier') {\n if (element.segments.length === 0) {\n var start = pts[0];\n var end = pts[pts.length - 1];\n if (segCount === NoOfSegments.One) {\n var distance = Math.min(20, Point.findLength(start, end) * 0.5);\n var vector1 = { angle: findAngle(start, end), distance: distance };\n var vector2 = { angle: findAngle(end, start), distance: distance };\n var dir = Point.direction(start, end);\n var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical';\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true);\n (element.segments).push(segment);\n }\n else if (segCount === NoOfSegments.Two) {\n var mid = pts[1];\n var vector1 = { angle: findAngle(start, mid), distance: Point.findLength(start, mid) * 0.5 };\n var vector2 = { angle: findAngle(end, mid), distance: Point.findLength(end, mid) * 0.5 };\n var dir = Point.direction(start, mid);\n var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical';\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true);\n (element.segments).push(segment);\n }\n else if (segCount === NoOfSegments.Three) {\n var mid1 = pts[1];\n var mid2 = pts[pts.length - 2];\n var mid = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(mid, mid1), distance: Point.findLength(mid, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: mid, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(mid, mid2), distance: Point.findLength(mid, mid2) * 0.5 };\n var vector4 = { angle: findAngle(end, mid2), distance: Point.findLength(end, mid2) * 0.5 };\n var dir2 = Point.direction(mid, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, orientation: ori2 }, true);\n (element.segments).push(segment2);\n }\n else if (segCount === NoOfSegments.Four) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var mid3 = pts[3];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(center1, mid1), distance: Point.findLength(center1, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(center1, mid2), distance: Point.findLength(center1, mid2) * 0.5 };\n var vector4 = { angle: findAngle(center2, mid2), distance: Point.findLength(center2, mid2) * 0.5 };\n var dir2 = Point.direction(center1, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true);\n (element.segments).push(segment2);\n var vector5 = { angle: findAngle(center2, mid3), distance: Point.findLength(center2, mid3) * 0.5 };\n var vector6 = { angle: findAngle(end, mid3), distance: Point.findLength(end, mid3) * 0.5 };\n var dir3 = Point.direction(center2, mid3);\n var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment3 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, orientation: ori3 }, true);\n (element.segments).push(segment3);\n }\n else if (segCount === NoOfSegments.Five) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var mid3 = pts[3];\n var mid4 = pts[4];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(center1, mid1), distance: Point.findLength(center1, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(center1, mid2), distance: Point.findLength(center1, mid2) * 0.5 };\n var vector4 = { angle: findAngle(center2, mid2), distance: Point.findLength(center2, mid2) * 0.5 };\n var dir2 = Point.direction(center1, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true);\n (element.segments).push(segment2);\n var vector5 = { angle: findAngle(center2, mid3), distance: Point.findLength(center2, mid3) * 0.5 };\n var vector6 = { angle: findAngle(center3, mid3), distance: Point.findLength(center3, mid3) * 0.5 };\n var dir3 = Point.direction(center2, mid3);\n var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment3 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, point: center3, orientation: ori3 }, true);\n (element.segments).push(segment3);\n var vector7 = { angle: findAngle(center3, mid4), distance: Point.findLength(center3, mid4) * 0.5 };\n var vector8 = { angle: findAngle(end, mid4), distance: Point.findLength(end, mid4) * 0.5 };\n var dir4 = Point.direction(center3, mid4);\n var ori4 = dir4 === 'Left' || dir4 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment4 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector7, vector2: vector8, orientation: ori4 }, true);\n (element.segments).push(segment4);\n }\n else {\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier' }, true);\n (element.segments).push(segment);\n }\n }\n else {\n for (var i = 0; i < element.segments.length; i++) {\n if (element.bezierSettings.allowSegmentsReset) {\n element.segments[parseInt(i.toString(), 10)].isInternalSegment = true;\n }\n }\n }\n }\n}\n/**\n * getSwapping method \\\n *\n * @returns { boolean } getSwapping method .\\\n * @param {string} srcDir - provide the source value.\n * @param {string} tarDir - provide the target value.\n * @private\n */\nfunction getSwapping(srcDir, tarDir) {\n var swap = false;\n switch (srcDir) {\n case 'Left':\n switch (tarDir) {\n case 'Right':\n case 'Bottom':\n swap = true;\n break;\n }\n break;\n case 'Top':\n switch (tarDir) {\n case 'Left':\n case 'Right':\n case 'Bottom':\n swap = true;\n break;\n }\n break;\n case 'Bottom':\n switch (tarDir) {\n case 'Right':\n swap = true;\n break;\n }\n break;\n }\n return swap;\n}\n/**\n * swapPoints method \\\n *\n * @returns { void } swapPoints method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction swapPoints(source, target) {\n var direction = source.direction;\n source.direction = target.direction;\n target.direction = direction;\n var point = source.point;\n source.point = target.point;\n target.point = point;\n var corner = source.corners;\n source.corners = target.corners;\n target.corners = corner;\n}\n/**\n * getPortDirection method \\\n *\n * @returns { boolean } getPortDirection method .\\\n * @param {PointModel} point - provide the point value.\n * @param {Corners} corner - provide the corner value.\n * @param {Rect} bounds - provide the bounds value.\n * @param {boolean} closeEdge - provide the closeEdge value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getPortDirection(point, corner, bounds, closeEdge) {\n var direction;\n var boundsValue = corner === undefined ? bounds : corner;\n var one = boundsValue.topLeft;\n var two = boundsValue.topRight;\n var three = boundsValue.bottomRight;\n var four = boundsValue.bottomLeft;\n var center = boundsValue.center;\n var angle = findAngle(center, point);\n var fourty5 = findAngle(center, three);\n var one35 = findAngle(center, four);\n var two25 = findAngle(center, one);\n var three15 = findAngle(center, two);\n if (angle > two25 && angle < three15) {\n direction = 'Top';\n // if (bounds.width < bounds.height && closeEdge) {\n // let height: number = (bounds.height - bounds.width) / 2;\n // let width: number = bounds.width;\n // if (Math.abs(point.x - one.x) < Math.abs(point.x - two.x)) {\n // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Left');\n // } else {\n // direction = checkCloseEdge(direction, new Rect(two.x - bounds.width, two.y, width, height), point, 'Right');\n // }\n // }\n }\n else if (angle >= fourty5 && angle < one35) {\n direction = 'Bottom';\n // if (bounds.width < bounds.height && closeEdge) {\n // let height: number = (bounds.height - bounds.width) / 2;\n // let width: number = bounds.width;\n // if (Math.abs(point.x - four.x) < Math.abs(point.x - three.x)) {\n // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Left');\n // } else {\n // let value: Rect = new Rect(three.x - bounds.width, three.y - bounds.height / 4, bounds.width, bounds.height / 4);\n // direction = checkCloseEdge(direction, value, point, 'Right');\n // }\n // }\n }\n else if (angle >= one35 && angle <= two25) {\n direction = 'Left';\n // if (bounds.width > bounds.height && closeEdge) {\n // let width: number = (bounds.width - bounds.height) / 2;\n // let height: number = bounds.height;\n // if (Math.abs(point.y - one.y) < Math.abs(point.y - four.y)) {\n // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Top');\n // } else {\n // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Bottom');\n // }\n // }\n }\n else if (angle >= three15 || angle < fourty5) {\n direction = 'Right';\n // if (bounds.width > bounds.height && closeEdge) {\n // let width: number = (bounds.width - bounds.height) / 2;\n // let height: number = bounds.height;\n // if (Math.abs(point.y - two.y) < Math.abs(point.y - three.y)) {\n // direction = checkCloseEdge(direction, new Rect(two.x - width, two.y, width, height), point, 'Top');\n // } else {\n // direction = checkCloseEdge(direction,\n //new Rect(three.x - width, three.y - height, width, height), point, 'Bottom');\n // }\n // }\n }\n else {\n direction = 'Right';\n }\n return direction;\n}\n// function checkCloseEdge(direction: string, threshold: Rect, port: PointModel, nearest: string): string {\n// if (threshold) {\n// switch (direction) {\n// case 'Bottom':\n// case 'Top':\n// let left: number = Math.abs(threshold.left - port.x);\n// let right: number = Math.abs(threshold.right - port.x);\n// let ver: number = direction === 'Top' ? Math.abs(threshold.top - port.y) : Math.abs(threshold.bottom - port.y);\n// if (left < right) {\n// if (left < ver) {\n// return 'Left';\n// }\n// } else {\n// if (right < ver) {\n// return 'Right';\n// }\n// }\n// break;\n// case 'Left':\n// case 'Right':\n// let top: number = Math.abs(threshold.top - port.y);\n// let bottom: number = Math.abs(threshold.bottom - port.y);\n// let hor: number = direction === 'Left' ? Math.abs(threshold.left - port.x) : Math.abs(threshold.right - port.x);\n// if (top < bottom) {\n// if (top < hor) {\n// return 'Top';\n// }\n// } else {\n// if (bottom < hor) {\n// return 'Bottom';\n// }\n// }\n// break;\n// }\n// }\n//Meant for dock port\n// return direction;\n// }\n/**\n * getOuterBounds method \\\n *\n * @returns { Rect } getOuterBounds method .\\\n * @param {Connector} obj - provide the point value.\n * @private\n */\nexport function getOuterBounds(obj) {\n //let outerBounds: Rect;\n var outerBounds = obj.wrapper.children[0].bounds;\n if (obj.sourceDecorator.shape !== 'None') {\n outerBounds.uniteRect(obj.wrapper.children[1].bounds);\n }\n if (obj.targetDecorator.shape !== 'None') {\n outerBounds.uniteRect(obj.wrapper.children[2].bounds);\n }\n return outerBounds;\n}\n/**\n * getOppositeDirection method \\\n *\n * @returns { string } getOppositeDirection method .\\\n * @param {string} direction - provide the direction value.\n * @private\n */\nexport function getOppositeDirection(direction) {\n switch (direction) {\n case 'Top':\n return 'Bottom';\n case 'Bottom':\n return 'Top';\n case 'Left':\n return 'Right';\n case 'Right':\n return 'Left';\n }\n return 'auto';\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * customize the size of the individual palette items.\n */\nvar SymbolSize = /** @class */ (function (_super) {\n __extends(SymbolSize, _super);\n function SymbolSize() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolSize.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolSize.prototype, \"height\", void 0);\n return SymbolSize;\n}(ChildProperty));\nexport { SymbolSize };\n/**\n * Defines the size and description of a symbol\n */\nvar SymbolPaletteInfo = /** @class */ (function (_super) {\n __extends(SymbolPaletteInfo, _super);\n function SymbolPaletteInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"fit\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"description\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"template\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"tooltip\", void 0);\n return SymbolPaletteInfo;\n}(ChildProperty));\nexport { SymbolPaletteInfo };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { DiagramTooltip } from './tooltip';\nimport { SymbolPaletteInfo } from './preview';\n/**\n * Defines the common behavior of nodes, connectors and groups\n */\nvar NodeBase = /** @class */ (function (_super) {\n __extends(NodeBase, _super);\n function NodeBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], NodeBase.prototype, \"id\", void 0);\n __decorate([\n Property(Number.MIN_VALUE)\n ], NodeBase.prototype, \"zIndex\", void 0);\n __decorate([\n Complex({}, Margin)\n ], NodeBase.prototype, \"margin\", void 0);\n __decorate([\n Property(true)\n ], NodeBase.prototype, \"visible\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], NodeBase.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], NodeBase.prototype, \"excludeFromLayout\", void 0);\n __decorate([\n Property()\n ], NodeBase.prototype, \"addInfo\", void 0);\n __decorate([\n Property('None')\n ], NodeBase.prototype, \"flip\", void 0);\n __decorate([\n Property('All')\n ], NodeBase.prototype, \"flipMode\", void 0);\n __decorate([\n Complex({}, SymbolPaletteInfo)\n ], NodeBase.prototype, \"symbolInfo\", void 0);\n return NodeBase;\n}(ChildProperty));\nexport { NodeBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DiagramElement } from './diagram-element';\nimport { getContent } from '../../utility/dom-util';\nimport { templateCompiler } from '../../utility/base-util';\n/**\n * HTMLElement defines the basic html elements\n */\nvar DiagramHtmlElement = /** @class */ (function (_super) {\n __extends(DiagramHtmlElement, _super);\n /**\n * set the id for each element \\\n *\n * @returns { void }set the id for each element\\\n * @param {string} nodeId - provide the x value.\n * @param {string} diagramId - provide the y value.\n * @param {string} annotationId - provide the id value.\n * @param {string} nodeTemplate - provide the id value.\n *\n * @private\n */\n function DiagramHtmlElement(nodeId, diagramId, annotationId, nodeTemplate) {\n var _this = _super.call(this) || this;\n _this.data = '';\n /**\n * Gets the node id for the element\n */\n _this.nodeId = '';\n /**\n * defines the id of the annotation on rendering template on label.\n * @private\n */\n _this.annotationId = '';\n /**\n * Gets the diagram id for the html element\n */\n _this.diagramId = '';\n _this.diagramId = diagramId;\n _this.nodeId = nodeId;\n _this.annotationId = annotationId;\n _this.templateFn = templateCompiler(nodeTemplate);\n return _this;\n }\n /**\n * getNodeTemplate method \\\n *\n * @returns { Function } getNodeTemplate method .\\\n *\n * @private\n */\n DiagramHtmlElement.prototype.getNodeTemplate = function () {\n return this.templateFn;\n };\n Object.defineProperty(DiagramHtmlElement.prototype, \"content\", {\n /**\n * Gets or sets the geometry of the html element \\\n *\n * @returns { string | HTMLElement } Gets or sets the geometry of the html element \\\n *\n * @private\n */\n get: function () {\n return this.data;\n },\n /**\n * Gets or sets the value of the html element \\\n *\n * @returns { void }Gets or sets the value of the html element\\\n * @param {string | HTMLElement} value - provide the value value.\n *\n * @private\n */\n set: function (value) {\n this.data = value;\n if (!this.canReset) {\n this.canReset = true;\n if (!this.isTemplate) {\n this.template = getContent(this, true);\n }\n this.canReset = false;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n return DiagramHtmlElement;\n}(DiagramElement));\nexport { DiagramHtmlElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { DiagramTooltip } from '../objects/tooltip';\n/**\n * Specifies the behavior of fixedUserHandles\n */\n/** @private */\nvar FixedUserHandle = /** @class */ (function (_super) {\n __extends(FixedUserHandle, _super);\n function FixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], FixedUserHandle.prototype, \"id\", void 0);\n __decorate([\n Property('transparent')\n ], FixedUserHandle.prototype, \"fill\", void 0);\n __decorate([\n Property('black')\n ], FixedUserHandle.prototype, \"iconStrokeColor\", void 0);\n __decorate([\n Property(0)\n ], FixedUserHandle.prototype, \"iconStrokeWidth\", void 0);\n __decorate([\n Property(true)\n ], FixedUserHandle.prototype, \"visibility\", void 0);\n __decorate([\n Property(10)\n ], FixedUserHandle.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], FixedUserHandle.prototype, \"height\", void 0);\n __decorate([\n Property('transparent')\n ], FixedUserHandle.prototype, \"handleStrokeColor\", void 0);\n __decorate([\n Property(1)\n ], FixedUserHandle.prototype, \"handleStrokeWidth\", void 0);\n __decorate([\n Property('')\n ], FixedUserHandle.prototype, \"pathData\", void 0);\n __decorate([\n Property(0)\n ], FixedUserHandle.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], FixedUserHandle.prototype, \"padding\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], FixedUserHandle.prototype, \"tooltip\", void 0);\n return FixedUserHandle;\n}(ChildProperty));\nexport { FixedUserHandle };\n/**\n * Defines the node Fixed User Handle\n */\nvar NodeFixedUserHandle = /** @class */ (function (_super) {\n __extends(NodeFixedUserHandle, _super);\n function NodeFixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], NodeFixedUserHandle.prototype, \"offset\", void 0);\n __decorate([\n Complex({}, Margin)\n ], NodeFixedUserHandle.prototype, \"margin\", void 0);\n return NodeFixedUserHandle;\n}(FixedUserHandle));\nexport { NodeFixedUserHandle };\n/**\n * Defines the connector Fixed User Handle\n */\nvar ConnectorFixedUserHandle = /** @class */ (function (_super) {\n __extends(ConnectorFixedUserHandle, _super);\n function ConnectorFixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0.5)\n ], ConnectorFixedUserHandle.prototype, \"offset\", void 0);\n __decorate([\n Property('Center')\n ], ConnectorFixedUserHandle.prototype, \"alignment\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], ConnectorFixedUserHandle.prototype, \"displacement\", void 0);\n return ConnectorFixedUserHandle;\n}(FixedUserHandle));\nexport { ConnectorFixedUserHandle };\n","import { Node } from './../objects/node';\nimport { NodeConstraints, ConnectorConstraints, DiagramConstraints, DiagramTools, DiagramAction, RendererAction } from '../enum/enum';\nimport { AnnotationConstraints, PortConstraints } from '../enum/enum';\nimport { Connector } from './../objects/connector';\nimport { Selector } from './../objects/node';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { PathPort, PointPort } from '../objects/port';\n/**\n * constraints-util module contains the common constraints \\\n *\n * @returns { number } constraints-util module contains the common constraints .\\\n *\n * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Provide the DiagramElement value.\n * @private\n */\nexport function canSelect(node) {\n if (node) {\n var state = 0;\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n state = node.constraints & AnnotationConstraints.Select;\n }\n else if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Select;\n }\n else {\n state = node.constraints & NodeConstraints.Select;\n }\n return state;\n }\n return 1;\n}\n/**\n * Used to check whether we can move the objects ot not\\\n *\n * @returns { number } Used to check whether we can move the objects ot not .\\\n *\n * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Used to check whether we can move the objects ot not.\n * @private\n */\nexport function canMove(node) {\n if (node) {\n var state = 0;\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n state = node.constraints & AnnotationConstraints.Drag;\n }\n else if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Drag;\n }\n else if (node instanceof Selector) {\n state = 1;\n }\n else {\n state = node.constraints & NodeConstraints.Drag;\n }\n return state;\n }\n return 1;\n}\n/**\n * Used to check the canEnablePointerEvents\\\n *\n * @returns { number } Used to check whether we can move the objects ot not .\\\n *\n * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not.\n * @param {Diagram} diagram - Used to check whether we can move the objects ot not.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canEnablePointerEvents(node, diagram) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.PointerEvents;\n }\n else {\n state = node.constraints & NodeConstraints.PointerEvents;\n }\n return state;\n}\n/**\n * Used to check the canDelete of the element \\\n *\n * @returns { number } Used to check the canDelete of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not.\n * @private\n */\nexport function canDelete(node) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Delete;\n }\n else {\n state = node.constraints & NodeConstraints.Delete;\n }\n return state;\n}\n/**\n * Used to check the bridging of the element \\\n *\n * @returns { number } Used to check the bridging of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @param {ConnectorModel | NodeModel} diagram - provide the diagram value.\n * @private\n */\nexport function canBridge(connector, diagram) {\n var state = 0;\n if (connector.constraints & ConnectorConstraints.Bridging) {\n state = connector.constraints & ConnectorConstraints.Bridging;\n }\n else if (connector.constraints & ConnectorConstraints.InheritBridging) {\n state = diagram.constraints & DiagramConstraints.Bridging;\n }\n else {\n state = 0;\n }\n return state;\n}\n/**\n * Used to check the routing of the element \\\n *\n * @returns { number } Used to check the routing of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @param {ConnectorModel | NodeModel} diagram - provide the diagram value.\n * @private\n */\nexport function canEnableRouting(connector, diagram) {\n var state = 0;\n if (connector.constraints & ConnectorConstraints.LineRouting) {\n state = connector.constraints & ConnectorConstraints.LineRouting;\n }\n else if (connector.constraints & ConnectorConstraints.InheritLineRouting) {\n state = diagram.constraints & DiagramConstraints.LineRouting;\n }\n return state;\n}\n/**\n * Used to check the source end dragof the element \\\n *\n * @returns { number } Used to check the source end dragof the element. \\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragSourceEnd(connector) {\n return connector.constraints & ConnectorConstraints.DragSourceEnd;\n}\n/**\n * Used to check the target end drag of the element \\\n *\n * @returns { number } Used to check the target end drag of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragTargetEnd(connector) {\n return connector.constraints & ConnectorConstraints.DragTargetEnd;\n}\n/**\n * Used to check the segment drag of the element \\\n *\n * @returns { number } Used to check the segment drag of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragSegmentThumb(connector) {\n return connector.constraints & ConnectorConstraints.DragSegmentThumb;\n}\n/**\n * Used to check the routing drag of the element \\\n *\n * @returns { number } Used to check the segment drag of the element .\\\n *\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the connector value.\n * @private\n */\nexport function canRotate(node) {\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n return node.constraints & AnnotationConstraints.Rotate;\n }\n else {\n return node.constraints & NodeConstraints.Rotate;\n }\n}\n/**\n * Used to check shadown constraints of the element \\\n *\n * @returns { number } Used to check shadown constraints of the element .\\\n *\n * @param {NodeModel} node - provide the connector value.\n * @private\n */\nexport function canShadow(node) {\n return node.constraints & NodeConstraints.Shadow;\n}\n/**\n * Used to check canInConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function canInConnect(node) {\n if ((node instanceof Node) && (node.constraints & NodeConstraints.InConnect)) {\n return node.constraints & NodeConstraints.InConnect;\n }\n return 0;\n}\n/**\n * Used to check canPortInConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel} port - provide the PointPortModel value.\n * @private\n */\nexport function canPortInConnect(port) {\n if (port && port.constraints) {\n if (!(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.InConnect)) {\n return port.constraints & PortConstraints.InConnect;\n }\n }\n return 0;\n}\n/**\n * Used to check canOutConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function canOutConnect(node) {\n if ((node instanceof Node) && (node.constraints & NodeConstraints.OutConnect)) {\n return node.constraints & NodeConstraints.OutConnect;\n }\n return 0;\n}\n/**\n * Used to check canPortOutConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel} port - provide the node value.\n * @private\n */\nexport function canPortOutConnect(port) {\n if (port && port.constraints) {\n if (!(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.OutConnect)) {\n return port.constraints & PortConstraints.OutConnect;\n }\n }\n return 0;\n}\n/**\n * Used to check canResize constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the node value.\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} direction - provide the node value.\n * @private\n */\nexport function canResize(node, direction) {\n var returnValue = 0;\n if (node instanceof ShapeAnnotation || node instanceof PathAnnotation) {\n returnValue = node.constraints & AnnotationConstraints.Resize;\n }\n else if (node) {\n if (direction === 'SouthEast') {\n returnValue = node.constraints & NodeConstraints.ResizeSouthEast;\n }\n else if (direction === 'East') {\n returnValue = node.constraints & NodeConstraints.ResizeEast;\n }\n else if (direction === 'NorthEast') {\n returnValue = node.constraints & NodeConstraints.ResizeNorthEast;\n }\n else if (direction === 'South') {\n returnValue = node.constraints & NodeConstraints.ResizeSouth;\n }\n else if (direction === 'North') {\n returnValue = node.constraints & NodeConstraints.ResizeNorth;\n }\n else if (direction === 'SouthWest') {\n returnValue = node.constraints & NodeConstraints.ResizeSouthWest;\n }\n else if (direction === 'West') {\n returnValue = node.constraints & NodeConstraints.ResizeWest;\n }\n else if (direction === 'NorthWest') {\n returnValue = node.constraints & NodeConstraints.ResizeNorthWest;\n }\n }\n return returnValue;\n}\n/**\n * Used to check canAllowDrop constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - provide the node value.\n * @private\n */\nexport function canAllowDrop(node) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.AllowDrop;\n }\n else {\n state = node.constraints & NodeConstraints.AllowDrop;\n }\n return state;\n}\n/**\n * Used to check canVitualize constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canVitualize(diagram) {\n return diagram.constraints & DiagramConstraints.Virtualization;\n}\n/**\n * Used to check canEnableToolTip constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - provide the node value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canEnableToolTip(node, diagram) {\n var state = 0;\n if (node instanceof Connector) {\n if (node.constraints & ConnectorConstraints.Tooltip) {\n state = node.constraints & ConnectorConstraints.Tooltip;\n }\n else if (node.constraints & ConnectorConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n else if (node instanceof PointPort || node instanceof PathPort) {\n if (node.constraints & PortConstraints.ToolTip) {\n state = node.constraints & PortConstraints.ToolTip;\n }\n else if (node.constraints & PortConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n else if (node instanceof ShapeAnnotation || node instanceof PathAnnotation) {\n if (node.constraints & AnnotationConstraints.Tooltip) {\n state = node.constraints & AnnotationConstraints.Tooltip;\n }\n }\n else {\n if (node.constraints & NodeConstraints.Tooltip) {\n state = node.constraints & NodeConstraints.Tooltip;\n }\n else if (node.constraints & NodeConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n return state;\n}\n/**\n * Used to check canSingleSelect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canSingleSelect(model) {\n return model.tool & DiagramTools.SingleSelect;\n}\n/**\n * Used to check canMultiSelect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canMultiSelect(model) {\n return model.tool & DiagramTools.MultipleSelect;\n}\n/**\n * Used to check canZoomPan constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canZoomPan(model) {\n return model.tool & DiagramTools.ZoomPan;\n}\n/**\n * Used to check canContinuousDraw constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canContinuousDraw(model) {\n return model.tool & DiagramTools.ContinuousDraw;\n}\n/**\n * Used to check canDrawOnce constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canDrawOnce(model) {\n return model.tool & DiagramTools.DrawOnce;\n}\n/**\n * Used to check defaultTool constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function defaultTool(model) {\n return (model.tool & DiagramTools.SingleSelect) || (model.tool & DiagramTools.MultipleSelect);\n}\n/**\n * Used to check canZoom constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canZoom(model) {\n return model.constraints & DiagramConstraints.Zoom;\n}\n/**\n * Used to check canPan constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPan(model) {\n return model.constraints & DiagramConstraints.Pan;\n}\n/**\n * Used to check canUserInteract constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canUserInteract(model) {\n return model.constraints & DiagramConstraints.UserInteraction;\n}\n/**\n * Used to check canApiInteract constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canApiInteract(model) {\n return model.constraints & DiagramConstraints.ApiUpdate;\n}\n/**\n * Used to check canPanX constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPanX(model) {\n return ((model.constraints & DiagramConstraints.PanX));\n}\n/**\n * Used to check canPanY constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPanY(model) {\n return ((model.constraints & DiagramConstraints.PanY));\n}\n/**\n * Used to check canZoomTextEdit constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canZoomTextEdit(diagram) {\n return ((diagram.constraints & DiagramConstraints.ZoomTextEdit));\n}\n/**\n * Used to check canPageEditable constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPageEditable(model) {\n return canApiInteract(model) || (model.diagramActions & DiagramAction.ToolAction);\n}\n/**\n * Used to check enableReadOnly constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} annotation - provide the annotation value.\n * @param {Diagram} node - provide the node value.\n * @private\n */\nexport function enableReadOnly(annotation, node) {\n var enumValue = 0;\n enumValue = (node instanceof Connector) ? ConnectorConstraints.ReadOnly : NodeConstraints.ReadOnly;\n if (node.shape.type === 'Text') {\n return node.constraints & NodeConstraints.ReadOnly;\n }\n else if (node.constraints & enumValue) {\n if (annotation.constraints & AnnotationConstraints.InheritReadOnly) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (annotation.constraints & AnnotationConstraints.ReadOnly) {\n return 1;\n }\n return 0;\n}\n/**\n * Used to check canDraw constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} port - provide the Diagram value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canDraw(port, diagram) {\n return port.constraints & PortConstraints.Draw;\n}\n/**\n * Used to check canDrag constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} port - provide the Diagram value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canDrag(port, diagram) {\n return port.constraints & PortConstraints.Drag;\n}\n/**\n * Used to check canPreventClearSelection constraints of the element \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} diagramActions - provide the diagramActions value.\n * @private\n */\nexport function canPreventClearSelection(diagramActions) {\n if (diagramActions & DiagramAction.PreventClearSelection) {\n return true;\n }\n else {\n return false;\n }\n}\n/**\n * Used to check canDrawThumbs \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {RendererAction} rendererActions - provide the RendererAction value.\n * @private\n */\nexport function canDrawThumbs(rendererActions) {\n if (!(rendererActions & RendererAction.DrawSelectorBorder)) {\n return true;\n }\n else {\n return false;\n }\n}\n/**\n * Used to check avoidDrawSelector \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {RendererAction} rendererActions - provide the RendererAction value.\n * @private\n */\nexport function avoidDrawSelector(rendererActions) {\n if ((rendererActions & RendererAction.PreventRenderSelector)) {\n return true;\n }\n else {\n return false;\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable no-self-assign */\nimport { DiagramElement } from '../elements/diagram-element';\nimport { Canvas } from './canvas';\nimport { Container } from './container';\nimport { Size } from '../../primitives/size';\nimport { randomId } from '../../utility/base-util';\nimport { TextElement } from '../elements/text-element';\n/**\n * Grid panel is used to arrange the children in a table like structure\n */\nvar GridPanel = /** @class */ (function (_super) {\n __extends(GridPanel, _super);\n function GridPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.childTable = [];\n _this.cellStyle = {};\n _this.desiredRowHeight = [];\n _this.desiredCellWidth = [];\n return _this;\n }\n /**\n * rowDefinitions method \\\n *\n * @returns { RowDefinition[] } columnDefinitions method .\\\n *\n * @private\n */\n GridPanel.prototype.rowDefinitions = function () {\n return this.rowDefns;\n };\n /**\n * columnDefinitions method \\\n *\n * @returns { ColumnDefinition[] } columnDefinitions method .\\\n *\n * @private\n */\n GridPanel.prototype.columnDefinitions = function () {\n return this.colDefns;\n };\n GridPanel.prototype.addObject = function (obj, rowId, columnId, rowSpan, columnSpan) {\n //check if exists\n if (this.rows.length >= rowId) {\n var row = this.rows[parseInt(rowId.toString(), 10)];\n if (row.cells.length > columnId) {\n columnSpan = columnSpan || 1;\n rowSpan = rowSpan || 1;\n var cell = row.cells[parseInt(columnId.toString(), 10)];\n cell.columnSpan = Math.max(columnSpan, cell.columnSpan);\n cell.rowSpan = Math.max(rowSpan, cell.rowSpan);\n var object = new GridCellItem();\n object = obj;\n object.rowId = rowId;\n object.columnId = columnId;\n object.columnSpan = columnSpan;\n this.childTable[object.id] = object;\n this.addObjectToCell(object, cell);\n }\n }\n };\n // public setCellStyle(rowId: number, columnId: number, cellStyle: ShapeStyleModel): void {\n // if (this.rows.length > rowId) {\n // let row: GridRow = this.rows[rowId];\n // if (row.cells.length > columnId) {\n // let cell: GridCell = row.cells[columnId];\n // cell.style = cellStyle;\n // }\n // }\n // }\n // public getRowId(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).rowId;\n // }\n // public getColumnId(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).columnId;\n // }\n // public getRowSpan(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).rowSpan;\n // }\n // public getColumnSpan(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).columnSpan;\n // }\n GridPanel.prototype.addObjectToCell = function (obj, cell) {\n if (!cell.children) {\n cell.children = [];\n }\n // obj.minWidth = cell.desiredCellWidth; obj.minHeight = cell.desiredCellHeight;\n obj.style.strokeColor = 'black';\n obj.style.strokeWidth = 1;\n //Bug 853721: Grid lines remain hidden when lane fill is set to transparent.\n // Removed below code in which the fill set as white.\n // obj.style.fill = 'white';\n cell.children.push(obj);\n };\n /**\n * updateProperties method \\\n *\n * @returns { void } updateProperties method .\\\n * @param {number} offsetX - provide the Connector value.\n * @param {number} offsetY - provide the Connector value.\n * @param {number} width - provide the Connector value.\n * @param {number} height - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateProperties = function (offsetX, offsetY, width, height) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.width = width;\n this.height = height;\n };\n /**\n * setDefinitions method \\\n *\n * @returns { void } setDefinitions method .\\\n * @param {RowDefinition[]} rows - provide the rows value.\n * @param {ColumnDefinition[]} columns - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.setDefinitions = function (rows, columns) {\n this.rowDefns = rows;\n this.colDefns = columns;\n this.children = [];\n this.rows = this.rows || [];\n for (var i = 0; i < rows.length; i++) {\n var rowDefn = rows[parseInt(i.toString(), 10)];\n var row = new GridRow();\n row.cells = [];\n var defaultCell = new ColumnDefinition();\n //replace this 100 with a proper property\n defaultCell.width = this.width;\n var columns_1 = this.colDefns;\n if (columns_1 === undefined || columns_1.length < 1) {\n columns_1 = [defaultCell];\n }\n this.addCellInRow(columns_1, rowDefn, row);\n this.rows.push(row);\n }\n };\n /**\n * addCellInRow method \\\n *\n * @returns { void } addCellInRow method .\\\n * @param {ColumnDefinition[]} columns - provide the rows value.\n * @param {RowDefinition} rowDefn - provide the Connector value.\n * @param {GridRow} row - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.addCellInRow = function (columns, rowDefn, row) {\n for (var j = 0; j < columns.length; j++) {\n var colDefn = columns[parseInt(j.toString(), 10)];\n var cell = new GridCell();\n cell.children = [];\n this.cellStyle.fill = 'none';\n this.cellStyle.strokeColor = 'none';\n cell.id = randomId();\n cell.style = this.cellStyle;\n cell.desiredCellWidth = cell.minWidth = colDefn.width;\n cell.desiredCellHeight = cell.minHeight = rowDefn.height;\n row.cells.push(cell);\n this.children.push(cell);\n }\n };\n /**\n * calculateSize method \\\n *\n * @returns { void } calculateSize method .\\\n *\n * @private\n */\n GridPanel.prototype.calculateSize = function () {\n var rows = this.rows || [];\n var calculateHeight = 0;\n var calculateWidth = 0;\n for (var i = 0; i < rows.length; i++) {\n var row = this.rows[parseInt(i.toString(), 10)];\n calculateWidth = 0;\n for (var j = 0; j < row.cells.length; j++) {\n calculateWidth += row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n if (j === row.cells.length - 1) {\n if (this.width && this.width !== calculateWidth) {\n row.cells[parseInt(j.toString(), 10)].desiredCellWidth += (this.width - calculateWidth);\n row.cells[parseInt(j.toString(), 10)].minWidth = row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n if (row.cells[parseInt(j.toString(), 10)].children && row.cells[parseInt(j.toString(), 10)].children.length) {\n row.cells[parseInt(j.toString(), 10)].children[0].width =\n row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n }\n this.colDefns[parseInt(j.toString(), 10)].width = row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n }\n calculateHeight += row.cells[parseInt(j.toString(), 10)].desiredCellHeight;\n if (i === rows.length - 1) {\n if (this.height && this.height !== calculateHeight) {\n var height = (this.height - calculateHeight);\n if (height > 0) {\n for (var k = 0; k < row.cells.length; k++) {\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight += height;\n row.cells[parseInt(k.toString(), 10)].minHeight =\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight =\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight;\n if (row.cells[parseInt(k.toString(), 10)].children\n && row.cells[parseInt(k.toString(), 10)].children.length) {\n row.cells[parseInt(k.toString(), 10)].children[0].height =\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight;\n }\n }\n this.rowDefns[parseInt(i.toString(), 10)].height += height;\n }\n }\n }\n }\n }\n }\n };\n /**\n * updateRowHeight method \\\n *\n * @returns { void } updateRowHeight method .\\\n * @param {number} rowId - provide the rows value.\n * @param {number} height - provide the Connector value.\n * @param {boolean} isConsiderChild - provide the Connector value.\n * @param {number} padding - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateRowHeight = function (rowId, height, isConsiderChild, padding) {\n var row = this.rows[parseInt(rowId.toString(), 10)];\n this.rowDefns[parseInt(rowId.toString(), 10)].height = height;\n if (this.height !== undefined) {\n this.height += height - row.cells[0].desiredCellHeight;\n }\n for (var i = 0; i < row.cells.length; i++) {\n row.cells[parseInt(i.toString(), 10)].desiredCellHeight = row.cells[parseInt(i.toString(), 10)].minHeight = height;\n if (row.cells[parseInt(i.toString(), 10)].children && row.cells[parseInt(i.toString(), 10)].children.length) {\n row.cells[parseInt(i.toString(), 10)].children[0].height = height;\n this.setTextRefresh(row.cells[parseInt(i.toString(), 10)].children[0]);\n }\n }\n this.desiredRowHeight[parseInt(rowId.toString(), 10)] = height;\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n if (isConsiderChild) {\n var minHeight = (padding !== undefined) ? this.calculateCellHeightBasedOnChildren(rowId, padding) :\n this.calculateCellHeight(rowId);\n if (minHeight > height) {\n this.updateRowHeight(rowId, minHeight, false);\n }\n }\n };\n GridPanel.prototype.setTextRefresh = function (canvas) {\n if (canvas.children && canvas.children.length) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var children = canvas.children;\n for (var i = 0; i < children.length; i++) {\n if (children[parseInt(i.toString(), 10)] instanceof TextElement) {\n children[parseInt(i.toString(), 10)].refreshTextElement();\n }\n if (children[parseInt(i.toString(), 10)] instanceof Canvas) {\n this.setTextRefresh(children[parseInt(i.toString(), 10)]);\n }\n }\n }\n };\n /**\n * updateColumnWidth method \\\n *\n * @returns { void } updateColumnWidth method .\\\n * @param {number} colId - provide the rows value.\n * @param {number} width - provide the Connector value.\n * @param {boolean} isConsiderChild - provide the Connector value.\n * @param {number} padding - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateColumnWidth = function (colId, width, isConsiderChild, padding) {\n this.colDefns[parseInt(colId.toString(), 10)].width = width;\n if (this.width !== undefined) {\n this.width += width - this.rows[this.rows.length - 1].cells[parseInt(colId.toString(), 10)].desiredCellWidth;\n }\n for (var i = 0; i < this.rows.length; i++) {\n this.setTextRefresh(this.rows[parseInt(i.toString(), 10)].cells[0]);\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].desiredCellWidth =\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].minWidth = width;\n if (this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children\n && this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children.length) {\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children[0].width = width;\n }\n }\n this.desiredCellWidth[parseInt(colId.toString(), 10)] = width;\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n if (isConsiderChild) {\n var minWidth = (padding !== undefined) ? this.calculateCellWidthBasedOnChildren(colId, padding) :\n this.calculateCellWidth(colId);\n if (minWidth > width) {\n this.updateColumnWidth(colId, minWidth, false);\n }\n }\n };\n GridPanel.prototype.calculateCellWidth = function (colIndex) {\n var maxWidth;\n var width;\n var cell;\n for (var i = 0; i < this.rows.length; i++) {\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)];\n if (cell.columnSpan === 1) {\n width = (cell.outerBounds.width > cell.bounds.width &&\n (cell.children.length === 0 || cell.children[0].maxWidth === undefined)) ? cell.outerBounds.width : cell.bounds.width;\n if (maxWidth) {\n maxWidth = (maxWidth < width) ? width : maxWidth;\n }\n else {\n maxWidth = width;\n }\n }\n }\n return maxWidth;\n };\n GridPanel.prototype.calculateCellHeight = function (rowIndex) {\n var maxHeight;\n var height;\n var cell;\n var row = this.rows[parseInt(rowIndex.toString(), 10)];\n for (var i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n height = (cell.outerBounds.height > cell.bounds.height) ? cell.outerBounds.height : cell.bounds.height;\n if (maxHeight) {\n maxHeight = (maxHeight < height) ? height : maxHeight;\n }\n else {\n maxHeight = height;\n }\n }\n return maxHeight;\n };\n GridPanel.prototype.calculateCellSizeBasedOnChildren = function (cell, option, padding, maxSize) {\n var maxBounds;\n var canvas = (cell && cell.children.length > 0) ? cell.children[0] : undefined;\n if (canvas && cell.columnSpan === 1) {\n maxBounds = (option === 'Width') ? canvas.bounds.right : canvas.bounds.bottom;\n if (!maxSize) {\n maxSize = (option === 'Width') ? canvas.bounds.width : canvas.bounds.height;\n }\n for (var j = 0; j < canvas.children.length; j++) {\n var children = canvas.children[parseInt(j.toString(), 10)];\n if (children instanceof Canvas) {\n if (children.id.indexOf('header') === -1) {\n var bounds = ((option === 'Width') ? children.bounds.right : children.bounds.bottom) + padding;\n if (bounds > maxBounds) {\n var size = (bounds - maxBounds) + ((option === 'Width') ? canvas.bounds.width : canvas.bounds.height);\n if (maxSize) {\n maxSize = (maxSize < size) ? size : maxSize;\n }\n }\n }\n }\n }\n }\n return maxSize;\n };\n GridPanel.prototype.calculateCellWidthBasedOnChildren = function (colIndex, padding) {\n var maxWidth; //let width: number; let maxBounds: number; let canvas: Canvas;\n var cell;\n for (var i = 0; i < this.rows.length; i++) {\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)];\n maxWidth = this.calculateCellSizeBasedOnChildren(cell, 'Width', padding, maxWidth);\n }\n return maxWidth;\n };\n GridPanel.prototype.calculateCellHeightBasedOnChildren = function (rowIndex, padding) {\n var maxHeight;\n var cell;\n // let maxBounds: number; let canvas: Canvas;\n var row = this.rows[parseInt(rowIndex.toString(), 10)];\n for (var i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n maxHeight = this.calculateCellSizeBasedOnChildren(cell, 'Height', padding, maxHeight);\n }\n return maxHeight;\n };\n /**\n * addRow method \\\n *\n * @returns { void } addRow method .\\\n * @param {number} rowId - provide the rowId value.\n * @param {number} rowDefn - provide the rowDefn value.\n * @param {boolean} isMeasure - provide the isMeasure value.\n *\n * @private\n */\n GridPanel.prototype.addRow = function (rowId, rowDefn, isMeasure) {\n if (this.rowDefns.length > 0) {\n this.rowDefns.splice(rowId, 0, rowDefn);\n }\n else {\n this.rowDefns.push(rowDefn);\n }\n var row = new GridRow();\n row.cells = [];\n var defaultCell = new ColumnDefinition();\n defaultCell.width = this.width;\n var columns = this.colDefns;\n this.addCellInRow(columns, rowDefn, row);\n if (rowId > this.rows.length - 1) {\n this.rows.push(row);\n }\n else {\n this.rows.splice(rowId, 0, row);\n }\n if (isMeasure) {\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n }\n };\n /**\n * addColumn method \\\n *\n * @returns { void } addColumn method .\\\n * @param {number} columnId - provide the rowId value.\n * @param {number} column - provide the rowDefn value.\n * @param {boolean} isMeasure - provide the isMeasure value.\n *\n * @private\n */\n GridPanel.prototype.addColumn = function (columnId, column, isMeasure) {\n var row;\n var rowDefn;\n var colDefn;\n var cell;\n var rows = this.rows;\n if (this.colDefns.length > 0) {\n this.colDefns.splice(columnId, 0, column);\n }\n else {\n this.colDefns.push(column);\n }\n if (this.width !== undefined) {\n this.width += column.width;\n }\n for (var i = 0; i < rows.length; i++) {\n row = rows[parseInt(i.toString(), 10)];\n rowDefn = this.rowDefns[parseInt(i.toString(), 10)];\n colDefn = column;\n cell = new GridCell();\n cell.style = this.cellStyle;\n cell.desiredCellWidth = cell.minWidth = colDefn.width;\n cell.desiredCellHeight = cell.minHeight = rowDefn.height;\n cell.children = [];\n if (columnId > row.cells.length - 1) {\n row.cells.push(cell);\n }\n else {\n row.cells.splice(columnId, 0, cell);\n }\n this.children.push(cell);\n }\n if (isMeasure) {\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n }\n };\n /**\n * removeRow method \\\n *\n * @returns { void } removeRow method .\\\n * @param {number} rowId - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.removeRow = function (rowId) {\n var cell;\n var element;\n var rows = this.rows;\n var removeRow = rows[parseInt(rowId.toString(), 10)];\n this.height -= this.rowDefns[parseInt(rowId.toString(), 10)].height;\n for (var i = 0; i < removeRow.cells.length; i++) {\n cell = removeRow.cells[parseInt(i.toString(), 10)];\n this.children.splice(this.children.indexOf(cell), 1);\n element = document.getElementById(cell.id + '_groupElement');\n if (element && element.parentElement) {\n element.parentElement.removeChild(element);\n }\n }\n this.rows.splice(rowId, 1);\n this.rowDefns.splice(rowId, 1);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * removeColumn method \\\n *\n * @returns { void } removeColumn method .\\\n * @param {number} columnId - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.removeColumn = function (columnId) {\n var cell;\n var element;\n var rows = this.rows;\n this.width -= this.colDefns[parseInt(columnId.toString(), 10)].width;\n for (var i = 0; i < rows.length; i++) {\n cell = rows[parseInt(i.toString(), 10)].cells[parseInt(columnId.toString(), 10)];\n this.children.splice(this.children.indexOf(cell), 1);\n element = document.getElementById(cell.id + '_groupElement');\n if (element && element.parentElement) {\n element.parentElement.removeChild(element);\n }\n rows[parseInt(i.toString(), 10)].cells.splice(columnId, 1);\n }\n this.colDefns.splice(columnId, 1);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * updateRowIndex method \\\n *\n * @returns { void } updateRowIndex method .\\\n * @param {number} currentIndex - provide the rowId value.\n * @param {number} newIndex - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.updateRowIndex = function (currentIndex, newIndex) {\n //const rows: GridRow[] = this.rows;\n var temp = this.rows[parseInt(currentIndex.toString(), 10)];\n this.rows.splice(currentIndex, 1);\n this.rows.splice(newIndex, 0, temp);\n var tempRow = this.rowDefns[parseInt(currentIndex.toString(), 10)];\n this.rowDefns.splice(currentIndex, 1);\n this.rowDefns.splice(newIndex, 0, tempRow);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * updateColumnIndex method \\\n *\n * @returns { void } updateColumnIndex method .\\\n * @param {number} startRowIndex - provide the startRowIndex value.\n * @param {number} currentIndex - provide the currentIndex value.\n * @param {number} newIndex - provide the newIndex value.\n *\n * @private\n */\n GridPanel.prototype.updateColumnIndex = function (startRowIndex, currentIndex, newIndex) {\n var temp;\n var cell;\n for (var i = startRowIndex; i < this.rows.length; i++) {\n temp = this.rows[parseInt(i.toString(), 10)];\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(currentIndex.toString(), 10)];\n temp.cells.splice(currentIndex, 1);\n temp.cells.splice(newIndex, 0, cell);\n }\n var tempCol = this.colDefns[parseInt(currentIndex.toString(), 10)];\n this.colDefns.splice(currentIndex, 1);\n this.colDefns.splice(newIndex, 0, tempCol);\n var tempSize = this.desiredCellWidth[parseInt(currentIndex.toString(), 10)];\n this.desiredCellWidth.splice(currentIndex, 1);\n this.desiredCellWidth.splice(newIndex, 0, tempSize);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * measure method \\\n *\n * @returns { Size } measure method .\\\n * @param {Size} availableSize - provide the startRowIndex value.\n *\n * @private\n */\n GridPanel.prototype.measure = function (availableSize) {\n var desired = undefined;\n if (this.rows !== undefined && this.rows.length > 0) {\n var i = 0;\n var j = 0;\n desired = new Size(0, 0);\n this.calculateSize();\n for (var _i = 0, _a = this.rows; _i < _a.length; _i++) {\n var row = _a[_i];\n j = 0;\n for (var _b = 0, _c = row.cells; _b < _c.length; _b++) {\n var cell = _c[_b];\n var size = cell.measure(new Size(cell.desiredCellWidth, cell.desiredCellHeight));\n if (cell.rowSpan === 1) {\n if (j === 0 || this.desiredRowHeight[parseInt(i.toString(), 10)] === undefined) {\n this.desiredRowHeight[parseInt(i.toString(), 10)] = size.height;\n }\n else {\n this.desiredRowHeight[parseInt(i.toString(), 10)] =\n Math.max(size.height, this.desiredRowHeight[parseInt(i.toString(), 10)]);\n }\n }\n if (cell.columnSpan === 1) {\n if (i === 0 || this.desiredCellWidth[parseInt(j.toString(), 10)] === undefined) {\n this.desiredCellWidth[parseInt(j.toString(), 10)] = size.width;\n }\n else {\n this.desiredCellWidth[parseInt(j.toString(), 10)] =\n Math.max(size.width, this.desiredCellWidth[parseInt(j.toString(), 10)]);\n }\n if (i === this.rows.length - 1) {\n desired.width += this.desiredCellWidth[parseInt(j.toString(), 10)];\n }\n }\n j++;\n }\n desired.height += this.desiredRowHeight[parseInt(i.toString(), 10)];\n i++;\n }\n //to-do update definitions\n i = j = 0;\n var rowIndex = 0;\n for (var _d = 0, _e = this.rows; _d < _e.length; _d++) {\n var row = _e[_d];\n j = 0;\n var cellIndex = 0;\n for (var _f = 0, _g = row.cells; _f < _g.length; _f++) {\n var cell = _g[_f];\n if (cell.columnSpan !== 1) {\n cell.desiredSize.width = 0;\n for (var start = 0; start < cell.columnSpan; start++) {\n if ((start + j) < row.cells.length) {\n cell.desiredSize.width += this.desiredCellWidth[start + j];\n cell.minWidth = cell.desiredSize.width;\n cell.measure(cell.desiredSize);\n }\n }\n j++;\n }\n else {\n cell.desiredSize.width = this.desiredCellWidth[parseInt(cellIndex.toString(), 10)];\n cell.measure(cell.desiredSize);\n }\n if (cell.rowSpan !== 1) {\n cell.desiredSize.height = 0;\n for (var start = 0; start < cell.rowSpan; start++) {\n if ((start + rowIndex) < this.rows.length) {\n cell.desiredSize.height += this.desiredRowHeight[start + rowIndex];\n cell.minHeight = cell.desiredSize.height;\n cell.measure(cell.desiredSize);\n }\n }\n }\n else {\n cell.desiredSize.height = this.desiredRowHeight[parseInt(rowIndex.toString(), 10)];\n cell.measure(cell.desiredSize);\n }\n i++;\n cellIndex++;\n }\n rowIndex++;\n }\n }\n if (desired === undefined) {\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n }\n _super.prototype.stretchChildren.call(this, desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * arrange method \\\n *\n * @returns { Size } arrange method .\\\n * @param {Size} desiredSize - provide the startRowIndex value.\n * @param {boolean} isChange - provide the startRowIndex value.\n *\n * @private\n */\n GridPanel.prototype.arrange = function (desiredSize, isChange) {\n var j = 0;\n var i = 0;\n if (this.rows !== undefined && this.rows.length > 0) {\n var x = this.offsetX - desiredSize.width * this.pivot.x;\n var y = this.offsetY - desiredSize.height * this.pivot.y;\n var cellX = x;\n for (var _i = 0, _a = this.rows; _i < _a.length; _i++) {\n var row = _a[_i];\n cellX = x;\n j = 0;\n for (var _b = 0, _c = row.cells; _b < _c.length; _b++) {\n var cell = _c[_b];\n var cellWidth = Math.max(this.desiredCellWidth[parseInt(j.toString(), 10)], cell.desiredSize.width);\n var cellHeight = Math.max(this.desiredRowHeight[parseInt(i.toString(), 10)], cell.desiredSize.height);\n cell.offsetX = cellX + cellWidth * cell.pivot.x;\n cell.offsetY = y + cellHeight * cell.pivot.y;\n cellX += this.desiredCellWidth[parseInt(j.toString(), 10)];\n cell.arrange(new Size(cellWidth, cellHeight));\n j++;\n }\n y += this.desiredRowHeight[parseInt(i.toString(), 10)];\n i++;\n }\n if (isChange) {\n // Need to remove the unwanted the child elements in the grid\n // Used for row span and column span.\n var cell = void 0;\n var row = void 0;\n var k = void 0;\n var z = void 0;\n var removeCell = void 0;\n for (i = 0; i < this.rows.length; i++) {\n row = this.rows[parseInt(i.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[parseInt(j.toString(), 10)];\n if (cell.columnSpan > 1) {\n // remove a child element when a column span is greater than 1\n this.children.splice((this.children.indexOf(cell)) + 1, cell.columnSpan - 1);\n }\n if (cell.rowSpan > 1) {\n for (k = i, z = 0; ((k + cell.rowSpan - 1) < this.rows.length && z < cell.rowSpan - 1); k++, z++) {\n removeCell = this.rows[k + 1].cells[parseInt(j.toString(), 10)];\n // remove a child element when a row span is greater than 1\n this.children.splice(this.children.indexOf(removeCell), 1);\n }\n }\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n return desiredSize;\n };\n return GridPanel;\n}(Container));\nexport { GridPanel };\n/**\n * Defines the behavior of the RowDefinition of node\n */\nvar RowDefinition = /** @class */ (function () {\n function RowDefinition() {\n /** returns the height of node */\n this.height = undefined;\n }\n return RowDefinition;\n}());\nexport { RowDefinition };\n/**\n * Defines the behavior of the ColumnDefinition of node\n */\nvar ColumnDefinition = /** @class */ (function () {\n function ColumnDefinition() {\n /** returns the width of node */\n this.width = undefined;\n }\n return ColumnDefinition;\n}());\nexport { ColumnDefinition };\n/** @private */\nvar GridRow = /** @class */ (function () {\n function GridRow() {\n this.cells = null;\n }\n return GridRow;\n}());\nexport { GridRow };\n/** @private */\nvar GridCell = /** @class */ (function (_super) {\n __extends(GridCell, _super);\n function GridCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.columnSpan = 1;\n _this.rowSpan = 1;\n return _this;\n }\n return GridCell;\n}(Canvas));\nexport { GridCell };\nvar GridCellItem = /** @class */ (function (_super) {\n __extends(GridCellItem, _super);\n function GridCellItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.rowId = 0;\n _this.columnId = 0;\n _this.rowSpan = 1;\n _this.columnSpan = 1;\n return _this;\n }\n return GridCellItem;\n}(DiagramElement));\n","import { Node } from '../objects/node';\nimport { GridPanel, RowDefinition, ColumnDefinition } from '../core/containers/grid';\nimport { Lane, Phase } from '../objects/node';\nimport { DiagramAction, NodeConstraints, DiagramConstraints, DiagramEvent, ElementAction } from '../enum/enum';\nimport { cloneObject, randomId } from './../utility/base-util';\nimport { DiagramElement } from '../core/elements/diagram-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Size } from '../primitives/size';\nimport { Canvas } from '../core/containers/canvas';\nimport { Rect } from '../primitives/rect';\nimport { checkParentAsContainer, findBounds, removeChildInContainer } from '../interaction/container-interaction';\nimport { canSelect } from './constraints-util';\n/**\n * SwimLane modules are used to rendering and interaction.\n */\n/** @private */\n/**\n * initSwimLane method \\\n *\n * @returns {void} initSwimLane method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param { Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function initSwimLane(grid, diagram, node) {\n if (!node.width && node.shape.phases.length === 0) {\n node.width = 100;\n }\n var row = [];\n var columns = [];\n var index = 0;\n var shape = node.shape;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n if (shape.header && shape.hasHeader) {\n createRow(row, shape.header.height);\n }\n initGridRow(row, orientation, node);\n initGridColumns(columns, orientation, node);\n grid.setDefinitions(row, columns);\n if (shape.header && shape.hasHeader) {\n headerDefine(grid, diagram, node);\n index++;\n }\n if (shape.phases.length > 0 && shape.phaseSize) {\n for (var k = 0; k < shape.phases.length; k++) {\n if (shape.phases[parseInt(k.toString(), 10)].id === '') {\n shape.phases[parseInt(k.toString(), 10)].id = randomId();\n }\n phaseDefine(grid, diagram, node, index, orientation, k);\n }\n index++;\n }\n if (shape.lanes.length > 0) {\n for (var k = 0; k < shape.lanes.length; k++) {\n if (shape.lanes[parseInt(k.toString(), 10)].id === '') {\n shape.lanes[parseInt(k.toString(), 10)].id = randomId();\n }\n laneCollection(grid, diagram, node, index, k, orientation);\n index++;\n }\n }\n}\n/**\n * addObjectToGrid method \\\n *\n * @returns {Container} addObjectToGrid method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @param { GridPanel} grid - provide the grid value.\n * @param {NodeModel} parent - provide the parent value.\n * @param {NodeModel} object - provide the object value.\n * @param {boolean} isHeader - provide the isHeader value.\n * @param {boolean} isPhase - provide the isPhase value.\n * @param {boolean} isLane - provide the isLane value.\n * @param {string} canvas - provide the canvas value.\n * @private\n */\nexport function addObjectToGrid(diagram, grid, parent, object, isHeader, isPhase, isLane, canvas) {\n var node = new Node(diagram, 'nodes', object, true);\n node.parentId = parent.id;\n node.isHeader = (isHeader) ? true : false;\n node.isPhase = (isPhase) ? true : false;\n node.isLane = (isLane) ? true : false;\n var id = (isPhase) ? 'PhaseHeaderParent' : 'LaneHeaderParent';\n if (canvas) {\n node[\"\" + id] = canvas;\n }\n node.constraints &= ~(NodeConstraints.InConnect | NodeConstraints.OutConnect);\n node.constraints |= NodeConstraints.HideThumbs;\n diagram.initObject(node);\n diagram.nodes.push(node);\n if (node.wrapper.children.length > 0) {\n for (var i = 0; i < node.wrapper.children.length; i++) {\n var child = node.wrapper.children[parseInt(i.toString(), 10)];\n if (child instanceof DiagramElement) {\n child.isCalculateDesiredSize = false;\n }\n if (child instanceof TextElement) {\n child.canConsiderBounds = false;\n if (!isHeader && (parent.shape.orientation === 'Vertical' && isPhase) ||\n (parent.shape.orientation !== 'Vertical' && isLane)) {\n child.isLaneOrientation = true;\n child.refreshTextElement();\n }\n }\n }\n node.wrapper.measure(new Size(undefined, undefined));\n node.wrapper.arrange(node.wrapper.desiredSize);\n }\n return node.wrapper;\n}\n/**\n * headerDefine method \\\n *\n * @returns {void} headerDefine method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @private\n */\nexport function headerDefine(grid, diagram, object) {\n var maxWidth = 0;\n var columns = grid.columnDefinitions();\n var shape = object.shape;\n for (var i = 0; i < columns.length; i++) {\n maxWidth += columns[parseInt(i.toString(), 10)].width;\n }\n shape.header.id = shape.header.id || randomId();\n var node = {\n id: object.id + shape.header.id,\n annotations: [cloneObject(shape.header.annotation)],\n style: shape.header.style ? shape.header.style : undefined,\n offsetX: object.offsetX, offsetY: object.offsetY,\n rowIndex: 0, columnIndex: 0,\n maxWidth: maxWidth,\n container: { type: 'Canvas', orientation: 'Horizontal' }\n };\n if (!canSelect(object)) {\n node.constraints &= ~NodeConstraints.Select;\n }\n var wrapper = addObjectToGrid(diagram, grid, object, node, true);\n grid.addObject(wrapper, 0, 0, 1, grid.columnDefinitions().length);\n}\n/**\n * phaseDefine method \\\n *\n * @returns {void} phaseDefine method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @param {number} indexValue - provide the indexValue value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {number} phaseIndex - provide the phaseIndex value.\n * @private\n */\nexport function phaseDefine(grid, diagram, object, indexValue, orientation, phaseIndex) {\n var rowValue = 0;\n var colValue = 0;\n var maxWidth;\n var shape = object.shape;\n if (orientation) {\n colValue = phaseIndex;\n rowValue = indexValue;\n maxWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n }\n else {\n rowValue = shape.header && shape.hasHeader ? phaseIndex + 1 : phaseIndex;\n }\n var phaseObject = {\n annotations: [cloneObject(shape.phases[parseInt(phaseIndex.toString(), 10)].header.annotation)],\n maxWidth: maxWidth,\n id: object.id + shape.phases[parseInt(phaseIndex.toString(), 10)].id + '_header',\n addInfo: shape.phases[parseInt(phaseIndex.toString(), 10)].addInfo,\n offsetX: object.offsetX, offsetY: object.offsetY,\n style: shape.phases[parseInt(phaseIndex.toString(), 10)].style,\n rowIndex: rowValue, columnIndex: colValue,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n phaseObject.annotations[0].rotateAngle = orientation ? 0 : 270;\n if (!canSelect(object)) {\n phaseObject.constraints &= ~NodeConstraints.Select;\n }\n shape.phases[parseInt(phaseIndex.toString(), 10)].header.id = phaseObject.id;\n var wrapper = addObjectToGrid(diagram, grid, object, phaseObject, false, true, false, shape.phases[parseInt(phaseIndex.toString(), 10)].id);\n grid.addObject(wrapper, rowValue, colValue);\n}\n/**\n * laneCollection method \\\n *\n * @returns {void} laneCollection method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @param {number} indexValue - provide the indexValue value.\n * @param {number} laneIndex - provide the laneIndex value.\n * @param {boolean} orientation - provide the orientation value.\n * @private\n */\nexport function laneCollection(grid, diagram, object, indexValue, laneIndex, orientation) {\n var laneNode;\n var parentWrapper;\n var gridCell;\n var canvas;\n var childWrapper;\n var shape = object.shape;\n var value = shape.phases.length || 1;\n var isHeader = (shape.header && shape.hasHeader) ? 1 : 0;\n var rowValue = orientation ? indexValue : isHeader;\n var phaseCount = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0;\n for (var l = 0; l < value; l++) {\n var colValue = orientation ? l : laneIndex + phaseCount;\n gridCell = grid.rows[parseInt(rowValue.toString(), 10)].cells[parseInt(colValue.toString(), 10)];\n canvas = {\n id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + l,\n rowIndex: rowValue, columnIndex: colValue,\n width: gridCell.minWidth, height: gridCell.minHeight,\n offsetX: object.offsetX, offsetY: object.offsetY,\n style: shape.lanes[parseInt(laneIndex.toString(), 10)].style,\n addInfo: shape.lanes[parseInt(laneIndex.toString(), 10)].addInfo,\n constraints: NodeConstraints.Default | NodeConstraints.ReadOnly | NodeConstraints.AllowDrop,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n if (!canSelect(object)) {\n canvas.constraints &= ~NodeConstraints.Select;\n }\n parentWrapper = addObjectToGrid(diagram, grid, object, canvas, false, false, true);\n parentWrapper.children[0].isCalculateDesiredSize = false;\n if (l === 0) {\n laneNode = {\n id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + '_' + l + '_header',\n style: shape.lanes[parseInt(laneIndex.toString(), 10)].header.style,\n annotations: [cloneObject(shape.lanes[parseInt(laneIndex.toString(), 10)].header.annotation)],\n offsetX: object.offsetX, offsetY: object.offsetY,\n rowIndex: rowValue, columnIndex: colValue,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n laneNode.annotations[0].rotateAngle = orientation ? 270 : 0;\n shape.lanes[parseInt(laneIndex.toString(), 10)].header.id = laneNode.id;\n // eslint-disable-next-line\n (orientation) ? laneNode.width = shape.lanes[laneIndex].header.width :\n laneNode.height = shape.lanes[parseInt(laneIndex.toString(), 10)].header.height;\n if (!canSelect(object)) {\n laneNode.constraints &= ~NodeConstraints.Select;\n }\n childWrapper = addObjectToGrid(diagram, grid, object, laneNode, false, false, true, shape.lanes[parseInt(laneIndex.toString(), 10)].id);\n if (orientation) {\n childWrapper.children[0].elementActions = childWrapper.children[0].elementActions | ElementAction.HorizontalLaneHeader;\n }\n parentWrapper.children.push(childWrapper);\n }\n grid.addObject(parentWrapper, rowValue, colValue);\n if (!orientation) {\n rowValue++;\n }\n colValue = orientation ? l : laneIndex + 1;\n }\n}\n/**\n * createRow method \\\n *\n * @returns {void} createRow method .\\\n * @param { RowDefinition[]} row - provide the row value.\n * @param {number} height - provide the height value.\n * @private\n */\nexport function createRow(row, height) {\n var rows = new RowDefinition();\n rows.height = height;\n row.push(rows);\n}\n/**\n * createColumn method \\\n *\n * @returns {void} createColumn method .\\\n * @param {number} width - provide the width value.\n * @private\n */\nexport function createColumn(width) {\n var cols = new ColumnDefinition();\n cols.width = width;\n return cols;\n}\n/**\n * initGridRow method \\\n *\n * @returns {void} initGridRow method .\\\n * @param {RowDefinition[]} row - provide the row value.\n * @param {boolean} orientation - provide the row value.\n * @param {NodeModel} object - provide the row value.\n * @private\n */\nexport function initGridRow(row, orientation, object) {\n var totalHeight = 0;\n var height;\n var shape = object.shape;\n if (row.length > 0) {\n for (var i = 0; i < row.length; i++) {\n totalHeight += row[parseInt(i.toString(), 10)].height;\n }\n }\n if (orientation) {\n if (shape.phases.length > 0 && shape.phaseSize) {\n totalHeight += shape.phaseSize;\n createRow(row, shape.phaseSize);\n }\n if (shape.lanes.length > 0) {\n for (var i = 0; i < shape.lanes.length; i++) {\n height = shape.lanes[parseInt(i.toString(), 10)].height;\n totalHeight += height;\n if (i === shape.lanes.length - 1 && totalHeight < object.height) {\n height += object.height - totalHeight;\n }\n createRow(row, height);\n }\n }\n }\n else {\n if (shape.phases.length > 0) {\n var phaseHeight = 0;\n for (var i = 0; i < shape.phases.length; i++) {\n var phaseOffset = shape.phases[parseInt(i.toString(), 10)].offset;\n if (i === 0) {\n phaseHeight += phaseOffset;\n }\n else {\n phaseOffset -= phaseHeight;\n phaseHeight += phaseOffset;\n }\n height = phaseOffset;\n totalHeight += height;\n if (i === shape.phases.length - 1 && totalHeight < object.height) {\n height += object.height - totalHeight;\n }\n createRow(row, height);\n }\n }\n else {\n createRow(row, object.height);\n }\n }\n}\n/**\n * initGridColumns method \\\n *\n * @returns {void} initGridRow method .\\\n * @param {ColumnDefinition[]} columns - provide the row value.\n * @param {boolean} orientation - provide the row value.\n * @param {NodeModel} object - provide the row value.\n * @private\n */\nexport function initGridColumns(columns, orientation, object) {\n var totalWidth = 0;\n var shape = object.shape;\n var phaseOffset;\n var cols;\n var k;\n var j;\n var value;\n if (shape.phases.length > 0 && shape.orientation === 'Horizontal') {\n for (j = 0; j < shape.phases.length; j++) {\n phaseOffset = shape.phases[parseInt(j.toString(), 10)].offset;\n if (j === 0) {\n totalWidth += phaseOffset;\n }\n else {\n phaseOffset -= totalWidth;\n totalWidth += phaseOffset;\n }\n cols = createColumn(phaseOffset);\n if (j === shape.phases.length - 1 && totalWidth < object.width) {\n cols.width += object.width - totalWidth;\n }\n columns.push(cols);\n }\n }\n else if (!orientation) {\n value = (shape.phaseSize && shape.phases.length > 0) ? shape.lanes.length\n + 1 : shape.lanes.length;\n if (shape.phaseSize && shape.phases.length > 0) {\n totalWidth += shape.phaseSize;\n cols = createColumn(shape.phaseSize);\n columns.push(cols);\n }\n for (k = 0; k < shape.lanes.length; k++) {\n totalWidth += shape.lanes[parseInt(k.toString(), 10)].width;\n cols = createColumn(shape.lanes[parseInt(k.toString(), 10)].width);\n if (k === shape.lanes.length - 1 && totalWidth < object.width) {\n cols.width += object.width - totalWidth;\n }\n columns.push(cols);\n }\n if ((shape.phases.length === 0 && shape.lanes.length === 0)) {\n cols = createColumn(object.width);\n columns.push(cols);\n }\n }\n else {\n cols = createColumn(object.width);\n columns.push(cols);\n }\n}\n/**\n * getConnectors method \\\n *\n * @returns {void} getConnectors method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {GridPanel} grid - provide the row value.\n * @param {number} rowIndex - provide the row value.\n * @param {boolean} isRowUpdate - provide the row value.\n * @private\n */\nexport function getConnectors(diagram, grid, rowIndex, isRowUpdate) {\n var connectors = [];\n var conn = 0;\n var childNode;\n var node;\n var k;\n var i;\n var j;\n var canvas;\n var row;\n var length = grid.rowDefinitions().length;\n var edges;\n for (var i_1 = 0; i_1 < length; i_1++) {\n row = grid.rows[parseInt(i_1.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n canvas = row.cells[parseInt(j.toString(), 10)].children[0];\n if (canvas && canvas.children && canvas.children.length) {\n for (k = 1; k < canvas.children.length; k++) {\n childNode = canvas.children[parseInt(k.toString(), 10)];\n node = diagram.getObject(childNode.id);\n if (node && (node.inEdges.length > 0 || node.outEdges.length > 0)) {\n edges = node.inEdges.concat(node.outEdges);\n for (conn = 0; conn < edges.length; conn++) {\n if (connectors.indexOf(edges[parseInt(conn.toString(), 10)]) === -1) {\n connectors.push(edges[parseInt(conn.toString(), 10)]);\n }\n }\n }\n }\n }\n }\n }\n return connectors;\n}\n/**\n * swimLaneMeasureAndArrange method \\\n *\n * @returns {void} swimLaneMeasureAndArrange method .\\\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function swimLaneMeasureAndArrange(obj) {\n var canvas = obj.wrapper;\n canvas.measure(new Size(obj.width, obj.height));\n if (canvas.children[0] instanceof GridPanel) {\n var grid = canvas.children[0];\n var isMeasure = false;\n if (grid.width && grid.width < grid.desiredSize.width) {\n isMeasure = true;\n grid.width = grid.desiredSize.width;\n }\n if (grid.height && grid.height < grid.desiredSize.height) {\n isMeasure = true;\n grid.height = grid.desiredSize.height;\n }\n if (isMeasure) {\n grid.measure(new Size(grid.width, grid.height));\n }\n }\n canvas.arrange(canvas.desiredSize);\n}\n/**\n * ChangeLaneIndex method \\\n *\n * @returns {void} ChangeLaneIndex method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @param {number} startRowIndex - provide the row value.\n * @private\n */\nexport function ChangeLaneIndex(diagram, obj, startRowIndex) {\n var container = obj.wrapper.children[0];\n var i;\n var j;\n var k;\n var l;\n var object;\n var subChild;\n var row;\n var cell;\n var child;\n for (i = startRowIndex; i < container.rows.length; i++) {\n row = container.rows[parseInt(i.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[parseInt(j.toString(), 10)];\n if (cell.children && cell.children.length > 0) {\n for (k = 0; k < cell.children.length; k++) {\n child = cell.children[parseInt(k.toString(), 10)];\n object = diagram.nameTable[child.id];\n if (object.isLane && child.children.length > 1) {\n // 912905: Multi-selecting and deleting swimlane objects causes the diagram to break\n for (l = 1; l < child.children.length; l++) {\n subChild = diagram.nameTable[child.children[parseInt(l.toString(), 10)].id];\n if (subChild && subChild.isLane) {\n subChild.rowIndex = i;\n subChild.columnIndex = j;\n }\n }\n }\n object.rowIndex = i;\n object.columnIndex = j;\n }\n }\n }\n }\n}\n/**\n * arrangeChildNodesInSwimLane method \\\n *\n * @returns {void} arrangeChildNodesInSwimLane method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function arrangeChildNodesInSwimLane(diagram, obj) {\n var grid = obj.wrapper.children[0];\n var shape = obj.shape;\n var padding = shape.padding;\n var lanes = shape.lanes;\n var top = grid.bounds.y;\n var rowvalue;\n var columnValue;\n var phaseCount = (shape.phaseSize > 0) ? shape.phases.length : 0;\n var node;\n var canvas;\n var cell;\n var i;\n var j;\n var k;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n var col = orientation ? shape.phases.length || 1 : lanes.length + 1;\n var row = orientation ? ((shape.header && shape.hasHeader) ? 1 : 0) +\n (shape.phases.length > 0 ? 1 : 0) + (shape.lanes.length)\n : (shape.header && shape.hasHeader ? 1 : 0) + shape.phases.length;\n if (phaseCount === 0 && !orientation && shape.lanes.length) {\n row += 1;\n }\n if (orientation) {\n rowvalue = (shape.header && shape.hasHeader ? 1 : 0) + (phaseCount > 0 ? 1 : 0);\n columnValue = 0;\n }\n else {\n rowvalue = (shape.header && shape.hasHeader ? 1 : 0);\n columnValue = phaseCount > 0 ? 1 : 0;\n }\n if (lanes.length > 0) {\n top += (shape.header && shape.hasHeader) ? shape.header.height : 0;\n for (i = 0; i < lanes.length; i++) {\n for (j = 0; j < lanes[parseInt(i.toString(), 10)].children.length; j++) {\n node = lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)];\n node.offsetX = lanes[parseInt(i.toString(), 10)].width;\n node.offsetY = lanes[parseInt(i.toString(), 10)].height;\n diagram.initObject(node);\n diagram.nodes.push(node);\n canvas = node.wrapper;\n if (orientation) {\n for (k = columnValue; k < col; k++) {\n cell = grid.rows[parseInt(rowvalue.toString(), 10)].cells[parseInt(k.toString(), 10)];\n if (canvas.margin.left < (cell.bounds.right - grid.bounds.x)) {\n node.parentId = cell.children[0].id;\n if (k > columnValue) {\n canvas.margin.left = canvas.margin.left - (cell.bounds.left - grid.bounds.left);\n }\n else {\n if ((cell.children[0].children[1].actualSize.width + padding) >= canvas.margin.left) {\n canvas.margin.left = cell.children[0].children[1].actualSize.width + padding;\n }\n }\n if (canvas.margin.left < padding) {\n canvas.margin.left = padding;\n }\n if (canvas.margin.top < padding) {\n canvas.margin.top = padding;\n }\n addChildToLane(canvas, node, diagram);\n break;\n }\n }\n }\n else {\n for (var k_1 = rowvalue; k_1 < row; k_1++) {\n cell = grid.rows[parseInt(k_1.toString(), 10)].cells[parseInt(columnValue.toString(), 10)];\n if (canvas.margin.top < (cell.bounds.bottom - top)) {\n node.parentId = cell.children[0].id;\n if (k_1 > rowvalue) {\n canvas.margin.top = canvas.margin.top - (cell.bounds.top - top);\n }\n else {\n if ((cell.children[0].children[1].actualSize.height + padding) >= canvas.margin.top) {\n canvas.margin.top = cell.children[0].children[1].actualSize.height + padding;\n }\n }\n if (canvas.margin.left < padding) {\n canvas.margin.left = padding;\n }\n if (canvas.margin.top < padding) {\n canvas.margin.top = padding;\n }\n addChildToLane(canvas, node, diagram);\n break;\n }\n }\n }\n }\n // eslint-disable-next-line\n orientation ? rowvalue++ : columnValue++;\n }\n }\n grid.measure(new Size(obj.width, obj.height));\n grid.arrange(grid.desiredSize);\n updateChildOuterBounds(grid, obj);\n obj.width = obj.wrapper.width = grid.width;\n obj.height = obj.wrapper.height = grid.height;\n updateHeaderMaxWidth(diagram, obj);\n obj.wrapper.measure(new Size(obj.width, obj.height));\n obj.wrapper.arrange(grid.desiredSize);\n checkLaneChildrenOffset(obj);\n checkPhaseOffset(obj, diagram);\n checkLaneSize(obj);\n}\n/**\n * addChildToLane method \\\n *\n * @returns {void} addChildToLane method .\\\n * @param {Container} canvas - provide the row value.\n * @param {NodeModel} node - provide the row value.\n * @param {Diagram} diagram - provide the row value.\n * @private\n */\nfunction addChildToLane(canvas, node, diagram) {\n canvas.measure(new Size(node.width, node.height));\n canvas.arrange(canvas.desiredSize);\n var parent = diagram.getObject(node.parentId);\n diagram.addChild(parent, node.id);\n}\n/**\n * updateChildOuterBounds method \\\n *\n * @returns {void} updateChildOuterBounds method .\\\n * @param {GridPanel} grid - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function updateChildOuterBounds(grid, obj) {\n var columnDefinitions = grid.columnDefinitions();\n var rowDefinitions = grid.rowDefinitions();\n var i;\n var k;\n var j;\n var cell;\n var child;\n var row;\n var rowIndex = findStartLaneIndex(obj);\n if (obj.shape.orientation === 'Vertical') {\n if (rowIndex === 0) {\n rowIndex = (obj.shape.header && obj.shape.hasHeader) ? 1 : 0;\n }\n }\n var padding = obj.shape.padding;\n for (i = 0; i < columnDefinitions.length; i++) {\n grid.updateColumnWidth(i, columnDefinitions[parseInt(i.toString(), 10)].width, true, padding);\n }\n for (i = rowIndex; i < rowDefinitions.length; i++) {\n grid.updateRowHeight(i, rowDefinitions[parseInt(i.toString(), 10)].height, true, padding);\n }\n for (k = 0; k < rowDefinitions.length; k++) {\n row = grid.rows[parseInt(k.toString(), 10)];\n for (i = 0; i < columnDefinitions.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n if (cell.children && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n if (child.maxWidth) {\n child.maxWidth = cell.actualSize.width;\n }\n if (child.maxHeight) {\n child.maxHeight = cell.actualSize.height;\n }\n }\n }\n }\n }\n}\n/**\n * checkLaneSize method \\\n *\n * @returns {void} checkLaneSize method .\\\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function checkLaneSize(obj) {\n if (obj.shape.type === 'SwimLane' && !obj.shape.isLane && !obj.shape.isPhase) {\n // 910832 - Lane height updating to negative values wrongly during resizing\n var lane = void 0;\n var i = void 0;\n var j = void 0;\n var k = void 0;\n var size = void 0; //let laneCount: number = 0;\n var lanes = obj.shape.lanes;\n var laneIndex = findStartLaneIndex(obj);\n var rows = obj.wrapper.children[0].rowDefinitions();\n var columns = obj.wrapper.children[0].columnDefinitions();\n var widthSize = void 0;\n var heightSize = void 0;\n for (i = 0; i < lanes.length; i++, laneIndex++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (obj.shape.orientation === 'Horizontal') {\n size = rows[parseInt(laneIndex.toString(), 10)].height;\n if (lane.height !== size) {\n lane.height = size;\n }\n for (j = 0; j < columns.length; j++) {\n widthSize = columns[parseInt(j.toString(), 10)].width;\n if (lane.width !== widthSize) {\n lane.width = widthSize;\n }\n }\n }\n else {\n size = columns[parseInt(laneIndex.toString(), 10)].width;\n if (lane.width !== size) {\n lane.width = size;\n }\n for (k = 0; k < rows.length; k++) {\n heightSize = rows[parseInt(k.toString(), 10)].height;\n if (lane.height !== heightSize) {\n lane.height = heightSize;\n }\n }\n }\n }\n }\n}\n/**\n * checkPhaseOffset method \\\n *\n * @returns {void} checkPhaseOffset method .\\\n * @param {NodeModel} obj - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @private\n */\nexport function checkPhaseOffset(obj, diagram) {\n var shape = obj.shape;\n var phases = shape.phases;\n var i;\n var offset;\n var phaseRow;\n var phase;\n var gridRowIndex = (shape.header && shape.hasHeader) ? 1 : 0;\n var grid = obj.wrapper.children[0];\n var top = grid.bounds.y + ((shape.header && shape.hasHeader) ? shape.header.height : 0);\n if (obj.shape.type === 'SwimLane') {\n obj = diagram.getObject(obj.id) || obj;\n if (phases.length > 0) {\n grid = obj.wrapper.children[0];\n if (shape.orientation === 'Horizontal') {\n phaseRow = (shape.header && shape.hasHeader) ? grid.rows[1] : grid.rows[0];\n for (i = 0; i < phases.length; i++) {\n phase = phaseRow.cells[parseInt(i.toString(), 10)].children[0];\n offset = phase.bounds.right - grid.bounds.x;\n if (phases[parseInt(i.toString(), 10)].offset !== offset) {\n phases[parseInt(i.toString(), 10)].offset = offset;\n }\n diagram.nameTable[phase.id].maxWidth = phase.maxWidth;\n }\n }\n else {\n for (i = 0; i < phases.length; i++) {\n phase = grid.rows[gridRowIndex + i].cells[0].children[0];\n offset = phase.bounds.bottom - top;\n if (phases[parseInt(i.toString(), 10)].offset !== offset) {\n phases[parseInt(i.toString(), 10)].offset = offset;\n }\n diagram.nameTable[phase.id].maxWidth = phase.maxWidth;\n }\n }\n }\n }\n}\n/**\n * updateConnectorsProperties method \\\n *\n * @returns {void} checkPhaseOffset method .\\\n * @param {string[]} connectors - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @private\n */\nexport function updateConnectorsProperties(connectors, diagram) {\n if (connectors && connectors.length > 0) {\n var edges = void 0;\n if (diagram.lineRoutingModule && (diagram.constraints & DiagramConstraints.LineRouting)) {\n diagram.lineRoutingModule.renderVirtualRegion(diagram, true);\n }\n for (var i = 0; i < connectors.length; i++) {\n edges = diagram.getObject(connectors[parseInt(i.toString(), 10)]);\n if (diagram.lineRoutingModule && (diagram.constraints & DiagramConstraints.LineRouting) && edges.type === 'Orthogonal') {\n diagram.lineRoutingModule.refreshConnectorSegments(diagram, edges, true);\n }\n else {\n diagram.connectorPropertyChange(edges, {}, {\n sourceID: edges.sourceID, targetID: edges.targetID\n });\n }\n }\n }\n}\n/**\n * laneInterChanged method \\\n *\n * @returns {void} laneInterChanged method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} obj - provide the obj value.\n * @param {NodeModel} target - provide the target value.\n * @param {PointModel} position - provide the position value.\n * @private\n */\nexport function laneInterChanged(diagram, obj, target, position) {\n var index;\n var undoElement;\n var entry;\n var redoElement;\n var sourceIndex;\n var targetIndex;\n var temp;\n var sourceLaneIndex;\n var targetLaneIndex;\n var rowIndex;\n var swimLane = (diagram.getObject(obj.parentId));\n var shape = swimLane.shape;\n var grid = swimLane.wrapper.children[0];\n var lanes = shape.lanes;\n var connectors = getConnectors(diagram, grid, obj.rowIndex, true);\n if ((shape.orientation === 'Horizontal' && obj.rowIndex !== target.rowIndex) ||\n (shape.orientation === 'Vertical' && obj.columnIndex !== target.columnIndex)) {\n if (shape.orientation === 'Horizontal') {\n sourceIndex = obj.rowIndex;\n targetIndex = target.rowIndex;\n index = ((shape.header && shape.hasHeader) ? 1 : 0) + (shape.phases.length && shape.phaseSize ? 1 : 0);\n sourceLaneIndex = obj.rowIndex - index;\n targetLaneIndex = target.rowIndex - index;\n if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) {\n if (sourceLaneIndex < targetLaneIndex) {\n if (position && target.wrapper.offsetY > position.y) {\n targetIndex += (targetLaneIndex > 0) ? -1 : 1;\n targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1;\n }\n }\n else {\n if (position && target.wrapper.offsetY < position.y) {\n targetIndex += 1;\n targetLaneIndex += 1;\n }\n }\n if (sourceIndex !== targetIndex) {\n grid.updateRowIndex(sourceIndex, targetIndex);\n }\n }\n }\n else {\n sourceIndex = obj.columnIndex;\n targetIndex = target.columnIndex;\n index = (shape.phases.length && shape.phaseSize) ? 1 : 0;\n sourceLaneIndex = obj.columnIndex - index;\n targetLaneIndex = target.columnIndex - index;\n rowIndex = (shape.header && shape.hasHeader) ? 1 : 0;\n if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) {\n if (sourceLaneIndex < targetLaneIndex) {\n if (position && target.wrapper.offsetX > position.x) {\n targetIndex += (targetLaneIndex > 0) ? -1 : 1;\n targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1;\n }\n }\n else {\n if (position && target.wrapper.offsetX < position.x) {\n targetIndex += 1;\n targetLaneIndex += 1;\n }\n }\n if (sourceIndex !== targetIndex) {\n if ((shape.phaseSize === 0 || shape.phases.length === 0) && (targetIndex === 0 || sourceIndex === 0)) {\n if (shape.header && shape.hasHeader) {\n var changeHeaderIndex = (targetIndex === 0) ? sourceIndex : targetIndex;\n grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].children = grid.rows[0].cells[0].children;\n grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].columnSpan = grid.rows[0].cells[0].columnSpan;\n grid.rows[0].cells[0].children = [];\n }\n }\n grid.updateColumnIndex(0, sourceIndex, targetIndex);\n }\n }\n }\n if (sourceIndex !== targetIndex) {\n temp = lanes[parseInt(sourceLaneIndex.toString(), 10)];\n if (temp.canMove) {\n undoElement = {\n target: cloneObject(target), source: cloneObject(obj)\n };\n temp = lanes[parseInt(sourceLaneIndex.toString(), 10)];\n lanes.splice(sourceLaneIndex, 1);\n lanes.splice(targetLaneIndex, 0, temp);\n redoElement = {\n target: cloneObject(undoElement.source), source: cloneObject(undoElement.target)\n };\n entry = {\n type: 'LanePositionChanged', redoObject: redoElement,\n undoObject: undoElement, category: 'Internal'\n };\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n diagram.commandHandler.addHistoryEntry(entry);\n }\n ChangeLaneIndex(diagram, swimLane, 0);\n updateConnectorsProperties(connectors, diagram);\n updateSwimLaneChildPosition(lanes, diagram);\n swimLane.wrapper.measure(new Size(swimLane.width, swimLane.height));\n swimLane.wrapper.arrange(swimLane.wrapper.desiredSize);\n diagram.updateDiagramObject(swimLane);\n }\n }\n }\n diagram.updateDiagramElementQuad();\n}\n/**\n * updateSwimLaneObject method \\\n *\n * @returns {void} updateSwimLaneObject method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Node} obj - provide the obj value.\n * @param {NodeModel} swimLane - provide the target value.\n * @param {NodeModel} helperObject - provide the position value.\n * @private\n */\nexport function updateSwimLaneObject(diagram, obj, swimLane, helperObject) {\n var parentNode = diagram.getObject(swimLane.id);\n var shape = parentNode.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n var lanes = shape.lanes;\n var phases = shape.phases;\n var helperWidth = helperObject.wrapper.actualSize.width;\n var helperHeight = helperObject.wrapper.actualSize.height;\n var objWidth = obj.wrapper.actualSize.width;\n var objHeight = obj.wrapper.actualSize.height;\n var i;\n var j;\n // 910832 - Lane height updating to negative values wrongly during resizing\n if (parentNode.shape.type === 'SwimLane') {\n if (shape.orientation === 'Horizontal') {\n if (obj.isPhase) {\n phases[obj.columnIndex].offset = obj.wrapper.width;\n for (i = 0; i < lanes.length; i++) {\n lanes[parseInt(i.toString(), 10)].width = obj.wrapper.width;\n }\n }\n else {\n index = (shape.phaseSize && shape.phases.length > 0) ? index + 1 : index;\n lanes[(obj.rowIndex - index)].height = obj.wrapper.height;\n }\n }\n else {\n if (obj.isPhase) {\n phases[(obj.rowIndex - index)].offset = obj.wrapper.height;\n for (j = 0; j < lanes.length; j++) {\n lanes[parseInt(j.toString(), 10)].height = obj.wrapper.height;\n }\n }\n else {\n index = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0;\n lanes[(obj.columnIndex - index)].width = obj.wrapper.width;\n }\n }\n }\n}\n/**\n * findLaneIndex method \\\n *\n * @returns {number} findLaneIndex method .\\\n * @param {NodeModel} swimLane - provide the diagram value.\n * @param {NodeModel} laneObj - provide the obj value.\n * @private\n */\nexport function findLaneIndex(swimLane, laneObj) {\n var laneIndex;\n var shape = swimLane.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n if (shape.orientation === 'Horizontal') {\n index += shape.phases.length > 0 ? 1 : 0;\n laneIndex = laneObj.rowIndex - index;\n }\n else {\n laneIndex = laneObj.columnIndex - (shape.phaseSize && shape.phases.length > 0 ? 1 : 0);\n }\n return laneIndex;\n}\n/**\n * findPhaseIndex method \\\n *\n * @returns {number} findPhaseIndex method .\\\n * @param {NodeModel} phase - provide the diagram value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function findPhaseIndex(phase, swimLane) {\n var shape = swimLane.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n var phaseIndex = (shape.orientation === 'Horizontal') ? phase.columnIndex : phase.rowIndex - index;\n return phaseIndex;\n}\n/**\n * findStartLaneIndex method \\\n *\n * @returns {number} findStartLaneIndex method .\\\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function findStartLaneIndex(swimLane) {\n var index = 0;\n var shape = swimLane.shape;\n if (shape.orientation === 'Horizontal') {\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n }\n if (shape.phases.length > 0 && shape.phaseSize) {\n index += 1;\n }\n return index;\n}\n/**\n * updatePhaseMaxWidth method \\\n *\n * @returns {void} updatePhaseMaxWidth method .\\\n * @param {NodeModel} parent - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @param {Canvas} wrapper - provide the obj value.\n * @param {number} columnIndex - provide the obj value.\n * @private\n */\nexport function updatePhaseMaxWidth(parent, diagram, wrapper, columnIndex) {\n var shape = parent.shape;\n if (shape.phases.length > 0) {\n var node = diagram.nameTable[shape.phases[parseInt(columnIndex.toString(), 10)].header.id];\n if (node && node.maxWidth < wrapper.outerBounds.width) {\n node.maxWidth = wrapper.outerBounds.width;\n node.wrapper.maxWidth = wrapper.outerBounds.width;\n }\n }\n}\n/**\n * updateHeaderMaxWidth method \\\n *\n * @returns {void} updateHeaderMaxWidth method .\\\n * @param {NodeModel} diagram - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function updateHeaderMaxWidth(diagram, swimLane) {\n if (swimLane.shape.header && swimLane.shape.hasHeader) {\n var grid = swimLane.wrapper.children[0];\n var id = grid.rows[0].cells[0].children[0].id;\n var headerNode = diagram.nameTable[\"\" + id];\n if (headerNode && headerNode.isHeader && (headerNode.maxWidth < swimLane.width || headerNode.wrapper.maxWidth < swimLane.width)) {\n headerNode.maxWidth = swimLane.width;\n headerNode.wrapper.maxWidth = swimLane.width;\n }\n }\n}\n/**\n * addLane method \\\n *\n * @returns {void} addLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} parent - provide the obj value.\n * @param {LaneModel} lane - provide the obj value.\n * @param {number} count - provide the obj value.\n * @private\n */\nexport function addLane(diagram, parent, lane, count) {\n var args;\n var swimLane = diagram.nameTable[parent.id];\n if (swimLane.shape.type === 'SwimLane') {\n diagram.protectPropertyChange(true);\n var grid = swimLane.wrapper.children[0];\n var bounds = grid.bounds;\n var shape = swimLane.shape;\n var redoObj = void 0;\n var orientation_1 = false;\n var entry = void 0;\n var index = void 0;\n var children = void 0;\n var j = void 0;\n var i = void 0;\n var c = void 0;\n var cell = void 0;\n var child = void 0;\n var point = void 0;\n var laneObj = new Lane(shape, 'lanes', lane, true);\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n if (shape.orientation === 'Horizontal') {\n orientation_1 = true;\n index = shape.phases.length > 0 ? index + 1 : index;\n }\n var connectors = getConnectors(diagram, grid, 0, true);\n var laneIndex = (count !== undefined) ? count : shape.lanes.length;\n index += laneIndex;\n args = {\n element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Addition', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n if (!args.cancel) {\n if (orientation_1) {\n var rowDef = new RowDefinition();\n rowDef.height = lane.height;\n grid.addRow(index, rowDef, false);\n swimLane.height = (swimLane.height !== undefined) ? swimLane.height + lane.height : swimLane.height;\n swimLane.wrapper.height = grid.height = swimLane.height;\n }\n else {\n var colDef = new ColumnDefinition();\n colDef.width = lane.width;\n grid.addColumn(laneIndex + 1, colDef, false);\n if (swimLane.width) {\n swimLane.width += lane.width;\n swimLane.wrapper.width = grid.width = swimLane.width;\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n grid.rows[0].cells[0].columnSpan += 1;\n }\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n laneObj.id = (laneObj.id === '') ? randomId() : laneObj.id;\n }\n if (count !== undefined) {\n shape.lanes.splice(count, 0, laneObj);\n }\n else {\n shape.lanes.push(laneObj);\n }\n args = {\n element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Addition', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n laneCollection(grid, diagram, swimLane, index, laneIndex, orientation_1);\n redoObj = (shape.orientation === 'Horizontal') ?\n diagram.nameTable[grid.rows[parseInt(index.toString(), 10)].cells[0].children[0].id] :\n ((shape.header && shape.hasHeader) ?\n diagram.nameTable[grid.rows[1].cells[parseInt(index.toString(), 10)].children[0].id] :\n diagram.nameTable[grid.rows[0].cells[parseInt(index.toString(), 10)].children[0].id]);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n entry = {\n type: 'LaneCollectionChanged', changeType: 'Insert', undoObject: cloneObject(laneObj),\n redoObject: cloneObject(redoObj), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n var startRowIndex = (shape.orientation === 'Horizontal') ?\n index : ((shape.header && shape.hasHeader) ? 1 : 0);\n ChangeLaneIndex(diagram, swimLane, startRowIndex);\n swimLaneMeasureAndArrange(swimLane);\n updateHeaderMaxWidth(diagram, swimLane);\n children = lane.children;\n var childAdded = false;\n if (children && children.length > 0) {\n for (j = 0; j < children.length; j++) {\n childAdded = false;\n child = children[parseInt(j.toString(), 10)];\n point = { x: child.wrapper.offsetX, y: child.wrapper.offsetY };\n var padding = { left: 0, right: 0, top: 0, bottom: 0 };\n if (shape.orientation === 'Horizontal') {\n padding.bottom = bounds.y - grid.bounds.y;\n //839579 - swimlane delete Lane and perform undo redo issue\n cell = grid.rows[parseInt(index.toString(), 10)].cells[parseInt(j.toString(), 10)];\n for (i = 0; i < grid.rows[parseInt(index.toString(), 10)].cells.length; i++) {\n addChildNodeToNewLane(diagram, grid.rows[parseInt(index.toString(), 10)].cells[parseInt(i.toString(), 10)], point, child, padding);\n }\n }\n else {\n //Bug 876330: After performing cut operations followed by an undo, lanes and nodes in the swimlane are not rendered properly.\n // To iterate the lane and check whether the child node is inside the vertical lane. If so then we cut the loop.\n // eslint-disable-next-line no-labels\n childAddBreak: for (var r = 0; r <= grid.rows.length; r++) {\n for (c = 0; c < grid.rows[parseInt(r.toString(), 10)].cells.length; c++) {\n //Padding to compensate the original position of swimlane before drag.\n padding.right = bounds.x - grid.bounds.x;\n cell = grid.rows[parseInt(r.toString(), 10)].cells[parseInt(c.toString(), 10)];\n childAdded = addChildNodeToNewLane(diagram, cell, point, child, padding);\n if (childAdded) {\n // eslint-disable-next-line no-labels\n break childAddBreak;\n }\n }\n }\n }\n }\n }\n updateConnectorsProperties(connectors, diagram);\n diagram.drag(swimLane, bounds.x - grid.bounds.x, bounds.y - grid.bounds.y);\n }\n diagram.protectPropertyChange(false);\n }\n}\n/**\n * addChildNodeToNewLane method \\\n *\n * @returns {void} addChildNodeToNewLane method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridCell} cell - provide the cell value.\n * @param {PointModel} point - provide the point value.\n * @param {NodeModel} child - provide the child value.\n * @param {MarginModel | number} padding - provide the padding value.\n * @private\n */\nfunction addChildNodeToNewLane(diagram, cell, point, child, padding) {\n var childAdded = false;\n if (cell.children && cell.children.length > 0) {\n var canvas = cell.children[0];\n var parent_1 = diagram.nameTable[canvas.id];\n if (containsChildPoint(canvas.bounds, point, padding)) {\n diagram.addChild(parent_1, child);\n childAdded = true;\n }\n }\n return childAdded;\n}\n/**\n * containsChildPoint method \\\n *\n * @returns {boolean} containsChildPoint method .\\\n * @param {Rect} bounds - provide the bounds value.\n * @param {PointModel} point - provide the point value.\n * @param {MarginModel} padding - provide the padding value.\n * @private\n */\nfunction containsChildPoint(bounds, point, padding) {\n var leftPadding = padding.left || 0;\n var rightPadding = padding.right || 0;\n var topPadding = padding.top || 0;\n var bottomPadding = padding.bottom || 0;\n return bounds.left - leftPadding <= point.x && bounds.right + rightPadding >= point.x\n && bounds.top - topPadding <= point.y && bounds.bottom + bottomPadding >= point.y;\n}\n/**\n * addPhase method \\\n *\n * @returns {void} addPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} parent - provide the cell value.\n * @param {PhaseModel} newPhase - provide the point value.\n * @private\n */\nexport function addPhase(diagram, parent, newPhase) {\n if (parent.shape.type === 'SwimLane') {\n var gridRowIndex = void 0;\n var gridColIndex = void 0;\n var phaseNode = void 0;\n var phase = void 0;\n var previousPhase = void 0;\n var nextPhase = void 0;\n var phaseIndex = void 0;\n var i = void 0;\n var x = parent.wrapper.bounds.x;\n var y = parent.wrapper.bounds.y;\n var shape = parent.shape;\n var padding = shape.padding;\n var phasesCollection = shape.phases;\n var width = void 0;\n var grid = parent.wrapper.children[0];\n var orientation_2 = shape.orientation === 'Horizontal' ? true : false;\n gridRowIndex = (shape.header && shape.hasHeader) ? 0 : -1;\n if (shape.phases.length > 0) {\n gridRowIndex += 1;\n gridColIndex = 0;\n }\n var laneHeaderSize = (orientation_2) ? shape.lanes[0].header.width : shape.lanes[0].header.height;\n if (newPhase.offset > laneHeaderSize) {\n for (i = 0; i < phasesCollection.length; i++) {\n phase = phasesCollection[parseInt(i.toString(), 10)];\n previousPhase = (i > 0) ? phasesCollection[i - 1] : phase;\n if (phase.offset > newPhase.offset) {\n width = (i > 0) ? newPhase.offset - previousPhase.offset : newPhase.offset;\n if (orientation_2) {\n var nextCol = grid.columnDefinitions()[parseInt(i.toString(), 10)];\n nextCol.width -= width;\n nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id];\n nextPhase.maxWidth = nextPhase.wrapper.maxWidth = nextCol.width;\n grid.updateColumnWidth(i, nextCol.width, false);\n var addPhase_1 = new ColumnDefinition();\n addPhase_1.width = width;\n phaseIndex = i;\n grid.addColumn(i, addPhase_1, false);\n break;\n }\n else {\n var nextRow = grid.rowDefinitions()[i + gridRowIndex];\n nextRow.height -= width;\n nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id];\n grid.updateRowHeight(i + gridRowIndex, nextRow.height, false);\n var addPhase_2 = new RowDefinition();\n addPhase_2.height = width;\n phaseIndex = i;\n grid.addRow(i + gridRowIndex, addPhase_2, false);\n break;\n }\n }\n }\n if (diagram.diagramActions & DiagramAction.UndoRedo && phaseIndex === undefined) {\n var entry = diagram.historyManager.currentEntry.next;\n if (entry.isLastPhase) {\n phaseIndex = phasesCollection.length;\n addLastPhase(phaseIndex, parent, entry, grid, orientation_2, newPhase);\n }\n }\n //897967: Exception throws while perform addPhase with offset higher than existing phases offset\n if (phaseIndex >= 0) {\n var phaseObj = new Phase((parent.shape), 'phases', newPhase, true);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n phaseObj.id += randomId();\n }\n shape.phases.splice(phaseIndex, 0, phaseObj);\n phaseDefine(grid, diagram, parent, gridRowIndex, orientation_2, phaseIndex);\n if (orientation_2) {\n phaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[parseInt(phaseIndex.toString(), 10)].children[0].id];\n if (phaseIndex === 0 && shape.header && shape.hasHeader) {\n grid.rows[0].cells[0].children = grid.rows[0].cells[1].children;\n grid.rows[0].cells[1].children = [];\n var fristRow = grid.rows[0];\n for (var i_2 = 0; i_2 < fristRow.cells.length; i_2++) {\n fristRow.cells[parseInt(i_2.toString(), 10)].minWidth = undefined;\n if (i_2 === 0) {\n fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = grid.rows[0].cells.length;\n }\n else {\n fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = 1;\n }\n }\n }\n addHorizontalPhase(diagram, parent, grid, phaseIndex, orientation_2);\n var col = grid.columnDefinitions();\n grid.updateColumnWidth(phaseIndex, col[parseInt(phaseIndex.toString(), 10)].width, true, padding);\n phaseNode.maxWidth = phaseNode.wrapper.maxWidth = col[parseInt(phaseIndex.toString(), 10)].width;\n if (col.length > phaseIndex + 1) {\n var nextPhaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[phaseIndex + 1].children[0].id];\n grid.updateColumnWidth(phaseIndex + 1, col[phaseIndex + 1].width, true, padding);\n nextPhaseNode.maxWidth = nextPhaseNode.wrapper.maxWidth = col[phaseIndex + 1].width;\n }\n parent.width = parent.wrapper.width = parent.wrapper.children[0].width = grid.width;\n }\n else {\n phaseNode = diagram.nameTable[grid.rows[gridRowIndex + phaseIndex].cells[0].children[0].id];\n var row = grid.rowDefinitions();\n var size = row[gridRowIndex + phaseIndex].height;\n addVerticalPhase(diagram, parent, grid, gridRowIndex + phaseIndex, orientation_2);\n grid.updateRowHeight(gridRowIndex + phaseIndex, size, true, padding);\n if (row.length > gridRowIndex + phaseIndex + 1) {\n size = row[gridRowIndex + phaseIndex + 1].height;\n grid.updateRowHeight(gridRowIndex + phaseIndex + 1, size, true, padding);\n }\n parent.height = parent.wrapper.height = parent.wrapper.children[0].height = grid.actualSize.height;\n }\n swimLaneMeasureAndArrange(parent);\n parent.width = parent.wrapper.actualSize.width;\n updateHeaderMaxWidth(diagram, parent);\n diagram.drag(parent, x - parent.wrapper.bounds.x, y - parent.wrapper.bounds.y);\n checkPhaseOffset(parent, diagram);\n //911372-Lane Selector not updated after adding new phase at runtime\n diagram.commandHandler.select(phaseNode);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PhaseCollectionChanged', changeType: 'Insert', undoObject: cloneObject(phaseObj),\n redoObject: cloneObject(phaseNode), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n diagram.updateDiagramObject(parent);\n }\n }\n }\n}\n/**\n * addLastPhase method \\\n *\n * @returns {void} addLastPhase method .\\\n * @param {number} phaseIndex - provide the diagram value.\n * @param {NodeModel} parent - provide the cell value.\n * @param {HistoryEntry} entry - provide the point value.\n * @param {GridPanel} grid - provide the grid value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {PhaseModel} newPhase - provide the newPhase value.\n * @private\n */\nexport function addLastPhase(phaseIndex, parent, entry, grid, orientation, newPhase) {\n var shape = parent.shape;\n var prevPhase = shape.phases[phaseIndex - 2];\n var prevOffset = entry.previousPhase.offset;\n if (orientation) {\n var nextCol = grid.columnDefinitions()[phaseIndex - 1];\n var addPhase_3 = new ColumnDefinition();\n if (phaseIndex > 1) {\n addPhase_3.width = (nextCol.width) - (prevOffset - prevPhase.offset);\n nextCol.width = prevOffset - prevPhase.offset;\n }\n else {\n addPhase_3.width = nextCol.width - prevOffset;\n nextCol.width = prevOffset;\n }\n grid.updateColumnWidth(phaseIndex - 1, nextCol.width, false);\n grid.addColumn(phaseIndex, addPhase_3, false);\n }\n else {\n var nextCol = grid.rowDefinitions()[parseInt(phaseIndex.toString(), 10)];\n var addPhase_4 = new RowDefinition();\n if (phaseIndex > 1) {\n addPhase_4.height = entry.undoObject.offset - prevOffset;\n nextCol.height = prevOffset - prevPhase.offset;\n }\n else {\n addPhase_4.height = nextCol.height - prevOffset;\n nextCol.height = prevOffset;\n }\n grid.updateRowHeight(phaseIndex, nextCol.height, false);\n grid.addRow(1 + phaseIndex, addPhase_4, false);\n }\n}\n/**\n * addHorizontalPhase method \\\n *\n * @returns {void} addHorizontalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the cell value.\n * @param {GridPanel} grid - provide the point value.\n * @param {number} index - provide the point value.\n * @param {boolean} orientation - provide the point value.\n * @private\n */\nexport function addHorizontalPhase(diagram, node, grid, index, orientation) {\n var shape = node.shape;\n var nextCell;\n var i;\n var prevCell;\n var gridCell;\n var row;\n var laneIndex = findStartLaneIndex(node);\n if (shape.header && shape.hasHeader) {\n grid.rows[0].cells[0].columnSpan = grid.rows[0].cells.length;\n }\n for (i = laneIndex; i < grid.rows.length; i++) {\n row = grid.rows[parseInt(i.toString(), 10)];\n prevCell = row.cells[index - 1];\n gridCell = row.cells[parseInt(index.toString(), 10)];\n nextCell = row.cells[index + 1];\n addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, i, index);\n }\n ChangeLaneIndex(diagram, node, 1);\n}\n/**\n * addVerticalPhase method \\\n *\n * @returns {void} addVerticalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the cell value.\n * @param {GridPanel} grid - provide the point value.\n * @param {number} rowIndex - provide the point value.\n * @param {boolean} orientation - provide the point value.\n * @private\n */\nexport function addVerticalPhase(diagram, node, grid, rowIndex, orientation) {\n var prevCell;\n var gridCell;\n var nextCell;\n var row = grid.rows[parseInt(rowIndex.toString(), 10)];\n var nextRow = grid.rows[rowIndex + 1];\n var prevRow = grid.rows[rowIndex - 1];\n for (var i = 1; i < row.cells.length; i++) {\n gridCell = row.cells[parseInt(i.toString(), 10)];\n nextCell = (nextRow) ? nextRow.cells[parseInt(i.toString(), 10)] : undefined;\n prevCell = prevRow.cells[parseInt(i.toString(), 10)];\n addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, i);\n }\n ChangeLaneIndex(diagram, node, 1);\n}\n/**\n * addSwimlanePhases method \\\n *\n * @returns {void} addSwimlanePhases method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @param {GridPanel} prevCell - provide the prevCell value.\n * @param {number} gridCell - provide the gridCell value.\n * @param {boolean} nextCell - provide the nextCell value.\n * @param {boolean} rowIndex - provide the rowIndex value.\n * @param {boolean} columnIndex - provide the columnIndex value.\n * @private\n */\nfunction addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, columnIndex) {\n var x;\n var y;\n var shape = node.shape;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n var grid = node.wrapper.children[0];\n var width = gridCell.desiredCellWidth;\n var height = gridCell.desiredCellHeight;\n //const col: number = (orientation) ? rowIndex : columnIndex;\n //let parentWrapper: Container;\n var j;\n var i = (orientation) ? rowIndex : columnIndex;\n if (prevCell) {\n x = orientation ? prevCell.bounds.x + prevCell.bounds.width : prevCell.bounds.x;\n y = orientation ? prevCell.bounds.y : prevCell.bounds.y + prevCell.bounds.height;\n }\n else {\n x = grid.bounds.x;\n y = nextCell.bounds.y;\n }\n var rect = new Rect(x, y, width, height);\n var canvas = {\n id: node.id + ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).id + randomId()[0],\n rowIndex: rowIndex, columnIndex: columnIndex,\n width: gridCell.minWidth, height: gridCell.minHeight,\n style: ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).style,\n constraints: NodeConstraints.Default | NodeConstraints.AllowDrop,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n var parentWrapper = addObjectToGrid(diagram, grid, node, canvas, false, false, true);\n parentWrapper.children[0].isCalculateDesiredSize = false;\n grid.addObject(parentWrapper, rowIndex, columnIndex);\n if (nextCell && nextCell.children && nextCell.children.length) {\n for (j = 0; j < nextCell.children.length; j++) {\n if (orientation) {\n diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].columnIndex += 1;\n }\n else {\n diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].rowIndex += 1;\n }\n }\n }\n arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell);\n}\n/**\n * arrangeChildInGrid method \\\n *\n * @returns {void} arrangeChildInGrid method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridCell} nextCell - provide the nextCell value.\n * @param {GridPanel} gridCell - provide the gridCell value.\n * @param {Rect} rect - provide the rect value.\n * @param {Container} parentWrapper - provide the parentWrapper value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {GridCell} prevCell - provide the prevCell value.\n * @private\n */\nexport function arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell) {\n var child;\n var point;\n var childNode;\n var parent = diagram.nameTable[parentWrapper.id];\n var changeCell = (!nextCell) ? prevCell : nextCell;\n var swimLane = diagram.nameTable[parent.parentId];\n var padding = swimLane.shape.padding;\n if (changeCell.children && changeCell.children[0].children.length > 1) {\n for (var j = 1; j < changeCell.children[0].children.length; j++) {\n child = changeCell.children[0].children[parseInt(j.toString(), 10)];\n childNode = diagram.nameTable[child.id];\n point = (orientation) ? { x: child.bounds.x, y: child.bounds.center.y } :\n { x: child.bounds.center.x, y: child.bounds.top };\n if (rect.containsPoint(point)) {\n gridCell.children[0].children.push(child);\n changeCell.children[0].children.splice(j, 1);\n j--;\n diagram.deleteChild(childNode, undefined, true);\n if (!childNode.isLane) {\n childNode.parentId = parentWrapper.id;\n }\n if (!parent.children) {\n parent.children = [];\n }\n if (!nextCell) {\n if (orientation) {\n childNode.margin.left = childNode.wrapper.bounds.x - changeCell.children[0].bounds.right;\n }\n else {\n childNode.margin.top = childNode.wrapper.bounds.y - changeCell.children[0].bounds.bottom;\n }\n }\n parent.children.push(child.id);\n childNode.zIndex = parent.zIndex + 1;\n diagram.removeElements(childNode);\n }\n else if (nextCell) {\n if (orientation) {\n childNode.margin.left -= gridCell.desiredCellWidth;\n if (padding > childNode.margin.left) {\n childNode.margin.left = padding;\n }\n }\n else {\n childNode.margin.top -= gridCell.desiredCellHeight;\n if (padding > childNode.margin.top) {\n childNode.margin.top = padding;\n }\n }\n }\n }\n }\n}\n/**\n * swimLaneSelection method \\\n *\n * @returns {void} swimLaneSelection method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @param {string} corner - provide the corner value.\n * @private\n */\nexport function swimLaneSelection(diagram, node, corner) {\n if (node.shape.type === 'SwimLane' && (corner === 'ResizeSouth' || corner === 'ResizeEast')) {\n var shape = node.shape;\n var wrapper = node.wrapper.children[0];\n var child = void 0;\n var index = void 0;\n if (corner === 'ResizeSouth') {\n if (shape.orientation === 'Vertical') {\n child = wrapper.rows[wrapper.rows.length - 1].cells[0];\n }\n else {\n index = wrapper.rows.length - 1;\n child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1];\n }\n }\n else {\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1];\n }\n diagram.commandHandler.select(diagram.nameTable[child.children[0].id]);\n }\n}\n/**\n * pasteSwimLane method \\\n *\n * @returns {void} pasteSwimLane method .\\\n * @param {Diagram} swimLane - provide the diagram value.\n * @param {NodeModel} diagram - provide the diagram value.\n * @param {string} clipboardData - provide the clipboardData value.\n * @param {string} laneNode - provide the laneNode value.\n * @param {string} isLane - provide the isLane value.\n * @param {string} isUndo - provide the isUndo value.\n * @private\n */\nexport function pasteSwimLane(swimLane, diagram, clipboardData, laneNode, isLane, isUndo) {\n var i;\n var j;\n var lane;\n var phase;\n var node;\n var ranId = randomId();\n var cloneLane;\n var childX;\n var childY;\n var shape = swimLane.shape; //let lanes: LaneModel[];\n var phases = shape.phases;\n var nodeX = swimLane.offsetX - swimLane.wrapper.actualSize.width / 2;\n var nodeY = swimLane.offsetY - swimLane.wrapper.actualSize.height / 2;\n if (shape.orientation === 'Vertical') {\n nodeY += (shape.header && shape.hasHeader) ? shape.header.height : 0;\n }\n if (!isUndo) {\n if (!isLane) {\n swimLane.id += ranId;\n if (shape && shape.header && shape.hasHeader) {\n shape.header.id += ranId;\n }\n else {\n shape.header = undefined;\n }\n }\n for (i = 0; phases && i < phases.length; i++) {\n phase = phases[parseInt(i.toString(), 10)];\n phase.id += ranId;\n }\n }\n var lanes = (isLane) ? [clipboardData.childTable[laneNode.id]] : shape.lanes;\n for (i = 0; lanes && i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (!isUndo) {\n lane.id += ranId;\n }\n for (j = 0; lane.children && j < lane.children.length; j++) {\n node = lane.children[parseInt(j.toString(), 10)];\n childX = node.wrapper.offsetX - node.width / 2;\n childY = node.wrapper.offsetY - node.height / 2;\n node.zIndex = Number.MIN_VALUE;\n node.inEdges = node.outEdges = [];\n if (isUndo || (clipboardData && (clipboardData.pasteIndex === 1 || clipboardData.pasteIndex === 0))) {\n if (shape.orientation === 'Vertical') {\n node.margin.top = childY - nodeY;\n }\n else {\n node.margin.left = childX - nodeX;\n }\n }\n if (!isUndo) {\n node.id += ranId;\n }\n }\n }\n if (!isUndo) {\n if (isLane) {\n var newShape = {\n lanes: lanes,\n phases: phases, phaseSize: shape.phaseSize,\n type: 'SwimLane', orientation: shape.orientation,\n header: { annotation: { content: 'Title' }, height: 50 }\n };\n cloneLane = { shape: newShape };\n if (shape.orientation === 'Horizontal') {\n cloneLane.width = swimLane.wrapper.actualSize.width;\n cloneLane.height = laneNode.wrapper.actualSize.height + shape.header.height + shape.phaseSize;\n cloneLane.offsetX = swimLane.wrapper.offsetX + (clipboardData.pasteIndex * 10);\n cloneLane.offsetY = laneNode.wrapper.offsetY + (clipboardData.pasteIndex * 10);\n }\n else {\n cloneLane.width = laneNode.wrapper.actualSize.width;\n cloneLane.height = swimLane.wrapper.actualSize.height;\n cloneLane.offsetX = laneNode.wrapper.offsetX + (clipboardData.pasteIndex * 10);\n cloneLane.offsetY = swimLane.wrapper.offsetY + (clipboardData.pasteIndex * 10);\n }\n swimLane = cloneLane;\n }\n if (clipboardData.pasteIndex !== 0) {\n swimLane.offsetX += 10;\n swimLane.offsetY += 10;\n }\n swimLane.zIndex = Number.MIN_VALUE;\n swimLane = diagram.add(swimLane);\n if (!isLane) {\n for (var _i = 0, _a = Object.keys(clipboardData.childTable); _i < _a.length; _i++) {\n var i_3 = _a[_i];\n var connector = clipboardData.childTable[\"\" + i_3];\n connector.id += ranId;\n connector.sourceID += ranId;\n connector.targetID += ranId;\n connector.zIndex = Number.MIN_VALUE;\n diagram.add(connector);\n }\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n diagram.select([swimLane]);\n }\n return swimLane;\n}\n/**\n * gridSelection method \\\n *\n * @returns {void} gridSelection method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {SelectorModel} selectorModel - provide the selectorModel value.\n * @param {string} id - provide the id value.\n * @param {boolean} isSymbolDrag - provide the isSymbolDrag value.\n * @private\n */\nexport function gridSelection(diagram, selectorModel, id, isSymbolDrag) {\n var canvas;\n var node = selectorModel.nodes[0];\n if (isSymbolDrag || checkParentAsContainer(diagram, node, true)) {\n var targetnode = void 0;\n var bounds = void 0;\n var swimLaneId = void 0;\n var element = new DiagramElement();\n if (id) {\n swimLaneId = (diagram.nameTable[\"\" + id].parentId);\n targetnode = node = diagram.nameTable[\"\" + id];\n }\n var wrapper = !id ? node.wrapper : targetnode.wrapper;\n var parentNode = diagram.nameTable[swimLaneId || node.parentId];\n if (parentNode && parentNode.container.type === 'Grid') {\n canvas = new Canvas();\n canvas.children = [];\n if (isSymbolDrag || !(node.isHeader)) {\n if ((parentNode.container.orientation === 'Horizontal' && node.isPhase) ||\n (parentNode.container.orientation === 'Vertical' &&\n (node.rowIndex > 0 && node.columnIndex > 0 || node.isLane))) {\n bounds = findBounds(parentNode, (targetnode) ? targetnode.columnIndex : node.columnIndex, (parentNode.shape.header && parentNode.shape.hasHeader) ? true : false);\n canvas.offsetX = bounds.center.x;\n canvas.offsetY = bounds.center.y;\n element.width = bounds.width;\n element.height = bounds.height;\n }\n else {\n canvas.offsetX = parentNode.offsetX;\n canvas.offsetY = wrapper.offsetY;\n element.width = parentNode.wrapper.actualSize.width;\n element.height = wrapper.actualSize.height;\n }\n }\n canvas.children.push(element);\n canvas.measure(new Size());\n canvas.arrange(canvas.desiredSize);\n }\n }\n return canvas;\n}\n/**\n * removeLaneChildNode method \\\n *\n * @returns {void} removeLaneChildNode method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} swimLaneNode - provide the diagram value.\n * @param {NodeModel} currentObj - provide the currentObj value.\n * @param {NodeModel} isChildNode - provide the isChildNode value.\n * @param {number} laneIndex - provide the laneIndex value.\n * @private\n */\nexport function removeLaneChildNode(diagram, swimLaneNode, currentObj, isChildNode, laneIndex) {\n laneIndex = (laneIndex !== undefined) ? laneIndex : findLaneIndex(swimLaneNode, currentObj);\n var preventHistory = false;\n var lanenode = swimLaneNode.shape.lanes[parseInt(laneIndex.toString(), 10)];\n for (var j = lanenode.children.length - 1; j >= 0; j--) {\n if (isChildNode) {\n if (isChildNode.id === lanenode.children[parseInt(j.toString(), 10)].id) {\n lanenode.children.splice(j, 1);\n }\n }\n else {\n diagram.removeDependentConnector(lanenode.children[parseInt(j.toString(), 10)]);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n diagram.diagramActions = diagram.diagramActions | DiagramAction.UndoRedo;\n preventHistory = true;\n }\n diagram.remove(lanenode.children[parseInt(j.toString(), 10)]);\n lanenode.children.splice(j, 1);\n if (preventHistory) {\n diagram.diagramActions = diagram.diagramActions & ~DiagramAction.UndoRedo;\n }\n }\n }\n}\n/**\n * getGridChildren method \\\n *\n * @returns {DiagramElement} getGridChildren method .\\\n * @param {Diagram} obj - provide the obj value.\n * @private\n */\nexport function getGridChildren(obj) {\n var children = obj.children[0];\n return children;\n}\n/**\n * removeSwimLane method \\\n *\n * @returns {void} removeSwimLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} obj - provide the obj value.\n * @private\n */\nexport function removeSwimLane(diagram, obj) {\n var rows = obj.wrapper.children[0].rows;\n //let preventHistory: boolean = false;\n var node;\n var i;\n var j;\n var k;\n var child;\n var removeNode;\n for (i = 0; i < rows.length; i++) {\n for (j = 0; j < rows[parseInt(i.toString(), 10)].cells.length; j++) {\n child = getGridChildren(rows[parseInt(i.toString(), 10)].cells[parseInt(j.toString(), 10)]);\n if (child && child.children) {\n for (k = child.children.length - 1; k >= 0; k--) {\n if (child.children[parseInt(k.toString(), 10)].children) {\n removeNode = diagram.nameTable[child.children[parseInt(k.toString(), 10)].id];\n if (removeNode) {\n if (removeNode.isLane) {\n deleteNode(diagram, removeNode);\n }\n else {\n diagram.removeDependentConnector(removeNode);\n diagram.diagramActions |= DiagramAction.PreventHistory;\n if ((removeNode.constraints & NodeConstraints.Delete)) {\n diagram.remove(removeNode);\n }\n else {\n removeChildInContainer(diagram, removeNode, {}, false);\n }\n diagram.diagramActions &= ~DiagramAction.PreventHistory;\n }\n }\n }\n }\n }\n if (child) {\n node = diagram.nameTable[child.id];\n if (node) {\n deleteNode(diagram, node);\n }\n }\n }\n }\n}\n/**\n * deleteNode method \\\n *\n * @returns {void} deleteNode method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} node - provide the obj value.\n * @private\n */\nfunction deleteNode(diagram, node) {\n if (node) {\n diagram.nodes.splice(diagram.nodes.indexOf(node), 1);\n diagram.removeFromAQuad(node);\n diagram.removeObjectsFromLayer(node);\n delete diagram.nameTable[node.id];\n diagram.removeElements(node);\n }\n}\n/**\n * removeLane method \\\n *\n * @returns {void} removeLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} lane - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @param {LaneModel} lanes - provide the obj value.\n * @private\n */\nexport function removeLane(diagram, lane, swimLane, lanes) {\n var args;\n if (swimLane.shape.type === 'SwimLane') {\n var shape = swimLane.shape;\n var laneIndex = void 0;\n if (shape.lanes.length === 1) {\n diagram.remove(swimLane);\n }\n else {\n var x = swimLane.wrapper.bounds.x;\n var y = swimLane.wrapper.bounds.y;\n var row = void 0;\n var i = void 0;\n var cell = void 0;\n var j = void 0;\n var child = void 0;\n var grid = swimLane.wrapper.children[0];\n laneIndex = (lanes) ? (shape.lanes.indexOf(lanes)) : findLaneIndex(swimLane, lane);\n args = {\n element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Removal', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n if (!args.cancel) {\n var removableLane = shape.lanes[parseInt(laneIndex.toString(), 10)];\n //Bug 876330: After performing cut operations followed by an undo, lanes and nodes in the swimlane are not rendered properly.\n //Here we are removing the children from lane and re-adding it to the lane after getting it from diagram nodes collection.\n //Because the wrapper of nodes are not updated properly after undo operation.\n var removableLaneChild = removableLane.children;\n removableLane.children = [];\n for (var i_4 = 0; i_4 < removableLaneChild.length; i_4++) {\n var child_1 = diagram.getObject(removableLaneChild[parseInt(i_4.toString(), 10)].id);\n if (child_1) {\n removableLane.children.push(child_1);\n }\n }\n var undoObj = cloneObject(shape.lanes[parseInt(laneIndex.toString(), 10)]);\n removeLaneChildNode(diagram, swimLane, lane, undefined, laneIndex);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'LaneCollectionChanged', changeType: 'Remove', undoObject: undoObj,\n redoObject: cloneObject(lane), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n shape.lanes.splice(laneIndex, 1);\n var index = (lane) ? (shape.orientation === 'Horizontal' ? lane.rowIndex : lane.columnIndex) :\n (findStartLaneIndex(swimLane) + laneIndex);\n if (shape.orientation === 'Horizontal') {\n row = grid.rows[parseInt(index.toString(), 10)];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n if (cell && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n removeChildren(diagram, child);\n }\n }\n }\n grid.removeRow(index);\n }\n else {\n swimLane.width = (swimLane.width !== undefined) ?\n swimLane.width - grid.rows[0].cells[parseInt(index.toString(), 10)].actualSize.width : swimLane.width;\n for (i = 0; i < grid.rows.length; i++) {\n cell = grid.rows[parseInt(i.toString(), 10)].cells[parseInt(index.toString(), 10)];\n if (cell && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n removeChildren(diagram, child);\n }\n }\n }\n grid.removeColumn(index);\n }\n args = {\n element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Removal', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n swimLane.width = swimLane.wrapper.width = grid.width;\n swimLane.height = swimLane.wrapper.height = grid.height;\n swimLaneMeasureAndArrange(swimLane);\n if (swimLane.shape.orientation === 'Vertical') {\n index = 0;\n }\n ChangeLaneIndex(diagram, swimLane, index);\n diagram.drag(swimLane, x - swimLane.wrapper.bounds.x, y - swimLane.wrapper.bounds.y);\n diagram.updateDiagramObject(swimLane);\n }\n }\n }\n}\n/**\n * removeChildren method \\\n *\n * @returns {void} removeChildren method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {Canvas} canvas - provide the obj value.\n * @private\n */\nexport function removeChildren(diagram, canvas) {\n var i;\n var node;\n if (canvas instanceof Canvas) {\n if (canvas.children.length > 0) {\n for (i = 0; i < canvas.children.length; i++) {\n if (canvas.children[parseInt(i.toString(), 10)] instanceof Canvas) {\n removeChildren(diagram, canvas.children[parseInt(i.toString(), 10)]);\n }\n }\n }\n node = diagram.getObject(canvas.id);\n deleteNode(diagram, node);\n }\n}\n/**\n * removePhase method \\\n *\n * @returns {void} removePhase method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} phase - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @param {PhaseModel} swimLanePhases - provide the obj value.\n * @private\n */\nexport function removePhase(diagram, phase, swimLane, swimLanePhases) {\n diagram.protectPropertyChange(true);\n var x = swimLane.wrapper.bounds.x;\n var y = swimLane.wrapper.bounds.y;\n var isLastPhase = false;\n var previousPhase;\n var shape = swimLane.shape;\n var grid = swimLane.wrapper.children[0];\n var phaseIndex = swimLanePhases ? shape.phases.indexOf(swimLanePhases) : findPhaseIndex(phase, swimLane);\n var phaseLength = shape.phases.length;\n if (shape.phases.length > 1) {\n if (phaseIndex === phaseLength - 1) {\n isLastPhase = true;\n previousPhase = cloneObject(shape.phases[phaseIndex - 1]);\n }\n var undoObj = cloneObject(shape.phases[parseInt(phaseIndex.toString(), 10)]);\n shape.phases.splice(phaseIndex, 1);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PhaseCollectionChanged', changeType: 'Remove', undoObject: undoObj, previousPhase: previousPhase,\n redoObject: cloneObject(phase), category: 'Internal', isLastPhase: isLastPhase\n };\n diagram.addHistoryEntry(entry);\n }\n if (shape.orientation === 'Horizontal') {\n removeHorizontalPhase(diagram, grid, phase, phaseIndex);\n }\n else {\n removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane);\n }\n updateHeaderMaxWidth(diagram, swimLane);\n //878835- selecting swimlane phase after deleting first phase wihtout header throws error\n ChangeLaneIndex(diagram, swimLane, swimLane.isHeader ? 1 : 0);\n checkPhaseOffset(swimLane, diagram);\n diagram.protectPropertyChange(false);\n diagram.updateDiagramObject(swimLane);\n }\n}\n/**\n * removeHorizontalPhase method \\\n *\n * @returns {void} removeHorizontalPhase method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {GridPanel} grid - provide the obj value.\n * @param {NodeModel} phase - provide the obj value.\n * @param {number} phaseIndex - provide the obj value.\n * @private\n */\nexport function removeHorizontalPhase(diagram, grid, phase, phaseIndex) {\n var row;\n var cell;\n var prevCell;\n var actualChild; //let prevChild: Canvas;\n var prevCanvas;\n var width;\n phaseIndex = (phaseIndex !== undefined) ? phaseIndex : phase.columnIndex;\n var i;\n var j;\n var k;\n var child;\n var node;\n var object;\n for (i = 0; i < grid.rows.length; i++) {\n row = grid.rows[parseInt(i.toString(), 10)];\n if (row.cells.length > 1) {\n cell = row.cells[parseInt(phaseIndex.toString(), 10)];\n prevCell = (row.cells.length - 1 === phaseIndex) ? row.cells[phaseIndex - 1] :\n row.cells[phaseIndex + 1];\n prevCanvas = prevCell.children[0];\n if (cell.children.length > 0) {\n actualChild = cell.children[0];\n node = diagram.nameTable[actualChild.id];\n if (prevCell.children.length === 0 && cell.children.length > 0) {\n prevCell.children = cell.children;\n prevCell.columnSpan = cell.columnSpan - 1;\n }\n else {\n for (j = 0; j < actualChild.children.length; j++) {\n child = actualChild.children[parseInt(j.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n if (!object.isLane) {\n object.parentId = prevCanvas.id;\n }\n if ((row.cells.length - 1 === phaseIndex)) {\n object.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x;\n child.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x;\n }\n prevCanvas.children.push(child);\n if (diagram.nameTable[prevCanvas.id]) {\n var parentNode = diagram.nameTable[prevCanvas.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n parentNode.children.push(child.id);\n }\n actualChild.children.splice(j, 1);\n j--;\n if (node && node.children && node.children.indexOf(object.id) !== -1) {\n node.children.splice(node.children.indexOf(object.id), 1);\n }\n }\n if ((row.cells.length - 1 !== phaseIndex)) {\n for (k = 0; k < prevCanvas.children.length; k++) {\n var prevChild = prevCanvas.children[parseInt(k.toString(), 10)];\n if (prevChild instanceof Canvas) {\n var prevNode = diagram.nameTable[prevChild.id];\n prevNode.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x;\n prevChild.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x;\n }\n }\n }\n }\n if (node && node.isPhase) {\n var object_1 = diagram.nameTable[prevCanvas.id];\n if (object_1) {\n prevCanvas.maxWidth = object_1.wrapper.maxWidth = object_1.wrapper.maxWidth += node.wrapper.maxWidth;\n }\n }\n deleteNode(diagram, node);\n }\n }\n }\n }\n var prevWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n grid.removeColumn(phaseIndex);\n if ((phaseIndex < grid.columnDefinitions().length)) {\n width = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n width += prevWidth;\n grid.updateColumnWidth(phaseIndex, width, true);\n }\n else {\n width = grid.columnDefinitions()[phaseIndex - 1].width;\n width += prevWidth;\n grid.updateColumnWidth(phaseIndex - 1, width, true);\n }\n}\n/**\n * removeVerticalPhase method \\\n *\n * @returns {void} removeVerticalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridPanel} grid - provide the grid value.\n * @param {NodeModel} phase - provide the phase value.\n * @param {number} phaseIndex - provide the phaseIndex value.\n * @param {number} swimLane - provide the swimLane value.\n * @private\n */\nexport function removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane) {\n var cell;\n var height;\n var i;\n var j;\n var k;\n var prevCell;\n var prevChild;\n var shape = swimLane.shape;\n var child;\n var object;\n var phaseRowIndex = (phaseIndex !== undefined) ? ((shape.header) ? phaseIndex + 1 : phaseIndex) : phase.rowIndex;\n var row = grid.rows[parseInt(phaseRowIndex.toString(), 10)];\n var top = swimLane.wrapper.bounds.y;\n var phaseCount = shape.phases.length;\n if (shape.header !== undefined && shape.hasHeader) {\n top += grid.rowDefinitions()[0].height;\n }\n var prevRow = (phaseIndex === phaseCount) ? grid.rows[phaseRowIndex - 1] : grid.rows[phaseRowIndex + 1];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n prevCell = prevRow.cells[parseInt(i.toString(), 10)];\n prevChild = prevCell.children[0];\n if (cell.children.length > 0) {\n var children = cell.children[0];\n var node = diagram.nameTable[children.id];\n if (phaseIndex < phaseCount) {\n for (k = 0; k < prevChild.children.length; k++) {\n child = prevChild.children[parseInt(k.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y);\n child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y);\n }\n }\n }\n for (j = 0; j < children.children.length; j++) {\n child = children.children[parseInt(j.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n object.parentId = prevChild.id;\n if (phaseIndex === phaseCount) {\n object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y);\n child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y);\n }\n prevChild.children.push(child);\n children.children.splice(j, 1);\n j--;\n if (node.children && node.children.indexOf(object.id) !== -1) {\n node.children.splice(node.children.indexOf(object.id), 1);\n }\n }\n }\n deleteNode(diagram, node);\n }\n }\n var prevHeight = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height;\n grid.removeRow(phaseRowIndex);\n if ((phaseRowIndex < grid.rowDefinitions().length)) {\n height = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height;\n height += prevHeight;\n grid.updateRowHeight(phaseRowIndex, height, true);\n }\n else {\n height = grid.rowDefinitions()[phaseRowIndex - 1].height;\n height += prevHeight;\n grid.updateRowHeight(phaseRowIndex - 1, height, true);\n }\n}\n/**\n * considerSwimLanePadding method \\\n *\n * @returns {void} considerSwimLanePadding method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the grid value.\n * @param {number} padding - provide the phase value.\n * @private\n */\nexport function considerSwimLanePadding(diagram, node, padding) {\n var lane = diagram.nameTable[node.parentId];\n if (lane && lane.isLane) {\n var swimLane = diagram.nameTable[lane.parentId];\n var grid = swimLane.wrapper.children[0];\n //let x: number = swimLane.wrapper.bounds.x; let y: number = swimLane.wrapper.bounds.y;\n grid.updateColumnWidth(lane.columnIndex, grid.columnDefinitions()[lane.columnIndex].width, true, padding);\n grid.updateRowHeight(lane.rowIndex, grid.rowDefinitions()[lane.rowIndex].height, true, padding);\n var canvas = lane.wrapper;\n var laneHeader = void 0;\n var isConsiderHeader = false;\n if (node.margin.left < padding) {\n node.margin.left = padding;\n }\n if (node.margin.top < padding) {\n node.margin.top = padding;\n }\n for (var i = 0; i < canvas.children.length; i++) {\n var child = canvas.children[parseInt(i.toString(), 10)];\n if (child instanceof Canvas) {\n var childNode = diagram.nameTable[child.id];\n if (childNode.isLane) {\n laneHeader = childNode.wrapper;\n isConsiderHeader = true;\n break;\n }\n }\n }\n if (laneHeader) {\n if (swimLane.shape.orientation === 'Horizontal') {\n if (node.margin.left < padding + laneHeader.actualSize.width) {\n node.margin.left = padding + laneHeader.actualSize.width;\n }\n }\n else {\n if (node.margin.top < padding + laneHeader.actualSize.height) {\n node.margin.top = padding + laneHeader.actualSize.height;\n }\n }\n }\n swimLane.wrapper.measure(new Size(swimLane.width, swimLane.height));\n swimLane.wrapper.arrange(swimLane.wrapper.desiredSize);\n node.offsetX = node.wrapper.offsetX;\n node.offsetY = node.wrapper.offsetY;\n diagram.nodePropertyChange(node, {}, { margin: { left: node.margin.left, top: node.margin.top } });\n //EJ2-68372- Text-Annotation in event node is not positioned properly while drag the swimlane\n // if (diagram.bpmnModule && node.shape.type === 'Bpmn' && (node.shape as BpmnShapeModel).annotations && (node.shape as BpmnShapeModel).annotations.length > 0) {\n // diagram.nodePropertyChange(node as Node, {} as Node, { margin: { left: node.margin.left, top: node.margin.top } } as Node);\n // }\n grid.measure(new Size(grid.width, grid.height));\n grid.arrange(grid.desiredSize);\n swimLane.width = swimLane.wrapper.width = swimLane.wrapper.children[0].actualSize.width;\n swimLane.height = swimLane.wrapper.height = swimLane.wrapper.children[0].actualSize.height;\n }\n}\n/**\n * checkLaneChildrenOffset method \\\n *\n * @returns {void} checkLaneChildrenOffset method .\\\n * @param {NodeModel} swimLane - provide the diagram value.\n * @private\n */\nexport function checkLaneChildrenOffset(swimLane) {\n if (swimLane.shape.type === 'SwimLane') {\n var lanes = swimLane.shape.lanes;\n var lane = void 0;\n var child = void 0;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n for (var j = 0; j < lane.children.length; j++) {\n child = lane.children[parseInt(j.toString(), 10)];\n child.offsetX = child.wrapper.offsetX;\n child.offsetY = child.wrapper.offsetY;\n }\n }\n }\n}\n/**\n * findLane method \\\n *\n * @returns {LaneModel} findLane method .\\\n * @param {Node} laneNode - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function findLane(laneNode, diagram) {\n var lane;\n if (laneNode.isLane) {\n var swimLane = diagram.getObject(laneNode.parentId);\n if (swimLane && swimLane.shape.type === 'SwimLane' && laneNode.isLane) {\n var laneIndex = findLaneIndex(swimLane, laneNode);\n lane = swimLane.shape.lanes[parseInt(laneIndex.toString(), 10)];\n }\n }\n return lane;\n}\n/**\n * canLaneInterchange method \\\n *\n * @returns {boolean} canLaneInterchange method .\\\n * @param {Node} laneNode - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function canLaneInterchange(laneNode, diagram) {\n if (laneNode.isLane) {\n var lane = findLane(laneNode, diagram);\n var eventHandler = 'eventHandler';\n var resize = diagram[\"\" + eventHandler].action;\n var canResize = resize.includes('Resize');\n if (canResize || lane.canMove) {\n return true;\n }\n }\n return false;\n}\n/**\n * updateSwimLaneChildPosition method \\\n *\n * @returns {void} updateSwimLaneChildPosition method .\\\n * @param {Lane[]} lanes - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateSwimLaneChildPosition(lanes, diagram) {\n var lane;\n var node;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n for (var j = 0; j < lane.children.length; j++) {\n node = diagram.nameTable[lane.children[parseInt(j.toString(), 10)].id];\n node.offsetX = node.wrapper.offsetX;\n node.offsetY = node.wrapper.offsetY;\n }\n }\n}\n","import { isBlazor } from '@syncfusion/ej2-base';\nimport { Node } from '../objects/node';\nimport { Diagram } from '../diagram';\nimport { Selector } from '../objects/node';\nimport { Size } from '../primitives/size';\nimport { cloneObject } from './../utility/base-util';\nimport { getObjectType } from './../utility/diagram-util';\nimport { Rect } from '../primitives/rect';\nimport { getAdornerLayerSvg } from '../utility/dom-util';\nimport { swimLaneMeasureAndArrange, checkLaneSize, checkPhaseOffset, canLaneInterchange } from '../utility/swim-lane-util';\nimport { updatePhaseMaxWidth, updateHeaderMaxWidth, updateConnectorsProperties } from '../utility/swim-lane-util';\nimport { considerSwimLanePadding } from '../utility/swim-lane-util';\nimport { DiagramAction, DiagramConstraints, NodeConstraints } from '../enum/enum';\nimport { getDiagramElement } from '../utility/dom-util';\n/**\n * Interaction for Container\n */\n//#region canvas Container interaction\n/**\n * updateCanvasBounds method\\\n *\n * @returns { void } updateCanvasBounds method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value.\n * @private\n */\nexport function updateCanvasBounds(diagram, obj, position, isBoundsUpdate) {\n var container;\n var connectorList = [];\n var groupAction = false;\n if (checkParentAsContainer(diagram, obj, true)) {\n diagram.protectPropertyChange(true);\n container = diagram.nameTable[obj.parentId];\n var wrapper = container.wrapper;\n if (container && container.container.type === 'Canvas') {\n if ((isBoundsUpdate || (wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x &&\n (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y)))) {\n var parentWrapper = void 0;\n var y = wrapper.bounds.y;\n var x = wrapper.bounds.x;\n var parent_1 = diagram.nameTable[container.parentId] || container;\n var shape = parent_1.shape;\n if (shape.type === 'SwimLane') {\n groupAction = updateLaneBoundsAfterAddChild(container, parent_1, obj, diagram, true);\n }\n else {\n var parent_2 = diagram.nameTable[container.parentId] || container;\n var shape_1 = parent_2.shape;\n parentWrapper = parent_2.wrapper;\n if (wrapper.actualSize.width < wrapper.outerBounds.width &&\n (!(wrapper.bounds.x > wrapper.outerBounds.x))) {\n if (container.rowIndex !== undefined) {\n //const columnIndex:number = parent.columns.length - 1;\n parentWrapper.updateColumnWidth(container.columnIndex, wrapper.outerBounds.width, true);\n if (shape_1.orientation === 'Horizontal' && shape_1.phaseSize) {\n updatePhaseMaxWidth(parent_2, diagram, wrapper, container.columnIndex);\n }\n updateHeaderMaxWidth(diagram, parent_2);\n diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y);\n }\n else {\n diagram.scale(container, (1 + ((wrapper.outerBounds.width - wrapper.actualSize.width) / wrapper.actualSize.width)), 1, ((wrapper.outerBounds.x < wrapper.bounds.x) ? { x: 1, y: 0.5 } : { x: 0, y: 0.5 }));\n }\n }\n if (wrapper.actualSize.height < wrapper.outerBounds.height &&\n (!(wrapper.bounds.y > wrapper.outerBounds.y))) {\n if (container.rowIndex !== undefined) {\n parentWrapper.updateRowHeight(container.rowIndex, wrapper.outerBounds.height, true);\n diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y);\n }\n else {\n diagram.scale(container, 1, (1 + ((wrapper.outerBounds.height - wrapper.actualSize.height) / wrapper.actualSize.height)), ((wrapper.outerBounds.y < wrapper.bounds.y) ? { x: 0.5, y: 1 } : { x: 0.5, y: 0 }));\n }\n }\n }\n }\n diagram.select([obj]);\n updateConnectorsProperties(connectorList, diagram);\n }\n diagram.protectPropertyChange(false);\n }\n return groupAction;\n}\n/**\n * removeChildInContainer method\\\n *\n * @returns { void } removeChildInContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value.\n * @private\n */\nexport function removeChildInContainer(diagram, obj, position, isBoundsUpdate) {\n var container; //let connectorList: string[] = [];\n if (checkParentAsContainer(diagram, obj, true)) {\n var isProtectedOnChange = 'isProtectedOnChange';\n var propertyChangeValue = diagram[\"\" + isProtectedOnChange];\n diagram.protectPropertyChange(true);\n container = diagram.nameTable[obj.parentId];\n var wrapper = container.wrapper;\n if (container && container.container.type === 'Canvas') {\n if ((!isBoundsUpdate && (!(wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x &&\n (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y))))) {\n if (!(obj.constraints & NodeConstraints.AllowMovingOutsideLane)) {\n var undoObj = cloneObject(obj);\n diagram.clearSelection();\n removeChildrenInLane(diagram, obj);\n obj.parentId = '';\n //EJ2-65676 - Exception throws on updating node annotation after drag and drop from swimlane to diagram canvas.\n obj.parentObj = diagram;\n obj.propName = 'nodes';\n var entry = {\n type: 'ChildCollectionChanged', category: 'Internal',\n undoObject: undoObj, redoObject: cloneObject(obj)\n };\n diagram.addHistoryEntry(entry);\n if (diagram.commandHandler.isContainer) {\n diagram.commandHandler.isContainer = false;\n diagram.endGroupAction();\n }\n moveSwinLaneChild(obj, diagram);\n }\n }\n }\n diagram.protectPropertyChange(propertyChangeValue);\n }\n}\n/**\n * findBounds method\\\n *\n * @returns { NodeModel | ConnectorModel } findBounds method .\\\n * @param {NodeModel} obj - provide the diagram value.\n * @param {number} columnIndex - provide the isVertical value.\n * @param {boolean} isHeader - provide the isVertical value.\n * @private\n */\nexport function findBounds(obj, columnIndex, isHeader) {\n var rect = new Rect();\n var rows = (obj.shape.type === 'SwimLane') ?\n obj.wrapper.children[0].rows : obj.wrapper.rows;\n for (var i = ((isHeader) ? 1 : 0); i < rows.length; i++) {\n rect.uniteRect(rows[parseInt(i.toString(), 10)].cells[parseInt(columnIndex.toString(), 10)].bounds);\n }\n return rect;\n}\n/**\n * createHelper method\\\n *\n * @returns { NodeModel | ConnectorModel } createHelper method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @private\n */\nexport function createHelper(diagram, obj) {\n var newObj;\n var cloneObject = {};\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n cloneObject[\"\" + prop] = obj[\"\" + prop];\n }\n if (getObjectType(obj) === Node) {\n newObj = new Node(diagram, 'nodes', cloneObject, true);\n newObj.id = obj.id;\n diagram.initObject(newObj);\n }\n diagram.updateDiagramObject(newObj);\n return newObj;\n}\n/**\n * renderContainerHelper method\\\n *\n * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @private\n */\nexport function renderContainerHelper(diagram, obj) {\n diagram.enableServerDataBinding(false);\n var object;\n var container;\n var nodes;\n if (!isBlazor()) {\n if (diagram.selectedObject.helperObject) {\n nodes = diagram.selectedObject.helperObject;\n }\n else if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n if (obj instanceof Selector && obj.nodes.length + obj.connectors.length === 1) {\n object = (obj.nodes.length > 0) ? obj.nodes[0] : obj.connectors[0];\n container = diagram.selectedItems.wrapper.children[0];\n }\n else {\n object = obj;\n //Removed isBlazor code\n container = diagram.selectedItems.wrapper;\n }\n diagram.selectedObject.actualObject = object;\n if ((!diagram.currentSymbol) && (((object.isLane && canLaneInterchange(object, diagram) &&\n checkParentAsContainer(diagram, object))\n || ((!object.isLane) && checkParentAsContainer(diagram, object))) ||\n ((diagram.constraints & DiagramConstraints.LineRouting) && diagram.selectedItems.nodes.length > 0))) {\n var node = {\n id: 'helper',\n rotateAngle: container.rotateAngle,\n offsetX: container.offsetX, offsetY: container.offsetY,\n minWidth: container.minWidth, minHeight: container.minHeight,\n maxWidth: container.maxWidth, maxHeight: container.maxHeight,\n width: container.actualSize.width,\n height: container.actualSize.height,\n style: { strokeDashArray: '2 2', fill: 'transparent', strokeColor: '#7D7D7D', strokeWidth: 2 }\n };\n nodes = createHelper(diagram, node);\n diagram.selectedObject.helperObject = nodes;\n }\n }\n }\n diagram.enableServerDataBinding(true);\n return nodes;\n}\n/**\n * checkParentAsContainer method\\\n *\n * @returns { void } checkParentAsContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {boolean} isChild - provide the isChild value.\n * @private\n */\nexport function checkParentAsContainer(diagram, obj, isChild) {\n var parentNode = (isChild) ? diagram.nameTable[obj.parentId] :\n (diagram.nameTable[obj.parentId] || obj);\n if (parentNode && parentNode.container) {\n return true;\n }\n return false;\n}\n/**\n * checkChildNodeInContainer method\\\n *\n * @returns { void } checkChildNodeInContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} obj - provide the isVertical value.\n * @private\n */\nexport function checkChildNodeInContainer(diagram, obj) {\n var parentNode = diagram.nameTable[obj.parentId];\n obj.laneMargin = { left: obj.margin.left, right: obj.margin.right, top: obj.margin.top, bottom: obj.margin.bottom };\n if (parentNode.container.type === 'Canvas') {\n obj.margin.left = (obj.offsetX - parentNode.wrapper.bounds.x - (obj.width / 2));\n obj.margin.top = (obj.offsetY - parentNode.wrapper.bounds.y - (obj.height / 2));\n }\n diagram.nodePropertyChange(obj, {}, {\n width: obj.width, height: obj.height,\n offsetX: obj.offsetX, offsetY: obj.offsetY,\n margin: {\n left: obj.margin.left,\n right: obj.margin.right, top: obj.margin.top,\n bottom: obj.margin.bottom\n }, rotateAngle: obj.rotateAngle\n });\n if (!parentNode.isLane) {\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n }\n}\nfunction removeChildrenInLane(diagram, node) {\n if (node.parentId && node.parentId !== '') {\n var prevParentNode = diagram.nameTable[node.parentId];\n if (prevParentNode.isLane && prevParentNode.parentId) {\n var swimlane = diagram.nameTable[prevParentNode.parentId];\n var canvasId = (prevParentNode.id.slice(swimlane.id.length));\n var prevParentId = canvasId.substring(0, canvasId.length - 1);\n var lanes = swimlane.shape.lanes;\n var lane = void 0;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (prevParentId === lane.id) {\n for (var j = 0; j < lane.children.length; j++) {\n if (lane.children[parseInt(j.toString(), 10)].id === node.id) {\n lane.children.splice(j, 1);\n j--;\n }\n }\n }\n }\n }\n diagram.deleteChild(node);\n }\n}\n/**\n * addChildToContainer method\\\n *\n * @returns { void } addChildToContainer method .\\\n * @param {DiagramElement} diagram - provide the element value.\n * @param {boolean} parent - provide the isVertical value.\n * @param {PointModel} node - provide the node value.\n * @param {Diagram} isUndo - provide the isUndo value.\n * @param {boolean} historyAction - provide the historyAction value.\n * @private\n */\nexport function addChildToContainer(diagram, parent, node, isUndo, historyAction) {\n if (!diagram.currentSymbol) {\n diagram.protectPropertyChange(true);\n var swimlane = diagram.nameTable[parent.parentId];\n node = diagram.getObject(node.id) || node;\n var child = (diagram.nodes.indexOf(node) !== -1) ? node.id : node;\n if (parent.container.type === 'Canvas' && !historyAction) {\n var left = (node.wrapper.offsetX - node.wrapper.actualSize.width / 2) -\n (parent.wrapper.offsetX - parent.wrapper.actualSize.width / 2);\n var top_1 = (node.wrapper.offsetY - node.wrapper.actualSize.height / 2) -\n (parent.wrapper.offsetY - parent.wrapper.actualSize.height / 2);\n node.margin.left = left;\n node.margin.top = top_1;\n }\n else if (swimlane) {\n var swimLaneBounds = swimlane.wrapper.bounds;\n var parentBounds = parent.wrapper.bounds;\n if (swimlane.shape.orientation === 'Horizontal') {\n node.margin.left -= parentBounds.x - swimLaneBounds.x;\n }\n else {\n var laneHeaderId = parent.parentId + swimlane.shape.lanes[0].id + '_0_header';\n node.margin.top -= parentBounds.y - swimLaneBounds.y - diagram.nameTable[\"\" + laneHeaderId].wrapper.bounds.height;\n }\n }\n var container = diagram.nameTable[parent.id];\n if (!container.children) {\n container.children = [];\n }\n if (container.children.indexOf(node.id) === -1) {\n removeChildrenInLane(diagram, node);\n if (diagram.getObject(node.id)) {\n diagram.removeElements(node);\n }\n var undoObj = cloneObject(node);\n diagram.addChild(container, child);\n node = diagram.getObject(node.id);\n if (container.isLane && container.parentId) {\n swimlane = diagram.nameTable[container.parentId];\n var lanes = swimlane.shape.lanes;\n var canvasId = (container.id.slice(swimlane.id.length));\n var currentParentId = canvasId.substring(0, canvasId.length - 1);\n for (var i = 0; i < lanes.length; i++) {\n if (container.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) {\n // eslint-disable-next-line\n if (!(node.parentObj instanceof Diagram)) {\n // eslint-disable-next-line\n node.parentObj = lanes[parseInt(i.toString(), 10)];\n }\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-prototype-builtins\n if (!diagram.nameTable.hasOwnProperty(node.id)) {\n lanes[parseInt(i.toString(), 10)].children.push(node);\n }\n }\n }\n }\n diagram.updateDiagramObject(node);\n moveSwinLaneChild(node, diagram);\n if (!container.parentId) {\n diagram.updateDiagramObject(container);\n }\n else if (!isUndo) {\n updateLaneBoundsAfterAddChild(container, swimlane, node, diagram);\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'ChildCollectionChanged', category: 'Internal',\n undoObject: undoObj, redoObject: cloneObject(node), historyAction: historyAction ? 'AddNodeToLane' : undefined\n };\n diagram.addHistoryEntry(entry);\n }\n }\n diagram.protectPropertyChange(false);\n }\n}\nfunction moveSwinLaneChild(node, diagram) {\n var sourceNode = getDiagramElement(node.id + '_groupElement', diagram.element.id);\n var targetId = (node.parentId) ? node.parentId + '_groupElement' : diagram.element.id + '_diagramLayer';\n var targetNode = getDiagramElement(targetId, diagram.element.id);\n if (sourceNode && targetNode) {\n targetNode.appendChild(sourceNode);\n }\n}\nexport function updateLaneBoundsAfterAddChild(container, swimLane, node, diagram, isBoundsUpdate) {\n var undoObject = cloneObject(container);\n var isUpdateRow;\n var isGroupAction = false;\n var padding = swimLane.shape.padding;\n var containerBounds = container.wrapper.bounds;\n var containerOuterBounds = container.wrapper.outerBounds;\n var nodeBounds = node.wrapper.bounds;\n if (swimLane && swimLane.shape.type === 'SwimLane' &&\n (containerBounds.right < nodeBounds.right + padding ||\n containerBounds.bottom < nodeBounds.bottom + padding)) {\n var grid = swimLane.wrapper.children[0];\n var x = grid.bounds.x;\n var y = grid.bounds.y;\n var size = void 0;\n if (containerBounds.right < nodeBounds.right + padding &&\n containerOuterBounds.x <= containerBounds.x) {\n size = nodeBounds.right - containerBounds.right;\n isUpdateRow = false;\n grid.updateColumnWidth(container.columnIndex, containerBounds.width + size, true, padding);\n }\n if (containerBounds.bottom < nodeBounds.bottom + padding &&\n containerOuterBounds.y <= containerBounds.y) {\n size = nodeBounds.bottom - containerBounds.bottom;\n isUpdateRow = true;\n grid.updateRowHeight(container.rowIndex, containerBounds.height + size, true, padding);\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n if (isBoundsUpdate) {\n diagram.startGroupAction();\n isGroupAction = true;\n }\n if (isUpdateRow !== undefined) {\n var entry = {\n category: 'Internal',\n type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged',\n undoObject: undoObject, redoObject: cloneObject(container)\n };\n diagram.addHistoryEntry(entry);\n }\n }\n swimLane.width = swimLane.wrapper.width = grid.width;\n swimLane.height = swimLane.wrapper.height = grid.height;\n swimLaneMeasureAndArrange(swimLane);\n if (swimLane.shape.orientation === 'Horizontal') {\n updatePhaseMaxWidth(swimLane, diagram, container.wrapper, container.columnIndex);\n }\n updateHeaderMaxWidth(diagram, swimLane);\n diagram.drag(swimLane, x - grid.bounds.x, y - grid.bounds.y);\n checkPhaseOffset(swimLane, diagram);\n checkLaneSize(swimLane);\n }\n considerSwimLanePadding(diagram, node, padding);\n diagram.updateDiagramElementQuad();\n return isGroupAction;\n}\n//#endregion\n//# reginon stack panel interaction\n/**\n * renderStackHighlighter method\\\n *\n * @returns { void } renderStackHighlighter method .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {boolean} isVertical - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {boolean} isUml - provide the isUml value.\n * @param {boolean} isSwimlane - provide the isSwimlane value.\n * @private\n */\nexport function renderStackHighlighter(element, isVertical, position, diagram, isUml, isSwimlane) {\n var adornerSvg = getAdornerLayerSvg(diagram.element.id);\n diagram.diagramRenderer.renderStackHighlighter(element, adornerSvg, diagram.scroller.transform, isVertical, position, isUml, isSwimlane);\n}\n/**\n * moveChildInStack method\\\n *\n * @returns { void } moveChildInStack method .\\\n * @param {Node} sourceNode - provide the sourceNode value.\n * @param {Node} target - provide the target value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Actions} action - provide the action value.\n * @private\n */\nexport function moveChildInStack(sourceNode, target, diagram, action) {\n var obj = sourceNode;\n var parent = diagram.nameTable[obj.parentId];\n var sourceParent = diagram.nameTable[obj.parentId];\n if (target && sourceParent && sourceParent.container && sourceParent.container.type === 'Stack' &&\n target.container && target.container.type === 'Stack' && (sourceParent.id !== target.parentId)) {\n var value = sourceParent.wrapper.children.indexOf(obj.wrapper);\n if (value > -1) {\n diagram.nameTable[obj.id].parentId = target.id;\n sourceParent.wrapper.children.splice(value, 1);\n }\n }\n if (target && target.parentId && obj.parentId && action === 'Drag' &&\n sourceParent.container && sourceParent.container.type === 'Stack') {\n var targetIndex = parent.wrapper.children.indexOf(target.wrapper);\n var sourceIndex = parent.wrapper.children.indexOf(obj.wrapper);\n var undoElement = {\n targetIndex: targetIndex, target: target,\n sourceIndex: sourceIndex, source: sourceNode\n };\n parent.wrapper.children.splice(sourceIndex, 1);\n parent.wrapper.children.splice(targetIndex, 0, obj.wrapper);\n var redoElement = {\n targetIndex: sourceIndex, target: target,\n sourceIndex: targetIndex, source: sourceNode\n };\n var entry = {\n type: 'StackChildPositionChanged', redoObject: redoElement,\n undoObject: undoElement, category: 'Internal'\n };\n diagram.commandHandler.addHistoryEntry(entry);\n }\n}\n//#end region\n//# region Swimlane rendering\n//#end region\n","import { Connector } from '../objects/connector';\nimport { Node } from '../objects/node';\nimport { Rect } from '../primitives/rect';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getUserHandlePosition, checkPortRestriction, canShowControlPoints } from '../utility/diagram-util';\nimport { canMove, canDragSourceEnd, canDragTargetEnd, canContinuousDraw, canDragSegmentThumb, canSingleSelect, canMultiSelect } from '../utility/constraints-util';\nimport { canZoomPan, defaultTool, canDrawOnce, canDrag, canDraw, canSelect, canRotate } from '../utility/constraints-util';\nimport { canShowCorner, canResizeCorner } from '../utility/diagram-util';\nimport { Point } from '../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { PortConstraints, DiagramTools, PortVisibility, ThumbsConstraints } from '../enum/enum';\nimport { Selector } from '../objects/node';\nimport { PathPort, PointPort } from './../objects/port';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { checkParentAsContainer } from '../interaction/container-interaction';\n/**\n * Finds the action to be taken for the object under mouse\n *\n */\n/* tslint:disable */\n/**\n * findToolToActivate method\\\n *\n * @returns {Actions} findToolToActivate method .\\\n * @param {Object} obj - provide the options value.\n * @param {DiagramElement} wrapper - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {Diagram} diagram - provide the options value.\n * @param {ITouches[] | TouchList} touchStart - provide the options value.\n * @param {ITouches[] | TouchList} touchMove - provide the options value.\n * @param {NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - provide the options value.\n * @private\n */\nexport function findToolToActivate(obj, wrapper, position, diagram, touchStart, touchMove, target) {\n //let conn: Connector = diagram.selectedItems.connectors[0] as Connector;\n if (touchMove && touchMove.length > 1 && touchStart && touchStart.length > 1) {\n return 'PinchZoom';\n }\n if (diagram.currentSymbol) {\n return 'Drag';\n }\n var eventHandler = 'eventHandler';\n if (diagram[\"\" + eventHandler].action === 'PortDraw') {\n diagram.tool &= ~DiagramTools.DrawOnce;\n }\n //Drawing Tools\n if ((canDrawOnce(diagram) || canContinuousDraw(diagram)) && diagram.drawingObject) {\n return 'Draw';\n }\n if (hasSelection(diagram)) {\n var handle = diagram.selectedItems;\n if (handle.wrapper && canShowCorner(handle.constraints, 'UserHandle')) {\n for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) {\n var obj_1 = _a[_i];\n if (obj_1.visible) {\n var paddedBounds = getUserHandlePosition(handle, obj_1, diagram.scroller.transform);\n if (contains(position, paddedBounds, obj_1.size / (2 * diagram.scroller.transform.scale))) {\n return obj_1.name;\n }\n }\n }\n }\n }\n if (hasSelection(diagram)) {\n var element = (diagram.selectedItems.annotation) ?\n diagram.selectedItems.wrapper.children[0] : diagram.selectedItems.wrapper;\n var selectorBnds = element.bounds;\n var handle = diagram.selectedItems;\n var paddedBounds = new Rect(selectorBnds.x, selectorBnds.y, selectorBnds.width, selectorBnds.height);\n if (hasSingleConnection(diagram) && !diagram.selectedItems.annotation) {\n var conn = diagram.selectedItems.connectors[0];\n var sourcePaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom;\n var targetPaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom;\n if (canShowCorner(handle.constraints, 'ResizeAll')) {\n if ((canShowCorner(handle.constraints, 'ConnectorSourceThumb'))\n && canDragSourceEnd(conn) && contains(position, conn.sourcePoint, sourcePaddingValue)) {\n return 'ConnectorSourceEnd';\n }\n if ((canShowCorner(handle.constraints, 'ConnectorTargetThumb'))\n && canDragTargetEnd(conn) && contains(position, conn.targetPoint, targetPaddingValue)) {\n return 'ConnectorTargetEnd';\n }\n var action = checkForConnectorSegment(conn, handle, position, diagram);\n if (action !== 'OrthoThumb') {\n if ((canShowCorner(handle.constraints, 'ConnectorSourceThumb'))\n && canDragSourceEnd(conn)) {\n if (action) {\n return action;\n }\n }\n if ((canShowCorner(handle.constraints, 'ConnectorTargetThumb'))\n && canDragTargetEnd(conn)) {\n if (action) {\n return action;\n }\n }\n }\n else {\n return action;\n }\n }\n }\n else {\n var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom;\n var tenRotate = 10 / diagram.scroller.currentZoom;\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n //check for resizing tool\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - 30 / diagram.scroller.currentZoom\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n var labelSelection = diagram.selectedItems.annotation ? true : false;\n var labelRotate = (labelSelection && (canRotate(diagram.selectedItems.annotation))) ? true : false;\n if (canShowCorner(handle.constraints, 'Rotate') && contains(position, rotateThumb, tenRotate) &&\n (diagram.selectedItems.thumbsConstraints & ThumbsConstraints.Rotate)) {\n if (labelSelection && labelRotate) {\n return 'LabelRotate';\n }\n else if (!labelSelection) {\n return 'Rotate';\n }\n }\n paddedBounds.Inflate(ten);\n if (paddedBounds.containsPoint(position)) {\n var action = checkResizeHandles(diagram, element, position, matrix, x, y);\n if (action) {\n return action;\n }\n }\n }\n }\n //Panning\n if (canZoomPan(diagram) && !obj) {\n return 'Pan';\n }\n //826364 - Drawing Tool is not activated on hovering the ports while both ZoomPan and single select constraints enabled\n if ((target instanceof PointPort || target instanceof PathPort)\n && (!canZoomPan(diagram) || (canSingleSelect(diagram) || canMultiSelect(diagram)))) {\n var action = findPortToolToActivate(diagram, target);\n if (action !== 'None') {\n return action;\n }\n }\n if ((target instanceof ShapeAnnotation || target instanceof PathAnnotation) && (!canZoomPan(diagram) && (canSelect(target)))) {\n if (isSelected(diagram, target, undefined, wrapper) && canMove(target)) {\n return 'LabelDrag';\n }\n return 'LabelSelect';\n }\n if (obj !== null) {\n if (obj instanceof Node || obj instanceof Connector) {\n if (wrapper && wrapper.id) {\n var id = wrapper.id.split(obj.id)[1];\n if (id && id.match('^_icon')) {\n return 'LayoutAnimation';\n }\n }\n if (wrapper && wrapper.id) {\n var userid = void 0;\n for (var i = 0; i < obj.fixedUserHandles.length; i++) {\n userid = obj.fixedUserHandles[parseInt(i.toString(), 10)].id;\n if (wrapper.id && (wrapper.id.indexOf(userid) > -1)) {\n return 'FixedUserHandle';\n }\n }\n }\n if (wrapper instanceof TextElement && wrapper.hyperlink.link) {\n return 'Hyperlink';\n }\n if (canMove(obj) && isSelected(diagram, obj, false) && diagram.selectedItems.annotation === undefined) {\n if ((obj instanceof Connector && !(contains(position, obj.sourcePoint, obj.hitPadding) ||\n contains(position, obj.targetPoint, obj.hitPadding))) ||\n !(obj instanceof Connector)) {\n return 'Drag';\n }\n }\n else if (obj && canZoomPan(diagram) && !defaultTool(diagram)) {\n return 'Pan';\n }\n else if (diagram.selectedItems.nodes.length && diagram.selectedItems.nodes[0].isLane &&\n diagram.selectedItems.wrapper && diagram.selectedItems.wrapper.bounds.containsPoint(position)) {\n return 'Drag';\n }\n else {\n return 'Select';\n }\n }\n else {\n return 'Select';\n }\n }\n return 'Select';\n}\n/* tslint:enable */\nfunction checkResizeHandles(diagram, element, position, matrix, x, y) {\n var action;\n if ((diagram.selectedItems.nodes.length === 1 && diagram.selectedItems.connectors.length === 0)\n && diagram.selectedItems.nodes[0].container) {\n action = checkResizeHandleForContainer(diagram, element, position, x, y);\n }\n if (!action && (!diagram.selectedItems.nodes[0] || (!diagram.selectedItems.nodes[0].isPhase &&\n !diagram.selectedItems.nodes[0].isLane && diagram.selectedItems.nodes[0].shape.type !== 'SwimLane'))) {\n action = checkForResizeHandles(diagram, element, position, matrix, x, y);\n }\n if (action) {\n return action;\n }\n return null;\n}\n/**\n * checkForConnectorSegment method\\\n *\n * @returns {Actions} checkForConnectorSegment method .\\\n * @param {Connector} conn - provide the options value.\n * @param {SelectorModel} handle - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nfunction checkForConnectorSegment(conn, handle, position, diagram) {\n //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value\n //Added below code for drag the bezier control thumb while increasing handle size (Changing cursor from pointer to drag cursor)\n var targetPaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom;\n var sourcePaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom;\n if (conn.type === 'Bezier' && diagram.connectorEditingToolModule) {\n for (var i = 0; i < conn.segments.length; i++) {\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n // EJ2-67447 - Bezier segment control points are clickable after hiding it with controlPointsVisibility property.\n // The below condition is used to check the control points visibility of the connector.\n if (contains(position, !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, sourcePaddingValue) && ((i === 0 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Source')) || (i !== 0 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) {\n return 'BezierSourceThumb';\n }\n if (contains(position, !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, targetPaddingValue) && ((i === conn.segments.length - 1 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Target')) || (i !== conn.segments.length - 1 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) {\n return 'BezierTargetThumb';\n }\n }\n }\n if (diagram.connectorEditingToolModule && canDragSegmentThumb(conn)) {\n if (conn.type === 'Straight' || conn.type === 'Bezier') {\n for (var i = 0; i < conn.segments.length; i++) {\n //let segment: StraightSegmentModel | BezierSegmentModel;\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n if (contains(position, segment.point, 10)) {\n return 'SegmentEnd';\n }\n }\n }\n else {\n for (var i = 0; i < conn.segments.length; i++) {\n var segPoint = { x: 0, y: 0 };\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n if (segment.allowDrag) {\n for (var j = 0; j < segment.points.length - 1; j++) {\n var length_1 = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n if (length_1 >= 50) {\n segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2);\n segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2);\n //Bug 857928: Issue in connector selection while enabling segment thumb.\n //Instead of setting static value 30, we have set the hit padding of connector.\n var padding = conn.hitPadding ? conn.hitPadding : 10;\n if (contains(position, segPoint, padding)) {\n return 'OrthoThumb';\n }\n }\n }\n }\n }\n }\n }\n else if (canDragSegmentThumb(conn)) {\n console.warn('[WARNING] :: Module \"ConnectorEditing\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n return null;\n}\n/**\n * findPortToolToActivate method\\\n *\n * @returns {boolean} findPortToolToActivate method .\\\n * @param {Diagram} diagram - provide the options value.\n * @param {NodeModel | PointPortModel} target - provide the options value.\n * @param {ITouches[] | TouchList} touchStart - provide the options value.\n * @param {ITouches[] | TouchList} touchMove - provide the options value.\n * @private\n */\nexport function findPortToolToActivate(diagram, target, \n// eslint-disable-next-line\ntouchStart, touchMove) {\n if (canDrag(target, diagram) && (checkPortRestriction(target, PortVisibility.Hover)\n || (checkPortRestriction(target, PortVisibility.Visible)))) {\n if ((target.constraints & PortConstraints.Drag)) {\n return 'PortDrag';\n }\n }\n else if (canDraw(target, diagram) && (checkPortRestriction(target, PortVisibility.Hover)\n || (checkPortRestriction(target, PortVisibility.Visible)))) {\n if (target.constraints & PortConstraints.Draw) {\n diagram.drawingObject = {};\n var connector = { type: 'Orthogonal', sourcePortID: target.id };\n diagram.drawingObject = connector;\n diagram.tool |= DiagramTools.DrawOnce;\n diagram.currentDrawingObject = connector;\n return 'PortDraw';\n }\n }\n return 'None';\n}\n/**\n * Resize handle for container and also object.\n * @param {Diagram} diagram - provide the options value.\n * @param {DiagramElement} element - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {number} x - provide the options value.\n * @param {number} y - provide the options value.\n * @returns {Actions} Resize handle for container and also object.\\\n *\n * @private\n */\nfunction checkResizeHandleForContainer(diagram, element, position, x, y) {\n var ten = 10 / diagram.scroller.currentZoom;\n var selectedItems = diagram.selectedItems;\n var width = element.actualSize.width;\n var height = element.actualSize.height;\n // 910600: Update cursor type in swimlane based on the values\n var left = new Rect(x, y, element.style.strokeWidth, height);\n var right = new Rect(x + width, y, element.style.strokeWidth, height);\n var top = new Rect(x, y, width, element.style.strokeWidth);\n var bottom = new Rect(x, y + height, width, element.style.strokeWidth);\n var container = checkParentAsContainer(diagram, diagram.selectedItems.nodes[0], true) ?\n diagram.nameTable[diagram.selectedItems.nodes[0].parentId] : diagram.selectedItems.nodes[0];\n // 924599: Resize Cursor Not Enabled for Phase with Width Less Than 40\n if (canResizeCorner(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) &&\n right.containsPoint(position, ten)) {\n return 'ResizeEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) &&\n bottom.containsPoint(position, ten)) {\n return 'ResizeSouth';\n }\n if (container.container.type !== 'Grid') {\n if (canResizeCorner(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) &&\n left.containsPoint(position, ten)) {\n return 'ResizeWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) &&\n top.containsPoint(position, ten)) {\n return 'ResizeNorth';\n }\n }\n return null;\n}\nfunction checkForResizeHandles(diagram, element, position, matrix, x, y) {\n var forty = 40 / diagram.scroller.currentZoom;\n var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom;\n var selectedItems = diagram.selectedItems;\n var labelSelection = (selectedItems.annotation) ? true : false;\n if (element.actualSize.width >= forty && element.actualSize.height >= forty) {\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouthEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouthEast' : 'ResizeSouthEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouthWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouthWest' : 'ResizeSouthWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorthEast', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorthEast' : 'ResizeNorthEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorthWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorthWest' : 'ResizeNorthWest';\n }\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height / 2 }), ten)) {\n return (labelSelection) ? 'LabelResizeEast' : 'ResizeEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height / 2 }), ten)) {\n return (labelSelection) ? 'LabelResizeWest' : 'ResizeWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouth' : 'ResizeSouth';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorth' : 'ResizeNorth';\n }\n return null;\n}\n/**\n * contains method\\\n *\n * @returns {boolean} contains method .\\\n * @param {PointModel} mousePosition - provide the options value.\n * @param {PointModel} corner - provide the corner value.\n * @param {number} padding - provide the padding value.\n * @private\n */\nexport function contains(mousePosition, corner, padding) {\n if (mousePosition.x >= corner.x - padding && mousePosition.x <= corner.x + padding) {\n if (mousePosition.y >= corner.y - padding && mousePosition.y <= corner.y + padding) {\n return true;\n }\n }\n return false;\n}\n/**\n * hasSelection method\\\n *\n * @returns {boolean} hasSelection method .\\\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nexport function hasSelection(diagram) {\n if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n return true;\n }\n return false;\n}\n/**\n * hasSingleConnection method\\\n *\n * @returns {boolean} hasSingleConnection method .\\\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nexport function hasSingleConnection(diagram) {\n if (diagram.selectedItems.connectors.length === 1 && !diagram.selectedItems.nodes.length) {\n return true;\n }\n return false;\n}\n/**\n * isSelected method\\\n *\n * @returns {boolean} isSelected method .\\\n * @param {Diagram} diagram - provide the options value.\n * @param {Object} element - provide the options value.\n * @param {boolean} firstLevel - provide the options value.\n * @param {DiagramElement} wrapper - provide the options value.\n * @private\n */\nexport function isSelected(diagram, element, firstLevel, wrapper) {\n if (firstLevel === void 0) { firstLevel = true; }\n if (element instanceof Selector) {\n return true;\n }\n if (element instanceof Node) {\n while (element) {\n if (diagram.selectedItems.nodes.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) {\n return true;\n }\n if (!firstLevel) {\n element = diagram.nameTable[element.parentId];\n }\n else {\n break;\n }\n }\n }\n else if (element instanceof Connector) {\n if (diagram.selectedItems.connectors.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) {\n return true;\n }\n }\n else if (element instanceof ShapeAnnotation || element instanceof PathAnnotation) {\n if (diagram.selectedItems.annotation && diagram.selectedItems.wrapper.children[0].id === wrapper.id) {\n return true;\n }\n }\n return false;\n}\n/**\n * getCursor method\\\n *\n * @returns {boolean} getCursor method .\\\n * @param {Actions} cursor - provide the options value.\n * @param {number} angle - provide the options value.\n * @private\n */\nexport function getCursor(cursor, angle) {\n //to avoid angles less than 0 & angles greater than 360\n angle += 360;\n angle %= 360;\n if (cursor.indexOf('Resize') === -1) {\n return cursors[\"\" + cursor];\n }\n else {\n var dir = cursors[\"\" + cursor];\n if ((angle >= 0 && angle < 25) || (angle >= 160 && angle <= 205) || (angle >= 340 && angle <= 360)) {\n return dir;\n }\n else if ((angle >= 25 && angle <= 70) || (angle >= 205 && angle <= 250)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'ne-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'n-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'nw-resize';\n }\n else {\n return 'e-resize';\n }\n }\n else if ((angle >= 70 && angle <= 115) || (angle >= 250 && angle <= 295)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'e-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'ne-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'n-resize';\n }\n else {\n return 'nw-resize';\n }\n }\n else if ((angle >= 115 && angle <= 155) || (angle >= 295 && angle <= 340)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'nw-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'e-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'ne-resize';\n }\n }\n else {\n return 'n-resize';\n }\n }\n return cursors[\"\" + cursor];\n}\nvar cursors = {\n 'None': 'default',\n 'Rotate': 'crosshair',\n 'Select': 'default',\n 'Drag': 'move',\n 'ResizeWest': 'w-resize',\n 'ResizeEast': 'e-resize',\n 'ResizeSouth': 's-resize',\n 'ResizeNorth': 'n-resize',\n 'Draw': 'crosshair',\n 'PortDraw': 'crosshair',\n 'ResizeNorthEast': 'ne-resize',\n 'ResizeNorthWest': 'nw-resize',\n 'ResizeSouthEast': 'se-resize',\n 'ResizeSouthWest': 'sw-resize',\n 'ConnectorSourceEnd': 'move',\n 'ConnectorTargetEnd': 'move',\n 'BezierSourceThumb': 'move',\n 'BezierTargetThumb': 'move',\n 'OrthoThumb': 'move',\n 'SegmentEnd': 'move',\n 'Pan': 'grab',\n 'Hyperlink': 'pointer',\n 'PortDrag': 'pointer',\n 'LabelSelect': 'pointer',\n 'LabelDrag': 'move',\n 'LabelRotate': 'crosshair',\n 'LabelResizeWest': 'w-resize',\n 'LabelResizeEast': 'e-resize',\n 'LabelResizeSouth': 's-resize',\n 'LabelResizeNorth': 'n-resize',\n 'LabelResizeNorthEast': 'ne-resize',\n 'LabelResizeNorthWest': 'nw-resize',\n 'LabelResizeSouthEast': 'se-resize',\n 'LabelResizeSouthWest': 'sw-resize'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Node } from '../objects/node';\nimport { Connector, BezierSegment, StraightSegment } from '../objects/connector';\nimport { Point } from '../primitives/point';\nimport { BpmnSubEvent } from '../objects/node';\nimport { PointPort } from '../objects/port';\nimport { rotatePoint, cloneObject, randomId } from '../utility/base-util';\nimport { Rect } from '../primitives/rect';\nimport { getFreeHandPath, getPolygonPath } from '../utility/path-util';\nimport { canOutConnect, canInConnect, canAllowDrop, canPortInConnect, canPortOutConnect, canMove } from '../utility/constraints-util';\nimport { transformPointByMatrix, rotateMatrix, identityMatrix } from '../primitives/matrix';\nimport { NodeConstraints, DiagramEvent, PortConstraints } from './../enum/enum';\nimport { TextElement } from '../core/elements/text-element';\nimport { contains } from './actions';\nimport { Selector } from '../objects/node';\nimport { getInOutConnectPorts, cloneBlazorObject, checkPort } from '../utility/diagram-util';\nimport { initializeCSPTemplate, isBlazor } from '@syncfusion/ej2-base';\nimport { findAngle } from '../utility/connector';\n/**\n * Defines the interactive tools\n */\nvar ToolBase = /** @class */ (function () {\n /**\n * Initializes the tool\n *\n * @param {CommandHandler} command Command that is corresponding to the current action\n * @param protectChange\n */\n function ToolBase(command, protectChange) {\n if (protectChange === void 0) { protectChange = false; }\n /**\n * Command that is corresponding to the current action\n */\n this.commandHandler = null;\n // protected deepDiffer: DeepDiffMapper = new DeepDiffMapper();\n /**\n * Sets/Gets whether the interaction is being done\n */\n this.inAction = false;\n /**\n * Sets/Gets the protect change\n */\n this.isProtectChange = false;\n /**\n * Sets/Gets the current element that is under mouse\n */\n this.currentElement = null;\n /** @private */\n this.blocked = false;\n this.isTooltipVisible = false;\n /** @private */\n this.childTable = {};\n /**\n * Sets/Gets the previous object when mouse down\n */\n this.undoElement = { nodes: [], connectors: [] };\n this.checkProperty = true;\n this.undoParentElement = { nodes: [], connectors: [] };\n this.commandHandler = command;\n this.isProtectChange = protectChange;\n }\n ToolBase.prototype.startAction = function (currentElement) {\n this.currentElement = currentElement;\n this.inAction = true;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseDown = function (args) {\n this.currentElement = args.source;\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.isTooltipVisible = true;\n this.startAction(args.source);\n this.checkProperty = true;\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.mouseDownElement = args.source;\n };\n ToolBase.prototype.checkPropertyValue = function () {\n if (this.checkProperty) {\n this.commandHandler.startTransaction(this.isProtectChange);\n }\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseMove = function (args) {\n this.currentPosition = args.position;\n if (this.inAction) {\n this.commandHandler.startTransaction(this.isProtectChange);\n this.checkProperty = false;\n }\n //this.currentElement = currentElement;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.currentPosition = args.position;\n // this.currentElement = currentElement;\n this.isTooltipVisible = false;\n this.commandHandler.endTransaction(this.isProtectChange);\n this.endAction();\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.mouseDownElement = null;\n };\n ToolBase.prototype.endAction = function () {\n if (!this.isTooltipVisible) {\n this.commandHandler.closeTooltip();\n }\n this.commandHandler = null;\n this.currentElement = null;\n this.currentPosition = null;\n this.inAction = false;\n this.blocked = false;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseWheel = function (args) {\n this.currentPosition = args.position;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ToolBase.prototype.updateSize = function (shape, startPoint, endPoint, corner, initialBounds, angle) {\n shape = this.commandHandler.renderContainerHelper(shape) || shape;\n var horizontalsnap = { snapped: false, offset: 0, left: false, right: false };\n var verticalsnap = { snapped: false, offset: 0, top: false, bottom: false };\n var difx = this.currentPosition.x - this.startPosition.x;\n var dify = this.currentPosition.y - this.startPosition.y;\n var snapEnabled = (!(shape instanceof TextElement)) && this.commandHandler.snappingModule\n && this.commandHandler.snappingModule.canSnap();\n var snapLine = snapEnabled ? this.commandHandler.snappingModule.getLayer() : null;\n var rotateAngle = (shape instanceof TextElement) ? angle : shape.rotateAngle;\n var matrix;\n matrix = identityMatrix();\n rotateMatrix(matrix, -rotateAngle, 0, 0);\n var x = shape.offsetX;\n var y = shape.offsetY;\n var w = shape.width;\n var h = shape.height;\n x = x - w * shape.pivot.x;\n y = y - h * shape.pivot.y;\n var deltaWidth = 0;\n var deltaHeight = 0;\n var diff;\n var width = (shape instanceof TextElement) ? shape.actualSize.width : shape.width;\n var height = (shape instanceof TextElement) ? shape.actualSize.height : shape.height;\n switch (corner) {\n case 'ResizeWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n deltaHeight = 1;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = 0;\n deltaWidth = (initialBounds.width - difx) / width;\n break;\n case 'ResizeEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = 0;\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = 1;\n break;\n case 'ResizeNorth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n case 'ResizeNorthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeNorthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n deltaHeight = (initialBounds.height + dify) / height;\n deltaWidth = (initialBounds.width + difx) / width;\n break;\n case 'ResizeSouthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : dify;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : difx;\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n }\n return { width: deltaWidth, height: deltaHeight };\n };\n ToolBase.prototype.getPivot = function (corner) {\n switch (corner) {\n case 'ResizeWest':\n return { x: 1, y: 0.5 };\n case 'ResizeEast':\n return { x: 0, y: 0.5 };\n case 'ResizeNorth':\n return { x: 0.5, y: 1 };\n case 'ResizeSouth':\n return { x: 0.5, y: 0 };\n case 'ResizeNorthEast':\n return { x: 0, y: 1 };\n case 'ResizeNorthWest':\n return { x: 1, y: 1 };\n case 'ResizeSouthEast':\n return { x: 0, y: 0 };\n case 'ResizeSouthWest':\n return { x: 1, y: 0 };\n }\n return { x: 0.5, y: 0.5 };\n };\n //method to get node shape name\n ToolBase.prototype.getShapeType = function () {\n var shape;\n // eslint-disable-next-line no-constant-condition\n if (this.commandHandler.diagram.drawingObject.shape.type === 'Image' ||\n this.commandHandler.diagram.drawingObject.shape.type === 'HTML' ||\n this.commandHandler.diagram.drawingObject.shape.type === 'Native' ||\n this.commandHandler.diagram.drawingObject.shape.type === 'Path') {\n shape = this.commandHandler.diagram.drawingObject.shape.type;\n }\n else {\n shape = this.commandHandler.diagram.drawingObject.shape.shape;\n }\n return shape;\n };\n //EJ2-52203-Method to trigger ElementDraw Event when we draw node or connector with the drawing Tool\n ToolBase.prototype.triggerElementDrawEvent = function (source, state, objectType, elementType, isMouseDownAction) {\n var arg = {\n source: source, state: state, objectType: objectType, cancel: false, elementType: elementType\n };\n this.commandHandler.triggerEvent(DiagramEvent.elementDraw, arg);\n if (isMouseDownAction && arg.cancel) {\n {\n this.commandHandler.diagram.resetTool();\n this.inAction = false;\n }\n }\n };\n return ToolBase;\n}());\nexport { ToolBase };\n/**\n * Helps to select the objects\n */\nvar SelectTool = /** @class */ (function (_super) {\n __extends(SelectTool, _super);\n function SelectTool(commandHandler, protectChange, action) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.action = action;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n //draw selected region\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n if (this.mouseDownElement && !canMove(this.mouseDownElement)) {\n this.commandHandler.clearObjectSelection(this.mouseDownElement);\n }\n else {\n this.commandHandler.clearSelectedItems();\n this.commandHandler.drawSelectionRectangle(rect.x, rect.y, rect.width, rect.height);\n }\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n //rubber band selection\n if (!this.commandHandler.isUserHandle(this.currentPosition)) {\n if (Point.equals(this.currentPosition, this.prevPosition) === false && this.inAction) {\n var region = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.commandHandler.doRubberBandSelection(region);\n }\n else {\n //single selection\n var arrayNodes = this.commandHandler.getSelectedObject();\n if (!this.commandHandler.hasSelection() || !args.info || !args.info.ctrlKey) {\n this.commandHandler.clearSelection(args.source === null ? true : false);\n if (this.action === 'LabelSelect') {\n this.commandHandler.labelSelect(args.source, args.sourceWrapper);\n }\n else if (args.source) {\n this.commandHandler.selectObjects([args.source], false, arrayNodes);\n }\n }\n else {\n //handling multiple selection\n if (args && args.source) {\n if (!this.commandHandler.isSelected(args.source)) {\n this.commandHandler.selectObjects([args.source], true);\n }\n else {\n if (args.clickCount === 1) {\n this.commandHandler.unSelect(args.source);\n // this.commandHandler.updateBlazorSelector();\n }\n }\n }\n }\n }\n }\n this.inAction = false;\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return SelectTool;\n}(ToolBase));\nexport { SelectTool };\nvar FixedUserHandleTool = /** @class */ (function (_super) {\n __extends(FixedUserHandleTool, _super);\n function FixedUserHandleTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param args\n * @private\n */\n FixedUserHandleTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.inAction = false;\n var val = args.source;\n var fixedUserHandle;\n var iconId = args.sourceWrapper.id;\n for (var i = 0; i < val.fixedUserHandles.length; i++) {\n if (iconId.indexOf(val.fixedUserHandles[parseInt(i.toString(), 10)].id) > -1) {\n fixedUserHandle = val.fixedUserHandles[parseInt(i.toString(), 10)];\n }\n }\n var arg = {\n fixedUserHandle: fixedUserHandle,\n element: args.source\n };\n var trigger = DiagramEvent.fixedUserHandleClick;\n this.commandHandler.triggerEvent(trigger, arg);\n _super.prototype.mouseUp.call(this, args);\n };\n return FixedUserHandleTool;\n}(ToolBase));\nexport { FixedUserHandleTool };\n/**\n * Helps to edit the selected connectors\n */\nvar ConnectTool = /** @class */ (function (_super) {\n __extends(ConnectTool, _super);\n function ConnectTool(commandHandler, endPoint) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.isConnected = false;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseDown = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var oldValue, connectors, i, segment, segmentpoint1, segmentpoint2;\n return __generator(this, function (_a) {\n this.inAction = true;\n this.undoElement = undefined;\n if (!(this instanceof ConnectorDrawingTool)) {\n this.undoElement = cloneObject(args.source);\n }\n _super.prototype.mouseDown.call(this, args);\n if (args.source && args.source.connectors) {\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectors = args.source.connectors[0];\n this.oldConnector = cloneObject(connectors);\n }\n // Sets the selected segment\n if (this.endPoint === 'BezierSourceThumb' || this.endPoint === 'BezierTargetThumb') {\n for (i = 0; i < connectors.segments.length; i++) {\n segment = connectors.segments[parseInt(i.toString(), 10)];\n segmentpoint1 = !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1;\n segmentpoint2 = !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2;\n //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value\n //Added below code for drag the bezier control thumb while increasing handle size(For hitPadding)\n if (this.currentElement.handleSize !== connectors.hitPadding) {\n connectors.hitPadding = this.currentElement.handleSize;\n }\n if (contains(this.currentPosition, segmentpoint1, connectors.hitPadding) ||\n contains(this.currentPosition, segmentpoint2, connectors.hitPadding)) {\n this.selectedSegment = segment;\n }\n }\n }\n this.currentPosition = args.position;\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var connector, nodeEndId, portEndId, arg, oldValues, connector, targetPortName, targetNodeNode, target, arg, trigger, obj, entry, obj, entry, connector;\n return __generator(this, function (_a) {\n if (!isBlazor() && this.isConnected && args.source.connectors) {\n connector = args.source.connectors[0];\n nodeEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n portEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n arg = {\n connector: cloneBlazorObject(connector),\n oldValue: { nodeId: this.oldConnector[\"\" + nodeEndId], portId: this.oldConnector[\"\" + portEndId] },\n newValue: { nodeId: connector[\"\" + nodeEndId], portId: connector[\"\" + portEndId] }, cancel: false,\n state: 'Changed', connectorEnd: this.endPoint\n };\n //875655- ConnectionChange Event not triggered in Changed state for port change in same node\n if (connector[\"\" + nodeEndId] !== this.oldConnector[\"\" + nodeEndId] || connector[\"\" + portEndId] !== this.oldConnector[\"\" + portEndId]) {\n this.commandHandler.triggerEvent(DiagramEvent.connectionChange, arg);\n this.isConnected = false;\n }\n }\n this.checkPropertyValue();\n this.commandHandler.updateSelector();\n this.commandHandler.removeSnap();\n if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&\n args.source.connectors.length &&\n ((!Point.equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint) ||\n (args.source.connectors[0].sourceID !== this.undoElement.connectors[0].sourceID)))) ||\n (this.endPoint === 'ConnectorTargetEnd' &&\n ((!Point.equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint))\n || (args.source.connectors[0].targetID !== this.undoElement.connectors[0].targetID))))) {\n oldValues = void 0;\n connector = void 0;\n if (args.source && args.source.connectors) {\n oldValues = { x: this.prevPosition.x, y: this.prevPosition.y };\n connector = args.source.connectors[0];\n }\n targetPortName = void 0;\n targetNodeNode = void 0;\n if (args.target) {\n target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort) ? targetPortName = target.id : targetNodeNode = target.id;\n }\n arg = {\n connector: connector, state: 'Completed', targetNode: targetNodeNode,\n oldValue: oldValues, newValue: oldValues, cancel: false, targetPort: targetPortName\n };\n trigger = this.endPoint === 'ConnectorSourceEnd' ? DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n this.commandHandler.removeTerminalSegment(connector, true);\n if (this.undoElement && args.source) {\n obj = void 0;\n obj = cloneObject(args.source);\n entry = {\n type: 'ConnectionChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement),\n category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n else if (!(this instanceof ConnectorDrawingTool) &&\n (this.endPoint === 'BezierTargetThumb' || this.endPoint === 'BezierSourceThumb')) {\n if (this.undoElement && args.source) {\n obj = cloneObject(args.source);\n entry = {\n type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n // this.commandHandler.updateBlazorSelector();\n this.canCancel = undefined;\n this.tempArgs = undefined;\n //(EJ2-66201) - Exception occurs when mouse-hover on ports in node\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n if (connector.isBezierEditing) {\n connector.isBezierEditing = false;\n }\n }\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n /* tslint:disable */\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var tempArgs;\n if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&\n Point.equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint)) ||\n (this.endPoint === 'ConnectorTargetEnd' &&\n Point.equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint)))) {\n var oldValue = void 0;\n var connectors = void 0;\n if (args.source && args.source.connectors) {\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectors = args.source.connectors[0];\n }\n var targetPort = void 0;\n var targetNode = void 0;\n if (args.target) {\n targetNode = args.target.id;\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort || target instanceof BpmnSubEvent) ? targetPort = target.id : targetNode = target.id;\n }\n var arg = {\n connector: connectors, state: 'Start', targetNode: targetNode,\n oldValue: oldValue, newValue: oldValue, cancel: false, targetPort: targetPort\n };\n var trigger = this.endPoint === 'ConnectorSourceEnd' ?\n DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n }\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var newValue = void 0;\n var oldValue = void 0;\n var inPort = void 0;\n var outPort = void 0;\n this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition);\n var connector = void 0;\n if (args.source && args.source.connectors) {\n newValue = { x: this.currentPosition.x, y: this.currentPosition.y };\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connector = args.source.connectors[0];\n }\n var targetPortId = void 0;\n var targetNodeId = void 0;\n if (args.target) {\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort) ? targetPortId = target.id : targetNodeId = target.id;\n }\n var arg = {\n connector: connector, state: 'Progress', targetNode: targetNodeId,\n oldValue: oldValue, newValue: newValue, cancel: false, targetPort: targetPortId\n };\n if (!(this instanceof ConnectorDrawingTool)) {\n var trigger = this.endPoint === 'ConnectorSourceEnd' ?\n DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n }\n if (args.target) {\n inPort = getInOutConnectPorts(args.target, true);\n outPort = getInOutConnectPorts(args.target, false);\n }\n if (!arg.cancel && this.inAction && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n // EJ2-65331 - The condition checks whether the cancel argument is true or false\n if (!arg.cancel) {\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, args.source, this.currentPosition, this.selectedSegment, args.target, targetPortId);\n this.commandHandler.updateSelector();\n }\n if (args.target && ((this.endPoint === 'ConnectorSourceEnd' && (canOutConnect(args.target) || canPortOutConnect(outPort)))\n || (this.endPoint === 'ConnectorTargetEnd' && (canInConnect(args.target) || canPortInConnect(inPort))))) {\n if (this.commandHandler.canDisconnect(this.endPoint, args, targetPortId, targetNodeId)) {\n tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel);\n this.isConnected = true;\n }\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n if (target instanceof Node) {\n if ((canInConnect(target) && this.endPoint === 'ConnectorTargetEnd')\n || (canOutConnect(target) && this.endPoint === 'ConnectorSourceEnd')) {\n tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel);\n this.isConnected = true;\n }\n }\n else {\n var isConnect = this.checkConnect(target);\n if (isConnect) {\n this.isConnected = true;\n tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel);\n }\n }\n }\n else if (this.endPoint.indexOf('Bezier') === -1) {\n this.isConnected = true;\n tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel);\n this.commandHandler.updateSelector();\n }\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_1 = this.getTooltipContent(args.position);\n var contentTemp = function () {\n return content_1;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'ConnectTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n if (tempArgs) {\n this.tempArgs = tempArgs;\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ConnectTool.prototype.getTooltipContent = function (position) {\n return 'X:' + Math.round(position.x) + ' ' + 'Y:' + Math.round(position.y);\n };\n ConnectTool.prototype.checkConnect = function (target) {\n if (canPortInConnect(target) && this.endPoint === 'ConnectorTargetEnd') {\n return true;\n }\n else if (canPortOutConnect(target) && this.endPoint === 'ConnectorSourceEnd') {\n return true;\n }\n else if (!(target.constraints & PortConstraints.None) && !canPortInConnect(target) && !canPortOutConnect(target)\n && (target.constraints === undefined || (target.constraints & (PortConstraints.Default & ~(PortConstraints.InConnect | PortConstraints.OutConnect))) > 0)) {\n return true;\n }\n return false;\n };\n /** @private */\n ConnectTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return ConnectTool;\n}(ToolBase));\nexport { ConnectTool };\n/**\n * Drags the selected objects\n */\nvar MoveTool = /** @class */ (function (_super) {\n __extends(MoveTool, _super);\n function MoveTool(commandHandler, objType) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.currentTarget = null;\n _this.isStartAction = false;\n _this.canCancel = false;\n _this.canTrigger = false;\n _this.objectType = objType;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseDown = function (args) {\n if (args.source instanceof Node || args.source instanceof Connector) {\n var arrayNodes = this.commandHandler.getSelectedObject();\n this.commandHandler.selectObjects([args.source], args.info && args.info.ctrlKey, arrayNodes);\n var selectedObject = { nodes: [], connectors: [] };\n if (args.source instanceof Node) {\n selectedObject.nodes.push(cloneObject(args.source));\n }\n else {\n selectedObject.connectors.push(cloneObject(args.source));\n }\n this.undoElement = cloneObject(selectedObject);\n }\n else {\n this.undoElement = cloneObject(args.source);\n }\n this.undoParentElement = this.commandHandler.getSubProcess(args.source);\n if (this.objectType === 'Port') {\n this.portId = args.sourceWrapper.id;\n }\n this.commandHandler.insertBlazorConnector(args.source);\n _super.prototype.mouseDown.call(this, args);\n this.initialOffset = { x: 0, y: 0 };\n };\n /* tslint:disable */\n /**\n * @param args\n * @param isPreventHistory\n * @param args\n * @param isPreventHistory\n * @private\n */\n MoveTool.prototype.mouseUp = function (args, isPreventHistory) {\n return __awaiter(this, void 0, void 0, function () {\n var oldValues, newValues, obj, historyAdded, object, redoObject, wrapper, arg, canAddHistory, entry, entry_1, snappedPoint, canSplit, i, i, arg, nodes, isEndGroup, temp, i, i, entry;\n return __generator(this, function (_a) {\n this.checkPropertyValue();\n historyAdded = false;\n redoObject = { nodes: [], connectors: [] };\n if (this.objectType !== 'Port') {\n if (args.source instanceof Node || args.source instanceof Connector) {\n if (args.source instanceof Node) {\n redoObject.nodes.push(cloneObject(args.source));\n }\n else {\n redoObject.connectors.push(cloneObject(args.source));\n }\n obj = cloneObject(redoObject);\n wrapper = args.source.wrapper;\n obj.offsetX = wrapper.offsetX;\n obj.offsetY = wrapper.offsetY;\n }\n else {\n obj = cloneObject(args.source);\n }\n object = this.commandHandler.renderContainerHelper(args.source) || args.source || this.commandHandler.renderContainerHelper(args.source);\n if ((object.id === 'helper') || (object.id !== 'helper')) {\n //EJ2-71257 - Position change event completed state is not fired on selecting the node first and then dragging the node while changing node width at progress state.\n // If object is instanceof selector then checked the length of selected objects is 1 or not.\n if ((((object instanceof Selector && ((Math.round(object.width) === Math.round(this.undoElement.width) && Math.round(object.height) === Math.round(this.undoElement.height)) || (object.selectedObjects && object.selectedObjects.length === 1))) || !(object instanceof Selector)) && (object.offsetX !== this.undoElement.offsetX || object.offsetY !== this.undoElement.offsetY ||\n object.sourcePoint !== this.undoElement.sourcePoint\n // eslint-disable-next-line max-len\n || object.targetPoint !== this.undoElement.targetPoint)) || this.isSelectionHasConnector(object)) {\n if (args.source) {\n newValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n }\n arg = {\n source: args.source, state: 'Completed', oldValue: this.intialValue, newValue: newValues,\n target: this.currentTarget, targetPosition: this.currentPosition, allowDrop: true, cancel: false\n };\n arg = {\n source: cloneBlazorObject(args.source), state: 'Completed',\n oldValue: cloneBlazorObject(this.intialValue), newValue: cloneBlazorObject(newValues),\n target: cloneBlazorObject(this.currentTarget), targetPosition: cloneBlazorObject(this.currentPosition),\n allowDrop: arg.allowDrop, cancel: arg.cancel\n };\n canAddHistory = true;\n //EJ2-69852): Position Change event trigger for clicking second time in swimlane header issue\n if (object.id === 'helper') {\n if (this.canTrigger) {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n canAddHistory = true;\n }\n else {\n canAddHistory = false;\n }\n }\n else {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n }\n if (!isPreventHistory && canAddHistory) {\n this.commandHandler.startGroupAction();\n historyAdded = true;\n entry = {\n type: 'PositionChanged',\n redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n if (obj.nodes[0] && obj.nodes[0].processId) {\n entry_1 = {\n type: 'SizeChanged', category: 'Internal',\n undoObject: this.undoParentElement, redoObject: this.commandHandler.getSubProcess(args.source)\n };\n this.commandHandler.addHistoryEntry(entry_1);\n }\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n }\n snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, 0, 0);\n this.commandHandler.removeSnap();\n this.commandHandler.removeHighlighter();\n if (args.source && this.currentTarget && canAllowDrop(this.currentTarget) &&\n this.commandHandler.isDroppable(args.source, this.currentTarget)) {\n canSplit = true;\n this.commandHandler.drop(this.currentElement, this.currentTarget, this.currentPosition);\n if (this.currentTarget && this.currentTarget instanceof Connector) {\n if (this.commandHandler.diagram.enableConnectorSplit === true) {\n //EJ2-894577- Restricting the connector splitting if any one edge is already connected to the node\n if (this.currentElement && this.currentElement instanceof Node) {\n if (this.currentElement.children !== undefined) {\n for (i = 0; i < this.currentElement.children.length; i++) {\n if (this.currentElement.children[parseInt(i.toString(), 10)] === this.currentTarget.sourceID ||\n this.currentElement.children[parseInt(i.toString(), 10)] === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n }\n else {\n if (this.currentElement.id === this.currentTarget.sourceID || this.currentElement.id === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n if (canSplit) {\n this.commandHandler.connectorSplit(this.currentElement, this.currentTarget);\n }\n }\n else if (this.currentElement instanceof Selector && !(this.commandHandler.PreventConnectorSplit)) {\n if (this.currentElement.nodes[0].children) {\n for (i = 0; i < this.currentElement.nodes[0].children.length; i++) {\n if (this.currentElement.nodes[0].children[parseInt(i.toString(), 10)] === this.currentTarget.sourceID ||\n this.currentElement.nodes[0].children[parseInt(i.toString(), 10)] === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n }\n else {\n if ((this.currentElement.nodes[0]).id === this.currentTarget.sourceID ||\n (this.currentElement.nodes[0]).id === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n if (canSplit) {\n this.commandHandler.connectorSplit(this.currentElement.nodes[0], this.currentTarget);\n this.commandHandler.PreventConnectorSplit = false;\n }\n }\n }\n }\n arg = {\n element: args.source, target: this.currentTarget, position: this.currentPosition, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.drop, arg);\n if (!arg.cancel && args.source && this.commandHandler.isParentAsContainer(this.currentTarget) && !this.commandHandler.isTargetSubProcess(this.currentTarget)) {\n nodes = (args.source instanceof Selector) ? args.source.nodes : [args.source];\n isEndGroup = false;\n temp = void 0;\n for (i = 0; i < nodes.length; i++) {\n if (nodes[0].parentId === nodes[parseInt(i.toString(), 10)].parentId) {\n temp = true;\n }\n else {\n temp = false;\n break;\n }\n }\n // 902192: Diagram node resized wrongly while dragging and drop on multiple selected nodes in another lane Issue Fix\n if (this.commandHandler.diagram.selectedItems.nodes.length !== nodes.length) {\n nodes = this.commandHandler.diagram.selectedItems.nodes;\n }\n for (i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].container && temp) {\n isEndGroup = true;\n this.commandHandler.updateLaneChildrenZindex(nodes[parseInt(i.toString(), 10)], this.currentTarget);\n this.commandHandler.dropChildToContainer(this.currentTarget, nodes[parseInt(i.toString(), 10)]);\n this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]);\n }\n }\n if (historyAdded && this.commandHandler.isContainer && isEndGroup) {\n this.commandHandler.endGroupAction();\n }\n }\n }\n if (args.source && this.currentTarget) {\n this.commandHandler.dropAnnotation(args.source, this.currentTarget);\n }\n this.commandHandler.updateSelector();\n if (historyAdded && !this.commandHandler.isContainer) {\n this.commandHandler.endGroupAction();\n }\n }\n else {\n redoObject.nodes.push(cloneObject(args.source));\n args.portId = this.portId;\n obj = cloneObject(redoObject);\n entry = {\n type: 'PortPositionChanged', objectId: this.portId,\n redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n // this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n //EJ2-59309-While drag the connected node the connector endPointChange event does not get trigger\n MoveTool.prototype.connectorEndPointChangeEvent = function (arg, snappedPoint) {\n var selectedElement = arg.source;\n if (selectedElement instanceof Selector && selectedElement.nodes.length > 0) {\n for (var i = 0; i < selectedElement.nodes.length; i++) {\n var node = selectedElement.nodes[parseInt(i.toString(), 10)];\n if (node && node.inEdges.length > 0) {\n for (var j = 0; j < node.inEdges.length; j++) {\n var connector = this.commandHandler.diagram.getObject(node.inEdges[parseInt(j.toString(), 10)]);\n this.triggerEndPointEvent(connector, arg, snappedPoint, 'targetPointChange');\n }\n }\n if (node && node.outEdges.length > 0) {\n for (var j = 0; j < node.outEdges.length; j++) {\n var connector = this.commandHandler.diagram.getObject(node.outEdges[parseInt(j.toString(), 10)]);\n this.triggerEndPointEvent(connector, arg, snappedPoint, 'sourcePointChange');\n }\n }\n }\n }\n };\n MoveTool.prototype.triggerEndPointEvent = function (connector, arg, snappedPoint, eventName) {\n var args = {\n connector: connector, state: arg.state, targetNode: connector.targetID, targetPort: connector.targetPortID,\n sourceNode: connector.sourceID, sourcePort: connector.sourcePortID, oldValue: { x: connector.targetPoint.x, y: connector.targetPoint.y },\n newValue: { x: connector.targetPoint.x + (snappedPoint ? snappedPoint.x : 0), y: connector.targetPoint.y + (snappedPoint ? snappedPoint.y : 0) }, cancel: arg.cancel\n };\n this.commandHandler.triggerEvent((eventName === 'targetPointChange') ? DiagramEvent.targetPointChange : DiagramEvent.sourcePointChange, args);\n };\n MoveTool.prototype.isSelectionHasConnector = function (args) {\n if (args.nodes && args.connectors && args.nodes.length > 0 && args.connectors.length > 0 &&\n (args.width !== this.undoElement.width || args.height !== this.undoElement.height)) {\n return true;\n }\n return false;\n };\n // private getBlazorPositionChangeEventArgs(args: IDraggingEventArgs | IBlazorDraggingEventArgs, target: IElement): any {\n // args = {\n // source: cloneBlazorObject(args.source), state: args.state, oldValue: args.oldValue, newValue: args.newValue,\n // target: getObjectType(target) === Connector ? { connector: cloneBlazorObject(target) }\n // : { node: cloneBlazorObject(target) },\n // targetPosition: this.currentPosition, allowDrop: true, cancel: false\n // };\n // return args as IBlazorDraggingEventArgs;\n // }\n /* tslint:disable */\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var isSame = false;\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) ||\n args.source;\n if (object instanceof Node || object instanceof Connector) {\n if (object instanceof Node) {\n if (object.offsetX === this.undoElement.nodes[0].offsetX &&\n object.offsetY === this.undoElement.nodes[0].offsetY) {\n isSame = true;\n }\n }\n else {\n if (Point.equals(object.sourcePoint, this.undoElement.connectors[0].sourcePoint) &&\n Point.equals(object.targetPoint, this.undoElement.connectors[0].targetPoint)) {\n isSame = true;\n }\n }\n }\n else {\n if (object.wrapper.offsetX === this.undoElement.wrapper.offsetX &&\n object.wrapper.offsetY === this.undoElement.wrapper.offsetY) {\n isSame = true;\n }\n }\n var oldValues;\n if (object) {\n oldValues = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n }\n var arg = {\n source: object, state: 'Start', oldValue: oldValues, newValue: oldValues,\n target: args.target, targetPosition: args.position, allowDrop: true, cancel: false\n };\n arg = {\n source: cloneBlazorObject(object), state: 'Start', oldValue: cloneBlazorObject(oldValues),\n newValue: cloneBlazorObject(oldValues),\n target: args.target, targetPosition: args.position, allowDrop: arg.allowDrop, cancel: arg.cancel\n };\n //(EJ2-277624)-In the positionChange event, during the completed state, old and new values remain identical.\n if (!this.isStartAction) {\n this.intialValue = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n }\n if (isSame && !isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n this.isStartAction = true;\n }\n this.currentPosition = args.position;\n if (this.objectType !== 'Port') {\n var x = this.currentPosition.x - this.prevPosition.x;\n var y = this.currentPosition.y - this.prevPosition.y;\n var diffX = this.initialOffset.x + (this.currentPosition.x - this.prevPosition.x);\n var diffY = this.initialOffset.y + (this.currentPosition.y - this.prevPosition.y);\n this.commandHandler.dragOverElement(args, this.currentPosition);\n this.commandHandler.disConnect(args.source);\n this.commandHandler.removeSnap();\n var oldValues_1;\n var newValues = void 0;\n var snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, diffX, diffY);\n this.initialOffset.x = diffX - snappedPoint.x;\n this.initialOffset.y = diffY - snappedPoint.y;\n if (object) {\n oldValues_1 = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n newValues = {\n offsetX: object.wrapper.offsetX + snappedPoint.x,\n offsetY: object.wrapper.offsetY + snappedPoint.y\n };\n }\n if (this.currentTarget && args.target !== this.currentTarget) {\n this.commandHandler.removeChildFromBPmn(args.source, args.target, this.currentTarget);\n }\n this.currentTarget = args.target;\n var arg_1 = {\n source: object, state: 'Progress', oldValue: oldValues_1, newValue: newValues,\n target: args.target, targetPosition: args.position, allowDrop: true, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg_1);\n this.canTrigger = true;\n this.connectorEndPointChangeEvent(arg_1, snappedPoint);\n if (!arg_1.cancel && !this.canCancel) {\n this.blocked = !this.commandHandler.dragSelectedObjects(snappedPoint.x, snappedPoint.y);\n var blocked = !(this.commandHandler.mouseOver(this.currentElement, this.currentTarget, this.currentPosition));\n this.blocked = this.blocked || blocked;\n }\n this.commandHandler.removeStackHighlighter();\n this.commandHandler.renderStackHighlighter(args);\n if (this.currentTarget && (args.source !== this.currentTarget) &&\n this.commandHandler.isDroppable(args.source, this.currentTarget) && args.source.id !== 'helper') {\n var object_1 = (args.source instanceof Selector) ? args.source.nodes[0] : args.source;\n if ((!this.commandHandler.isParentAsContainer(object_1, true))\n && (object_1.shape.type !== 'SwimLane' && !object_1.shape.isPhase)) {\n if (this.currentTarget.isLane) {\n this.commandHandler.renderStackHighlighter(args, this.currentTarget);\n }\n else {\n this.commandHandler.drawHighlighter(this.currentTarget);\n }\n }\n }\n else {\n this.commandHandler.removeHighlighter();\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_2 = this.getTooltipContent(args.source);\n var contentTemp = function () {\n return content_2;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'MoveTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n }\n else {\n var matrix = identityMatrix();\n var node = args.source;\n rotateMatrix(matrix, -node.rotateAngle || -node.wrapper.rotateAngle, node.offsetX || node.wrapper.offsetX, node.offsetY || node.wrapper.offsetY);\n var prevPosition = transformPointByMatrix(matrix, { x: this.prevPosition.x, y: this.prevPosition.y });\n var position = transformPointByMatrix(matrix, { x: args.position.x, y: args.position.y });\n this.commandHandler.portDrag(args.source, args.sourceWrapper, position.x - prevPosition.x, position.y - prevPosition.y);\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n MoveTool.prototype.getTooltipContent = function (node) {\n return 'X:' + Math.round(node.wrapper.bounds.x) + ' ' + 'Y:' + Math.round(node.wrapper.bounds.y);\n };\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /** @private */\n MoveTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.currentTarget = null;\n this.prevPosition = null;\n };\n return MoveTool;\n}(ToolBase));\nexport { MoveTool };\n/**\n * Rotates the selected objects\n */\nvar RotateTool = /** @class */ (function (_super) {\n __extends(RotateTool, _super);\n function RotateTool(commandHandler) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.rotateStart = false;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseDown = function (args) {\n this.undoElement = cloneObject(args.source);\n if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) {\n var objects = [];\n var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], objects);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n this.childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var object, oldValue, arg, obj, entry;\n return __generator(this, function (_a) {\n this.checkPropertyValue();\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if (this.undoElement.rotateAngle !== object.wrapper.rotateAngle) {\n oldValue = { rotateAngle: object.wrapper.rotateAngle };\n arg = {\n source: args.source, state: 'Completed', oldValue: oldValue,\n newValue: oldValue, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg);\n obj = void 0;\n obj = cloneObject(args.source);\n entry = {\n type: 'RotationChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal',\n childTable: this.childTable\n };\n this.commandHandler.addHistoryEntry(entry);\n this.commandHandler.updateSelector();\n this.rotateStart = false;\n }\n // this.commandHandler.updateBlazorSelector();\n this.canCancel = undefined;\n this.tempArgs = undefined;\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if (this.undoElement.rotateAngle === object.wrapper.rotateAngle && !this.rotateStart) {\n var oldValue_1 = { rotateAngle: object.wrapper.rotateAngle };\n var arg_2 = {\n source: args.source, state: 'Start', oldValue: oldValue_1, newValue: oldValue_1, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg_2);\n this.rotateStart = true;\n }\n this.currentPosition = args.position;\n var refPoint = { x: object.wrapper.offsetX, y: object.wrapper.offsetY };\n var angle = Point.findAngle(refPoint, this.currentPosition) + 90;\n var snapAngle = this.commandHandler.snapAngle(angle);\n angle = snapAngle !== 0 ? snapAngle : angle;\n angle = (angle + 360) % 360;\n var oldValue = { rotateAngle: object.wrapper.rotateAngle };\n var newValue = { rotateAngle: angle };\n var arg = {\n source: args.source, state: 'Progress', oldValue: oldValue,\n newValue: newValue, cancel: false\n };\n var arg1 = {\n source: cloneBlazorObject(args.source), state: 'Progress', oldValue: cloneBlazorObject(oldValue),\n newValue: cloneBlazorObject(newValue), cancel: arg.cancel\n };\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg1);\n if (!arg1.cancel) {\n this.blocked = !(this.commandHandler.rotateSelectedItems(angle - object.wrapper.rotateAngle));\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_3 = this.getTooltipContent(args.source);\n var contentTemp = function () {\n return content_3;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'RotateTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n return !this.blocked;\n };\n RotateTool.prototype.getTooltipContent = function (node) {\n return Math.round((node.rotateAngle % 360)).toString() + '\\xB0';\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /** @private */\n RotateTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return RotateTool;\n}(ToolBase));\nexport { RotateTool };\n/**\n * Scales the selected objects\n */\nvar ResizeTool = /** @class */ (function (_super) {\n __extends(ResizeTool, _super);\n function ResizeTool(commandHandler, corner) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.resizeStart = false;\n /** @private */\n _this.initialBounds = new Rect();\n _this.canCancel = false;\n _this.corner = corner;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseDown = function (args) {\n var oldValues;\n this.undoElement = cloneObject(args.source);\n this.undoParentElement = this.commandHandler.getSubProcess(args.source);\n _super.prototype.mouseDown.call(this, args);\n if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) {\n var elements = [];\n var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], elements);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n this.childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n this.commandHandler.checkSelection(args.source, this.corner);\n _super.prototype.mouseDown.call(this, args);\n this.initialBounds.x = args.source.wrapper.offsetX;\n this.initialBounds.y = args.source.wrapper.offsetY;\n this.initialBounds.height = args.source.wrapper.actualSize.height;\n this.initialBounds.width = args.source.wrapper.actualSize.width;\n };\n /**\n * @param args\n * @param isPreventHistory\n * @param args\n * @param isPreventHistory\n * @private\n */\n ResizeTool.prototype.mouseUp = function (args, isPreventHistory) {\n return __awaiter(this, void 0, void 0, function () {\n var object, deltaValues, oldValue, arg, obj, entry, entry_2;\n return __generator(this, function (_a) {\n this.checkPropertyValue();\n this.commandHandler.removeSnap();\n this.commandHandler.updateSelector();\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if ((this.undoElement.offsetX !== object.wrapper.offsetX || this.undoElement.offsetY !== object.wrapper.offsetY ||\n this.undoElement.width !== object.wrapper.bounds.width || this.undoElement.height !== object.wrapper.bounds.height)) {\n deltaValues = this.updateSize(args.source, this.currentPosition, this.prevPosition, this.corner, this.initialBounds);\n this.blocked = this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.currentPosition, this.prevPosition, object);\n oldValue = {\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n };\n arg = {\n source: cloneBlazorObject(args.source), state: 'Completed',\n oldValue: this.startValues, newValue: oldValue, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg);\n obj = cloneObject(args.source);\n entry = {\n type: 'SizeChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal',\n childTable: this.childTable\n };\n this.resizeStart = false;\n if (!isPreventHistory) {\n this.commandHandler.startGroupAction();\n this.commandHandler.addHistoryEntry(entry);\n if (obj.nodes[0] && obj.nodes[0].processId) {\n entry_2 = {\n type: 'SizeChanged', redoObject: this.commandHandler.getSubProcess(args.source),\n undoObject: this.undoParentElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry_2);\n }\n this.commandHandler.endGroupAction();\n }\n }\n // this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/, !this.blocked];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if (this.undoElement.offsetX === object.wrapper.offsetX && this.undoElement.offsetY === object.wrapper.offsetY && !this.resizeStart) {\n var oldValue = {\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n };\n //EJ2-866122 - Need to enhance the sizeChange Event\n this.startValues = oldValue;\n var arg = {\n source: args.source, state: 'Start', oldValue: oldValue, newValue: this.currentElement, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg);\n this.resizeStart = true;\n }\n this.currentPosition = args.position;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n var changes = { x: x, y: y };\n changes = rotatePoint(-this.currentElement.wrapper.rotateAngle, undefined, undefined, changes);\n var sx = (this.currentElement.wrapper.actualSize.width + changes.x) / this.currentElement.wrapper.actualSize.width;\n var sy = (this.currentElement.wrapper.actualSize.height + changes.y) / this.currentElement.wrapper.actualSize.height;\n changes = this.getChanges(changes);\n this.commandHandler.removeSnap();\n var deltaValues = this.updateSize(args.source, this.startPosition, this.currentPosition, this.corner, this.initialBounds);\n this.blocked = !(this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.startPosition, this.currentPosition, object));\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_4 = this.getTooltipContent(args.source);\n //Task 834121: Content-Security-Policy support for diagram\n var contentTemp = function () {\n return content_4;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'ResizeTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ResizeTool.prototype.getTooltipContent = function (node) {\n return 'W:' + Math.round(node.wrapper.bounds.width) + ' ' + 'H:' + Math.round(node.wrapper.bounds.height);\n };\n ResizeTool.prototype.getChanges = function (change) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: change.x, y: 0 };\n case 'ResizeSouthEast':\n return change;\n case 'ResizeSouth':\n return { x: 0, y: change.y };\n case 'ResizeNorth':\n return { x: 0, y: -change.y };\n case 'ResizeNorthEast':\n return { x: change.x, y: -change.y };\n case 'ResizeNorthWest':\n return { x: -change.x, y: -change.y };\n case 'ResizeWest':\n return { x: -change.x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -change.x, y: change.y };\n }\n return change;\n };\n /**\n * Updates the size with delta width and delta height using scaling.\n */\n /**\n * Aspect ratio used to resize the width or height based on resizing the height or width\n *\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n */\n ResizeTool.prototype.scaleObjects = function (deltaWidth, deltaHeight, corner, startPoint, endPoint, source) {\n if (source instanceof Selector && source.nodes.length === 1 && source.nodes[0].constraints & NodeConstraints.AspectRatio) {\n if (corner === 'ResizeWest' || corner === 'ResizeEast' || corner === 'ResizeNorth' || corner === 'ResizeSouth') {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n else {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n var oldValue = {\n width: source.width, height: source.height\n };\n this.blocked = this.commandHandler.scaleSelectedItems(deltaWidth, deltaHeight, this.getPivot(this.corner));\n var newValue = {\n width: source.width, height: source.height\n };\n var arg;\n arg = { source: source, state: 'Progress', oldValue: oldValue, newValue: newValue, cancel: false };\n var arg1;\n arg1 = {\n source: cloneBlazorObject(source), state: 'Progress',\n oldValue: cloneBlazorObject(oldValue), newValue: cloneBlazorObject(newValue), cancel: arg.cancel\n };\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg1);\n if (arg1.cancel || this.canCancel) {\n this.commandHandler.scaleSelectedItems(1 / deltaWidth, 1 / deltaHeight, this.getPivot(this.corner));\n }\n return this.blocked;\n };\n return ResizeTool;\n}(ToolBase));\nexport { ResizeTool };\n/**\n * Draws a node that is defined by the user\n */\nvar NodeDrawingTool = /** @class */ (function (_super) {\n __extends(NodeDrawingTool, _super);\n function NodeDrawingTool(commandHandler, sourceObject) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setFocus();\n this.triggerElementDrawEvent(args.source, 'Start', 'Node', this.getShapeType(), true);\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var checkBoundaryConstraints;\n var node = {\n offsetX: this.currentPosition.x, width: 3, height: 3,\n offsetY: this.currentPosition.y\n };\n if (!this.drawingObject) {\n this.drawingObject = this.commandHandler.drawObject(node);\n }\n this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Node', this.getShapeType(), false);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect);\n if (checkBoundaryConstraints) {\n this.commandHandler.updateNodeDimension(this.drawingObject, rect);\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var checkBoundaryConstraints;\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect);\n if (this.drawingObject && this.drawingObject instanceof Node) {\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Node', this.getShapeType(), false);\n this.drawingObject = null;\n }\n // this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n NodeDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return NodeDrawingTool;\n}(ToolBase));\nexport { NodeDrawingTool };\n/**\n * Draws a connector that is defined by the user\n */\nvar ConnectorDrawingTool = /** @class */ (function (_super) {\n __extends(ConnectorDrawingTool, _super);\n function ConnectorDrawingTool(commandHandler, endPoint, sourceObject) {\n var _this = _super.call(this, commandHandler, endPoint) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseDown = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setFocus();\n this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true);\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseMove = function (args) {\n this.commandHandler.enableServerDataBinding(false);\n if (this.inAction) {\n var connector = {\n sourcePoint: this.currentPosition, targetPoint: this.currentPosition\n };\n if (!this.drawingObject) {\n this.drawingObject = this.commandHandler.drawObject(connector);\n }\n args.source = this.drawingObject;\n this.triggerElementDrawEvent(args.source, 'Progress', 'Connector', this.drawingObject.type, false);\n //Bug 874781: Port Draw Connection is not proper with group node.\n if (args.actualObject && (args.actualObject.parentId || args.actualObject.children) && this.drawingObject.sourceID === '') {\n this.setTarget(args);\n }\n if (((args.target && args.target instanceof Node) || (args.actualObject && args.sourceWrapper && checkPort(args.actualObject, args.sourceWrapper)))\n && (this.endPoint !== 'ConnectorTargetEnd' || (canInConnect(args.target)))) {\n this.commandHandler.connect(this.endPoint, args);\n }\n this.endPoint = 'ConnectorTargetEnd';\n }\n if (!this.inAction) {\n this.commandHandler.updateSelector();\n //EJ2-899368 : Highlighters for Connector Element Draw with userhandle updated wrongly\n if (args.source && !args.source.isLane && args.sourceWrapper) {\n this.commandHandler.renderHighlighter(args, true);\n }\n }\n _super.prototype.mouseMove.call(this, args);\n this.commandHandler.enableServerDataBinding(true);\n return !this.blocked;\n };\n // Sets the target while drawing connector from the group node port or its children port.\n ConnectorDrawingTool.prototype.setTarget = function (args) {\n if (args.target) {\n if (!args.sourceWrapper.id.includes(args.target.id)) {\n if (args.target.parentId && args.sourceWrapper.id.includes(args.target.parentId)) {\n args.target = this.commandHandler.diagram.nameTable[args.target.parentId];\n }\n }\n }\n else {\n if (!args.sourceWrapper.id.includes(args.actualObject.id)) {\n if (args.actualObject.parentId && args.sourceWrapper.id.includes(args.actualObject.parentId)) {\n args.target = this.commandHandler.diagram.nameTable[args.actualObject.parentId];\n }\n }\n else {\n args.target = args.actualObject;\n }\n }\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.commandHandler.enableServerDataBinding(false);\n this.checkPropertyValue();\n if (this.drawingObject && this.drawingObject instanceof Connector) {\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false);\n this.drawingObject = null;\n }\n // this.commandHandler.updateBlazorSelector();\n this.inAction = false;\n this.commandHandler.enableServerDataBinding(true);\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n /** @private */\n ConnectorDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return ConnectorDrawingTool;\n}(ConnectTool));\nexport { ConnectorDrawingTool };\nvar TextDrawingTool = /** @class */ (function (_super) {\n __extends(TextDrawingTool, _super);\n function TextDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.commandHandler.clearSelection();\n var node = {\n shape: { type: 'Text' },\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y\n };\n if (!args.source) {\n this.drawingNode = this.commandHandler.drawObject(node);\n }\n };\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (!this.drawingNode) {\n var node = {\n shape: { type: 'Text' }, offsetX: this.currentPosition.x, width: 30, height: 30,\n // EJ2-42640-Text size is different if Text Node is created over another diagram commited by sivakumar sekar\n // commanded style property and added it after the object is drawn\n // style: { strokeDashArray: '2 2', fill: 'transparent' },\n offsetY: this.currentPosition.y\n };\n this.drawingNode = this.commandHandler.drawObject(node);\n this.drawingNode.style.strokeDashArray = '2 2';\n this.drawingNode.style.fill = 'transparent';\n }\n else {\n this.drawingNode.style.strokeColor = 'black';\n this.drawingNode.style.strokeDashArray = '2 2';\n this.drawingNode.style.fill = 'transparent';\n }\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.commandHandler.updateNodeDimension(this.drawingNode, rect);\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n if (this.drawingNode) {\n this.drawingNode.style.strokeColor = 'none';\n this.drawingNode.style.fill = 'none';\n }\n else {\n this.drawingNode = args.source;\n }\n if (this.drawingNode && (this.drawingNode instanceof Node)) {\n this.commandHandler.addText(this.drawingNode, this.currentPosition);\n }\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n TextDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return TextDrawingTool;\n}(ToolBase));\nexport { TextDrawingTool };\n/**\n * Pans the diagram control on drag\n */\nvar ZoomPanTool = /** @class */ (function (_super) {\n __extends(ZoomPanTool, _super);\n function ZoomPanTool(commandHandler, zoom) {\n var _this = _super.call(this, commandHandler) || this;\n _this.zooming = zoom;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setBlazorDiagramProps(true);\n };\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n if (!this.zooming && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var difX = this.currentPosition.x - this.prevPosition.x;\n var difY = this.currentPosition.y - this.prevPosition.y;\n this.commandHandler.scroll(difX, difY, this.currentPosition);\n }\n else if (args.moveTouches && args.moveTouches.length && args.moveTouches.length >= 2) {\n var startTouch0 = args.startTouches[0];\n var startTouch1 = args.startTouches[1];\n var moveTouch0 = args.moveTouches[0];\n var moveTouch1 = args.moveTouches[1];\n var scale = this.getDistance(moveTouch0, moveTouch1) / this.getDistance(startTouch0, startTouch1);\n var focusPoint = args.position;\n this.commandHandler.zoom(scale, 0, 0, focusPoint);\n this.updateTouch(startTouch0, moveTouch0);\n this.updateTouch(startTouch1, moveTouch1);\n }\n }\n this.commandHandler.dataBinding();\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseUp = function (args) {\n this.commandHandler.setBlazorDiagramProps(false);\n this.checkPropertyValue();\n this.commandHandler.updatePanState(false);\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n ZoomPanTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n ZoomPanTool.prototype.getDistance = function (touch1, touch2) {\n var x = touch2.pageX - touch1.pageX;\n var y = touch2.pageY - touch1.pageY;\n return Math.sqrt((x * x) + (y * y));\n };\n ZoomPanTool.prototype.updateTouch = function (startTouch, moveTouch) {\n startTouch.pageX = moveTouch.pageX;\n startTouch.pageY = moveTouch.pageY;\n };\n return ZoomPanTool;\n}(ToolBase));\nexport { ZoomPanTool };\n/**\n * Animate the layout during expand and collapse\n */\nvar ExpandTool = /** @class */ (function (_super) {\n __extends(ExpandTool, _super);\n function ExpandTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n ExpandTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.commandHandler.initExpand(args);\n _super.prototype.mouseUp.call(this, args);\n };\n return ExpandTool;\n}(ToolBase));\nexport { ExpandTool };\n/**\n * Opens the annotation hypeLink at mouse up\n */\nvar LabelTool = /** @class */ (function (_super) {\n __extends(LabelTool, _super);\n function LabelTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var tab = '_blank';\n var windowOption = '';\n var windowHeight = window.innerHeight;\n var windowWidth = window.innerWidth;\n var screenTop = window.screenTop;\n var screenLeft = window.screenLeft;\n if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'CurrentTab') {\n tab = '_self';\n }\n else if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'NewWindow') {\n windowOption = 'height=' + windowHeight + ',width=' + windowWidth + ',top=' + screenTop + ',left=' + screenLeft;\n }\n var win = window.open(args.sourceWrapper.hyperlink.link, tab, windowOption);\n win.focus();\n _super.prototype.mouseUp.call(this, args);\n };\n return LabelTool;\n}(ToolBase));\nexport { LabelTool };\n/**\n * Draws a Polygon shape node dynamically using polygon Tool\n */\nvar PolygonDrawingTool = /** @class */ (function (_super) {\n __extends(PolygonDrawingTool, _super);\n function PolygonDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var node = {\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y,\n width: 5, height: 5,\n // 916722: Apply custom style to polygon shape by removing the default style during polygon drawing.\n shape: {\n type: 'Basic',\n shape: 'Polygon',\n points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }]\n }\n };\n // 920152: elementDraw event not triggered for Polygon Drawing tool\n this.triggerElementDrawEvent(args.source, 'Start', 'Node', this.getShapeType(), true);\n this.drawingObject = this.commandHandler.drawObject(node);\n }\n else {\n var pt = void 0;\n var obj = this.drawingObject.shape;\n pt = obj.points[obj.points.length - 1];\n pt = { x: pt.x, y: pt.y };\n this.drawingObject.shape.points.push(pt);\n }\n };\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject.shape;\n obj.points[obj.points.length - 1].x = this.currentPosition.x;\n obj.points[obj.points.length - 1].y = this.currentPosition.y;\n this.drawingObject.wrapper.children[0].data = getPolygonPath(this.drawingObject.shape.points);\n // 920152: elementDraw event not triggered for Polygon Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Node', this.getShapeType(), false);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var region = Rect.toBounds(this.drawingObject.shape.points);\n this.commandHandler.updateNodeDimension(this.drawingObject, region);\n }\n }\n return true;\n };\n /**\n * @param args\n * @param dblClickArgs\n * @param args\n * @param dblClickArgs\n * @private\n */\n PolygonDrawingTool.prototype.mouseUp = function (args, dblClickArgs) {\n this.checkPropertyValue();\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.inAction = false;\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n // 920152: elementDraw event not triggered for Polygon Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Node', this.getShapeType(), false);\n }\n this.endAction();\n };\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /** @private */\n PolygonDrawingTool.prototype.endAction = function () {\n this.inAction = false;\n this.drawingObject = null;\n };\n return PolygonDrawingTool;\n}(ToolBase));\nexport { PolygonDrawingTool };\n/**\n * Draws a PolyLine Connector dynamically using PolyLine Drawing Tool\n */\nvar PolyLineDrawingTool = /** @class */ (function (_super) {\n __extends(PolyLineDrawingTool, _super);\n function PolyLineDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject;\n obj.targetPoint = this.currentPosition;\n // 920152: elementDraw event not triggered for Polyline Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Connector', this.drawingObject.type, false);\n this.commandHandler.updateConnectorPoints(obj);\n }\n return true;\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n var connector = {\n id: 'Connector',\n type: 'Straight',\n sourcePoint: this.currentPosition,\n targetPoint: this.currentPosition\n };\n // 920152: elementDraw event not triggered for Polyline Drawing tool\n this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true);\n if (this.inAction) {\n this.drawingObject = this.commandHandler.drawObject(connector);\n }\n }\n else {\n var drawObject = this.drawingObject;\n var segment = void 0;\n segment = new StraightSegment(drawObject, 'segments', { type: 'Straight' }, true);\n segment.point = this.currentPosition;\n drawObject.segments[drawObject.segments.length - 1] = segment;\n }\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n if (this.drawingObject) {\n var drawObject = this.drawingObject;\n drawObject.segments[drawObject.segments.length - 1].point = { x: 0, y: 0 };\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n // 920152: elementDraw event not triggered for Polyline Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false);\n }\n }\n this.endAction();\n };\n /** @private */\n PolyLineDrawingTool.prototype.endAction = function () {\n this.drawingObject = null;\n this.inAction = false;\n };\n return PolyLineDrawingTool;\n}(ToolBase));\nexport { PolyLineDrawingTool };\nvar LabelDragTool = /** @class */ (function (_super) {\n __extends(LabelDragTool, _super);\n function LabelDragTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = cloneObject(args.source);\n this.annotationId = args.sourceWrapper.id;\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var difx = this.currentPosition.x - this.prevPosition.x;\n var dify = this.currentPosition.y - this.prevPosition.y;\n var node = args.source;\n if (node instanceof Node) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, -node.rotateAngle, 0, 0);\n var diff = transformPointByMatrix(matrix, { x: difx, y: dify });\n difx = diff.x;\n dify = diff.y;\n }\n if (this.inAction) {\n this.commandHandler.labelDrag(args.source, args.sourceWrapper, difx, dify);\n this.commandHandler.updateSelector();\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var redoValue = args.source;\n this.inAction = false;\n var entryValue = {\n type: 'AnnotationPropertyChanged',\n objectId: this.annotationId, undoObject: cloneObject(this.undoElement),\n category: 'Internal', redoObject: cloneObject(redoValue)\n };\n this.commandHandler.addHistoryEntry(entryValue);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n return LabelDragTool;\n}(ToolBase));\nexport { LabelDragTool };\nvar LabelResizeTool = /** @class */ (function (_super) {\n __extends(LabelResizeTool, _super);\n function LabelResizeTool(commandHandler, corner) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.corner = corner;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n var object = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.annotationId = args.source.wrapper.children[0].id;\n this.undoElement = cloneObject(object);\n var annotation = args.source.wrapper.children[0];\n this.initialBounds = {\n x: annotation.offsetX,\n y: annotation.offsetY,\n width: annotation.actualSize.width,\n height: annotation.actualSize.height\n };\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.resizeObject(args);\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var redoObject = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.inAction = false;\n var entry = {\n type: 'AnnotationPropertyChanged', objectId: this.annotationId,\n redoObject: cloneObject(redoObject), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.resizeObject = function (args) {\n var object;\n object = (args.source.nodes.length) ? args.source.nodes[0] : args.source.connectors[0];\n var textElement = args.source.wrapper.children[0];\n var deltaWidth;\n var deltaHeight;\n var center = { x: textElement.offsetX, y: textElement.offsetY };\n var rotateAngle = textElement.rotateAngle;\n rotateAngle += (object instanceof Node) ? object.rotateAngle : 0;\n rotateAngle = (rotateAngle + 360) % 360;\n var trans = identityMatrix();\n rotateMatrix(trans, rotateAngle, center.x, center.y);\n var corner = this.corner.slice(5);\n var pivot = this.updateSize(textElement, this.startPosition, this.currentPosition, corner, this.initialBounds, rotateAngle);\n var x = textElement.offsetX - textElement.actualSize.width * textElement.pivot.x;\n var y = textElement.offsetY - textElement.actualSize.height * textElement.pivot.y;\n var pivotPoint = this.getPivot(corner);\n pivotPoint = { x: x + textElement.actualSize.width * pivotPoint.x, y: y + textElement.actualSize.height * pivotPoint.y };\n var point = transformPointByMatrix(trans, pivotPoint);\n pivot.x = point.x;\n pivot.y = point.y;\n deltaWidth = pivot.width;\n deltaHeight = pivot.height;\n deltaWidth = (deltaWidth < 0) ? 1 : deltaWidth;\n deltaHeight = (deltaHeight < 0) ? 1 : deltaHeight;\n this.commandHandler.labelResize(object, args.source.annotation, deltaWidth, deltaHeight, pivot, args.source);\n this.commandHandler.updateSelector();\n };\n return LabelResizeTool;\n}(ToolBase));\nexport { LabelResizeTool };\nvar LabelRotateTool = /** @class */ (function (_super) {\n __extends(LabelRotateTool, _super);\n function LabelRotateTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.annotationId = args.source.wrapper.children[0].id;\n var object = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.undoElement = cloneObject(object);\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (args.source) {\n if (this.inAction) {\n var object = args.source.nodes[0] ? args.source.nodes[0] :\n args.source.connectors[0];\n var annotation = void 0;\n annotation = (args.source.annotation);\n this.commandHandler.labelRotate(object, annotation, this.currentPosition, args.source);\n this.commandHandler.updateSelector();\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.inAction = false;\n var redoEntry = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n var entryObject = {\n type: 'AnnotationPropertyChanged', objectId: this.annotationId,\n redoObject: cloneObject(redoEntry),\n undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entryObject);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n return LabelRotateTool;\n}(ToolBase));\nexport { LabelRotateTool };\n/**\n * EJ2-33302 - Freehand drawing support in diagram control.\n */\nvar FreeHandTool = /** @class */ (function (_super) {\n __extends(FreeHandTool, _super);\n function FreeHandTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * mouseMove - Collect the points using current mouse position and convert it into pathData.\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject.shape;\n var pt = this.currentPosition;\n obj.points.push(pt);\n this.drawingObject.wrapper.children[0].data = getFreeHandPath(this.drawingObject.shape.points);\n obj.data = getFreeHandPath(obj.points);\n // 920152: elementDraw event not triggered for Freehand Drawing tool\n this.triggerElementDrawEvent(args.source, 'Progress', 'Connector', this.drawingObject.type, false);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var region = Rect.toBounds(this.drawingObject.shape.points);\n this.commandHandler.updateNodeDimension(this.drawingObject, region);\n }\n }\n return true;\n };\n /**\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var node = {\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y,\n width: 5, height: 5,\n style: { strokeColor: 'black', strokeWidth: 1, fill: 'transparent' },\n shape: {\n type: 'Path',\n points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }]\n }\n };\n // 920152: elementDraw event not triggered for Freehand Drawing tool\n this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true);\n this.drawingObject = this.commandHandler.drawObject(node);\n };\n /**\n * mouseUp - Remove the drawn object. Reduce and smoothen the collected points and create\n * a bezier connector using the smoothened points.\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var tolerance = 10;\n var smoothValue = 0.5;\n if (this.inAction) {\n this.inAction = false;\n var obj = this.drawingObject.shape;\n var points = obj.points;\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n var prevId = this.drawingObject.id;\n var prevObj = this.commandHandler.diagram.nameTable[\"\" + prevId];\n this.commandHandler.diagram.remove(prevObj);\n points = this.pointReduction(points, tolerance);\n //EJ2-69816 - Added below code to set the allow segment reset as false to avoid the unwanted segment reset.\n var newObj = {\n id: 'newConnector' + randomId(), type: 'Bezier',\n sourcePoint: { x: points[0].x, y: points[0].y }, targetPoint: { x: points[points.length - 1].x, y: points[points.length - 1].y },\n //EJ2-873504[BUG]- Source and target decorator for free hand connector is not rendered.\n segments: [], bezierSettings: { allowSegmentsReset: false }\n };\n this.drawingObject = this.commandHandler.drawObject(newObj);\n this.drawingObject = this.bezierCurveSmoothness(points, smoothValue, this.drawingObject, obj);\n this.commandHandler.updateConnectorPoints(this.drawingObject);\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n // 920152: elementDraw event not triggered for Freehand Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false);\n //(EJ2-70838)- Added code to resolve style property not added dynamically for freehand connector\n // Added code to resolve style property not added dynamically for freehand connector\n _super.prototype.mouseUp.call(this, args);\n }\n };\n /**\n * Reduce the collected points based on tolerance value.\n * @param points\n * @param tolerance\n * @returns points\n */\n FreeHandTool.prototype.pointReduction = function (points, tolerance) {\n if (points === null || points.length < 3) {\n return points;\n }\n var firstPoint = 0;\n var lastPoint = points.length - 1;\n var pointIndex = [];\n pointIndex.push(firstPoint);\n pointIndex.push(lastPoint);\n while (points[parseInt(firstPoint.toString(), 10)] === (points[parseInt(lastPoint.toString(), 10)])) {\n lastPoint--;\n }\n this.reduction(points, firstPoint, lastPoint, tolerance, pointIndex);\n var returnedPoints = [];\n pointIndex.sort(function (a, b) { return a - b; });\n pointIndex.forEach(function (element) {\n returnedPoints.push(points[parseInt(element.toString(), 10)]);\n });\n return returnedPoints;\n };\n FreeHandTool.prototype.reduction = function (points, firstPoint, lastPoint, tolerance, pointIndex) {\n var maxDistance = 0;\n var largestPointIndex = 0;\n for (var i = firstPoint; i < lastPoint; i++) {\n var distance = this.perpendicularDistance(points[parseInt(firstPoint.toString(), 10)], points[parseInt(lastPoint.toString(), 10)], points[parseInt(i.toString(), 10)]);\n if (distance > maxDistance) {\n maxDistance = distance;\n largestPointIndex = i;\n }\n }\n if (maxDistance > tolerance && largestPointIndex !== 0) {\n pointIndex.push(largestPointIndex);\n this.reduction(points, firstPoint, largestPointIndex, tolerance, pointIndex);\n this.reduction(points, largestPointIndex, lastPoint, tolerance, pointIndex);\n }\n };\n /**\n * Calculate the perpendicular distance of each point with first and last points\n * @param point1\n * @param point2\n * @param point3\n * @returns\n */\n FreeHandTool.prototype.perpendicularDistance = function (point1, point2, point3) {\n var area = Math.abs(.5 * ((point1.x * point2.y - point2.x * point1.y) +\n (point2.x * point3.y - point3.x * point2.y) + (point3.x * point1.y - point1.x * point3.y)));\n var base = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2));\n var height = area / base * 2;\n return height;\n };\n /**\n * Smoothen the bezier curve based on the points and smoothValue.\n * @param points\n * @param smoothValue\n * @param drawingObject\n * @param obj\n * @returns drawingObject\n */\n FreeHandTool.prototype.bezierCurveSmoothness = function (points, smoothValue, drawingObject, obj) {\n if (points.length < 3) {\n return drawingObject;\n }\n for (var i = 0; i < points.length - 1; i++) {\n var pointx1 = points[parseInt(i.toString(), 10)].x;\n var pointy1 = points[parseInt(i.toString(), 10)].y;\n var pointx2 = points[i + 1].x;\n var pointy2 = points[i + 1].y;\n var pointx0 = void 0;\n var pointy0 = void 0;\n if (i === 0) {\n var previousPoint = points[parseInt(i.toString(), 10)];\n pointx0 = previousPoint.x;\n pointy0 = previousPoint.y;\n }\n else {\n pointx0 = points[i - 1].x;\n pointy0 = points[i - 1].y;\n }\n var pointx3 = void 0;\n var pointy3 = void 0;\n if (i === points.length - 2) {\n var nextPoint = points[i + 1];\n pointx3 = nextPoint.x;\n pointy3 = nextPoint.y;\n }\n else {\n pointx3 = points[i + 2].x;\n pointy3 = points[i + 2].y;\n }\n var xc1 = (pointx0 + pointx1) / 2.0;\n var yc1 = (pointy0 + pointy1) / 2.0;\n var xc2 = (pointx1 + pointx2) / 2.0;\n var yc2 = (pointy1 + pointy2) / 2.0;\n var xc3 = (pointx2 + pointx3) / 2.0;\n var yc3 = (pointy2 + pointy3) / 2.0;\n var point0 = {};\n var point1 = {};\n var point2 = {};\n var point3 = {};\n point0.x = pointx0;\n point0.y = pointy0;\n point1.x = pointx1;\n point1.y = pointy1;\n point2.x = pointx2;\n point2.y = pointy2;\n point3.x = pointx3;\n point3.y = pointy3;\n var len1 = Point.findLength(point0, point1);\n var len2 = Point.findLength(point1, point2);\n var len3 = Point.findLength(point2, point3);\n var k1 = len1 / (len1 + len2);\n var k2 = len2 / (len2 + len3);\n var xm1 = xc1 + (xc2 - xc1) * k1;\n var ym1 = yc1 + (yc2 - yc1) * k1;\n var xm2 = xc2 + (xc3 - xc2) * k2;\n var ym2 = yc2 + (yc3 - yc2) * k2;\n var Controlpointx1 = xm1 + (xc2 - xm1) * smoothValue + pointx1 - xm1;\n var Controlpointy1 = ym1 + (yc2 - ym1) * smoothValue + pointy1 - ym1;\n var Controlpointx2 = xm2 + (xc2 - xm2) * smoothValue + pointx2 - xm2;\n var Controlpointy2 = ym2 + (yc2 - ym2) * smoothValue + pointy2 - ym2;\n var segment = new BezierSegment(obj, 'segments', { type: 'Bezier' }, true);\n var cnPt1 = { x: Controlpointx1, y: Controlpointy1 };\n var cnPt2 = { x: Controlpointx2, y: Controlpointy2 };\n var segSourcePoint = { x: pointx1, y: pointy1 };\n var segTargetPoint = { x: pointx2, y: pointy2 };\n segment.type = 'Bezier';\n drawingObject.segments[parseInt(i.toString(), 10)] = segment;\n if (i === 0) {\n cnPt1 = { x: pointx1, y: pointy1 };\n }\n if (i === points.length - 2) {\n cnPt2 = { x: pointx2, y: pointy2 };\n }\n drawingObject.segments[parseInt(i.toString(), 10)].vector1 = { angle: findAngle(segSourcePoint, cnPt1), distance: Point.findLength(segSourcePoint, cnPt1) };\n drawingObject.segments[parseInt(i.toString(), 10)].vector2 = { angle: findAngle(segTargetPoint, cnPt2), distance: Point.findLength(segTargetPoint, cnPt2) };\n drawingObject.segments[parseInt(i.toString(), 10)].point = segTargetPoint;\n }\n return drawingObject;\n };\n return FreeHandTool;\n}(ToolBase));\nexport { FreeHandTool };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, Collection, ChildProperty, ComplexFactory, CollectionFactory, compile as baseTemplateCompiler } from '@syncfusion/ej2-base';\nimport { ShapeStyle, StrokeStyle } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { Transform, ConnectorConstraints, ControlPointsVisibility, PortVisibility, ElementAction } from '../enum/enum';\nimport { PortConstraints, BezierSmoothness } from '../enum/enum';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { findAngle, findConnectorPoints, getOuterBounds } from '../utility/connector';\nimport { getAnnotationPosition, alignLabelOnSegments, updateConnector, checkPortRestriction, updatePortEdges, getPortsPosition, getPathOffset } from '../utility/diagram-util';\nimport { setUMLActivityDefaults, initFixedUserHandlesSymbol } from '../utility/diagram-util';\nimport { findDistance, findPath, updatePathElement, setConnectorDefaults } from '../utility/diagram-util';\nimport { randomId, getFunction } from './../utility/base-util';\nimport { flipConnector } from './../utility/diagram-util';\nimport { PathElement } from '../core/elements/path-element';\nimport { PathAnnotation } from './annotation';\nimport { Canvas } from '../core/containers/canvas';\nimport { getDecoratorShape, getPortShape } from './dictionary/common';\nimport { DiagramAction } from '../enum/enum';\nimport { NodeBase } from './node-base';\nimport { DiagramTooltip } from './tooltip';\nimport { identityMatrix, rotateMatrix, scaleMatrix, transformPointsByMatrix, transformPointByMatrix } from '../primitives/matrix';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { getTemplateContent, getContent } from '../utility/dom-util';\nimport { SymbolSize } from './preview';\nimport { ConnectorFixedUserHandle } from './fixed-user-handle';\nimport { ResizeTool } from '../interaction/tool';\nimport { PathPort } from './port';\nvar getConnectorType = function (obj) {\n //Removed isBlazor code\n if (obj) {\n switch (obj.type) {\n case 'Bpmn':\n return BpmnFlow;\n case 'UmlActivity':\n return ActivityFlow;\n case 'UmlClassifier':\n return RelationShip;\n default:\n return ConnectorShape;\n }\n }\n return ConnectorShape;\n};\nvar getSegmentType = function (obj) {\n if (obj) {\n //Removed isBlazor code\n switch (obj.type) {\n case 'Straight':\n return StraightSegment;\n case 'Bezier':\n return BezierSegment;\n case 'Orthogonal':\n return OrthogonalSegment;\n default:\n return StraightSegment;\n }\n }\n return undefined;\n};\n/**\n * Decorators are used to decorate the end points of the connector with some predefined path geometry\n */\nvar Decorator = /** @class */ (function (_super) {\n __extends(Decorator, _super);\n function Decorator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(10)\n ], Decorator.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], Decorator.prototype, \"height\", void 0);\n __decorate([\n Property('Arrow')\n ], Decorator.prototype, \"shape\", void 0);\n __decorate([\n Complex({ fill: 'black', strokeColor: 'black', strokeWidth: 1 }, ShapeStyle)\n ], Decorator.prototype, \"style\", void 0);\n __decorate([\n Complex({ x: 0, y: 0.5 }, Point)\n ], Decorator.prototype, \"pivot\", void 0);\n __decorate([\n Property('')\n ], Decorator.prototype, \"pathData\", void 0);\n return Decorator;\n}(ChildProperty));\nexport { Decorator };\n/**\n * Describes the length and angle between the control point and the start point of bezier segment\n */\nvar Vector = /** @class */ (function (_super) {\n __extends(Vector, _super);\n function Vector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Vector.prototype, \"angle\", void 0);\n __decorate([\n Property(0)\n ], Vector.prototype, \"distance\", void 0);\n return Vector;\n}(ChildProperty));\nexport { Vector };\n/**\n * Describes the length and angle between the control point and the start point of bezier segment\n */\nvar BezierSettings = /** @class */ (function (_super) {\n __extends(BezierSettings, _super);\n function BezierSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(ControlPointsVisibility.All)\n ], BezierSettings.prototype, \"controlPointsVisibility\", void 0);\n __decorate([\n Property('FreeForm')\n ], BezierSettings.prototype, \"segmentEditOrientation\", void 0);\n __decorate([\n Property(BezierSmoothness.Default)\n ], BezierSettings.prototype, \"smoothness\", void 0);\n __decorate([\n Property(true)\n ], BezierSettings.prototype, \"allowSegmentsReset\", void 0);\n return BezierSettings;\n}(ChildProperty));\nexport { BezierSettings };\n/**\n * Sets the type of the connector\n */\nvar ConnectorShape = /** @class */ (function (_super) {\n __extends(ConnectorShape, _super);\n function ConnectorShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], ConnectorShape.prototype, \"type\", void 0);\n return ConnectorShape;\n}(ChildProperty));\nexport { ConnectorShape };\n/**\n * Sets the type of the flow in a BPMN Process\n */\nvar ActivityFlow = /** @class */ (function (_super) {\n __extends(ActivityFlow, _super);\n function ActivityFlow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Object')\n ], ActivityFlow.prototype, \"flow\", void 0);\n __decorate([\n Property(30)\n ], ActivityFlow.prototype, \"exceptionFlowHeight\", void 0);\n return ActivityFlow;\n}(ConnectorShape));\nexport { ActivityFlow };\n/**\n * Sets the type of the flow in a BPMN Process\n */\nvar BpmnFlow = /** @class */ (function (_super) {\n __extends(BpmnFlow, _super);\n function BpmnFlow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Sequence')\n ], BpmnFlow.prototype, \"flow\", void 0);\n __decorate([\n Property('Normal')\n ], BpmnFlow.prototype, \"sequence\", void 0);\n __decorate([\n Property('Default')\n ], BpmnFlow.prototype, \"message\", void 0);\n __decorate([\n Property('Default')\n ], BpmnFlow.prototype, \"association\", void 0);\n return BpmnFlow;\n}(ConnectorShape));\nexport { BpmnFlow };\n/**\n * Defines the behavior of connector segments\n */\nvar ConnectorSegment = /** @class */ (function (_super) {\n __extends(ConnectorSegment, _super);\n // tslint:disable-next-line:no-any\n function ConnectorSegment(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n _this.points = [];\n return _this;\n }\n __decorate([\n Property('Straight')\n ], ConnectorSegment.prototype, \"type\", void 0);\n __decorate([\n Property(true)\n ], ConnectorSegment.prototype, \"allowDrag\", void 0);\n return ConnectorSegment;\n}(ChildProperty));\nexport { ConnectorSegment };\n/**\n * Defines the behavior of straight segments\n */\nvar StraightSegment = /** @class */ (function (_super) {\n __extends(StraightSegment, _super);\n function StraightSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class StraightSegment\n *\n * @private\n */\n StraightSegment.prototype.getClassName = function () {\n return 'StraightSegment';\n };\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], StraightSegment.prototype, \"point\", void 0);\n return StraightSegment;\n}(ConnectorSegment));\nexport { StraightSegment };\n/**\n * Defines the behavior of bezier segments\n */\nvar BezierSegment = /** @class */ (function (_super) {\n __extends(BezierSegment, _super);\n function BezierSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the name of class BezierSegment\n */\n BezierSegment.prototype.getClassName = function () {\n return 'BezierSegment';\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.getPoints = function (segments, start) {\n var points = [];\n if (points.length > 0 || start != null) {\n var st = points.length > 0 ? points[points.length - 1] : start;\n var bezier = this.bezireToPoly(st, segments);\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line prefer-spread\n points.push.apply(points, bezier);\n }\n return points;\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.bezireToPoly = function (start, segment) {\n var points = [];\n if (segment) {\n var bezSeg = segment;\n var pt0 = start;\n var pt1 = bezSeg.bezierPoint1;\n var pt2 = bezSeg.bezierPoint2;\n var pt3 = { x: bezSeg.points[1].x, y: bezSeg.points[1].y };\n this.flattenCubicBezier(points, pt0, pt1, pt2, pt3, 10);\n }\n return points;\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.flattenCubicBezier = function (points, ptStart, ptCtrl1, ptCtrl2, ptEnd, tolerance) {\n var max = ((Point.findLength(ptStart, ptCtrl1) + Point.findLength(ptCtrl1, ptCtrl2)\n + Point.findLength(ptCtrl2, ptEnd)) / tolerance);\n var i;\n for (i = 0; i <= max; i++) {\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * ptStart.x +\n 3 * t * (1 - t) * (1 - t) * ptCtrl1.x +\n 3 * t * t * (1 - t) * ptCtrl2.x +\n t * t * t * ptEnd.x;\n var y = (1 - t) * (1 - t) * (1 - t) * ptStart.y +\n 3 * t * (1 - t) * (1 - t) * ptCtrl1.y +\n 3 * t * t * (1 - t) * ptCtrl2.y +\n t * t * t * ptEnd.y;\n points.push({ x: x, y: y });\n }\n };\n __decorate([\n Property('Horizontal')\n ], BezierSegment.prototype, \"orientation\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], BezierSegment.prototype, \"point1\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], BezierSegment.prototype, \"point2\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], BezierSegment.prototype, \"vector1\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], BezierSegment.prototype, \"vector2\", void 0);\n return BezierSegment;\n}(StraightSegment));\nexport { BezierSegment };\n/**\n * Defines the behavior of orthogonal segments\n */\nvar OrthogonalSegment = /** @class */ (function (_super) {\n __extends(OrthogonalSegment, _super);\n function OrthogonalSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the module of class OrthogonalSegment\n *\n * @private\n */\n OrthogonalSegment.prototype.getClassName = function () {\n return 'OrthogonalSegment';\n };\n __decorate([\n Property(null)\n ], OrthogonalSegment.prototype, \"length\", void 0);\n __decorate([\n Property(null)\n ], OrthogonalSegment.prototype, \"direction\", void 0);\n return OrthogonalSegment;\n}(ConnectorSegment));\nexport { OrthogonalSegment };\n/**\n * Defines the behavior of orthogonal segments\n */\nvar DiagramConnectorSegment = /** @class */ (function (_super) {\n __extends(DiagramConnectorSegment, _super);\n function DiagramConnectorSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the module of class OrthogonalSegment\n */\n DiagramConnectorSegment.prototype.getClassName = function () {\n return 'DiagramConnectorSegment';\n };\n __decorate([\n Property('Straight')\n ], DiagramConnectorSegment.prototype, \"type\", void 0);\n __decorate([\n Property(true)\n ], DiagramConnectorSegment.prototype, \"allowDrag\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point1\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point2\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], DiagramConnectorSegment.prototype, \"vector1\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], DiagramConnectorSegment.prototype, \"vector2\", void 0);\n __decorate([\n Property(null)\n ], DiagramConnectorSegment.prototype, \"length\", void 0);\n __decorate([\n Property(null)\n ], DiagramConnectorSegment.prototype, \"direction\", void 0);\n return DiagramConnectorSegment;\n}(ChildProperty));\nexport { DiagramConnectorSegment };\n/**\n * Get the direction of the control points while the bezier is connected to the node\n */\nexport function getDirection(bounds, points, excludeBounds) {\n var center = bounds.center;\n var direction;\n var part = excludeBounds ? 45 : (180 / (2 + 2 / (bounds.height / bounds.width)));\n var fourty5 = part;\n var one35 = (180 - part);\n var two25 = one35 + (2 * part);\n var three15 = 360 - part;\n var angle = findAngle(points, center);\n if (angle > fourty5 && angle < one35) {\n return direction = 'top';\n }\n else if (angle > one35 && angle < two25) {\n return direction = 'right';\n }\n else if (angle > two25 && angle < three15) {\n return direction = 'bottom';\n }\n else {\n return direction = 'left';\n }\n}\nexport function isEmptyVector(element) {\n if (!element.distance && !element.angle) {\n return true;\n }\n return false;\n}\n/**\n * Get the bezier points if control points are not given.\n */\nexport function getBezierPoints(sourcePoint, targetPoint, direction) {\n var distance = 60;\n var value = { x: 0, y: 0 };\n if (!direction) {\n if (Math.abs(targetPoint.x - sourcePoint.x) > Math.abs(targetPoint.y - sourcePoint.y)) {\n direction = sourcePoint.x < targetPoint.x ? 'right' : 'left';\n }\n else {\n direction = sourcePoint.y < targetPoint.y ? 'bottom' : 'top';\n }\n }\n switch (direction) {\n case 'bottom':\n case 'top':\n distance = Math.min(Math.abs(sourcePoint.y - targetPoint.y) * 0.45, distance);\n value = { x: sourcePoint.x, y: sourcePoint.y + (direction === 'bottom' ? distance : -distance) };\n break;\n case 'right':\n case 'left':\n distance = Math.min(Math.abs(sourcePoint.x - targetPoint.x) * 0.45, distance);\n value = { x: sourcePoint.x + (direction === 'right' ? distance : -distance), y: sourcePoint.y };\n break;\n }\n return value;\n}\n/**\n * Get the bezier curve bounds.\n */\nexport function getBezierBounds(startPoint, controlPoint1, controlPoint2, endPoint, connector) {\n var minx = 0;\n var miny = 0;\n var maxx = 0;\n var maxy = 0;\n var tolerancevalue = 3;\n var max = Number((connector.distance(controlPoint1, startPoint) +\n connector.distance(controlPoint2, controlPoint1) +\n connector.distance(endPoint, controlPoint2)) / tolerancevalue);\n if (max !== 0) {\n for (var i = 0; i <= max; i++) {\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x +\n 3 * t * (1 - t) * (1 - t) * controlPoint1.x +\n 3 * t * t * (1 - t) * controlPoint2.x +\n t * t * t * endPoint.x;\n var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y +\n 3 * t * (1 - t) * (1 - t) * controlPoint1.y +\n 3 * t * t * (1 - t) * controlPoint2.y +\n t * t * t * endPoint.y;\n if (i === 0) {\n minx = maxx = x;\n miny = maxy = y;\n }\n else {\n minx = Math.min(x, minx);\n miny = Math.min(y, miny);\n maxx = Math.max(x, maxx);\n maxy = Math.max(y, maxy);\n }\n }\n }\n return {\n x: minx, y: miny, width: maxx - minx, height: maxy - miny,\n left: minx, top: miny, right: (minx + (maxx - minx)), bottom: (miny + (maxy - miny)),\n center: { x: (minx + (maxx - minx)) / 2, y: (miny + (maxy - miny)) / 2 }\n };\n}\n/**\n * Get the intermediate bezier curve for point over connector\n */\nexport function bezierPoints(connector, startPoint, point1, point2, endPoint, i, max) {\n var pt = { x: 0, y: 0 };\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x +\n 3 * t * (1 - t) * (1 - t) * point1.x +\n 3 * t * t * (1 - t) * point2.x +\n t * t * t * endPoint.x;\n pt.x = x;\n var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y +\n 3 * t * (1 - t) * (1 - t) * point1.y +\n 3 * t * t * (1 - t) * point2.y +\n t * t * t * endPoint.y;\n pt.y = y;\n return pt;\n}\n/**\n * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults\n */\nvar MultiplicityLabel = /** @class */ (function (_super) {\n __extends(MultiplicityLabel, _super);\n function MultiplicityLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], MultiplicityLabel.prototype, \"optional\", void 0);\n __decorate([\n Property(undefined)\n ], MultiplicityLabel.prototype, \"lowerBounds\", void 0);\n __decorate([\n Property(undefined)\n ], MultiplicityLabel.prototype, \"upperBounds\", void 0);\n return MultiplicityLabel;\n}(ChildProperty));\nexport { MultiplicityLabel };\n/**\n * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults\n */\nvar ClassifierMultiplicity = /** @class */ (function (_super) {\n __extends(ClassifierMultiplicity, _super);\n function ClassifierMultiplicity() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('OneToOne')\n ], ClassifierMultiplicity.prototype, \"type\", void 0);\n __decorate([\n Complex({}, MultiplicityLabel)\n ], ClassifierMultiplicity.prototype, \"target\", void 0);\n __decorate([\n Complex({}, MultiplicityLabel)\n ], ClassifierMultiplicity.prototype, \"source\", void 0);\n return ClassifierMultiplicity;\n}(ChildProperty));\nexport { ClassifierMultiplicity };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar RelationShip = /** @class */ (function (_super) {\n __extends(RelationShip, _super);\n function RelationShip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('UmlClassifier')\n ], RelationShip.prototype, \"type\", void 0);\n __decorate([\n Property('Aggregation')\n ], RelationShip.prototype, \"relationship\", void 0);\n __decorate([\n Property('Directional')\n ], RelationShip.prototype, \"associationType\", void 0);\n __decorate([\n Complex({}, ClassifierMultiplicity)\n ], RelationShip.prototype, \"multiplicity\", void 0);\n return RelationShip;\n}(ConnectorShape));\nexport { RelationShip };\n/**\n * Connector shape for blazor\n */\nvar DiagramConnectorShape = /** @class */ (function (_super) {\n __extends(DiagramConnectorShape, _super);\n function DiagramConnectorShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], DiagramConnectorShape.prototype, \"type\", void 0);\n __decorate([\n Property('Directional')\n ], DiagramConnectorShape.prototype, \"associationType\", void 0);\n __decorate([\n Property('Aggregation')\n ], DiagramConnectorShape.prototype, \"relationship\", void 0);\n __decorate([\n Complex({}, ClassifierMultiplicity)\n ], DiagramConnectorShape.prototype, \"multiplicity\", void 0);\n __decorate([\n Property('Sequence')\n ], DiagramConnectorShape.prototype, \"bpmnFlow\", void 0);\n __decorate([\n Property('Default')\n ], DiagramConnectorShape.prototype, \"message\", void 0);\n __decorate([\n Property('Normal')\n ], DiagramConnectorShape.prototype, \"sequence\", void 0);\n __decorate([\n Property('Default')\n ], DiagramConnectorShape.prototype, \"association\", void 0);\n __decorate([\n Property('Object')\n ], DiagramConnectorShape.prototype, \"umlActivityFlow\", void 0);\n __decorate([\n Property(30)\n ], DiagramConnectorShape.prototype, \"exceptionFlowHeight\", void 0);\n return DiagramConnectorShape;\n}(ChildProperty));\nexport { DiagramConnectorShape };\n/**\n * Connectors are used to create links between nodes\n */\nvar Connector = /** @class */ (function (_super) {\n __extends(Connector, _super);\n // tslint:disable-next-line:no-any\n function Connector(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.parentId = '';\n /** @private */\n _this.bridges = [];\n /** @private */\n _this.status = 'None';\n /** @private */\n _this.outEdges = [];\n /** @private */\n _this.inEdges = [];\n if (_this.shape && _this.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(defaultValue, _this);\n }\n if (defaultValue && defaultValue.shape && defaultValue.shape.type !== 'None') {\n setConnectorDefaults(defaultValue, _this);\n }\n return _this;\n }\n /* tslint:disable */\n Connector.prototype.setPortID = function (diagram, isTarget) {\n if (this.targetID && this.sourceID) {\n var targetNode = diagram.nameTable[this.targetID];\n var sourceNode = diagram.nameTable[this.sourceID];\n var ports = isTarget ? (targetNode && targetNode.ports) : (sourceNode && sourceNode.ports);\n var port = void 0;\n for (var i = 0; ports && i < ports.length; i++) {\n port = ports[parseInt(i.toString(), 10)];\n if (this.targetPortID === port.id && isTarget) {\n if ((port.constraints & PortConstraints.None) || !(port.constraints & PortConstraints.InConnect)) {\n this.targetPortID = '';\n }\n }\n else if (this.sourcePortID === port.id && !isTarget) {\n if ((port.constraints & PortConstraints.None) || !(port.constraints & PortConstraints.OutConnect)) {\n this.sourcePortID = '';\n }\n }\n }\n }\n };\n /* tslint:enable */\n /** @private */\n // tslint:disable-next-line:no-any\n Connector.prototype.init = function (diagram) {\n if (!this.id) {\n this.id = randomId();\n }\n if (this.sourcePortID) {\n this.setPortID(diagram);\n }\n if (this.targetPortID) {\n this.setPortID(diagram, true);\n }\n var bpmnElement;\n var container = new Canvas();\n var segment = new PathElement();\n segment.id = this.id + '_path';\n var srcDecorator = new PathElement();\n var targetDecorator = new PathElement();\n segment = this.getSegmentElement(this, segment);\n //let bounds: Rect;\n var points = [];\n points = this.type === 'Bezier' ? this.intermediatePoints : this.getConnectorPoints(this.type);\n points = this.clipDecorators(this, points);\n var bounds = Rect.toBounds(points);\n container.width = bounds.width;\n container.height = bounds.height;\n container.offsetX = bounds.x + container.pivot.x * bounds.width;\n container.offsetY = bounds.y + container.pivot.y * bounds.height;\n switch (this.shape.type) {\n case 'Bpmn':\n // eslint-disable-next-line no-case-declarations\n var flow = this.shape.flow;\n switch (flow) {\n case 'Sequence':\n bpmnElement = this.getBpmnSequenceFlow();\n break;\n case 'Association':\n bpmnElement = new PathElement();\n bpmnElement.visible = false;\n this.getBpmnAssociationFlow();\n break;\n case 'Message':\n bpmnElement = this.getBpmnMessageFlow();\n segment = this.getSegmentElement(this, segment);\n this.updateShapePosition(this, bpmnElement);\n break;\n }\n break;\n case 'UmlActivity':\n // eslint-disable-next-line no-case-declarations\n var activityFlow = this.shape.flow;\n switch (activityFlow) {\n case 'Object':\n this.getUMLObjectFlow();\n break;\n case 'Exception':\n this.getUMLExceptionFlow(segment);\n break;\n }\n break;\n case 'UmlClassifier':\n this.getConnectorRelation();\n break;\n }\n var anglePoints = this.intermediatePoints;\n if (this.type === 'Bezier') {\n var firstSegment = this.segments[0];\n var lastSegment = this.segments[this.segments.length - 1];\n anglePoints = [!Point.isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2,\n !Point.isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1];\n }\n var accessContent = 'getDescription';\n var getDescription = diagram[\"\" + accessContent];\n //const strokeWidth: number = this.sourceWrapper ? this.sourceWrapper.style.strokeWidth / 2 / 2 : 0;\n srcDecorator = this.getDecoratorElement(points[0], anglePoints[1], this.sourceDecorator, true, getDescription);\n targetDecorator = this.getDecoratorElement(points[points.length - 1], anglePoints[anglePoints.length - 2], this.targetDecorator, false, getDescription);\n srcDecorator.id = this.id + '_srcDec';\n targetDecorator.id = this.id + '_tarDec';\n segment.style = this.style;\n /* tslint:disable:no-string-literal */\n segment.style['fill'] = 'transparent';\n if (getDescription !== undefined) {\n // tslint:disable-next-line:no-any\n var wrapperContent = getDescription(this, diagram);\n segment.description = wrapperContent ? wrapperContent : this.id;\n }\n container.style.strokeColor = 'transparent';\n container.style.fill = 'transparent';\n container.style.strokeWidth = 0;\n container.children = [segment, srcDecorator, targetDecorator];\n container.id = this.id;\n if (bpmnElement !== undefined) {\n container.children.push(bpmnElement);\n }\n container.offsetX = segment.offsetX;\n container.offsetY = segment.offsetY;\n container.width = segment.width;\n container.height = segment.height;\n for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) {\n container.children.push(this.getAnnotationElement(this.annotations[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, getDescription, diagram.element.id, diagram.annotationTemplate));\n }\n for (var i = 0; this.fixedUserHandles !== undefined, i < this.fixedUserHandles.length; i++) {\n container.children.push(this.getFixedUserHandle(this.fixedUserHandles[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, diagram.fixedUserHandleTemplate, diagram.element.id));\n }\n // Feature 826644: Support to add ports to the connector.\n this.initPorts(getDescription, container, bounds);\n this.wrapper = container;\n return container;\n };\n /** @private */\n Connector.prototype.initPorts = function (accessibilityContent, container, bounds) {\n for (var i = 0; this.ports !== undefined, i < this.ports.length; i++) {\n container.children.push(this.initPort(this.ports[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, accessibilityContent));\n }\n };\n // Feature 826644: Support to add ports to the connector. Added below method to init the connector port.\n /** @private */\n Connector.prototype.initPort = function (ports, points, bounds, accessibilityContent) {\n var portWrapper = new PathElement();\n portWrapper.height = ports.height;\n portWrapper.width = ports.width;\n portWrapper.margin = ports.margin;\n var pathdata = (ports.shape === 'Custom') ? ports.pathData : getPortShape(ports.shape);\n portWrapper.data = pathdata;\n portWrapper.horizontalAlignment = ports.horizontalAlignment;\n portWrapper.verticalAlignment = ports.verticalAlignment;\n // eslint-disable-next-line prefer-const\n portWrapper = this.initPortWrapper(ports, points, bounds, portWrapper, this);\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(portWrapper, this);\n }\n portWrapper.description = wrapperContent ? wrapperContent : portWrapper.id;\n portWrapper.elementActions = portWrapper.elementActions | ElementAction.ElementIsPort;\n portWrapper.isPathPort = true;\n return portWrapper;\n };\n // Feature 826644: Support to add ports to the connector. Added below method to init the connector portwrapper.\n /** @private */\n Connector.prototype.initPortWrapper = function (ports, points, bounds, portContent, Connector) {\n ports.id = ports.id || randomId();\n // Creates port element\n var pivotPoint = { x: 0, y: 0 };\n var getPointloop = getPortsPosition(points, ports, bounds);\n var newPoint = getPointloop.point;\n portContent.id = this.id + '_' + (ports.id);\n var style = ports.style;\n portContent.style = {\n fill: style.fill, strokeColor: style.strokeColor, gradient: null,\n opacity: style.opacity, strokeDashArray: style.strokeDashArray, strokeWidth: style.strokeWidth\n };\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n var offsetPoint = { x: ((newPoint.x - bounds.x) / bounds.width), y: ((newPoint.y - bounds.y) / bounds.height) };\n pivotPoint.x = bounds.width * offsetPoint.x;\n pivotPoint.y = bounds.height * offsetPoint.y;\n var align = alignLabelOnSegments(ports, getPointloop.angle, points);\n var hAlign = align.hAlign;\n var vAlign = align.vAlign;\n var horizor;\n var verzor;\n if (hAlign === 'left') {\n horizor = 'Left';\n pivotPoint.x += ports.displacement.x;\n }\n else if (hAlign === 'right') {\n horizor = 'Right';\n pivotPoint.x -= ports.displacement.x;\n }\n else if (hAlign === 'center') {\n horizor = 'Center';\n }\n if (vAlign === 'top') {\n verzor = 'Top';\n pivotPoint.y += ports.displacement.y;\n }\n else if (vAlign === 'bottom') {\n verzor = 'Bottom';\n pivotPoint.y -= ports.displacement.y;\n }\n else if (vAlign === 'center') {\n verzor = 'Center';\n }\n portContent.horizontalAlignment = horizor;\n portContent.verticalAlignment = verzor;\n if (Connector && Connector.flipMode !== 'Label' && Connector.flipMode !== 'None') {\n portContent = updatePortEdges(portContent, this.flip, ports);\n }\n else {\n portContent = updatePortEdges(portContent, 'None', ports);\n }\n portContent.float = true;\n portContent.connectionDirection = ports.connectionDirection;\n portContent.setOffsetWithRespectToBounds(pivotPoint.x, pivotPoint.y, 'Absolute');\n portContent.relativeMode = 'Point';\n portContent.visible = checkPortRestriction(ports, PortVisibility.Visible) &&\n !checkPortRestriction(ports, PortVisibility.Hover) && !checkPortRestriction(ports, PortVisibility.Connect) ? true : false;\n portContent.elementActions = portContent.elementActions | ElementAction.ElementIsPort;\n return portContent;\n };\n Connector.prototype.getConnectorRelation = function () {\n var shape = this.shape;\n if (shape.relationship === 'Association') {\n this.segments[0].type = 'Straight';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n else if (shape.relationship === 'Inheritance') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n else if (shape.relationship === 'Composition') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'Diamond';\n this.targetDecorator.shape = 'None';\n }\n else if (shape.relationship === 'Aggregation') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'Diamond';\n this.targetDecorator.shape = 'None';\n }\n else if (shape.relationship === 'Dependency') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'OpenArrow';\n }\n else if (shape.relationship === 'Realization') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n if (shape.associationType === 'BiDirectional') {\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'None';\n }\n var text1 = '';\n //let lower: MultiplicityLabelModel;\n //let upper: MultiplicityLabelModel;\n var sourceText = '';\n var targetText = '';\n var text = '';\n if (shape.multiplicity.source) {\n shape.multiplicity.source.lowerBounds = shape.multiplicity.source.lowerBounds;\n shape.multiplicity.source.upperBounds = shape.multiplicity.source.upperBounds;\n }\n if (shape.multiplicity.target) {\n shape.multiplicity.target.lowerBounds = shape.multiplicity.target.lowerBounds;\n shape.multiplicity.target.upperBounds = shape.multiplicity.target.upperBounds;\n }\n var lower = shape.multiplicity.source;\n var upper = shape.multiplicity.target;\n text = lower.upperBounds ? lower.lowerBounds + '...' + lower.upperBounds : lower.lowerBounds;\n text1 = upper.upperBounds ? upper.lowerBounds + '...' + upper.upperBounds : upper.lowerBounds;\n if (shape.multiplicity.type === 'ManyToOne') {\n shape.multiplicity.target.optional = false;\n sourceText = text ? text : '*';\n targetText = '1';\n }\n if (shape.multiplicity.type === 'OneToMany') {\n shape.multiplicity.source.optional = false;\n targetText = text1 ? text1 : '*';\n sourceText = '1';\n }\n //831806 -Added ManyToMany relationship for UML class connector annotation label\n if (shape.multiplicity.type === 'ManyToMany') {\n sourceText = text ? text : '*';\n targetText = text1 ? text1 : '*';\n }\n if (shape.multiplicity.type === 'OneToOne') {\n shape.multiplicity.target.optional = false;\n shape.multiplicity.source.optional = false;\n sourceText = '1';\n targetText = '1';\n }\n this.annotations = [\n {\n id: this.id + 'sourcelabel', content: sourceText, offset: 0, alignment: 'Before',\n margin: { right: 5, bottom: 5 }\n },\n {\n id: this.id + 'targetlabel', content: targetText, offset: 1, alignment: 'Before',\n margin: { right: 5, bottom: 5 }\n }\n ];\n };\n Connector.prototype.getBpmnSequenceFlow = function () {\n var segment = new PathElement();\n var pathseq = new PathElement();\n var pathseqData;\n if ((this.shape.sequence) === 'Normal' && this.type !== 'Bezier') {\n this.targetDecorator.shape = 'Arrow';\n }\n if ((this.shape.sequence) === 'Default') {\n segment = this.getSegmentElement(this, segment);\n var anglePoints = this.intermediatePoints;\n pathseq = updatePathElement(anglePoints, this);\n this.targetDecorator.shape = 'Arrow';\n }\n if ((this.shape.sequence) === 'Conditional') {\n this.targetDecorator.shape = 'Arrow';\n this.sourceDecorator.shape = 'Diamond';\n pathseq.id = this.id + this.shape.type;\n }\n return pathseq;\n };\n /** @private */\n Connector.prototype.getUMLObjectFlow = function () {\n if (this.annotations) {\n for (var i = 0; i < this.annotations.length; i++) {\n this.annotations[parseInt(i.toString(), 10)].content = '[' + this.annotations[parseInt(i.toString(), 10)].content + ']';\n }\n }\n };\n /** @private */\n Connector.prototype.getUMLExceptionFlow = function (segment) {\n this.type = 'Straight';\n var height = (this.shape.exceptionFlowHeight) / 2;\n var midPt = { x: (this.targetPoint.x + this.sourcePoint.x) / 2, y: (this.targetPoint.y + this.sourcePoint.y) / 2 };\n var xDist = midPt.x - this.sourcePoint.x;\n var yDist = midPt.y - this.sourcePoint.y;\n var dist = Math.sqrt(xDist * xDist + yDist * yDist);\n var fractionOfTotal = (height) / dist;\n var midPt2 = { x: midPt.x - xDist * fractionOfTotal, y: midPt.y - yDist * fractionOfTotal };\n var midPt1 = { x: midPt.x + xDist * fractionOfTotal, y: midPt.y + yDist * fractionOfTotal };\n var matrix = identityMatrix();\n rotateMatrix(matrix, 315, midPt.x, midPt.y);\n this.segments = [];\n var segments = new StraightSegment(this, 'segments', { type: 'Straight', point: transformPointByMatrix(matrix, midPt1) }, true);\n (this.segments).push(segments);\n segments = new StraightSegment(this, 'segments', { type: 'Straight', point: transformPointByMatrix(matrix, midPt2) }, true);\n (this.segments).push(segments);\n segment = this.getSegmentElement(this, segment);\n };\n Connector.prototype.getBpmnAssociationFlow = function () {\n if ((this.shape.association) === 'Default') {\n this.targetDecorator.shape = 'None';\n this.style.strokeDashArray = '2 2';\n }\n if ((this.shape.association) === 'Directional') {\n this.targetDecorator.shape = 'OpenArrow';\n this.style.strokeDashArray = '2 2';\n }\n if ((this.shape.association) === 'BiDirectional') {\n this.targetDecorator.shape = 'OpenArrow';\n this.sourceDecorator.shape = 'OpenArrow';\n this.style.strokeDashArray = '2 2';\n }\n };\n // 882378 - Added below code to provide template support for fixedUserHandles in connectors\n /** @private */\n Connector.prototype.getFixedUserHandle = function (fixedUserHandle, points, bounds, fixedUserHandleTemplate, diagramId) {\n var fixedUserHandleContainer;\n if (fixedUserHandle.pathData === '' && fixedUserHandleTemplate) {\n fixedUserHandleContainer = new DiagramHtmlElement(this.id, diagramId, undefined, fixedUserHandleTemplate);\n fixedUserHandleContainer.isTemplate = true;\n fixedUserHandleContainer.template = getContent(fixedUserHandleContainer, true, fixedUserHandle);\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n }\n else {\n fixedUserHandleContainer = new Canvas();\n var children = [];\n fixedUserHandleContainer.children = children;\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n var symbolIcon = initFixedUserHandlesSymbol(fixedUserHandle, fixedUserHandleContainer);\n fixedUserHandleContainer.children.push(symbolIcon);\n }\n fixedUserHandleContainer.float = true;\n fixedUserHandleContainer.visible = fixedUserHandle.visibility;\n fixedUserHandleContainer.width = fixedUserHandle.width;\n fixedUserHandleContainer.height = fixedUserHandle.height;\n fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth;\n fixedUserHandleContainer.style.fill = fixedUserHandle.fill;\n fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor;\n fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius;\n this.updateAnnotation(fixedUserHandle, points, bounds, fixedUserHandleContainer);\n fixedUserHandleContainer.description = fixedUserHandleContainer.id;\n return fixedUserHandleContainer;\n };\n Connector.prototype.getBpmnMessageFlow = function () {\n var segmentMessage = new PathElement();\n this.targetDecorator.shape = 'Arrow';\n this.targetDecorator.width = 10;\n this.targetDecorator.height = 10;\n this.sourceDecorator.shape = 'Circle';\n this.sourceDecorator.style.fill = 'white';\n this.targetDecorator.style.fill = 'white';\n if (((this.shape.message) === 'InitiatingMessage') ||\n ((this.shape.message) === 'NonInitiatingMessage')) {\n segmentMessage.id = this.id + '_' + (this.shape.message);\n segmentMessage.width = 25;\n segmentMessage.height = 15;\n segmentMessage.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0';\n segmentMessage.horizontalAlignment = 'Center';\n segmentMessage.verticalAlignment = 'Center';\n segmentMessage.transform = Transform.Self;\n segmentMessage.style.fill = (this.shape.message) === 'NonInitiatingMessage' ? 'lightgrey' : 'white';\n }\n return segmentMessage;\n };\n /** @private */\n Connector.prototype.distance = function (pt1, pt2) {\n return findDistance(pt1, pt2);\n };\n /** @private */\n Connector.prototype.findPath = function (sourcePt, targetPt) {\n return findPath(sourcePt, targetPt);\n };\n /** @private */\n Connector.prototype.getAnnotationElement = function (annotation, points, bounds, getDescription, diagramId, annotationTemplate) {\n annotation.id = annotation.id || randomId();\n var textele;\n //Removed isBlazor code\n if (diagramId && (annotation.template || annotation.annotationType === 'Template'\n || (annotationTemplate && annotation.content === ''))) {\n // Task 834121: Content-Security-Policy support for diagram\n var diagramElement = document.getElementById(diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[\"\" + instance][0];\n textele = new DiagramHtmlElement(this.id, diagramId, annotation.id, annotationTemplate);\n if (annotation.template && typeof annotation.template === 'function' && diagram.isReact) {\n textele.templateFn = baseTemplateCompiler(annotation.template);\n textele.isTemplate = true;\n }\n //908155-Annotation template update wrongly while do interaction for connector\n if (annotation.height === undefined && annotation.annotationType === 'String' && (annotation.template || annotation.content === '')) {\n annotation.height = bounds.height;\n }\n textele = getTemplateContent(textele, annotation, annotationTemplate, diagram);\n }\n else {\n textele = new TextElement();\n //876030 - Adding hyperlink for connectors\n var link = annotation.hyperlink.link ? annotation.hyperlink : undefined;\n textele.style = annotation.style;\n textele.style.color = link ? link.color || textele.hyperlink.color : annotation.style.color;\n textele.hyperlink.link = annotation.hyperlink.link || undefined;\n textele.hyperlink.hyperlinkOpenState = annotation.hyperlink.hyperlinkOpenState || undefined;\n textele.hyperlink.textDecoration = annotation.hyperlink.textDecoration || undefined;\n textele.content = link ? link.content ||\n textele.hyperlink.link : annotation.content;\n }\n textele.constraints = annotation.constraints;\n textele.visible = annotation.visibility;\n textele.annotationVisibility = textele.visible ? 'Visible' : 'Collapsed';\n textele.rotateAngle = annotation.rotateAngle;\n textele.horizontalAlignment = annotation.horizontalAlignment;\n textele.verticalAlignment = annotation.verticalAlignment;\n textele.width = annotation.width;\n textele.height = annotation.height;\n if (bounds.width !== undefined && !annotation.template) {\n textele.width = (annotation.width || bounds.width) - annotation.margin.left - annotation.margin.right;\n }\n textele.margin = annotation.margin;\n textele.id = this.id + '_' + annotation.id;\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var description = getFunction(getDescription);\n if (description) {\n wrapperContent = description(annotation, this);\n }\n textele.description = wrapperContent ? wrapperContent : textele.id;\n this.updateAnnotation(annotation, points, bounds, textele);\n return textele;\n };\n /** @private */\n Connector.prototype.updateAnnotation = function (annotation, points, bounds, textElement, canRefresh) {\n //let getPointloop: SegmentInfo;\n //let align: Alignment; let hAlign: string;\n var pivotPoint = { x: 0, y: 0 };\n //Bug 881512: Wrapping of the connector annotation at run time not working properly.\n //To refresh the annotation at run time while moving connector end points or while moving nodes connected with connector.\n if ((textElement instanceof TextElement) && (!canRefresh)) {\n textElement.refreshTextElement();\n }\n textElement.width = (annotation.width || bounds.width);\n var getPointloop = getAnnotationPosition(points, annotation, bounds);\n var newPoint = getPointloop.point;\n if (annotation instanceof PathAnnotation && annotation.segmentAngle) {\n textElement.rotateAngle = annotation.rotateAngle + getPointloop.angle;\n textElement.rotateAngle = (textElement.rotateAngle + 360) % 360;\n }\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n var offsetPoint = { x: ((newPoint.x - bounds.x) / bounds.width), y: ((newPoint.y - bounds.y) / bounds.height) };\n pivotPoint.x = bounds.width * offsetPoint.x;\n pivotPoint.y = bounds.height * offsetPoint.y;\n var align = alignLabelOnSegments(annotation, getPointloop.angle, points);\n var hAlign = align.hAlign;\n var vAlign = align.vAlign;\n var horizor;\n var verzor;\n if (hAlign === 'left') {\n horizor = 'Left';\n pivotPoint.x += annotation.displacement.x;\n }\n else if (hAlign === 'right') {\n horizor = 'Right';\n pivotPoint.x -= annotation.displacement.x;\n }\n else if (hAlign === 'center') {\n horizor = 'Center';\n }\n if (vAlign === 'top') {\n verzor = 'Top';\n pivotPoint.y += annotation.displacement.y;\n }\n else if (vAlign === 'bottom') {\n verzor = 'Bottom';\n pivotPoint.y -= annotation.displacement.y;\n }\n else if (vAlign === 'center') {\n verzor = 'Center';\n }\n textElement.horizontalAlignment = horizor;\n textElement.verticalAlignment = verzor;\n textElement.setOffsetWithRespectToBounds(pivotPoint.x, pivotPoint.y, 'Absolute');\n textElement.relativeMode = 'Point';\n };\n /** @private */\n Connector.prototype.getConnectorPoints = function (type, points, layoutOrientation, lineDistribution) {\n //const width: number = Math.abs(this.sourcePoint.x - this.targetPoint.x);\n //const height: number = Math.abs(this.sourcePoint.y - this.targetPoint.y);\n points = findConnectorPoints(this, layoutOrientation, lineDistribution);\n var newPoints = points.slice(0);\n if (newPoints && newPoints.length > 0) {\n this.sourcePoint = newPoints[0];\n this.targetPoint = newPoints[newPoints.length - 1];\n }\n return newPoints;\n };\n /** @private */\n Connector.prototype.clipDecorator = function (connector, points, isSource, diagramAction) {\n var point = { x: 0, y: 0 };\n var start = { x: 0, y: 0 };\n var end = { x: 0, y: 0 };\n var length = points.length;\n start = !isSource ? points[length - 1] : points[0];\n end = !isSource ? points[length - 2] : points[1];\n var len = Point.distancePoints(start, end);\n len = (len === 0) ? 1 : len;\n var strokeWidth = 1;\n var node = isSource ? connector.sourceWrapper : connector.targetWrapper;\n if (node) {\n strokeWidth = node.style.strokeWidth;\n if (diagramAction && ((diagramAction) & DiagramAction.DecoratorPropertyChange)) {\n strokeWidth = 1;\n }\n }\n var width = strokeWidth - 1;\n point.x = (Math.round(start.x + width * (end.x - start.x) / len));\n point.y = (Math.round(start.y + width * (end.y - start.y) / len));\n if ((isSource && connector.sourceDecorator.shape !== 'None') ||\n (!isSource && connector.targetDecorator.shape !== 'None')) {\n point = Point.adjustPoint(point, end, true, (diagramAction & DiagramAction.DecoratorPropertyChange) ? 0 : (strokeWidth / 2));\n }\n return point;\n };\n /** @private */\n Connector.prototype.clipDecorators = function (connector, pts, diagramAction) {\n if (connector.sourceDecorator.shape !== 'None') {\n pts[0] = this.clipDecorator(connector, pts, true, diagramAction);\n }\n if (connector.targetDecorator.shape !== 'None') {\n pts[pts.length - 1] = this.clipDecorator(connector, pts, false, diagramAction);\n }\n return pts;\n };\n /** @private */\n Connector.prototype.updateSegmentElement = function (connector, points, element, diagramActions) {\n var bounds = new Rect();\n //let point: PointModel[];\n var segmentPath = this.getSegmentPath(connector, points, diagramActions);\n if (connector.type === 'Bezier') {\n if (this.segments.length > 0) {\n for (var i = 0; i < this.segments.length; i++) {\n var segment = this.segments[parseInt(i.toString(), 10)];\n var connectorSegment = connector.segments[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n var point1 = !Point.isEmptyPoint(segment.point1) ? connectorSegment.point1 : connectorSegment.bezierPoint1;\n // eslint-disable-next-line max-len\n var point2 = !Point.isEmptyPoint(segment.point2) ? connectorSegment.point2 : connectorSegment.bezierPoint2;\n bounds.uniteRect(getBezierBounds(segment.points[0], point1, point2, segment.points[1], connector));\n }\n }\n }\n else {\n bounds = Rect.toBounds(points);\n }\n element.width = bounds.width;\n element.height = bounds.height;\n element.offsetX = bounds.x + element.width / 2;\n element.offsetY = bounds.y + element.height / 2;\n element.data = segmentPath;\n if (connector.wrapper) {\n connector.wrapper.offsetX = element.offsetX;\n connector.wrapper.offsetY = element.offsetY;\n connector.wrapper.width = bounds.width;\n connector.wrapper.height = bounds.height;\n }\n return element;\n };\n /** @private */\n Connector.prototype.getSegmentElement = function (connector, segmentElement, layoutOrientation, diagramActions, isFlip) {\n if (isFlip === void 0) { isFlip = true; }\n //let bounds: Rect; let segmentPath: string;\n var points = [];\n if (isFlip) {\n flipConnector(connector);\n }\n points = this.getConnectorPoints(connector.type, undefined, layoutOrientation);\n this.intermediatePoints = points;\n segmentElement.staticSize = true;\n segmentElement = this.updateSegmentElement(connector, points, segmentElement, diagramActions);\n return segmentElement;\n };\n /** @private */\n Connector.prototype.getDecoratorElement = function (offsetPoint, adjacentPoint, decorator, isSource, getDescription) {\n var decEle = new PathElement();\n var getPath;\n var angle;\n decEle.transform = Transform.Self;\n this.updateDecoratorElement(decEle, offsetPoint, adjacentPoint, decorator);\n if (getDescription !== undefined) {\n // tslint:disable-next-line:no-any\n var wrapperContent = getDescription(decorator, this);\n decEle.description = wrapperContent ? wrapperContent :\n ('Specifies the ' + isSource ? 'source' : 'target' + 'port element of the connector');\n }\n return decEle;\n };\n Connector.prototype.bridgePath = function (connector, path, pointIndex) {\n var pathData = path;\n if (connector.bridges.length > 0) {\n if (connector.type === 'Straight' && connector.segments.length < 2) {\n for (var n = 0; n < connector.bridges.length; n++) {\n var bridge = connector.bridges[parseInt(n.toString(), 10)];\n if (!bridge.rendered) {\n pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y;\n pathData += bridge.path;\n bridge.rendered = true;\n }\n }\n }\n else if (connector.type === 'Orthogonal' || (connector.type === 'Straight' && connector.segments.length > 1)) {\n for (var n = 0; n < connector.bridges.length; n++) {\n var bridge = connector.bridges[parseInt(n.toString(), 10)];\n if (bridge.segmentPointIndex === pointIndex) {\n if (!bridge.rendered) {\n if (bridge.segmentPointIndex === pointIndex) {\n pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y;\n pathData += bridge.path;\n bridge.rendered = true;\n }\n }\n }\n }\n }\n }\n return pathData;\n };\n /** @private */\n Connector.prototype.updateDecoratorElement = function (element, pt, adjacentPoint, decorator) {\n //let getPath: string;// let angle: number;\n element.offsetX = pt.x;\n element.offsetY = pt.y;\n var angle = Point.findAngle(pt, adjacentPoint);\n var getPath = getDecoratorShape(decorator.shape, decorator);\n var size = new Size(decorator.width, decorator.height);\n element.pivot.x = decorator.pivot.x;\n element.pivot.y = decorator.pivot.y;\n element.style = decorator.style;\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n };\n /** @private */\n Connector.prototype.getSegmentPath = function (connector, points, diagramAction) {\n var path = '';\n var getPt;\n var end;\n var st;\n var pts = [];\n var j = 0;\n while (j < points.length) {\n pts.push({ x: points[parseInt(j.toString(), 10)].x, y: points[parseInt(j.toString(), 10)].y });\n j++;\n }\n for (var m = 0; m < connector.bridges.length; m++) {\n var bridge = connector.bridges[parseInt(m.toString(), 10)];\n bridge.rendered = false;\n }\n pts = this.clipDecorators(connector, pts, diagramAction);\n if (this.cornerRadius > 0 && this.type !== 'Bezier') {\n for (var j_1 = 0; j_1 < pts.length - 1; j_1++) {\n getPt = pts[parseInt(j_1.toString(), 10)];\n if (j_1 === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n var segLength = Point.distancePoints(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1]);\n if (segLength > 0) {\n if (j_1 < pts.length - 2) {\n if (segLength < this.cornerRadius * 2) {\n end = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, segLength / 2);\n }\n else {\n end = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, this.cornerRadius);\n }\n }\n else {\n end = pts[j_1 + 1];\n }\n if (j_1 > 0) {\n if (segLength < this.cornerRadius * 2) {\n st = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, segLength / 2);\n if (j_1 < pts.length - 2) {\n end = null;\n }\n }\n else {\n st = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, this.cornerRadius);\n }\n }\n if (st) {\n path += 'Q' + getPt.x + ' ' + getPt.y + ' ' + st.x + ' ' + st.y;\n }\n if (end) {\n if (connector.bridges.length > 0) {\n path = this.bridgePath(connector, path, j_1);\n if (connector.type === 'Orthogonal') {\n path = this.bridgePath(connector, path, j_1 + 1);\n }\n }\n path += ' L' + end.x + ' ' + end.y;\n }\n }\n }\n }\n else {\n if (this.type === 'Bezier') {\n var isrezise = void 0;\n var isDrawing = void 0;\n if (this.parentObj.element) {\n var action = this.parentObj.element.ej2_instances[0]['eventHandler'].action;\n isrezise = (this.parentObj.element.ej2_instances[0]['eventHandler']).tool instanceof ResizeTool;\n isDrawing = action.includes('PortDraw') || action.includes('Drag');\n }\n var direction = void 0;\n var segments = this.segments;\n for (var j_2 = 0; j_2 < segments.length; j_2++) {\n if (pts.length > 2) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = { x: 0, y: 0 };\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = { x: 0, y: 0 };\n }\n if (Point.isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point1) &&\n !segments[parseInt(j_2.toString(), 10)].vector1.angle && !segments[parseInt(j_2.toString(), 10)].vector1.distance) {\n if ((connector.sourceID || this.sourcePortID) && this.sourceWrapper && !isDrawing && !isrezise) {\n direction = getDirection(this.sourceWrapper.bounds, pts[parseInt(j_2.toString(), 10)], true);\n }\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = getBezierPoints(pts[parseInt(j_2.toString(), 10)], pts[j_2 + 1], direction);\n }\n else if (segments[parseInt(j_2.toString(), 10)].vector1.angle\n || segments[parseInt(j_2.toString(), 10)].vector1.distance) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1\n = Point.transform(pts[parseInt(j_2.toString(), 10)], segments[parseInt(j_2.toString(), 10)].vector1.angle, segments[parseInt(j_2.toString(), 10)].vector1.distance);\n }\n else {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = {\n x: segments[parseInt(j_2.toString(), 10)].point1.x || segments[parseInt(j_2.toString(), 10)].bezierPoint1.x,\n y: segments[parseInt(j_2.toString(), 10)].point1.y || segments[parseInt(j_2.toString(), 10)].bezierPoint1.y\n };\n }\n if (Point.isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point2) &&\n !segments[parseInt(j_2.toString(), 10)].vector2.angle && !segments[parseInt(j_2.toString(), 10)].vector2.distance) {\n if ((connector.targetID || this.targetPortID) && this.targetWrapper && !isDrawing && !isrezise) {\n direction = getDirection(this.targetWrapper.bounds, pts[j_2 + 1], true);\n }\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = getBezierPoints(pts[j_2 + 1], pts[parseInt(j_2.toString(), 10)], direction);\n }\n else if (segments[parseInt(j_2.toString(), 10)].vector2.angle\n || segments[parseInt(j_2.toString(), 10)].vector2.distance) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint2\n = Point.transform(pts[j_2 + 1], segments[parseInt(j_2.toString(), 10)].vector2.angle, segments[parseInt(j_2.toString(), 10)].vector2.distance);\n }\n else {\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = {\n x: segments[parseInt(j_2.toString(), 10)].point2.x || segments[parseInt(j_2.toString(), 10)].bezierPoint2.x,\n y: segments[parseInt(j_2.toString(), 10)].point2.y || segments[parseInt(j_2.toString(), 10)].bezierPoint2.y\n };\n }\n }\n pts.splice(1, 0, { x: segments[0].bezierPoint1.x, y: segments[0].bezierPoint1.y });\n pts.splice(pts.length - 1, 0, {\n x: segments[segments.length - 1].bezierPoint2.x, y: segments[segments.length - 1].bezierPoint2.y\n });\n pts = this.clipDecorators(connector, pts, diagramAction);\n for (var j_3 = 0; j_3 < segments.length; j_3++) {\n if (j_3 === 0) {\n path = 'M' + pts[0].x + ' ' + pts[0].y;\n }\n var lastPoint = (j_3 === segments.length - 1) ? pts[pts.length - 1].x + ' ' + pts[pts.length - 1].y :\n segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].x + ' ' + segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].y;\n path += 'C' +\n segments[parseInt(j_3.toString(), 10)].bezierPoint1.x + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint1.y + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint2.x + ' '\n + segments[parseInt(j_3.toString(), 10)].bezierPoint2.y + ' ' + lastPoint;\n }\n }\n else {\n for (var k = 0; k < pts.length; k++) {\n getPt = pts[parseInt(k.toString(), 10)];\n if (k === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n if (k > 0) {\n path = this.bridgePath(connector, path, k);\n path += ' ' + 'L' + getPt.x + ' ' + getPt.y;\n }\n }\n }\n }\n return path;\n };\n /** @private */\n Connector.prototype.updateShapeElement = function (connector) {\n var element;\n switch (connector.shape.type) {\n case 'Bpmn':\n if (connector.wrapper.children[3] instanceof PathElement) {\n element = connector.wrapper.children[3];\n }\n if (connector.shape.flow === 'Message') {\n this.updateShapePosition(connector, element);\n }\n break;\n case 'UmlActivity':\n if (connector.shape.flow === 'Exception') {\n this.getUMLExceptionFlow(connector.wrapper.children[0]);\n }\n break;\n }\n };\n /** @private */\n Connector.prototype.updateShapePosition = function (connector, element) {\n var segmentOffset = 0.5;\n var angle;\n var pt;\n var length = 0;\n var anglePoints = this.intermediatePoints;\n //Bug 860251: Bpmn message flow and sequence flow connector child path is not rendered properly.\n //To get the path offset of message flow.\n var offset = getPathOffset(anglePoints, element, segmentOffset);\n element.offsetX = offset.x;\n element.offsetY = offset.y;\n };\n /** @hidden */\n Connector.prototype.scale = function (sw, sh, width, height, refObject) {\n var tx = 0;\n var ty = 0;\n if (this.wrapper && this.wrapper.outerBounds) {\n var outerBounds = getOuterBounds(this);\n // EJ2-56887 - Connector do not get rendered properly in symbol palette.\n // Added the absolute command to change the connector height to positive if it is in negative value.\n var connWidth = Math.abs((this.wrapper.bounds.width || this.style.strokeWidth || 1) - 2);\n var connHeight = Math.abs((this.wrapper.bounds.height || this.style.strokeWidth || 1) - 2);\n tx = (outerBounds.width - connWidth);\n ty = (outerBounds.height - connHeight);\n sw = Math.abs((width - (Math.max(tx, ty))) / connWidth);\n sh = Math.abs((height - (Math.max(tx, ty))) / connHeight);\n tx = ty = Math.min(tx, ty);\n }\n sw = sh = Math.min(sw, sh);\n var matrix = identityMatrix();\n refObject = refObject || this.wrapper;\n rotateMatrix(matrix, -refObject.rotateAngle, refObject.offsetX, refObject.offsetY);\n scaleMatrix(matrix, sw, sh, refObject.offsetX, refObject.offsetY);\n rotateMatrix(matrix, refObject.rotateAngle, refObject.offsetX, refObject.offsetY);\n var points = transformPointsByMatrix(matrix, this.intermediatePoints);\n this.sourcePoint = points[0];\n this.targetPoint = points[points.length - 1];\n points = this.intermediatePoints = findConnectorPoints(this);\n updateConnector(this, points);\n return { x: tx, y: ty };\n };\n /**\n * @private\n * Returns the name of class Connector\n */\n Connector.prototype.getClassName = function () {\n return 'Connector';\n };\n __decorate([\n ComplexFactory(getConnectorType)\n ], Connector.prototype, \"shape\", void 0);\n __decorate([\n Property(ConnectorConstraints.Default)\n ], Connector.prototype, \"constraints\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"bridgeSpace\", void 0);\n __decorate([\n Collection([], PathAnnotation)\n ], Connector.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, Point)\n ], Connector.prototype, \"sourcePoint\", void 0);\n __decorate([\n Complex({}, Point)\n ], Connector.prototype, \"targetPoint\", void 0);\n __decorate([\n Collection([], ConnectorFixedUserHandle)\n ], Connector.prototype, \"fixedUserHandles\", void 0);\n __decorate([\n CollectionFactory(getSegmentType)\n ], Connector.prototype, \"segments\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"sourceID\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"targetID\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"hitPadding\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"connectionPadding\", void 0);\n __decorate([\n Property('Straight')\n ], Connector.prototype, \"type\", void 0);\n __decorate([\n Property('Circle')\n ], Connector.prototype, \"segmentThumbShape\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"segmentThumbSize\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ shape: 'None' }, Decorator)\n ], Connector.prototype, \"sourceDecorator\", void 0);\n __decorate([\n Complex({ shape: 'Arrow' }, Decorator)\n ], Connector.prototype, \"targetDecorator\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Connector.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"sourcePortID\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"targetPortID\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"sourcePadding\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Connector.prototype, \"previewSize\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Connector.prototype, \"dragSize\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"targetPadding\", void 0);\n __decorate([\n Property(13)\n ], Connector.prototype, \"connectorSpacing\", void 0);\n __decorate([\n Complex({ strokeWidth: 1, strokeColor: 'black' }, StrokeStyle)\n ], Connector.prototype, \"style\", void 0);\n __decorate([\n Property(null)\n ], Connector.prototype, \"maxSegmentThumb\", void 0);\n __decorate([\n Property(false)\n ], Connector.prototype, \"allowNodeOverlap\", void 0);\n __decorate([\n Complex({}, BezierSettings)\n ], Connector.prototype, \"bezierSettings\", void 0);\n __decorate([\n Collection([], PathPort)\n ], Connector.prototype, \"ports\", void 0);\n __decorate([\n Property(null)\n ], Connector.prototype, \"wrapper\", void 0);\n return Connector;\n}(NodeBase));\nexport { Connector };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Component, Property } from '@syncfusion/ej2-base';\nimport { createSvgElement, createHtmlElement, setAttributeSvg } from '../diagram/utility/dom-util';\nimport { Size } from '../diagram/primitives/size';\nimport { getFunction } from '../diagram/utility/base-util';\n/**\n * Represents the Ruler component that measures the Diagram objects, indicate positions, and align Diagram elements.\n * ```html\n *
Show Ruler
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Ruler = /** @class */ (function (_super) {\n __extends(Ruler, _super);\n /**\n * Constructor for creating the Ruler Component\n *\n * @param {RulerModel} options The ruler model.\n * @param {string | HTMLElement} element The ruler element.\n */\n function Ruler(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.offset = 0;\n /** @private */\n _this.scale = 1;\n return _this;\n }\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n Ruler.prototype.preRender = function () {\n this.unWireEvents();\n this.wireEvents();\n };\n /**\n * Renders the rulers.\n *\n * @returns {void} Renders the rulers.\n * @private\n */\n Ruler.prototype.render = function () {\n this.updateRulerGeometry();\n this.renderComplete();\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Ruler.prototype.getModuleName = function () {\n return 'Ruler';\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n Ruler.prototype.destroy = function () {\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n this.element.classList.remove('e-ruler');\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n Ruler.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Refreshes the ruler when the Ruler properties are updated\\\n *\n * @returns { void} Refreshes the ruler when the Ruler properties are updated .\\\n * @param {RulerModel} newProp - provide the newProp value.\n * @param {RulerModel} oldProp - provide the oldProp value.\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Ruler.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'length':\n case 'interval':\n case 'segmentWidth':\n case 'tickAlignment':\n case 'markerColor':\n case 'thickness':\n this.updateRuler();\n break;\n }\n }\n };\n Ruler.prototype.updateRulerGeometry = function () {\n this.element.style.textAlign = 'left';\n this.renderRulerSpace();\n this.updateRuler();\n };\n Ruler.prototype.renderRulerSpace = function () {\n var rulerGeometry = this.getRulerGeometry();\n var div = document.getElementById(this.element.id + '_ruler_space');\n if (!div) {\n div = createHtmlElement('div', {\n 'id': this.element.id + '_ruler_space',\n 'style': 'height:' + rulerGeometry.height + 'px;width:' + rulerGeometry.width + 'px;cssFloat:' + 'left;'\n });\n this.element.appendChild(div);\n }\n return div;\n };\n Ruler.prototype.updateRuler = function () {\n var rulerSize = this.getRulerSize();\n var rulerGeometry = this.getRulerGeometry();\n var length = 0;\n var offset = 0;\n var availableSize = new Size();\n var svg = this.getRulerSVG(rulerGeometry);\n if (svg) {\n length = this.length;\n availableSize.height = rulerSize;\n offset = this.offset;\n if (length && length !== Infinity) {\n var unitLength = length + this.segmentWidth;\n var unitOffset = offset;\n this.updateSegments(unitOffset, (unitLength + Math.abs(unitOffset)), svg, rulerSize);\n }\n }\n };\n Ruler.prototype.updateSegments = function (start, end, svg, rulerSize) {\n var run = start;\n var trans = { trans: 0 };\n while (run < end) {\n var rulerSegment = this.getNewSegment(run, svg);\n if (rulerSegment) {\n svg.appendChild(rulerSegment.segment);\n run = this.updateSegment(start, end, rulerSegment, run, trans, rulerSize);\n }\n }\n };\n Ruler.prototype.updateSegment = function (start, end, rulerSegment, run, trans, rulerSize) {\n var segWidth = this.updateSegmentWidth(this.scale);\n if (run === start) {\n this.startValue = Math.floor(start / segWidth) * segWidth / this.scale;\n this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue;\n rulerSegment.label.textContent = this.startValue.toString();\n this.defStartValue = run = this.startValue * this.scale;\n if (this.orientation === 'Horizontal') {\n this.hRulerOffset = start - run;\n }\n else {\n this.vRulerOffset = start - run;\n }\n }\n else {\n this.startValue = (run / this.scale);\n this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue;\n rulerSegment.label.textContent = this.startValue.toString();\n }\n this.updateTickLabel(rulerSegment, rulerSize);\n var translate = (this.orientation === 'Horizontal') ? ((trans.trans + 0.5) + ',0.5') : ('0.5,' + (trans.trans + 0.5));\n rulerSegment.segment.setAttribute('transform', 'translate(' + translate + ')');\n trans.trans += segWidth;\n run += segWidth;\n return run;\n };\n Ruler.prototype.updateTickLabel = function (rulerSegment, rulerSize) {\n var bBox = rulerSegment.segment.lastChild.getBBox();\n var isHorizontal = (this.orientation === 'Horizontal') ? true : false;\n var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false;\n var x = isHorizontal ? 2 : 0;\n var y = isHorizontal ? (isRightOrBottom ? (rulerSize / 2 + (11 / 2) - (11 / 2)) :\n (rulerSize / 2 + (11 / 2))) : bBox.height;\n var translate = isRightOrBottom ? (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height)) :\n (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height / 2));\n var attr = isHorizontal ? { 'x': x, 'y': y } :\n { 'x': x, 'y': y, 'transform': 'rotate(270)' + 'translate(' + translate + ')' };\n setAttributeSvg(rulerSegment.segment.lastChild, attr);\n };\n Ruler.prototype.getNewSegment = function (run, svg) {\n var segment = this.createNewTicks(run, svg);\n var label = this.createTickLabel(svg, segment);\n return { segment: segment, label: label };\n };\n Ruler.prototype.createNewTicks = function (run, svg) {\n var tick;\n var tickInterval;\n var segmentWidth = this.updateSegmentWidth(this.scale);\n //let g: SVGElement;\n var attr = { 'class': 'e-ruler-segment' };\n var g = createSvgElement('g', attr);\n for (var i = 0; i < this.interval; i++) {\n tickInterval = segmentWidth / this.interval;\n tick = this.createTick(svg, tickInterval, i + 1, run);\n g.appendChild(tick);\n }\n return g;\n };\n Ruler.prototype.getLinePoint = function (svg, tickInterval, length) {\n var segmentWidth = this.updateSegmentWidth(this.scale);\n var rulerSize = this.getRulerSize();\n tickInterval = tickInterval * (length - 1);\n length = ((tickInterval % segmentWidth) === 0) ? rulerSize : rulerSize * 0.3;\n return length;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Ruler.prototype.createTick = function (svg, tickInterval, length, run) {\n var ruler;\n //let line: SVGElement;\n var linePoint = this.getLinePoint(svg, tickInterval, length);\n var rulerSize = this.getRulerSize();\n //let args: IArrangeTickOptions;\n //let attr: Object;\n var isHorizontal = (this.orientation === 'Horizontal') ? true : false;\n var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false;\n var arrangeTick = getFunction(this.arrangeTick);\n // eslint-disable-next-line\n var args = { ruler: ruler, tickLength: linePoint, tickInterval: ((this.segmentWidth / this.interval) * (length - 1)) };\n if (arrangeTick) {\n arrangeTick(args);\n }\n linePoint = args.tickLength;\n var point = tickInterval * (length - 1);\n var x1 = isHorizontal ? point : (isRightOrBottom ? rulerSize : 0);\n var x2 = isHorizontal ? point : (isRightOrBottom ? (rulerSize - linePoint) : (rulerSize - (rulerSize - linePoint)));\n var y1 = isHorizontal ? (isRightOrBottom ? rulerSize : (rulerSize - (rulerSize - linePoint))) : point;\n var y2 = isHorizontal ? (isRightOrBottom ? (rulerSize - linePoint) : 0) : point;\n var attr = { 'x1': x1, 'y1': y1, 'x2': x2, 'y2': y2, 'stroke-width': '1', 'stroke': 'black' };\n var line = createSvgElement('line', attr);\n line.setAttribute('class', 'e-ruler-tick');\n return line;\n };\n Ruler.prototype.createTickLabel = function (svg, segment) {\n var text;\n if (segment) {\n var attr = { 'class': 'e-ruler-tick-label' };\n text = createSvgElement('text', attr);\n segment.appendChild(text);\n }\n return text;\n };\n /**\n * @private\n * @param {number} scale\n */\n /**\n * updateSegmentWidth method\\\n *\n * @returns {number} updateSegmentWidth method .\\\n * @param {string} scale - provide the scale value.\n *\n * @private\n */\n Ruler.prototype.updateSegmentWidth = function (scale) {\n if (this.segmentWidth !== 100) {\n return this.segmentWidth;\n }\n var five = 25;\n var multiples = 1;\n var div;\n //let scaleRound: number;\n var fifty = 100;\n var scaleRound = Math.pow(2, Math.round(Math.log(scale) / Math.log(2)));\n div = fifty;\n div = (fifty / scaleRound);\n while (div > 100) {\n multiples /= 10;\n div /= 10;\n }\n while (div < 25) {\n multiples *= 10;\n div *= 10;\n }\n if (div >= five && div % five !== 0) {\n div = Math.round(div / five) * five;\n }\n return div * scale / multiples;\n };\n Ruler.prototype.createMarkerLine = function (rulerSvg, rulerObj, attr) {\n var line;\n if (rulerObj) {\n line = rulerSvg.getElementById(rulerObj.id + '_marker');\n if (line) {\n line.parentNode.removeChild(line);\n }\n line = createSvgElement('line', attr);\n }\n return line;\n };\n /**\n * updateSegmentWidth method\\\n *\n * @returns {void} updateSegmentWidth method .\\\n * @param {HTMLElement} rulerObj - Defines the ruler Object\n * @param {PointModel} currentPoint - Defines the current point for ruler Object\n * @param {number} offset - Defines the offset ruler Object\n *\n * @private\n */\n Ruler.prototype.drawRulerMarker = function (rulerObj, currentPoint, offset) {\n var rulerSvg;\n var rulerSize;\n var scale;\n var diff;\n var i;\n var attr;\n var line;\n var isHorizontal = this.orientation === 'Horizontal' ? true : false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rulerSvgElements = rulerObj.getElementsByTagName('svg');\n for (i = 0; i < rulerSvgElements.length; i++) {\n if (rulerSvgElements[parseInt(i.toString(), 10)]) {\n rulerSvg = rulerSvgElements[parseInt(i.toString(), 10)];\n }\n break;\n }\n if (rulerSvg) {\n rulerSize = this.getRulerSize();\n attr = {\n 'id': rulerObj.id + '_marker', 'x1': 0, 'y1': 0, 'x2': (isHorizontal ? 0 : rulerSize),\n 'y2': (isHorizontal ? rulerSize : 0), 'stroke': this.markerColor, 'stroke-width': 1.5,\n 'class': 'e-d-ruler-marker'\n };\n line = this.createMarkerLine(rulerSvg, rulerObj, attr);\n scale = this.scale;\n diff = this.offset - this.defStartValue;\n var point = isHorizontal ? currentPoint.x : currentPoint.y;\n var move = (point * scale) + offset + diff;\n line.setAttribute('transform', 'translate(' + (isHorizontal ? ((move + 0.5) + ' 0.5') : ('0.5 ' + (move + 0.5))) + ')');\n rulerSvg.appendChild(line);\n }\n };\n Ruler.prototype.getRulerGeometry = function () {\n return new Size(this.element ? this.element.getBoundingClientRect().width : 0, this.element ? this.element.getBoundingClientRect().height : 0);\n };\n Ruler.prototype.getRulerSize = function () {\n return this.thickness;\n };\n Ruler.prototype.getRulerSVG = function (rulerGeometry) {\n var rulerSpace;\n var rulerSize = this.getRulerSize();\n var svg;\n if (this.element) {\n rulerSpace = document.getElementById(this.element.id + '_ruler_space');\n if (rulerSpace) {\n var attr = {\n 'id': this.element.id + '_Ruler_svg',\n width: this.orientation === 'Horizontal' ? (rulerGeometry.width + 200) : rulerSize + 'px',\n height: this.orientation === 'Horizontal' ? rulerSize : (rulerGeometry.height + 200) + 'px',\n style: 'position:inherit;'\n };\n svg = createSvgElement('svg', attr);\n if (rulerSpace.childNodes.length > 0) {\n for (var i = rulerSpace.childNodes.length - 1; i >= 0; i--) {\n rulerSpace.childNodes[parseInt(i.toString(), 10)].parentNode.removeChild(rulerSpace.childNodes[parseInt(i.toString(), 10)]);\n }\n }\n rulerSpace.appendChild(svg);\n }\n }\n return svg;\n };\n /**\n * Method to bind events for the ruler \\\n *\n * @returns {void} Method to bind events for the ruler .\\\n * @private\n */\n Ruler.prototype.wireEvents = function () {\n //wire Events\n };\n /**\n * Method to unbind events for the ruler \\\n *\n * @returns {void} Method to unbind events for the ruler .\\\n * @private\n */\n Ruler.prototype.unWireEvents = function () {\n //unWire Events\n };\n __decorate([\n Property(5)\n ], Ruler.prototype, \"interval\", void 0);\n __decorate([\n Property(100)\n ], Ruler.prototype, \"segmentWidth\", void 0);\n __decorate([\n Property('Horizontal')\n ], Ruler.prototype, \"orientation\", void 0);\n __decorate([\n Property('RightOrBottom')\n ], Ruler.prototype, \"tickAlignment\", void 0);\n __decorate([\n Property('red')\n ], Ruler.prototype, \"markerColor\", void 0);\n __decorate([\n Property(25)\n ], Ruler.prototype, \"thickness\", void 0);\n __decorate([\n Property(null)\n ], Ruler.prototype, \"arrangeTick\", void 0);\n __decorate([\n Property(400)\n ], Ruler.prototype, \"length\", void 0);\n return Ruler;\n}(Component));\nexport { Ruler };\n","/**\n * Exported Ruler files\n */\nexport * from './ruler';\n","import { createHtmlElement, removeElement } from '../utility/dom-util';\nimport { Ruler } from '../../ruler/index';\nimport { Size } from '../primitives/size';\nimport { getFunction } from '../utility/base-util';\n/**\n * defines the helper methods for the ruler\n */\n/**\n * renderOverlapElement method \\\n *\n * @returns {void} renderOverlapElement method .\\\n * @param { Diagram} diagram - provide the content value.\n * @private\n */\nexport function renderOverlapElement(diagram) {\n var rulerSize = getRulerSize(diagram);\n var attributes = {\n 'id': diagram.element.id + '_overlapRuler',\n style: 'height:' + rulerSize.height + 'px;width:' + rulerSize.width + 'px;position:absolute;left:0;top:0',\n class: 'e-ruler-overlap'\n };\n var overlap = createHtmlElement('div', attributes);\n diagram.element.insertBefore(overlap, diagram.element.firstChild);\n}\n/**\n * renderRuler method \\\n *\n * @returns {void} renderRuler method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nexport function renderRuler(diagram, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n var rulerSize = getRulerSize(diagram);\n var rulerGeometry = getRulerGeometry(diagram);\n var margin = isHorizontal ? ('margin-left:' + rulerSize.width + 'px;') : ('margin-top:' + rulerSize.height + 'px;');\n if (!div) {\n var style = 'height:' + (isHorizontal ? rulerSize.height : (rulerGeometry.height + 100)) + 'px;overflow:hidden;width:' +\n (isHorizontal ? (rulerGeometry.width + 100) : rulerSize.width) + 'px;position:absolute;font-size:11px;' + margin;\n var attributes = {\n 'id': diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'),\n style: style\n };\n div = createHtmlElement('div', attributes);\n }\n diagram.element.insertBefore(div, diagram.element.firstChild);\n var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler;\n var ruler = new Ruler(diagramRuler);\n ruler.orientation = isHorizontal ? 'Horizontal' : 'Vertical';\n ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + diagramRuler.segmentWidth;\n ruler.appendTo('#' + diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n // eslint-disable-next-line\n isHorizontal ? diagram.hRuler = ruler : diagram.vRuler = ruler;\n var rulerObj = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n // eslint-disable-next-line\n isHorizontal ? diagram.hRuler.element = rulerObj : diagram.vRuler.element = rulerObj;\n}\n/**\n * updateRuler method \\\n *\n * @returns {void} updateRuler method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateRuler(diagram) {\n var hOffset = -diagram.scroller.horizontalOffset;\n var vOffset = -diagram.scroller.verticalOffset;\n if (diagram && diagram.rulerSettings.showRulers) {\n diagram.hRuler.length = 0;\n diagram.vRuler.length = 0;\n if (hOffset !== undefined && diagram.hRuler.element) {\n updateRulerDimension(diagram, diagram.hRuler, hOffset, true);\n }\n if (vOffset !== undefined && diagram.vRuler.element) {\n updateRulerDimension(diagram, diagram.vRuler, vOffset, false);\n }\n }\n else {\n removeRulerElements(diagram);\n }\n}\n/**\n * removeRulerElements method \\\n *\n * @returns {void} removeRulerElements method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function removeRulerElements(diagram) {\n removeElement(diagram.element.id + '_hRuler');\n removeElement(diagram.element.id + '_vRuler');\n removeElement(diagram.element.id + '_overlapRuler');\n}\n/**\n * getRulerSize method \\\n *\n * @returns {void} getRulerSize method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getRulerSize(diagram) {\n var top = 0;\n var left = 0;\n if (diagram.rulerSettings.showRulers) {\n top = diagram.rulerSettings.horizontalRuler.thickness;\n left = diagram.rulerSettings.verticalRuler.thickness;\n }\n return new Size(left, top);\n}\n/**\n * getRulerGeometry method \\\n *\n * @returns {void} getRulerGeometry method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getRulerGeometry(diagram) {\n var rulerSize = getRulerSize(diagram);\n var height = diagram.scroller.viewPortHeight;\n var width = diagram.scroller.viewPortWidth;\n if (width < diagram.element.clientWidth - rulerSize.width) {\n width = diagram.element.clientWidth - rulerSize.width;\n }\n if (height < diagram.element.clientHeight - rulerSize.height) {\n height = diagram.element.clientHeight - rulerSize.height;\n }\n if (diagram.hRuler && diagram.hRuler.length) {\n width = diagram.hRuler.length;\n }\n if (diagram.vRuler && diagram.vRuler.length) {\n height = diagram.vRuler.length;\n }\n return new Size(width, height);\n}\n/**\n * removeRulerMarkers method \\\n *\n * @returns {void} removeRulerMarkers method .\\\n * @private\n */\nexport function removeRulerMarkers() {\n var markers = document.getElementsByClassName('e-d-ruler-marker');\n var marker;\n var i;\n if (markers && markers.length > 0) {\n for (i = markers.length - 1; i >= 0; i--) {\n marker = markers[parseInt(i.toString(), 10)];\n if (marker) {\n marker.parentNode.removeChild(marker);\n }\n }\n }\n}\n/**\n * drawRulerMarkers method \\\n *\n * @returns {void} drawRulerMarkers method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { PointModel} currentPoint - provide the content value.\n * @private\n */\nexport function drawRulerMarkers(diagram, currentPoint) {\n if (diagram.rulerSettings.showRulers) {\n diagram.hRuler.drawRulerMarker(diagram.hRuler.element, currentPoint, diagram.scroller.horizontalOffset);\n diagram.vRuler.drawRulerMarker(diagram.vRuler.element, currentPoint, diagram.scroller.verticalOffset);\n }\n}\n/**\n * updateRulerDimension method \\\n *\n * @returns {void} updateRulerDimension method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Ruler} ruler - provide the content value.\n * @param { number} offset - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerDimension(diagram, ruler, offset, isHorizontal) {\n var rulerSize = getRulerSize(diagram);\n var rulerGeometry = getRulerGeometry(diagram);\n var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler;\n updateRulerDiv(diagram, rulerGeometry, isHorizontal);\n updateRulerSpace(diagram, rulerGeometry, isHorizontal);\n ruler.offset = offset;\n ruler.scale = diagram.scroller.currentZoom;\n ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + 100;\n ruler.arrangeTick = getFunction(diagramRuler.arrangeTick);\n ruler.dataBind();\n var rulerObj = isHorizontal ? diagram.hRuler.element : diagram.vRuler.element;\n if (isHorizontal) {\n rulerObj.style.marginLeft = (rulerSize.width - ruler.hRulerOffset) + 'px';\n }\n else {\n rulerObj.style.marginTop = (rulerSize.height - ruler.vRulerOffset) + 'px';\n }\n}\n/**\n * updateRulerSpace method \\\n *\n * @returns {void} updateRulerSpace method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Size} rulerGeometry - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerSpace(diagram, rulerGeometry, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler_ruler_space' : '_vRuler_ruler_space'));\n var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler;\n if (div && diagram && rulerGeometry) {\n div.style.width = (isHorizontal ? (rulerGeometry.width + (ruler.segmentWidth * 2)) : ruler.thickness) + 'px';\n div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + (ruler.segmentWidth * 2))) + 'px';\n }\n}\n/**\n * updateRulerDiv method \\\n *\n * @returns {void} updateRulerDiv method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Size} rulerGeometry - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerDiv(diagram, rulerGeometry, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler;\n if (div && diagram && rulerGeometry) {\n div.style.width = (isHorizontal ? (rulerGeometry.width + ruler.segmentWidth) : ruler.thickness) + 'px';\n div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + ruler.segmentWidth)) + 'px';\n // eslint-disable-next-line\n div = document.getElementById(diagram.element.id + '_overlapRuler');\n if (div) {\n // eslint-disable-next-line\n isHorizontal ? (div.style.height = ruler.thickness + 'px') : (div.style.width = ruler.thickness + 'px');\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { DiagramTooltip } from '../objects/tooltip';\n/**\n * A collection of frequently used commands that will be added around the selector\n * ```html\n *
\n * ```\n * ```typescript\n * let nodes: NodeModel[] = [{\n * id: 'node1', width: 100, height: 100, offsetX: 100, offsetY: 100,\n * annotations: [{ content: 'Default Shape' }]\n * },\n * {\n * id: 'node2', width: 100, height: 100, offsetX: 300, offsetY: 100,\n * shape: {\n * type: 'Basic', shape: 'Ellipse'\n * },\n * annotations: [{ content: 'Path Element' }]\n * }\n * ];\n * let connectors: ConnectorModel[] = [{\n * id: 'connector1',\n * type: 'Straight',\n * sourcePoint: { x: 100, y: 300 },\n * targetPoint: { x: 200, y: 400 },\n * }];\n * let handle: UserHandleModel[] = [\n * { name: 'handle', margin: { top: 0, bottom: 0, left: 0, right: 0 }, offset: 0,\n * pathData: 'M 376.892,225.284L 371.279,211.95L 376.892,198.617L 350.225,211.95L 376.892,225.284 Z',\n * side: 'Top', horizontalAlignment: 'Center', verticalAlignment: 'Center',\n * pathColor: 'yellow' }];\n * let diagram: Diagram = new Diagram({\n * ...\n * connectors: connectors, nodes: nodes,\n * selectedItems: { constraints: SelectorConstraints.All, userHandles: handle },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n * @default {}\n */\nvar UserHandle = /** @class */ (function (_super) {\n __extends(UserHandle, _super);\n function UserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * Returns the name of class UserHandle\n *\n * @returns {string} Returns the name of class UserHandle\n * @private\n */\n UserHandle.prototype.getClassName = function () {\n return 'UserHandle';\n };\n __decorate([\n Property('')\n ], UserHandle.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"pathData\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"source\", void 0);\n __decorate([\n Property('#000000')\n ], UserHandle.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Top')\n ], UserHandle.prototype, \"side\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"borderColor\", void 0);\n __decorate([\n Property(0.5)\n ], UserHandle.prototype, \"borderWidth\", void 0);\n __decorate([\n Property(25)\n ], UserHandle.prototype, \"size\", void 0);\n __decorate([\n Property('white')\n ], UserHandle.prototype, \"pathColor\", void 0);\n __decorate([\n Property(10)\n ], UserHandle.prototype, \"displacement\", void 0);\n __decorate([\n Property(true)\n ], UserHandle.prototype, \"visible\", void 0);\n __decorate([\n Property(0)\n ], UserHandle.prototype, \"offset\", void 0);\n __decorate([\n Complex({}, Margin)\n ], UserHandle.prototype, \"margin\", void 0);\n __decorate([\n Property('Center')\n ], UserHandle.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], UserHandle.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(false)\n ], UserHandle.prototype, \"disableNodes\", void 0);\n __decorate([\n Property(false)\n ], UserHandle.prototype, \"disableConnectors\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], UserHandle.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"template\", void 0);\n return UserHandle;\n}(ChildProperty));\nexport { UserHandle };\n","/**\n * UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes \\\n *\n * @returns { string } UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getUMLActivityShape(shape) {\n return umlActivityShapes[shape.toString()];\n}\n/* eslint-disable */\nvar umlActivityShapes = {\n // Action,\n 'Action': 'M 90 82.895 C 90 86.819 86.776 90 82.8 90 H 7.2 C 3.224 90 0 86.819 0 82.895' +\n ' V 7.105 C 0 3.181 3.224 0 7.2 0 h 75.6 C 86.776 0 90 3.181 90 7.105 V 82.895 Z',\n // Decision,\n 'Decision': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z',\n // MergeNode,\n 'MergeNode': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z',\n // InitialNode,\n 'InitialNode': 'M10,19.5c-5.238,0-9.5-4.262-9.5-9.5S4.762,0.5,10,0.5s9.5,4.262,9.5,9.5S15.238,19.5,10,19.5z',\n // ForkNode,\n 'ForkNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z',\n // JoinNode,\n 'JoinNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z',\n // TimeEvent,\n 'TimeEvent': 'M50.001,0.00286865 L25.001,25.0029 L0.000976562,0.00286865 L50.001,0.00286865 z' +\n ' M0.000976562,50.0029 L25.001,25.0029 L50.001,50.0029 L0.000976562,50.0029 z',\n // AcceptingEvent,\n 'AcceptingEvent': 'M17.8336 32.164 L29.64 24 L17.32 16 L48.1664 16 L48.5 32 Z',\n // SendSignal,\n 'SendSignal': 'M48.164 31.8336 L56 23.832 L47.836 16 L16.168 16 L16.1668 31.8336 Z',\n // ReceiveSignal,\n 'ReceiveSignal': 'M48.1664 31.8336 L39.836 24 L47.836 16 L16.168 16 L16.168 31.836 Z',\n // StructuredNode,\n 'StructuredNode': 'M0,0 L50,0 L50,50 L0,50 z',\n // Note,\n 'Note': 'M20 12 L4 12 L4 22 L22 22 L22 14 L20 14 L20 12 L22 14 Z'\n};\n/* eslint-enable */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty, Collection } from '@syncfusion/ej2-base';\n/**\n * Defines the combination of keys and modifier keys\n */\nvar KeyGesture = /** @class */ (function (_super) {\n __extends(KeyGesture, _super);\n function KeyGesture() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], KeyGesture.prototype, \"key\", void 0);\n __decorate([\n Property()\n ], KeyGesture.prototype, \"keyModifiers\", void 0);\n return KeyGesture;\n}(ChildProperty));\nexport { KeyGesture };\n/**\n * Defines a command and a key gesture to define when the command should be executed\n */\nvar Command = /** @class */ (function (_super) {\n __extends(Command, _super);\n function Command() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * Returns the name of class Command\n *\n * @returns {string} Returns the name of class Command\n * @private\n */\n Command.prototype.getClassName = function () {\n return 'Command';\n };\n __decorate([\n Property('')\n ], Command.prototype, \"name\", void 0);\n __decorate([\n Property()\n ], Command.prototype, \"canExecute\", void 0);\n __decorate([\n Property()\n ], Command.prototype, \"execute\", void 0);\n __decorate([\n Complex({}, KeyGesture)\n ], Command.prototype, \"gesture\", void 0);\n __decorate([\n Property('')\n ], Command.prototype, \"parameter\", void 0);\n return Command;\n}(ChildProperty));\nexport { Command };\n/**\n * Defines the collection of commands and the corresponding key gestures\n *\n */\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], Command)\n ], CommandManager.prototype, \"commands\", void 0);\n return CommandManager;\n}(ChildProperty));\nexport { CommandManager };\n/**\n * Defines the behavior of the context menu items\n */\nvar ContextMenuSettings = /** @class */ (function (_super) {\n __extends(ContextMenuSettings, _super);\n function ContextMenuSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"show\", void 0);\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"showCustomMenuOnly\", void 0);\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"items\", void 0);\n return ContextMenuSettings;\n}(ChildProperty));\nexport { ContextMenuSettings };\n","import { Point } from './../primitives/point';\nimport { Size } from './../primitives/size';\nimport { pathSegmentCollection, processPathData } from './../utility/path-util';\nimport { setAttributeSvg, setChildPosition } from './../utility/dom-util';\nimport { overFlow, wordBreakToString, cornersPointsBeforeRotation } from './../utility/base-util';\nimport { CanvasRenderer } from './../rendering/canvas-renderer';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { createSvgElement, createHtmlElement, getBackgroundLayerSvg } from '../utility/dom-util';\nimport { removeGradient, checkBrowserInfo } from '../utility/diagram-util';\n/**\n * SVG Renderer\n */\n/** @private */\nvar SvgRenderer = /** @class */ (function () {\n function SvgRenderer() {\n }\n /**\n * Draw the shawdow for the rectangle shape in diagram \\\n *\n * @returns {void} Draw the shawdow for the rectangle shape in diagram .\\\n *\n * @param { SVGElement} options - Provide the base attributes .\n * @param { RectAttributes} canvas - Provide the canvas values .\n * @param { string} collection - Provide the collection value.\n * @param { boolean} parentSvg - Provide the parent SVG values .\n * @private\n */\n SvgRenderer.prototype.renderShadow = function (options, canvas, collection, parentSvg) {\n if (collection === void 0) { collection = null; }\n var pointModel = { x: 0, y: 0 };\n var point = Point.transform(pointModel, options.shadow.angle, options.shadow.distance);\n //const tX: number = options.x + point.x; const tY: number = options.y + point.y;\n //let pivotX: number = tX + options.width * options.pivotX;\n //let pivotY: number = tY + options.height * options.pivotY;\n var type;\n var shadowElement;\n if (parentSvg) {\n shadowElement = parentSvg.getElementById(canvas.id + '_shadow');\n }\n if (!shadowElement) {\n type = collection ? 'path' : 'rect';\n shadowElement = document.createElementNS('http://www.w3.org/2000/svg', type);\n canvas.appendChild(shadowElement);\n }\n var attr = {\n 'id': canvas.id + '_shadow', 'fill': options.shadow.color, 'stroke': options.shadow.color,\n 'opacity': options.shadow.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' +\n 'translate(' + (options.x + point.x) + ',' + (options.y + point.y) + ')'\n };\n if (parentSvg) {\n var svgContainer = parentSvg.getElementById(canvas.id);\n if (svgContainer) {\n svgContainer.insertBefore(shadowElement, svgContainer.firstChild);\n }\n }\n setAttributeSvg(shadowElement, attr);\n if (!collection) {\n setAttributeSvg(shadowElement, { 'width': options.width, 'height': options.height });\n }\n else if (collection) {\n this.renderPath(shadowElement, options, collection);\n }\n };\n /**\n * Return the dashed array values \\\n *\n * @returns {number[]} Return the dashed array values .\\\n * @param { SVGElement} dashArray - Return the dashed array values .\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n SvgRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n return dashes;\n };\n /**\n * Draw the Rectangle for the diagram \\\n *\n * @returns {void} Draw the Rectangle for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG .\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @param { string} diagramId - Provide the diagram id .\n * @param { boolean} onlyRect - Provide the boolean attribute for the shawdow rendering .\n * @param { boolean} isSelector - Provide the selector possobilities .\n * @param { SVGSVGElement} parentSvg - Provide the parent svg element .\n * @param { Object} ariaLabel - Provide the Arial label attributes .\n * @param { boolean} isCircularHandle - Provide the boolean attribute for the circular handle .\n * @param { number} enableSelector - Provide the selector possobilities .\n * @private\n */\n SvgRenderer.prototype.drawRectangle = function (svg, options, diagramId, onlyRect, isSelector, parentSvg, ariaLabel, isCircularHandle, enableSelector) {\n if (options.shadow && !onlyRect) {\n this.renderShadow(options, svg, undefined, parentSvg);\n }\n var id;\n if (options.id === svg.id) {\n id = options.id + '_container';\n }\n else {\n id = options.id;\n }\n var rect;\n if (parentSvg) {\n rect = parentSvg.getElementById(id);\n }\n if (!rect || isSelector) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n svg.appendChild(rect);\n }\n var shadowElement;\n if (parentSvg && !options.shadow) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var attr;\n // EJ2-65895 - Added below code to calculate the transform to render the circular handle\n if (isCircularHandle) {\n attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width / 2) + ',' + (options.y + options.height / 2) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n }\n else {\n attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n }\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n var classval = options.class || '';\n if (!enableSelector) {\n if (classval.includes('e-diagram-resize-handle') || classval.includes('e-diagram-endpoint-handle') || classval.includes('e-diagram-bezier-control-handle')) {\n classval += ' e-disabled';\n }\n }\n if (options.class) {\n attr['class'] = classval;\n }\n var poiterEvents = 'pointer-events';\n if (!ariaLabel) {\n attr[\"\" + poiterEvents] = 'none';\n }\n setAttributeSvg(rect, attr);\n this.setSvgStyle(rect, options, diagramId);\n };\n /**\n * Update the diagram selection region \\\n *\n * @returns {void} Update the diagram selection region .\\\n *\n * @param { SVGElement} gElement - Provide the element type.\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @private\n */\n SvgRenderer.prototype.updateSelectionRegion = function (gElement, options) {\n var rect;\n rect = gElement.parentNode.getElementById(options.id);\n var attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n class: 'e-diagram-selected-region'\n };\n if (!rect) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n gElement.appendChild(rect);\n }\n this.setSvgStyle(rect, options);\n setAttributeSvg(rect, attr);\n };\n /**\n * Create the g element for the diagram \\\n *\n * @returns {SVGGElement} Create the g element for the diagram .\\\n *\n * @param { SVGElement} elementType - Provide the element type.\n * @param { Object} attribute - Provide the attributes for the g element.\n * @private\n */\n SvgRenderer.prototype.createGElement = function (elementType, attribute) {\n var gElement = createSvgElement(elementType, attribute);\n return gElement;\n };\n /**\n * Draw the line for the diagram\\\n *\n * @returns {void} Draw the line for the diagram .\\\n *\n * @param { SVGElement} gElement - Provide the g element .\n * @param { LineAttributes} options - Provide the line element attributes .\n * @private\n */\n SvgRenderer.prototype.drawLine = function (gElement, options) {\n var line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.setSvgStyle(line, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n //const kk: string = '';\n var attr = {\n 'id': options.id,\n 'x1': options.startPoint.x + options.x,\n 'y1': options.startPoint.y + options.y,\n 'x2': options.endPoint.x + options.x,\n 'y2': options.endPoint.y + options.y,\n 'stroke': options.stroke,\n 'stroke-width': options.strokeWidth.toString(), 'opacity': options.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ' ' + pivotX + ' ' + pivotY + ')',\n 'visibility': options.visible ? 'visible' : 'hidden'\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(line, attr);\n gElement.appendChild(line);\n };\n /**\n * Draw the circle for the diagram\\\n *\n * @returns {void} Draw the circle for the diagram .\\\n *\n * @param { SVGElement} gElement - Provide the g element .\n * @param { CircleAttributes} options - Provide the circle element attributes .\n * @param {string} enableSelector - Provide the selector constraints string .\n * @param {Object} ariaLabel - Provide arial label value .\n * @private\n */\n SvgRenderer.prototype.drawCircle = function (gElement, options, enableSelector, ariaLabel) {\n var circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n this.setSvgStyle(circle, options);\n var classval = options.class || '';\n if (!enableSelector) {\n classval += ' e-disabled';\n }\n var attr = {\n 'id': options.id,\n 'cx': options.centerX,\n 'cy': options.centerY,\n 'r': options.radius,\n 'visibility': options.visible ? 'visible' : 'hidden',\n 'class': classval\n };\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n circle.style.display = options.visible ? 'block' : 'none';\n setAttributeSvg(circle, attr);\n gElement.appendChild(circle);\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG element .\n * @param { PathAttributes} options - Provide the path element attributes .\n * @param {string} diagramId - Provide the diagram id .\n * @param {boolean} isSelector - Provide selector boolean value .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide arial label value .\n * @param {number} scale - Provide the scale value .\n * @private\n */\n SvgRenderer.prototype.drawPath = function (svg, options, diagramId, isSelector, parentSvg, ariaLabel, scale) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var x = Math.floor((Math.random() * 10) + 1);\n //const id: string = svg.id + '_shape' + x.toString();\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n if (options.shadow) {\n this.renderShadow(options, svg, collection, parentSvg);\n }\n var shadowElement;\n if (parentSvg && !options.shadow) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var path;\n if (parentSvg) {\n path = parentSvg.getElementById(options.id);\n }\n if (!path || isSelector) {\n path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(path);\n }\n this.renderPath(path, options, collection);\n var attr = {};\n if (scale) {\n attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + '),scale(' + scale + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n }\n else {\n attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n }\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(path, attr);\n this.setSvgStyle(path, options, diagramId);\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG element .\n * @param {PathAttributes} options - Provide the path element attributes .\n * @param {Object[]} collection - Provide the parent SVG element .\n * @private\n */\n SvgRenderer.prototype.renderPath = function (svg, options, collection) {\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var segments = collection;\n var d = '';\n for (x = 0, y = 0, i = 0, length = segments.length; i < length; ++i) {\n var obj = segments[parseInt(i.toString(), 10)];\n var segment = obj;\n var char = segment.command;\n if ('x1' in segment) {\n x1 = segment.x1;\n }\n if ('x2' in segment) {\n x2 = segment.x2;\n }\n if ('y1' in segment) {\n y1 = segment.y1;\n }\n if ('y2' in segment) {\n y2 = segment.y2;\n }\n if ('x' in segment) {\n x = segment.x;\n }\n if ('y' in segment) {\n y = segment.y;\n }\n switch (char) {\n case 'M':\n d = d + 'M' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'L':\n d = d + 'L' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'C':\n d = d + 'C' + x1.toString() + ',' + y1.toString() + ',' + x2.toString() + ',' + y2.toString() + ',';\n d += x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Q':\n d = d + 'Q' + x1.toString() + ',' + y1.toString() + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'A':\n d = d + 'A' + segment.r1.toString() + ',' + segment.r2.toString() + ',' + segment.angle.toString() + ',';\n d += segment.largeArc.toString() + ',' + segment.sweep + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Z':\n case 'z':\n d = d + 'Z' + ' ';\n break;\n }\n }\n svg.setAttribute('d', d);\n };\n SvgRenderer.prototype.setSvgFontStyle = function (text, options) {\n text.style.fontStyle = options.italic ? 'italic' : 'normal';\n text.style.fontWeight = options.bold ? 'bold' : 'normal';\n text.style.fontSize = options.fontSize.toString() + 'px';\n text.style.fontFamily = options.fontFamily;\n };\n /**\n * Draw the text element for the diagram\\\n *\n * @returns {void} Draw the text element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {TextAttributes} options - Provide the text element attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide the label properties .\n * @param {string} diagramId - Provide the diagram id .\n * @param {number} scaleValue - Provide the scale value .\n * @param {Container} parentNode - Provide the parent node .\n * @private\n */\n SvgRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) {\n if (options.content !== undefined) {\n var textNode = void 0;\n var childNodes = void 0;\n var wrapBounds = void 0;\n var position = void 0;\n var child = void 0;\n var tspanElement = void 0;\n var offsetX = 0;\n var offsetY = 0;\n var i = 0;\n var text = void 0;\n var nodeContent = void 0;\n if (parentSvg) {\n text = parentSvg.getElementById(options.id + '_text');\n }\n if (text) {\n if (options.doWrap) {\n while (text.firstChild) {\n text.removeChild(text.firstChild);\n }\n }\n }\n else {\n options.doWrap = true;\n text = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n if (options.whiteSpace === 'pre-wrap') {\n text.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n }\n if (parentNode) {\n nodeContent = document.getElementById(parentNode.id + '_content_groupElement');\n }\n if (nodeContent && parentNode && parentNode.children && parentNode.children[0] instanceof DiagramNativeElement) {\n var textTag = this.createGElement('g', { id: ariaLabel + '_groupElement' });\n nodeContent.appendChild(textTag);\n textTag.appendChild(text);\n }\n else {\n canvas.appendChild(text);\n }\n }\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n var childNodesHeight = 0;\n if (options.doWrap || options.textOverflow !== 'Wrap') {\n //(EJ2-70658)- Node annotation disappear, while giving same id for annotation in two different diagrams\n //Added the below code for removing the extra span element that added when we double click the text annotation node\n while (text.firstChild) {\n text.removeChild(text.firstChild);\n }\n this.setSvgStyle(text, options, diagramId);\n this.setSvgFontStyle(text, options);\n textNode = document.createTextNode(options.content);\n childNodes = options.childNodes;\n wrapBounds = options.wrapBounds;\n position = this.svgLabelAlign(options, wrapBounds, childNodes);\n if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') {\n childNodes[0].text = overFlow(options.content, options);\n }\n for (i = 0; i < childNodes.length; i++) {\n tspanElement = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n textNode = document.createTextNode(childNodes[parseInt(i.toString(), 10)].text);\n child = childNodes[parseInt(i.toString(), 10)];\n child.x = setChildPosition(child, childNodes, i, options);\n if (options.textAlign === 'justify' || options.textAlign === 'left') {\n offsetX = 0;\n }\n else {\n offsetX = position.x + child.x - wrapBounds.x;\n }\n offsetY = position.y + child.dy * (i) + ((options.fontSize) * 0.8);\n if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') &&\n (options.textWrapping === 'WrapWithOverflow' || options.textWrapping === 'Wrap') && parentNode) {\n var size = (options.isHorizontalLane) ? parentNode.actualSize.width : parentNode.actualSize.height;\n if (offsetY < size) {\n if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) {\n var temp = childNodes[i + 1];\n var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8);\n if (y > size) {\n child.text = child.text.slice(0, child.text.length - 3);\n child.text = child.text.concat('...');\n textNode.data = child.text;\n }\n }\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n this.alignText(text, tspanElement, child, textNode, offsetX, offsetY, i, options, childNodes);\n childNodesHeight += child.dy;\n }\n else {\n break;\n }\n }\n else {\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n this.alignText(text, tspanElement, child, textNode, offsetX, offsetY, i, options, childNodes);\n }\n }\n }\n if (childNodesHeight && options.isHorizontalLane) {\n pivotX = options.parentOffsetX + options.pivotX;\n pivotY = options.parentOffsetY + options.pivotY;\n options.y = options.parentOffsetY - childNodesHeight * options.pivotY + 0.5;\n }\n if (options.textDecoration && options.textDecoration === 'LineThrough') {\n options.textDecoration = wordBreakToString(options.textDecoration);\n }\n var attr = {\n 'id': options.id + '_text', 'fill': options.color, 'visibility': options.visible ? 'visible' : 'hidden',\n 'text-decoration': options.textDecoration, 'transform': 'rotate(' + options.angle + ','\n + (pivotX) + ',' + (pivotY) + ')'\n + 'translate(' + (options.x) + ',' + (options.y) + ')', 'opacity': options.opacity\n };\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n setAttributeSvg(text, attr);\n }\n };\n SvgRenderer.prototype.alignText = function (text, tspanElement, child, textNode, offsetX, offsetY, i, options, childNodes) {\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n if (options.textAlign !== 'justify') {\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY, options);\n }\n else {\n if (i !== childNodes.length - 1) {\n var textlength = options.width;\n var adjustlen = 'spacing';\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY, options, textlength, adjustlen);\n }\n else {\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY, options);\n }\n }\n };\n SvgRenderer.prototype.setText = function (text, tspanElement, child, textNode, offsetX, offsetY, options, textlength, adjustlen) {\n if (options.textAlign !== 'justify') {\n setAttributeSvg(tspanElement, { 'x': offsetX.toString(), 'y': offsetY.toString() });\n }\n else {\n setAttributeSvg(tspanElement, { 'x': offsetX.toString(), 'y': offsetY.toString(), 'textLength': textlength ? textlength : 0, 'lengthAdjust': adjustlen ? adjustlen : 'spacing' });\n }\n text.setAttribute('fill', child.text);\n tspanElement.appendChild(textNode);\n text.appendChild(tspanElement);\n };\n /**\n * Draw the image element for the diagram\\\n *\n * @returns {void} Draw the image element for the diagram .\n * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {ImageAttributes} obj - Provide the image attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {boolean} fromPalette - Provide the pointer event value .\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n SvgRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n ///const id: string = obj.id + '_image';\n var image;\n if (parentSvg) {\n image = parentSvg.getElementById(obj.id + 'image');\n }\n if (!image) {\n image = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n canvas.appendChild(image);\n }\n var imageObj = new Image();\n imageObj.src = obj.source;\n var scale = obj.scale !== 'None' ? obj.scale : '';\n //Removed isBlazor code\n var imgAlign = obj.alignment;\n var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1);\n if (scale !== 'Stretch') {\n aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1);\n }\n var attr = {\n 'id': obj.id + 'image', 'x': obj.x.toString(), 'y': obj.y.toString(), 'transform': 'rotate(' + obj.angle + ','\n + (obj.x + obj.width * obj.pivotX) + ',' + (obj.y + obj.height * obj.pivotY) + ')',\n 'width': obj.width.toString(), 'visibility': obj.visible ? 'visible' : 'hidden',\n 'height': obj.height.toString(), 'preserveAspectRatio': aspectRatio,\n //832073 - Opacity when set to Zero for image node is not working - opacity value of 1 is already set as default\n 'opacity': obj.opacity.toString()\n };\n setAttributeSvg(image, attr);\n image.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString());\n };\n /**\n * Draw the HTML element for the diagram\\\n *\n * @returns {void} Draw the native element for the diagram.\n * @param {DiagramHtmlElement} element - Provide the element .\n * @param {HTMLElement} canvas - Provide the canvas element .\n * @param {Transforms} transform - Provide the transform value .\n * @param {boolean} value - Provide the pointer event value .\n * @param {number} indexValue - Provide the index value .\n * @private\n */\n SvgRenderer.prototype.drawHTMLContent = function (element, canvas, transform, value, indexValue) {\n var htmlElement;\n var parentHtmlElement;\n if (canvas) {\n //869698- drag performance is slow when dealing with 1000 plus HTML shapes and Overview feature\n htmlElement = canvas.querySelector('#' + element.id + '_html_element');\n }\n if (!htmlElement) {\n parentHtmlElement = canvas.querySelector(('#' + element.id + '_html_element')) ||\n canvas.querySelector(('#' + element.nodeId + '_html_element'));\n if (!parentHtmlElement) {\n var attr_1 = {\n 'id': element.nodeId + '_html_element',\n 'class': 'foreign-object'\n };\n parentHtmlElement = createHtmlElement('div', attr_1);\n }\n var attr = {\n 'id': element.id + '_html_element',\n 'class': 'foreign-object'\n };\n htmlElement = createHtmlElement('div', attr);\n var diagram = document.getElementById(element.diagramId).ej2_instances[0];\n var isOverviewLayer = false;\n if (canvas.parentNode && canvas.parentNode.parentNode && canvas.parentNode.parentNode.parentNode && canvas.parentNode.parentNode.parentNode.classList.contains('e-overview')) {\n isOverviewLayer = true;\n }\n if (isOverviewLayer) {\n //893685: HTML node with node Template not shown in Overview in React.\n if (diagram.isReact) {\n diagram.renderReactTemplates(function () {\n htmlElement.appendChild(element.template.cloneNode(true));\n });\n }\n else {\n htmlElement.appendChild(element.template.cloneNode(true));\n }\n }\n else {\n //Bug 852259: User handle template not working properly after saving and loading the diagram.\n // After serialization the template will be in string format, so we need to convert it to element.\n if (typeof element.template === 'string') {\n var temp = document.createElement('div');\n temp.innerHTML = element.template;\n element.template = temp;\n var handle = diagram.selectedItems.userHandles.filter(function (x) {\n return x.name === (element.id.split('_shape')[0]) && x.template !== '';\n });\n handle[0].template = element.template;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n // 883335-Exception Throws When Loading Data Without Defining Node Template at Application Level\n if (element.isTemplate && element.template) {\n htmlElement.appendChild(element.template);\n }\n else if (element.template) {\n htmlElement.appendChild(element.template.cloneNode(true));\n }\n }\n if (indexValue !== undefined && canvas.childNodes.length > indexValue) {\n canvas.insertBefore(htmlElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]);\n }\n parentHtmlElement.appendChild(htmlElement);\n canvas.appendChild(parentHtmlElement);\n }\n var point = cornersPointsBeforeRotation(element).topLeft;\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height) + 'px; width:' + (element.actualSize.width) +\n 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + (value ? 'all' : 'none')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n };\n /**\n * Draw the native element for the diagram\\\n *\n * @returns {void} Draw the native element for the diagram.\n * @param {DiagramNativeElement} element - Provide the node element .\n * @param {HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {number} height - Provide the height for the shape .\n * @param {number} width - Provide the width for the shape .\n * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape .\n * @private\n */\n SvgRenderer.prototype.drawNativeContent = function (element, canvas, height, width, parentSvg) {\n var nativeElement;\n var clipPath;\n if (parentSvg) {\n nativeElement = parentSvg.getElementById(element.id + '_native_element');\n clipPath = parentSvg.getElementById(element.id + '_clip');\n }\n if (!nativeElement) {\n nativeElement = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n nativeElement.setAttribute('id', element.id + '_native_element');\n nativeElement.appendChild(element.template.cloneNode(true));\n var svgContentTag = this.createGElement('g', { id: element.id + '_inner_native_element' });\n svgContentTag.appendChild(nativeElement);\n canvas.appendChild(svgContentTag);\n }\n if (clipPath) {\n nativeElement.removeChild(clipPath);\n }\n nativeElement.setAttribute('style', 'visibility:' +\n ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n this.setNativTransform(element, nativeElement, height, width);\n if (element.scale === 'Slice') {\n this.drawClipPath(element, nativeElement, height, width, parentSvg);\n }\n setAttributeSvg(nativeElement, element.description ? { 'role': 'img', 'aria-label': element.description } : {});\n };\n SvgRenderer.prototype.setNativTransform = function (element, nativeElement, height, width) {\n //let angle: number;\n var contentWidth = element.contentSize.width !== 0 ? element.contentSize.width : 1;\n var contentHeight = element.contentSize.height !== 0 ? element.contentSize.height : 1;\n var x = element.templatePosition.x * width / contentWidth;\n var y = element.templatePosition.y * height / contentHeight;\n nativeElement.setAttribute('transform', 'rotate(' + element.parentTransform + ',' + element.offsetX + ',' + element.offsetY +\n ') translate(' + (element.offsetX - x - width * element.pivot.x) + ',' + (element.offsetY - y - height * element.pivot.y) +\n ') scale(' + (width / contentWidth) + ',' + (height / contentHeight) + ')');\n };\n /**\n *used to crop the given native element into a rectangle of the given size .\\\n *\n * @returns {SVGElement} used to crop the given native element into a rectangle of the given size.\n * @param {DiagramNativeElement} node - Provide the node element .\n * @param {SVGElement} group - Provide the SVG element .\n * @param {number} height - Provide the height for the shape .\n * @param {number} width - Provide the width for the shape .\n * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape .\n * @private\n */\n SvgRenderer.prototype.drawClipPath = function (node, group, height, width, parentSvg) {\n var contentWidth = node.contentSize.width;\n var contentHeight = node.contentSize.height;\n //let actualWidth: number = node.actualSize.width;\n //let actualHeight: number = node.actualSize.height;\n var clipWidth = node.width / (width / contentWidth);\n var clipHeight = node.height / (height / contentHeight);\n var x = node.templatePosition.x + (node.width >= node.height ? 0 : (contentWidth - clipWidth) / 2);\n var y = node.templatePosition.y + (node.height >= node.width ? 0 : (contentHeight - clipHeight) / 2);\n var clipPath = parentSvg.getElementById(node.id + '_clip');\n clipPath = document.createElementNS('http://www.w3.org/2000/svg', 'clipPath');\n clipPath.setAttribute('id', node.id + '_clip');\n group.appendChild(clipPath);\n var rect = parentSvg.getElementById(node.id + '_clip_rect');\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n clipPath.appendChild(rect);\n var attr = {\n 'id': node.id + '_clip_rect', 'width': clipWidth.toString(), 'height': clipHeight.toString(),\n 'x': x.toString(), 'y': y.toString()\n };\n setAttributeSvg(rect, attr);\n if (checkBrowserInfo()) {\n group.setAttribute('clip-path', 'url(' + location.protocol + '//' + location.host + location.pathname +\n '#' + node.id + '_clip)');\n }\n else {\n group.setAttribute('clip-path', 'url(#' + node.id + '_clip)');\n }\n return group;\n };\n /**\n * Draw the gradient for the diagram shapes .\\\n *\n * @returns {SVGElement} Draw the gradient for the diagram shapes.\n * @param {StyleAttributes} options - Provide the options for the gradient element .\n * @param {SVGElement} svg - Provide the SVG element .\n * @param {string} diagramId - Provide the diagram id .\n * @private\n */\n SvgRenderer.prototype.renderGradient = function (options, svg, diagramId) {\n var max;\n var min;\n var grd;\n var svgContainer = getBackgroundLayerSvg(diagramId);\n var defs = svgContainer.getElementById(diagramId + 'gradient_pattern');\n if (!defs) {\n defs = createSvgElement('defs', { id: diagramId + 'gradient_pattern' });\n svgContainer.insertBefore(defs, svgContainer.firstChild);\n }\n var radial;\n var linear; //let stop: StopModel; let offset: number;\n removeGradient(svg.id);\n if (options.gradient.type !== 'None') {\n for (var i = 0; i < options.gradient.stops.length; i++) {\n max = !max ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n min = !min ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n }\n if (options.gradient.type === 'Linear') {\n linear = options.gradient;\n linear.id = svg.id + '_linear';\n grd = this.createLinearGradient(linear);\n defs.appendChild(grd);\n }\n else {\n radial = options.gradient;\n radial.id = svg.id + '_radial';\n grd = this.createRadialGradient(radial);\n defs.appendChild(grd);\n }\n for (var i = 0; i < options.gradient.stops.length; i++) {\n var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)];\n var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max;\n var stopElement = document.createElementNS('http://www.w3.org/2000/svg', 'stop');\n setAttributeSvg(stopElement, { 'offset': offset.toString(), 'style': 'stop-color:' + stop_1.color });\n grd.appendChild(stopElement);\n }\n }\n return grd;\n };\n /**\n * Draw the Linear gradient for the diagram .\\\n *\n * @returns {SVGElement} Draw the Linear gradient for the diagram.\n * @param {LinearGradientModel} linear - Provide the objects for the gradient element .\n * @private\n */\n SvgRenderer.prototype.createLinearGradient = function (linear) {\n var lineargradient = document.createElementNS('http://www.w3.org/2000/svg', 'linearGradient');\n var attr = {\n 'id': linear.id, 'x1': linear.x1 + '%', 'y1': linear.y1 + '%', 'x2': linear.x2 + '%', 'y2': linear.y2 + '%'\n };\n setAttributeSvg(lineargradient, attr);\n return lineargradient;\n };\n /**\n * Draw the radial gradient for the diagram .\\\n *\n * @returns {SVGElement} Draw the radial gradient for the diagram.\n * @param {RadialGradientModel} radial - Provide the objects for the gradient element .\n * @private\n */\n SvgRenderer.prototype.createRadialGradient = function (radial) {\n var radialgradient = document.createElementNS('http://www.w3.org/2000/svg', 'radialGradient');\n var attr = {\n 'id': radial.id, 'cx': radial.cx + '%', 'cy': radial.cy + '%', 'r': radial.r + '%', 'fx': radial.fx + '%', 'fy': radial.fy + '%'\n };\n setAttributeSvg(radialgradient, attr);\n return radialgradient;\n };\n /**\n * Set the SVG style for the SVG elements in the diagram.\\\n *\n * @returns {void}\n * @param {SVGElement} svg - Provide the canvas element .\n * @param {StyleAttributes} style - Provide the canvas element .\n * @param {string} diagramId - Provide the canvas element .\n * @private\n */\n SvgRenderer.prototype.setSvgStyle = function (svg, style, diagramId) {\n if (style.canApplyStyle || style.canApplyStyle === undefined) {\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n var dashArray = [];\n var fill = void 0;\n if (style.dashArray) {\n var canvasRenderer = new CanvasRenderer();\n dashArray = canvasRenderer.parseDashArray(style.dashArray);\n }\n if (style.gradient && style.gradient.type !== 'None' && diagramId) {\n var grd = this.renderGradient(style, svg, diagramId);\n if (checkBrowserInfo()) {\n fill = 'url(' + location.protocol + '//' + location.host + location.pathname + '#' + grd.id + ')';\n }\n else {\n fill = 'url(#' + grd.id + ')';\n }\n }\n else {\n fill = style.fill;\n }\n if (style.stroke) {\n svg.setAttribute('stroke', style.stroke);\n }\n if (style.strokeWidth !== undefined && style.strokeWidth !== null) {\n svg.setAttribute('stroke-width', style.strokeWidth.toString());\n }\n if (dashArray) {\n svg.setAttribute('stroke-dasharray', dashArray.toString() || 'none');\n }\n if (fill) {\n svg.setAttribute('fill', fill);\n }\n }\n };\n //end region\n // text utility\n /**\n * Draw the SVG label.\\\n *\n * @returns {PointModel} Draw the SVG label .\n * @param {TextAttributes} text - Provide the canvas element .\n * @param {Object} wrapBound - Provide the canvas element .\n * @param {SubTextElement []} childNodes - Provide the canvas element .\n * @private\n */\n SvgRenderer.prototype.svgLabelAlign = function (text, wrapBound, childNodes) {\n var bounds = new Size(wrapBound.width, childNodes.length * (text.fontSize * 1.2));\n var pos = { x: 0, y: 0 };\n var x = 0;\n var y = 1.2;\n var offsetX = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointX = offsetX;\n var pointY = offsety;\n if (text.textAlign === 'left' || text.textAlign === 'justify') {\n pointX = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBound.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n if (text.textWrapping === 'NoWrap') {\n pointX = 0;\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointX = (text.width * 1);\n }\n pos.x = x + pointX + (wrapBound ? wrapBound.x : 0);\n pos.y = y + pointY - bounds.height / 2;\n return pos;\n };\n return SvgRenderer;\n}());\nexport { SvgRenderer };\n","import { PathElement } from '../core/elements/path-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Container } from '../core/containers/container';\nimport { rotateMatrix, identityMatrix, transformPointByMatrix } from '../primitives/matrix';\nimport { Size } from '../primitives/size';\nimport { wordBreakToString, whiteSpaceToString, textAlignToString, randomId, rotatePoint } from '../utility/base-util';\nimport { getUserHandlePosition, canShowCorner, getInterval, getSpaceValue, canShowControlPoints } from '../utility/diagram-util';\nimport { getDiagramElement, getAdornerLayer, getGridLayer, getHTMLLayer, updatePath } from '../utility/dom-util';\nimport { measurePath, getBackgroundLayerSvg, getBackgroundImageLayer, setAttributeSvg } from '../utility/dom-util';\nimport { SnapConstraints, RendererAction, ConnectorConstraints } from '../enum/enum';\nimport { ThumbsConstraints, SelectorConstraints, ElementAction } from '../enum/enum';\nimport { SvgRenderer } from './svg-renderer';\nimport { CanvasRenderer } from './canvas-renderer';\nimport { processPathData, splitArrayCollection, transformPath } from '../utility/path-util';\nimport { isDiagramChild } from '../utility/diagram-util';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { Point } from '../primitives/point';\nimport { canDrawThumbs, avoidDrawSelector } from '../utility/constraints-util';\nimport { Diagram } from '../diagram';\nimport { getSegmentThumbShapeHorizontal, getSegmentThumbShapeVertical } from '../objects/dictionary/common';\n/**\n * Renderer module is used to render basic diagram elements\n */\n/** @private */\nvar DiagramRenderer = /** @class */ (function () {\n function DiagramRenderer(name, svgRender, isSvgMode) {\n /** @private */\n this.renderer = null;\n /** @private */\n this.isSvgMode = true;\n /** @private */\n this.touchMove = undefined;\n this.transform = { x: 0, y: 0 };\n this.diagramId = name;\n this.element = getDiagramElement(this.diagramId);\n this.svgRenderer = svgRender;\n this.isSvgMode = isSvgMode;\n this.renderer = isSvgMode ? new SvgRenderer() : new CanvasRenderer();\n }\n /**\n * Method used to set the cur \\\n *\n * @param {HTMLElement} canvas - Provide the canvas .\n * @param {string} cursor - Provide the element .\n * @returns {void } Method used to set the layer .\\\n * @private\n */\n DiagramRenderer.prototype.setCursor = function (canvas, cursor) {\n canvas.style.cursor = cursor;\n };\n /**\n * Method used to set the layer \\\n *\n * @returns {void } Method used to set the layer .\\\n *\n * @private\n */\n DiagramRenderer.prototype.setLayers = function () {\n this.iconSvgLayer = this.element.getElementsByClassName('e-ports-expand-layer')[0];\n this.adornerSvgLayer = this.element.getElementsByClassName('e-adorner-layer')[0];\n this.nativeSvgLayer = this.element.getElementsByClassName('e-native-layer')[0];\n this.diagramSvgLayer = this.element.getElementsByClassName('e-diagram-layer')[0];\n };\n DiagramRenderer.prototype.getAdornerLayer = function () {\n var adornerLayer = getAdornerLayer(this.diagramId);\n return adornerLayer;\n };\n DiagramRenderer.prototype.getParentSvg = function (element, targetElement, canvas) {\n if (this.diagramId && element && element.id) {\n if (element.id.split('_icon_content').length > 1 || element.id.split('_nodeport').length > 1 ||\n (element.elementActions & ElementAction.ElementIsPort)) {\n return this.iconSvgLayer;\n }\n if (targetElement && targetElement === 'selector') {\n return this.adornerSvgLayer;\n }\n else if (element instanceof DiagramNativeElement) {\n return this.nativeSvgLayer;\n }\n else {\n return this.diagramSvgLayer;\n }\n }\n return canvas;\n };\n DiagramRenderer.prototype.getParentElement = function (element, defaultParent, svgElement, indexValue) {\n var layerGElement = defaultParent;\n if (svgElement && this.diagramId && element && element.id) {\n if (element.id.split('_icon_content').length > 1) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramExpander');\n defaultParent = null;\n }\n else if (element.id.split('_nodeport').length > 1) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts');\n }\n else if (element instanceof DiagramNativeElement) {\n layerGElement = svgElement.getElementById(this.diagramId + '_nativeLayer');\n defaultParent = null;\n }\n else if (element.elementActions & ElementAction.ElementIsPort) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts');\n defaultParent = null;\n }\n else {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramLayer');\n }\n var groupElement = this.getGroupElement(element, defaultParent || layerGElement, indexValue);\n layerGElement = groupElement.g;\n if (groupElement.svg) {\n svgElement = groupElement.svg;\n }\n }\n return { g: layerGElement, svg: svgElement };\n };\n DiagramRenderer.prototype.getGroupElement = function (element, canvas, indexValue) {\n var gElement;\n var parentSvg = this.getParentSvg(element);\n var svgElement;\n if (canvas && parentSvg) {\n if (parentSvg) {\n gElement = parentSvg.getElementById(element.id + '_groupElement');\n if (!gElement && parentSvg !== this.nativeSvgLayer) { //code added\n var nativeSvg = this.nativeSvgLayer;\n gElement = nativeSvg.getElementById(element.id + '_groupElement');\n svgElement = nativeSvg;\n }\n }\n if (!gElement) {\n gElement = this.svgRenderer.createGElement('g', { id: element.id + '_groupElement' });\n if (indexValue !== undefined && canvas.childNodes.length > indexValue) {\n canvas.insertBefore(gElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]);\n }\n else {\n canvas.appendChild(gElement);\n }\n }\n }\n return { g: gElement, svg: svgElement };\n };\n /**\n * Method used to render the diagram element \\\n *\n * @returns {void } Method used to render the diagram element .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas value.\n * @param {HTMLElement } htmlLayer - Provide the HTMLElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {SVGSVGElement} parentSvg - Provide the SVGSVGElement value.\n * @param {boolean } createParent - Provide the boolean value.\n * @param {boolean } fromPalette - Provide the boolean value.\n * @param {number } indexValue - Provide the indexValue value.\n * @param {boolean } isPreviewNode - Provide the isPreviewNode value.\n * @param {object } centerPoint - Provide the centerPoint value.\n * @param {object} portCenterPoint - Provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.renderElement = function (element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint) {\n var isElement = true;\n if (element instanceof Container) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isElement = false;\n element.id = element.id ? element.id : randomId();\n this.renderContainer(element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint);\n }\n else if (element instanceof ImageElement) {\n this.renderImageElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof PathElement) {\n this.renderPathElement(element, canvas, transform, parentSvg, fromPalette, isPreviewNode, portCenterPoint);\n }\n else if (element instanceof TextElement) {\n this.renderTextElement(element, canvas, transform, parentSvg, fromPalette, centerPoint);\n }\n else if (element instanceof DiagramNativeElement) {\n this.renderNativeElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof DiagramHtmlElement) {\n this.renderHTMLElement(element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue);\n }\n else {\n this.renderRect(element, canvas, transform, parentSvg, isPreviewNode);\n }\n };\n /**\n * Method used to draw the selection rectangle for the node \\\n *\n * @returns {void } Method used to draw the selection rectangle for the node .\\\n *\n * @param {number} x - Provide the DiagramElement value.\n * @param {number } y - Provide the SVGElement value.\n * @param {number } w - Provide the Transforms value.\n * @param {number } h - Provide the Transforms value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the Transforms value.\n * @param {number } t - Provide the Transforms value.\n * @private\n */\n DiagramRenderer.prototype.drawSelectionRectangle = function (x, y, w, h, canvas, t) {\n x = (x + t.tx) * t.scale;\n y = (y + t.ty) * t.scale;\n var options = {\n width: w * t.scale, height: h * t.scale,\n x: x + 0.5, y: y + 0.5, fill: 'transparent', stroke: 'gray', angle: 0,\n pivotX: 0.5, pivotY: 0.5, strokeWidth: 1,\n dashArray: '6 3', opacity: 1,\n visible: true, id: canvas.id + '_selected_region'\n };\n var adornerLayer = this.getAdornerLayer();\n this.svgRenderer.updateSelectionRegion(adornerLayer, options);\n };\n /**\n * Method used to render the highlighter \\\n *\n * @returns {void } Method used to render the highlighter .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @private\n */\n DiagramRenderer.prototype.renderHighlighter = function (element, canvas, transform) {\n var width = element.actualSize.width || 2;\n var height = element.actualSize.height || 2;\n var x = element.offsetX - width * element.pivot.x;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n y = (y + transform.ty) * transform.scale;\n var options = {\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 4,\n dashArray: '', opacity: 1, cornerRadius: 0,\n visible: true, id: canvas.id + '_highlighter', class: 'e-diagram-highlighter'\n };\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, canvas);\n };\n /**\n * Method used to render the node selection rectangle \\\n *\n * @returns {void } Method used to render the node selection rectangle .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {number } isFirst - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderSelectionRectangle = function (element, canvas, transform, isFirst) {\n var width = element.actualSize.width || 2;\n var height = element.actualSize.height || 2;\n var x = element.offsetX - width * element.pivot.x;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n y = (y + transform.ty) * transform.scale;\n var options = {\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#00cc00', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: isFirst ? 2 : 1,\n dashArray: '', opacity: 1, cornerRadius: 0,\n visible: true, id: element.id + '_highlighter', class: isFirst ? 'e-diagram-first-selection-indicator e-diagram-selection-indicator' : 'e-diagram-selection-indicator'\n };\n var parentSvg = this.getParentSvg(element, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n };\n /**\n * Method used to render the selection line for connector \\\n *\n * @returns {void } Method used to render the selection line for connector .\\\n *\n * @param {PathElement} element - Provide the path element of the diagram .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value.\n * @param { boolean } isFirst - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderSelectionLine = function (element, canvas, transform, isFirst) {\n var options = this.getBaseAttributes(element, transform);\n options.data = element.absolutePath;\n options.id = options.id + '_highlighter';\n var ariaLabel = element.description ? element.description : element.id;\n if (!this.isSvgMode) {\n options.x = element.flipOffset.x ? element.flipOffset.x : options.x;\n options.y = element.flipOffset.y ? element.flipOffset.y : options.y;\n }\n if (transform) {\n options.x = options.x * transform.scale;\n options.y = options.y * transform.scale;\n }\n options.stroke = '#00cc00';\n options.strokeWidth = isFirst ? 2 : 1;\n options.class = isFirst ? 'e-diagram-first-selection-indicator e-diagram-selection-indicator' : 'e-diagram-selection-indicator';\n var parentSvg = this.getParentSvg(element, 'selector');\n this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel, transform.scale);\n };\n /**\n * Method used to render the stack highlighter \\\n *\n * @returns {void } Method used to render the stack highlighter .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {boolean} isVertical - Provide the Boolean value.\n * @param {PointModel } position - Provide the PointModel value.\n * @param {boolean } isUml - Provide the boolean value.\n * @param {boolean } isSwimlane - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderStackHighlighter = function (element, canvas, transform, isVertical, position, isUml, isSwimlane) {\n var width = element.actualSize.width || 2;\n var x = element.offsetX - width * element.pivot.x;\n var height = element.actualSize.height || 2;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n var data;\n var bounds = element.bounds;\n var newPathString = '';\n y = (y + transform.ty) * transform.scale;\n if (!isVertical) {\n var d = height * transform.scale;\n data = 'M 10 -10 L 0 0 Z M -10 -10 L 0 0 Z M 0 0 L 0 ' + (d) + ' Z M 0 ' + (d) +\n ' L -10 ' + (d + 10) + ' Z L 10 ' + (d + 10) + ' Z';\n if (position.x >= element.offsetX) {\n //879085- swimlane helper guides not rendered properly when zoomed\n x += width * transform.scale;\n }\n }\n else {\n if (isUml) {\n var d = width * transform.scale;\n data = 'M 0 0 L ' + (d + 2) + ' 0 Z';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n scaleX = element.actualSize.width / Number(bounds.width ? bounds.width : 1) * transform.scale;\n scaleY = element.actualSize.height / Number(bounds.height ? bounds.height : 1) * transform.scale;\n var umlData = 'M7,4 L8,4 8,7 11,7 11,8 8,8 8,11 7,11 7,8 4,8 4,7 7,7 z M7.5,0.99999994' +\n 'C3.9160004,1 1,3.9160004 0.99999994,7.5 1,11.084 3.9160004,14 7.5,14 11.084,14 14,11.084 14,7.5 14,' +\n '3.9160004 11.084,1 7.5,0.99999994 z M7.5,0 C11.636002,0 15,3.3639984 15,7.5 15,11.636002 11.636002,15 7.5,' +\n '15 3.3640003,15 0,11.636002 0,7.5 0,3.3639984 3.3640003,0 7.5,0 z';\n arrayCollection = processPathData(umlData);\n arrayCollection = splitArrayCollection(arrayCollection);\n newPathString = transformPath(arrayCollection, scaleX + d + 2, scaleY - 8, false, bounds.x, bounds.y, 0, 0);\n if (position.y >= element.offsetY) {\n y += height;\n }\n }\n else {\n if (isSwimlane) {\n if (position.y >= element.offsetY) {\n //879085- swimlane helper guides not rendered properly when zoomed\n y += height * transform.scale;\n }\n }\n var d = width * transform.scale;\n data = 'M -10 -10 L 0 0 Z M -10 10 L 0 0 Z M 0 0 L ' + (d) + ' 0 Z M ' + (d) + ' 0 L ' +\n (d + 10) + ' 10 Z L ' + (d + 10) + ' -10 Z';\n }\n }\n var options = {\n data: data + newPathString,\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 1,\n dashArray: '', opacity: 1,\n visible: true, id: canvas.id + '_stack_highlighter', class: 'e-diagram-highlighter'\n };\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n };\n /**\n * Method used to draw the line \\\n *\n * @returns {void } Method used to draw the line .\\\n *\n * @param {SVGElement} canvas - Provide the SVGElement value.\n * @param {LineAttributes } options - Provide the LineAttributes value.\n * @private\n */\n DiagramRenderer.prototype.drawLine = function (canvas, options) {\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to draw the path \\\n *\n * @returns {void } Method used to draw the path .\\\n *\n * @param {SVGElement} canvas - Provide the canvas value.\n * @param {PathAttributes } options - Provide the PathAttributes value.\n * @private\n */\n DiagramRenderer.prototype.drawPath = function (canvas, options) {\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n };\n /**\n * Method used to render the resize handle \\\n *\n * @returns {void } Method used to render the resize handle .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { ThumbsConstraints } constraints - Provide the constraints value .\n * @param { number} currentZoom - Provide the currentZoom value.\n * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value .\n * @param { Transforms } transform - Provide the transform value.\n * @param { boolean } canMask - Provide the canMask boolean value.\n * @param { number } enableNode - Provide the enableNode value.\n * @param { boolean } nodeConstraints - Provide the nodeConstraints value.\n * @param { boolean } isSwimlane - Provide the isSwimlane boolean value.\n * @param { number } handleSize - Provide the handleSize value.\n * @private\n */\n DiagramRenderer.prototype.renderResizeHandle = function (element, canvas, constraints, currentZoom, selectorConstraints, transform, canMask, enableNode, nodeConstraints, isSwimlane, handleSize) {\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n var height = element.actualSize.height;\n var width = element.actualSize.width;\n if (!isSwimlane &&\n (constraints & ThumbsConstraints.Rotate && canDrawThumbs(this.rendererActions) && (!avoidDrawSelector(this.rendererActions)))) {\n this.renderPivotLine(element, canvas, transform, selectorConstraints, canMask);\n this.renderRotateThumb(element, canvas, transform, selectorConstraints, canMask);\n }\n else {\n if (this.touchMove) {\n var rotateThumb = document.getElementById('rotateThumb');\n if (rotateThumb) {\n rotateThumb.setAttribute('visibility', 'hidden');\n }\n }\n }\n this.renderBorder(element, canvas, transform, enableNode, nodeConstraints, isSwimlane);\n var nodeWidth = element.actualSize.width * currentZoom;\n var nodeHeight = element.actualSize.height * currentZoom;\n if (!nodeConstraints && canDrawThumbs(this.rendererActions) && (!avoidDrawSelector(this.rendererActions))) {\n //Bug 860033: Bpmn text annotation path size not rendered properly while dragging.\n //Added below condition to prevent the resize thumbs for bpmn text annotation.\n if (!element.isTextAnnotation) {\n if (nodeWidth >= 40 && nodeHeight >= 40) {\n //Hide corners when the size is less than 40\n if (selectorConstraints & SelectorConstraints.ResizeNorthWest) {\n this.renderCircularHandle('resizeNorthWest', element, left, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorthWest'), constraints & ThumbsConstraints.ResizeNorthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top left side direction' }, undefined, 'e-diagram-resize-handle e-northwest', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeNorthEast) {\n this.renderCircularHandle('resizeNorthEast', element, left + width, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorthEast'), constraints & ThumbsConstraints.ResizeNorthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top right side direction' }, undefined, 'e-diagram-resize-handle e-northeast', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouthWest) {\n this.renderCircularHandle('resizeSouthWest', element, left, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouthWest'), constraints & ThumbsConstraints.ResizeSouthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom left side direction' }, undefined, 'e-diagram-resize-handle e-southwest', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouthEast) {\n this.renderCircularHandle('resizeSouthEast', element, left + width, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouthEast'), constraints & ThumbsConstraints.ResizeSouthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom right side direction' }, undefined, 'e-diagram-resize-handle e-southeast', handleSize);\n }\n }\n if (selectorConstraints & SelectorConstraints.ResizeNorth) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorth'), constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-diagram-resize-handle e-north', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouth) {\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouth'), constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-diagram-resize-handle e-south', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeWest) {\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, canShowCorner(selectorConstraints, 'ResizeWest'), constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-diagram-resize-handle e-west', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeEast) {\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, canShowCorner(selectorConstraints, 'ResizeEast'), constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-diagram-resize-handle e-east', handleSize);\n }\n }\n }\n };\n /**\n * Method used to render the end point of the handle \\\n *\n * @returns {void } Method used to render the end point of the handle .\\\n *\n * @param {ConnectorModel} selector - Provide the ConnectorModel.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the element.\n * @param { ThumbsConstraints } constraints - Provide the constraints value .\n * @param { SelectorConstraints} selectorConstraints - Provide the selectorConstraints value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { boolean } connectedSource - Provide the connectedSource boolean value.\n * @param { boolean } connectedTarget - Provide the connectedTarget boolean value.\n * @param { boolean } isSegmentEditing - Provide the isSegmentEditing boolean value.\n * @param { boolean } canShowBezierPoints - Provide the canShowBezierPoints boolean value.\n * @param {number} handleSize - Provide the handleSize value.\n * @private\n */\n DiagramRenderer.prototype.renderEndPointHandle = function (selector, canvas, constraints, selectorConstraints, transform, connectedSource, connectedTarget, isSegmentEditing, canShowBezierPoints, handleSize) {\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n var wrapper = selector.wrapper;\n var i;\n var segment;\n this.renderCircularHandle('connectorSourceThumb', wrapper, sourcePoint.x, sourcePoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-endpoint-handle e-sourceend', handleSize);\n this.renderCircularHandle('connectorTargetThumb', wrapper, targetPoint.x, targetPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorTargetThumb'), constraints & ThumbsConstraints.ConnectorTarget, transform, connectedTarget, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-endpoint-handle e-targetend', handleSize);\n if (isSegmentEditing) {\n if ((selector.type === 'Straight') && selector.segments.length > 0) {\n for (i = 0; i < selector.segments.length - 1; i++) {\n segment = selector.segments[parseInt(i.toString(), 10)];\n var className = 'e-diagram-straight-segment-handle';\n this.renderCircularHandle(('segementThumb_' + (i + 1)), wrapper, segment.point.x, segment.point.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, className, handleSize);\n }\n } //824805-Support to modify bezier connector segment thumb shape and style\n else if ((selector.type === 'Bezier') && selector.segments.length > 0) {\n for (i = 0; i < selector.segments.length - 1; i++) {\n segment = selector.segments[parseInt(i.toString(), 10)];\n var className = 'e-diagram-bezier-segment-handle';\n this.renderBezierHandle(('segementThumb_' + (i + 1)), wrapper, segment.point.x, segment.point.y, canvas, true, selector, transform, connectedSource, null, i, className, handleSize);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not\n if (!selector.maxSegmentThumb) {\n for (i = 0; i < selector.segments.length; i++) {\n var seg = selector.segments[parseInt(i.toString(), 10)];\n this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), transform, selector);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is non zero then we have ignore the rendering of\n // first and last segment thumb\n var start = selector.segments.length <= selector.maxSegmentThumb ? 0 : 1;\n var end = selector.segments.length <= selector.maxSegmentThumb\n ? selector.segments.length : selector.segments.length - 1;\n // (EJ2-57115) - If maxSegmentThumb is greater than or equal to 3 means then set start as second segment(1) and end as last before segment\n if (selector.maxSegmentThumb >= 3 && selector.segments.length === 3) {\n start = 1;\n end = selector.segments.length - 1;\n }\n // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set start as 2\n start = selector.segments.length > selector.maxSegmentThumb + 2 ? 2 : start;\n // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set end as last before segment\n end = selector.segments.length > selector.maxSegmentThumb + 2 ? selector.segments.length - 2 : end;\n if (selector.segments.length === 1 && selector.segments[0].points.length <= 2) {\n start = 1;\n end = selector.segments.length;\n }\n for (i = start; i < end; i++) {\n var seg = selector.segments[parseInt(i.toString(), 10)];\n this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), transform, selector);\n }\n }\n }\n }\n if (selector.type === 'Bezier' && canShowBezierPoints) {\n var segmentCount = selector.segments.length - 1;\n var controlPointsVisibility = selector.bezierSettings != null\n ? selector.bezierSettings.controlPointsVisibility : null;\n for (i = 0; i <= segmentCount; i++) {\n var segment_1 = selector.segments[parseInt(i.toString(), 10)];\n var bezierPoint = !Point.isEmptyPoint(segment_1.point1) ? segment_1.point1\n : segment_1.bezierPoint1;\n if (controlPointsVisibility != null && (i === 0 && canShowControlPoints(controlPointsVisibility, 'Source'))\n || (i !== 0 && canShowControlPoints(controlPointsVisibility, 'Intermediate'))) {\n this.renderCircularHandle('bezierPoint_' + (i + 1) + '_1', wrapper, bezierPoint.x, bezierPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), constraints & ThumbsConstraints.ConnectorSource, transform, undefined, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-source', handleSize);\n if (canShowCorner(selectorConstraints, 'ConnectorSourceThumb')) {\n this.renderBezierLine('bezierLine_' + (i + 1) + '_1', wrapper, canvas, segment_1.points[0], !Point.isEmptyPoint(segment_1.point1) ? segment_1.point1 : segment_1.bezierPoint1, transform);\n }\n }\n bezierPoint = !Point.isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2;\n if (controlPointsVisibility != null && (i === segmentCount && canShowControlPoints(controlPointsVisibility, 'Target'))\n || (i !== segmentCount && canShowControlPoints(controlPointsVisibility, 'Intermediate'))) {\n this.renderCircularHandle('bezierPoint_' + (i + 1) + '_2', wrapper, bezierPoint.x, bezierPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorTargetThumb'), constraints & ThumbsConstraints.ConnectorTarget, transform, undefined, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-target', handleSize);\n if (canShowCorner(selectorConstraints, 'ConnectorTargetThumb')) {\n this.renderBezierLine('bezierLine_' + (i + 1) + '_2', wrapper, canvas, segment_1.points[1], !Point.isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2, transform);\n }\n }\n }\n }\n };\n /**\n * Method used to render the orthogonal thumb \\\n *\n * @returns {void } Method used to render the orthogonal thumb .\\\n *\n * @param {string} id - Provide the id for the element.\n * @param {DiagramElement } selector - Provide the selector element.\n * @param { OrthogonalSegment } segment - Provide the segment value .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { boolean } visibility - Provide the visibility value .\n * @param { Transforms } t - Provide the Transforms value.\n * @param { ConnectorModel } connector - Provide the connector value.\n * @private\n */\n DiagramRenderer.prototype.renderOrthogonalThumbs = function (id, selector, segment, canvas, visibility, t, connector) {\n var orientation;\n var visible;\n var length;\n var j = 0;\n var direction;\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not\n if (!connector.maxSegmentThumb) {\n for (j = 0; j < segment.points.length - 1; j++) {\n length = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n //850501-Added below code to check the direction of the segments\n direction = Point.direction(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n visible = (length >= 50 && segment.allowDrag) ? true : false;\n this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t, connector, direction);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb greater then 3 means then we have ignore the rendering of\n // first and last segment thumb\n // Set the start value as 1 if segment points is greater than 3\n var start = segment.points.length < 3 ? 0 : 1;\n // set the end value as segment.points.length - 2 if segment points is greater then 3\n var end = segment.points.length < 3 ? segment.points.length - 1 : segment.points.length - 2;\n start = connector.segments.length === 1 ? start : 0;\n end = connector.segments.length === 1 ? end : segment.points.length - 1;\n for (j = start; j < end; j++) {\n length = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n visible = (length >= 50 && segment.allowDrag) ? true : false;\n this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t, connector, direction);\n }\n }\n };\n /**\n * Method used to render the orthogonal thumb \\\n *\n * @returns {void } Method used to render the orthogonal thumb .\\\n *\n * @param {string} id - Provide the id for the element.\n * @param {DiagramElement } selector - Provide the selector element.\n * @param { Transforms } x - Provide the x value .\n * @param { Transforms } y - Provide the y value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible boolean value.\n * @param { string } orientation - Provide the orientation value.\n * @param { Transforms } t - Provide the Transforms value.\n * @param { ConnectorModel } connector - Provide the connector value.\n * @param { string } direction - Provide the direction of the segment.\n * @private\n */\n DiagramRenderer.prototype.renderOrthogonalThumb = function (id, selector, x, y, canvas, visible, orientation, t, connector, direction) {\n var path;\n var segmentThumbAngle = 0;\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n //824805-Support to modify connector segment thumb shape and style based on constraints\n var inheritsegmentThumbShape = (connector.constraints & ConnectorConstraints.InheritSegmentThumbShape);\n var segmentThumbShape = inheritsegmentThumbShape ? diagram.segmentThumbShape : connector.segmentThumbShape;\n //850501-Added below code to modify connector segment thumb size based on constraints\n var inheritSegmentThumbSize = (connector.constraints & ConnectorConstraints.InheritSegmentThumbSize);\n var segmentThumbSize = inheritSegmentThumbSize ? diagram.segmentThumbSize : connector.segmentThumbSize;\n if (orientation === 'horizontal') {\n path = getSegmentThumbShapeHorizontal(segmentThumbShape);\n }\n else {\n path = getSegmentThumbShapeVertical(segmentThumbShape);\n }\n //850501-Added the below code to change the angles of the segmentThumbShape(arrows) based on the direction\n if (segmentThumbShape === 'Arrow' || segmentThumbShape === 'DoubleArrow' || segmentThumbShape === 'OpenArrow') {\n switch (direction) {\n case 'Bottom':\n case 'Right':\n segmentThumbAngle = 180;\n break;\n default:\n segmentThumbAngle = 0;\n }\n }\n else if (segmentThumbShape === 'Fletch' || segmentThumbShape === 'OpenFetch' || segmentThumbShape === 'IndentedArrow' || segmentThumbShape === 'OutdentedArrow') {\n switch (direction) {\n case 'Bottom':\n segmentThumbAngle = -90;\n break;\n case 'Top':\n segmentThumbAngle = 90;\n break;\n case 'Right':\n segmentThumbAngle = 180;\n break;\n default:\n segmentThumbAngle = 0;\n }\n }\n var options = {\n x: ((x + t.tx) * t.scale) - segmentThumbSize / 2, y: ((y + t.ty) * t.scale) - segmentThumbSize / 2, angle: segmentThumbAngle,\n fill: '#e2e2e2', stroke: 'black', strokeWidth: 1, dashArray: '', data: path,\n width: segmentThumbSize, height: segmentThumbSize, pivotX: 0.5, pivotY: 0.5, opacity: 1, visible: visible, id: id,\n class: 'e-diagram-ortho-segment-handle'\n };\n //850501-Added the below code to adjust size for the segment thumb shape based on the size given\n var absoluteBounds = measurePath(options.data);\n var desiredSize = new Size(options.width, options.height);\n var pathElement = new PathElement();\n options.data = pathElement.updatePath(options.data, absoluteBounds, desiredSize);\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var thumb = document.getElementById(id);\n if (thumb) {\n this.updateSegmentPosition(thumb, options);\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n }\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n }\n };\n /**\n * Method used to render the pivot line line\\\n *\n * @returns {void } Method used to render the pivot line line .\\\n *\n * @param {DiagramElement} element - Provide the diagram element value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SelectorConstraints } selectorConstraints - Provide the selector constraints value.\n * @param { boolean } canMask - Provide the canMask boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderPivotLine = function (element, canvas, transform, selectorConstraints, canMask) {\n var wrapper = element;\n var dashArray = '2,3';\n var visible = (selectorConstraints & SelectorConstraints.Rotate) ? true : false;\n if (canMask) {\n visible = false;\n }\n var options = this.getBaseAttributes(wrapper, transform);\n options.fill = 'None';\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.visible = visible;\n var scale = transform.scale;\n options.x *= scale;\n options.y *= scale;\n options.width *= scale;\n options.height *= scale;\n options.id = 'pivotLine';\n options.class = 'e-diagram-pivot-line';\n var startPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: -20 };\n var endPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: 0 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to render the bezier line for the connector \\\n *\n * @returns {void } Method used to render the bezier line for the connector .\\\n *\n * @param {string} id - Provide the id value for the bezier line.\n * @param { DiagramElement } wrapper - Provide the wrapper for the element.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element .\n * @param { PointModel } start - Provide the pointmodel value.\n * @param { PointModel } end - Provide the pointmodel value.\n * @param { Transforms } transform - Provide the itransform value .\n * @private\n */\n DiagramRenderer.prototype.renderBezierLine = function (id, wrapper, canvas, start, end, transform) {\n var dashArray = '3,3';\n var options = this.getBaseAttributes(wrapper, transform);\n options.id = id;\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.fill = 'None';\n options.class = 'e-diagram-bezier-control-line';\n options.x = 0;\n options.y = 0;\n var scale = transform.scale;\n var x1 = (start.x + transform.tx) * scale;\n var y1 = (start.y + transform.ty) * scale;\n var x2 = (end.x + transform.tx) * scale;\n var y2 = (end.y + transform.ty) * scale;\n var startPoint = { x: x1, y: y1 };\n var endPoint = { x: x2, y: y2 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to render the circular handle for the node element \\\n *\n * @returns {void } Method used to render the circular handle for the node element .\\\n *\n * @param {string} id - Provide the id value.\n * @param { DiagramElement } selector - Provide the selector element value.\n * @param { number } cx - Provide cx value .\n * @param { number } cy - Provide cx value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible property for the handle .\n * @param { number } enableSelector - Provide the value for the enableSelector .\n * @param { Transforms } t - Provide the transform value .\n * @param { boolean } connected - Provide the connected boolean value .\n * @param { boolean } canMask - Provide the canMask boolean value .\n * @param { Object } ariaLabel - Provide the label properties .\n * @param { number } count - Provide the count value .\n * @param { string } className - Provide the class name for this element .\n * @param { number } handleSize - Provide the handle size value .\n *\n * @private\n */\n // Feature (EJ2-44346) Provide support to increase the size of the resize thumb\n DiagramRenderer.prototype.renderCircularHandle = function (id, selector, cx, cy, canvas, visible, enableSelector, t, connected, canMask, ariaLabel, count, className, handleSize) {\n var wrapper = selector;\n var newPoint = { x: cx, y: cy };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = this.getBaseAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n if (count !== undefined) {\n options.id = 'segmentEnd_' + count;\n options.fill = '#e2e2e2';\n }\n else {\n options.fill = connected ? '#8CC63F' : 'white';\n }\n options.cornerRadius = handleSize / 2;\n options.angle = selector.rotateAngle;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.width = handleSize;\n options.height = handleSize;\n // EJ2-65895 - Added below code to calculate the rect x and y if node pivot is not equal to 0.5\n options.x = (newPoint.x + t.tx) * t.scale;\n options.y = (newPoint.y + t.ty) * t.scale;\n options.x = options.x - options.width / 2;\n options.y = options.y - options.height / 2;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var handle = document.getElementById(id);\n if (handle) {\n this.updateResizeHandle(handle, options);\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, true, true, parentSvg, ariaLabel, true, enableSelector);\n }\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, true, true, parentSvg, ariaLabel, true, enableSelector);\n }\n };\n DiagramRenderer.prototype.updateResizeHandle = function (handle, options) {\n var attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width / 2) + ',' + (options.y + options.height / 2) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n setAttributeSvg(handle, attr);\n };\n //824805-Support to modify bezier connector segmentThumbShape\n /**\n * Method used to render the segment thumb shape for Bezier connector \\\n *\n * @returns {void } Method used to render the segment thumb shape for Bezier connector .\\\n *\n * @param {string} id - Provide the id value.\n * @param { DiagramElement } selector - Provide the selector element value.\n * @param { number } cx - Provide cx value .\n * @param { number } cy - Provide cx value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible property for the handle .\n * @param { ConnectorModel } connector - Provide the value for the connector .\n * @param { Transforms } t - Provide the transform value .\n * @param { boolean } connected - Provide the connected boolean value .\n * @param { boolean } canMask - Provide the canMask boolean value .\n * @param { number } count - Provide the count value .\n * @param { string } className - Provide the class name for this element .\n * @param { number } handleSize - Provide the handle size value .\n *\n * @private\n */\n DiagramRenderer.prototype.renderBezierHandle = function (id, selector, cx, cy, canvas, visible, connector, t, connected, canMask, count, className, handleSize) {\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n var wrapper = selector;\n var newPoint = { x: cx, y: cy };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var inheritsegmentThumbShape = (connector.constraints & ConnectorConstraints.InheritSegmentThumbShape);\n var segmentThumbShape = inheritsegmentThumbShape ? diagram.segmentThumbShape : connector.segmentThumbShape;\n //850501-Added below code to modify connector segment thumb size based on constraints\n var inheritSegmentThumbSize = (connector.constraints & ConnectorConstraints.InheritSegmentThumbSize);\n var segmentThumbSize = inheritSegmentThumbSize ? diagram.segmentThumbSize : connector.segmentThumbSize;\n var path = getSegmentThumbShapeVertical(segmentThumbShape);\n var options = this.getBaseAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n if (count !== undefined) {\n options.id = 'segmentEnd_' + count;\n options.fill = '#e2e2e2';\n }\n else {\n options.fill = connected ? '#8CC63F' : 'white';\n }\n options.angle = selector.rotateAngle;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.width = segmentThumbSize;\n options.height = segmentThumbSize;\n // EJ2-65895 - Added below code to calculate the rect x and y if node pivot is not equal to 0.5\n options.data = path;\n options.x = ((newPoint.x + t.tx) * t.scale);\n options.y = ((newPoint.y + t.ty) * t.scale);\n options.x = options.x - options.width / 2;\n options.y = options.y - options.height / 2;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n //850501-Added the below code to adjust size for the segment thumb shape based on the size given\n var absoluteBounds = measurePath(options.data);\n var desiredSize = new Size(options.width, options.height);\n var pathElement = new PathElement();\n options.data = pathElement.updatePath(options.data, absoluteBounds, desiredSize);\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var handle = document.getElementById(id);\n if (handle) {\n this.updateSegmentPosition(handle, options);\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, parentSvg);\n }\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, parentSvg);\n }\n };\n DiagramRenderer.prototype.updateSegmentPosition = function (handle, options) {\n var attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n setAttributeSvg(handle, attr);\n };\n /**\n * Method used to render border for the node element \\\n *\n * @returns {void } Method used to render border for the node element .\\\n *\n * @param {SelectorModel} selector - Provide the selector model instance.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { number } enableNode - Provide enableNode boolean value.\n * @param { boolean } isBorderTickness - Provide the thickness value for the node.\n * @param { boolean } isSwimlane - Provide the isSwimlane boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderBorder = function (selector, canvas, transform, enableNode, isBorderTickness, isSwimlane) {\n var wrapper = selector;\n var options = this.getBaseAttributes(wrapper, transform);\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n options.fill = 'transparent';\n options.stroke = '#097F7F';\n options.strokeWidth = 1.2;\n options.gradient = null;\n options.dashArray = '6,3';\n options.class = 'e-diagram-selector';\n if (isSwimlane) {\n options.class += ' e-diagram-lane';\n }\n options.id = 'borderRect';\n options.id = (this.rendererActions & RendererAction.DrawSelectorBorder) ? 'borderRect_symbol' : 'borderRect';\n if (!enableNode) {\n options.class += ' e-disabled';\n }\n if (isBorderTickness) {\n options.class += ' e-thick-border';\n }\n options.cornerRadius = 0;\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, true, parentSvg);\n };\n /**\n * Method used to render user handle for the node element\\\n *\n * @returns {void } Method used to render user handle for the node element .\\\n *\n * @param {SelectorModel} selectorItem - Provide the selector model instance.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value.\n * @param { HTMLElement } diagramUserHandlelayer - Provide the HTMLElement value.\n * @param { Actions } currentAction - Provide the currentAction value.\n * @param { boolean } inAction - Provide the inAction value.\n * @private\n */\n DiagramRenderer.prototype.renderUserHandler = function (selectorItem, canvas, transform, diagramUserHandlelayer, currentAction, inAction) {\n var wrapper = selectorItem.wrapper;\n var canDraw;\n for (var _i = 0, _a = selectorItem.userHandles; _i < _a.length; _i++) {\n var obj = _a[_i];\n canDraw = true;\n //879279 : Userhandle should be removed on dragging the node/connector in mousemove action\n if ((obj.disableConnectors && selectorItem.connectors.length > 0) ||\n (obj.disableNodes && selectorItem.nodes.length > 0) ||\n (currentAction === 'Drag' && inAction)) {\n canDraw = false;\n }\n var div = document.getElementById(obj.name + '_template_hiddenUserHandle');\n if (div) {\n obj.template = (div.childNodes[0]).cloneNode(true);\n }\n //const newPoint: PointModel;\n var newPoint = getUserHandlePosition(selectorItem, obj, transform);\n newPoint.x = (newPoint.x + transform.tx) * transform.scale;\n newPoint.y = (newPoint.y + transform.ty) * transform.scale;\n if (obj.visible) {\n obj.visible = (selectorItem.constraints & SelectorConstraints.UserHandle) ? true : false;\n }\n if (canDraw) {\n if (obj.pathData) {\n var data = obj.pathData ? obj.pathData : obj.content;\n var option = this.getBaseAttributes(wrapper);\n option.id = obj.name + '_userhandle';\n option.fill = obj.backgroundColor;\n option.stroke = obj.borderColor;\n option.strokeWidth = obj.borderWidth;\n option.centerX = newPoint.x;\n option.centerY = newPoint.y;\n option.radius = obj.size * 0.5;\n option.class = 'e-diagram-userhandle-circle';\n option.angle = 0;\n option.visible = obj.visible;\n option.opacity = 1;\n this.svgRenderer.drawCircle(canvas, option, 1, { 'aria-label': obj.name + 'user handle' });\n var pathPading = 5;\n var arrayCollection = [];\n arrayCollection = processPathData(data);\n arrayCollection = splitArrayCollection(arrayCollection);\n var pathSize = measurePath(data);\n //requiredSize/contentSize\n var scaleX = (obj.size - 0.45 * obj.size) / pathSize.width;\n var scaleY = (obj.size - 0.45 * obj.size) / pathSize.height;\n var newData = transformPath(arrayCollection, scaleX, scaleY, true, pathSize.x, pathSize.y, 0, 0);\n pathSize = measurePath(newData);\n var options = {\n x: newPoint.x - pathSize.width / 2,\n y: newPoint.y - pathSize.height / 2, angle: 0, id: '',\n class: 'e-diagram-userhandle-path', fill: obj.pathColor,\n stroke: obj.backgroundColor, strokeWidth: 0.5, dashArray: '', data: newData,\n width: obj.size - pathPading, height: obj.size - pathPading, pivotX: 0, pivotY: 0, opacity: 1, visible: obj.visible\n };\n this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, undefined, { 'aria-label': obj.name + 'user handle' });\n }\n else if (obj.content) {\n //const handleContent: DiagramNativeElement;\n var handleContent = new DiagramNativeElement(obj.name, this.diagramId);\n handleContent.content = obj.content;\n handleContent.offsetX = newPoint.x;\n handleContent.offsetY = newPoint.y;\n handleContent.id = obj.name + '_shape';\n handleContent.horizontalAlignment = 'Center';\n handleContent.verticalAlignment = 'Center';\n handleContent.visible = obj.visible;\n handleContent.setOffsetWithRespectToBounds(newPoint.x, newPoint.y, 'Fraction');\n handleContent.relativeMode = 'Object';\n handleContent.description = obj.name || 'User handle';\n handleContent.measure(new Size(obj.size, obj.size));\n handleContent.arrange(handleContent.desiredSize);\n this.svgRenderer.drawNativeContent(handleContent, canvas, obj.size, obj.size, this.adornerSvgLayer);\n }\n else if (obj.source) {\n var element = new ImageElement();\n var options = this.getBaseAttributes(element, transform);\n options.width = obj.size;\n options.height = obj.size;\n options.x = newPoint.x - (obj.size / 2);\n options.y = newPoint.y - (obj.size / 2);\n options.sourceWidth = obj.size;\n options.sourceHeight = obj.size;\n options.alignment = element.imageAlign;\n options.source = obj.source;\n options.scale = element.imageScale;\n options.visible = obj.visible;\n options.description = obj.name || 'User handle';\n options.id = obj.name + '_';\n this.renderer.drawImage(canvas, options, this.adornerSvgLayer, false);\n }\n else {\n //const templateContent: DiagramHtmlElement;\n var templateContent = new DiagramHtmlElement(obj.name, this.diagramId);\n templateContent.offsetX = newPoint.x;\n templateContent.offsetY = newPoint.y;\n templateContent.id = obj.name + '_shape';\n templateContent.visible = obj.visible;\n templateContent.relativeMode = 'Object';\n templateContent.template = obj.template;\n templateContent.measure(new Size(obj.size, obj.size));\n templateContent.arrange(templateContent.desiredSize);\n this.svgRenderer.drawHTMLContent(templateContent, diagramUserHandlelayer, undefined, true, undefined);\n }\n }\n }\n };\n /**\n * Method used to render rotate thumb of the diagramnode element \\\n *\n * @returns {void } Method used to render rotate thumb of the diagramnode element .\\\n *\n * @param {DiagramElement} wrapper - Provide the wrapper element value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value.\n * @param { boolean } canMask - Provide the boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderRotateThumb = function (wrapper, canvas, transform, selectorConstraints, canMask) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var element = new PathElement();\n var newPoint;\n var size = new Size();\n size.width = 18;\n size.height = 16;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var visible = (selectorConstraints & SelectorConstraints.Rotate) ? true : false;\n if (canMask) {\n visible = false;\n }\n var data = 'M 16.856144362449648 10.238890446662904 L 18.000144362449646 3.437890446662903' +\n 'L 15.811144362449646 4.254890446662903 C 14.837144362449646 2.5608904466629028 13.329144362449647 ' +\n ' 1.2598904466629026 11.485144362449645 0.5588904466629026 C 9.375144362449646 - 0.24510955333709716 7.071144362449646 ' +\n ' - 0.18010955333709716 5.010144362449646 0.7438904466629028 C 2.942144362449646 1.6678904466629028 1.365144362449646' +\n ' 3.341890446662903 0.558144362449646 5.452890446662903 C - 0.244855637550354 7.567890446662903 - 0.17985563755035394' +\n ' 9.866890446662904 0.7431443624496461 11.930890446662904 C 1.6681443624496461 13.994890446662904 3.343144362449646' +\n ' 15.575890446662903 5.457144362449647 16.380890446662903 C 6.426144362449647 16.7518904466629 7.450144362449647' +\n ' 16.9348904466629 8.470144362449647 16.9348904466629 C 9.815144362449647 16.9348904466629 11.155144362449647 ' +\n '16.6178904466629 12.367144362449647 15.986890446662901 L 11.351144362449647 14.024890446662901 C 9.767144362449647' +\n ' 14.8468904466629 7.906144362449647 14.953890446662902 6.237144362449647 14.3178904466629 C 4.677144362449647' +\n ' 13.7218904466629 3.444144362449647 12.5558904466629 2.758144362449647 11.028890446662901 C 2.078144362449646 ' +\n '9.501890446662903 2.031144362449646 7.802890446662903 2.622144362449646 6.243890446662903 C 3.216144362449646' +\n ' 4.6798904466629025 4.387144362449646 3.442890446662903 5.914144362449646 2.760890446662903 C 7.437144362449646 ' +\n '2.078890446662903 9.137144362449646 2.0298904466629026 10.700144362449645 2.6258904466629027 C 11.946144362449646 ' +\n '3.100890446662903 12.971144362449646 3.9538904466629026 13.686144362449646 5.049890446662903 L 11.540144362449645 ' +\n '5.850890446662903 L 16.856144362449648 10.238890446662904 Z';\n var pivotX = left + wrapper.pivot.x * wrapper.actualSize.width;\n var pivotY = top;\n pivotX = (pivotX + transform.tx) * transform.scale;\n pivotY = (pivotY + transform.ty) * transform.scale;\n newPoint = { x: pivotX - size.width * 0.5, y: pivotY - 30 - size.height * 0.5 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, (transform.tx + wrapper.offsetX) * transform.scale, (transform.ty + wrapper.offsetY) * transform.scale);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = {\n x: newPoint.x,\n y: newPoint.y,\n angle: wrapper.rotateAngle + wrapper.parentTransform,\n fill: '#231f20', stroke: 'black', strokeWidth: 0.5, dashArray: '', data: data,\n width: 20, height: 20, pivotX: 0, pivotY: 0, opacity: 1, visible: visible, id: wrapper.id, class: 'e-diagram-rotate-handle'\n };\n options.id = 'rotateThumb';\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var thumb = document.getElementById('rotateThumb');\n if (thumb) {\n this.updateSegmentPosition(thumb, options);\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, undefined, { 'aria-label': 'Thumb to rotate the selected object' });\n }\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, undefined, { 'aria-label': 'Thumb to rotate the selected object' });\n }\n };\n /**\n * Method used to render the path element for the diagram \\\n *\n * @returns {void } Method used to render the path element for the diagram .\\\n *\n * @param {PathElement} element - Provide the path element of the diagram .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the parent SVG element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { boolean } isPreviewNode - Provide the boolean value .\n * @param {object} portCenterPoint - provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.renderPathElement = function (element, canvas, transform, parentSvg, fromPalette, isPreviewNode, portCenterPoint) {\n var options = this.getBaseAttributes(element, transform, isPreviewNode);\n options.data = element.absolutePath;\n options.data = element.absolutePath;\n // Feature 826644: Support to add ports to the connector. Added below condition to position port based on its alignment and offset.\n if (element.isPathPort && portCenterPoint) {\n options.x = portCenterPoint[element.id] ? portCenterPoint[element.id].cx : options.x;\n options.y = portCenterPoint[element.id] ? portCenterPoint[element.id].cy : options.y;\n element.bounds.x = options.x;\n element.bounds.y = options.y;\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram = void 0;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n if (diagram.eventHandler.currentAction !== 'PortDrag') {\n element.offsetX = options.x + (element.width / 2);\n element.offsetY = options.y + (element.height / 2);\n }\n }\n }\n var ariaLabel = element.description ? element.description : element.id;\n if (!this.isSvgMode) {\n options.x = element.flipOffset.x ? element.flipOffset.x : options.x;\n options.y = element.flipOffset.y ? element.flipOffset.y : options.y;\n }\n if (element.isExport) {\n var pathBounds = element.absoluteBounds;\n //Bug 857388: Connector with bridging is not properly exported.\n //Below we save the arc values of bridge and use it in renderPath method.\n var collection = processPathData(options.data);\n // Get r1 and r2 values for 'A' commands\n var arc = this.findAndStoreArcValues(collection);\n options.arc = arc;\n options.data = updatePath(element, pathBounds, undefined, options);\n }\n this.renderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel);\n };\n // Function to filter 'A' commands and extract r1 and r2 values\n DiagramRenderer.prototype.findAndStoreArcValues = function (arr) {\n var rValues = [];\n arr.forEach(function (obj) {\n if (obj.command === 'A') {\n // Store r1 and r2 values in an object\n var rObj = { r1: obj.r1 / 2, r2: obj.r2 / 2 };\n rValues.push(rObj);\n }\n });\n // Return array of r1 and r2 values\n return rValues;\n };\n /**\n * Method used to update the grid line for the diagram \\\n *\n * @returns {void } Method used to update the grid line for the diagram .\\\n *\n * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram .\n * @param { SVGSVGElement } gridSvg - Provide the SVG grid element value.\n * @param { Transforms } t - Provide the transform value .\n * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property .\n * @param { RulerModel } hRuler - Provide the horizontal ruler property value .\n * @param { RulerModel } vRuler - Provide the vertical ruler property value .\n * @private\n */\n DiagramRenderer.prototype.renderSvgGridlines = function (snapSettings, gridSvg, t, rulerSettings, hRuler, vRuler) {\n var pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern');\n var defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs');\n defs.setAttribute('id', this.diagramId + '_grid_pattern_defn');\n if (snapSettings.constraints & SnapConstraints.ShowHorizontalLines ||\n snapSettings.constraints & SnapConstraints.ShowVerticalLines) {\n pattern.setAttribute('id', this.diagramId + '_pattern');\n }\n var hWidth = 0;\n var hHeight = 0;\n var hSegmentwidth = 0;\n var vSegmentwidth = 0;\n var scale = 1;\n var isRulerGrid = false;\n var isLine = snapSettings.gridType === 'Lines';\n var verticalLineIntervals = isLine ?\n snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals;\n var horizontalLineIntervals = isLine ?\n snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals;\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler && vRuler) {\n hSegmentwidth = vRuler.updateSegmentWidth(t.scale);\n vSegmentwidth = hRuler.updateSegmentWidth(t.scale);\n snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval];\n snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval];\n isRulerGrid = true;\n }\n else {\n for (var i = 0; i < verticalLineIntervals.length; i = i + 1) {\n hWidth += verticalLineIntervals[parseInt(i.toString(), 10)];\n }\n for (var i = 0; i < horizontalLineIntervals.length; i = i + 1) {\n hHeight += horizontalLineIntervals[parseInt(i.toString(), 10)];\n }\n scale = this.scaleSnapInterval(snapSettings, t.scale);\n }\n hWidth = isRulerGrid ? vSegmentwidth : hWidth * scale;\n hHeight = isRulerGrid ? hSegmentwidth : hHeight * scale;\n var attr = {\n id: this.diagramId + '_pattern', x: 0, y: 0, width: hWidth,\n height: hHeight, patternUnits: 'userSpaceOnUse'\n };\n setAttributeSvg(pattern, attr);\n this.horizontalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals);\n this.verticalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals);\n defs.appendChild(pattern);\n gridSvg.appendChild(defs);\n };\n DiagramRenderer.prototype.horizontalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, intervals) {\n var space = 0;\n var dashArray = [];\n var hLine;\n if (snapSettings.constraints & SnapConstraints.ShowHorizontalLines) {\n if (snapSettings.horizontalGridlines.lineDashArray) {\n dashArray = this.renderer.parseDashArray(snapSettings.horizontalGridlines.lineDashArray);\n }\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler) {\n intervals = this.updateLineIntervals(intervals, rulerSettings, vRuler, hHeight, isLine);\n }\n intervals = getInterval(intervals, isLine);\n for (var i = 0; i < intervals.length; i = i + 2) {\n space = getSpaceValue(intervals, isLine, i, space);\n var spaceY = 0;\n hLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle');\n var attr = void 0;\n var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space;\n d = isRulerGrid ? d : d * scale;\n if (isLine) {\n if (dashArray.toString() === '') {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.horizontalGridlines.lineColor\n };\n }\n else {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)], 'stroke': snapSettings.horizontalGridlines.lineColor,\n 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'dashArray': dashArray.toString()\n };\n }\n setAttributeSvg(hLine, attr);\n pattern.appendChild(hLine);\n space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)];\n }\n else {\n this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, true);\n space += intervals[parseInt(i.toString(), 10)];\n }\n }\n }\n };\n DiagramRenderer.prototype.renderDotGrid = function (i, pattern, snapSettings, spacey, d, scale, isHorizontal) {\n var intervals = !isHorizontal ?\n snapSettings.horizontalGridlines.dotIntervals : snapSettings.verticalGridlines.dotIntervals;\n intervals = getInterval(intervals, false);\n var r;\n var hLine;\n //const doubleRadius: boolean;\n var dy;\n var attr;\n for (var j = 1; j < intervals.length; j = j + 2) {\n r = j === intervals.length - 1 ? intervals[0] : intervals[j - 1];\n hLine = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n dy = spacey;\n dy = dy * scale;\n attr = {\n 'cx': isHorizontal ? dy : d, 'cy': isHorizontal ? d : dy, 'fill': snapSettings.horizontalGridlines.lineColor, 'r': r\n };\n setAttributeSvg(hLine, attr);\n pattern.appendChild(hLine);\n spacey += intervals[parseInt(j.toString(), 10)] + intervals[j - 1];\n }\n };\n DiagramRenderer.prototype.verticalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, intervals) {\n var space = 0;\n var dashArray = [];\n var vLine;\n if (snapSettings.constraints & SnapConstraints.ShowVerticalLines) {\n if (snapSettings.verticalGridlines.lineDashArray) {\n dashArray = this.renderer.parseDashArray(snapSettings.verticalGridlines.lineDashArray);\n }\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler) {\n intervals = this.updateLineIntervals(intervals, rulerSettings, hRuler, hWidth, isLine);\n }\n var spaceY = 0;\n intervals = getInterval(intervals, isLine);\n for (var i = 0; i < intervals.length; i = i + 2) {\n space = getSpaceValue(intervals, isLine, i, space);\n var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space;\n d = isRulerGrid ? d : d * scale;\n vLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle');\n var attr = void 0;\n if (isLine) {\n if (dashArray.toString() === '') {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.verticalGridlines.lineColor\n };\n }\n else {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.verticalGridlines.lineColor,\n 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z',\n 'dashArray': dashArray.toString()\n };\n }\n setAttributeSvg(vLine, attr);\n pattern.appendChild(vLine);\n space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)];\n }\n else {\n this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, false);\n space += intervals[parseInt(i.toString(), 10)];\n }\n }\n }\n };\n /**\n * Method used to update the grid line for the diagram \\\n *\n * @returns {void } Method used to update the grid line for the diagram .\\\n *\n * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram .\n * @param { SVGSVGElement } svgGrid - Provide the SVG grid element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property .\n * @param { RulerModel } hRuler - Provide the horizontal ruler property value .\n * @param { RulerModel } vRuler - Provide the vertical ruler property value .\n * @private\n */\n DiagramRenderer.prototype.updateGrid = function (snapSettings, svgGrid, transform, rulerSettings, hRuler, vRuler) {\n var grid = svgGrid.getElementById(this.diagramId + '_grid_rect');\n //let i: number;\n var isRulerGrid = false;\n if (grid) {\n var pattern = svgGrid.getElementById(this.diagramId + '_pattern');\n if (pattern) {\n pattern.parentNode.removeChild(pattern);\n }\n var hSegmentwidth = 0;\n var vSegmentwidth = 0;\n var scale = 1;\n var isLine = snapSettings.gridType === 'Lines';\n var verticalLineIntervals = isLine ?\n snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals;\n var horizontalLineIntervals = isLine ?\n snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals;\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler && hRuler) {\n hSegmentwidth = vRuler.updateSegmentWidth(transform.scale);\n vSegmentwidth = hRuler.updateSegmentWidth(transform.scale);\n isRulerGrid = true;\n snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval];\n snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval];\n }\n else {\n scale = this.scaleSnapInterval(snapSettings, transform.scale);\n }\n var height = 0;\n for (var j = 0; j < horizontalLineIntervals.length; j = j + 1) {\n height += horizontalLineIntervals[parseInt(j.toString(), 10)];\n }\n var width = 0;\n for (var j = 0; j < verticalLineIntervals.length; j = j + 1) {\n width += verticalLineIntervals[parseInt(j.toString(), 10)];\n }\n var attr = {\n x: -transform.tx * transform.scale,\n y: -transform.ty * transform.scale\n };\n setAttributeSvg(grid, attr);\n width = isRulerGrid ? vSegmentwidth : width * scale;\n height = isRulerGrid ? hSegmentwidth : height * scale;\n attr = {\n id: this.diagramId + '_pattern', x: 0, y: 0, width: width,\n height: height, patternUnits: 'userSpaceOnUse'\n };\n pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern');\n setAttributeSvg(pattern, attr);\n this.horizontalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals);\n this.verticalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals);\n var defs = svgGrid.getElementById(this.diagramId + '_grid_pattern_defn');\n if (defs) {\n defs.appendChild(pattern);\n }\n }\n };\n DiagramRenderer.prototype.updateLineIntervals = function (intervals, rulerSettings, ruler, segmentWidth, isLine) {\n var newInterval = [];\n var tickInterval = segmentWidth / ruler.interval;\n var interval = isLine ? ruler.interval : ruler.interval + 1;\n for (var i = 0; i < interval * 2; i++) {\n if (i % 2 === 0) {\n newInterval[parseInt(i.toString(), 10)] = isLine ? ((i === 0) ? 1.25 : 0.25) : 0;\n }\n else {\n newInterval[parseInt(i.toString(), 10)] = isLine ? (tickInterval - newInterval[i - 1]) : tickInterval;\n }\n }\n return newInterval;\n };\n DiagramRenderer.prototype.scaleSnapInterval = function (snapSettings, scale) {\n if (scale >= 2) {\n while (scale >= 2) {\n scale /= 2;\n }\n }\n else if (scale <= 0.5) {\n while (scale <= 0.5) {\n scale *= 2;\n }\n }\n var i;\n snapSettings.horizontalGridlines.scaledIntervals = snapSettings.horizontalGridlines.snapIntervals;\n snapSettings.verticalGridlines.scaledIntervals = snapSettings.verticalGridlines.snapIntervals;\n if (scale !== 1) {\n var gridlines = snapSettings.horizontalGridlines;\n gridlines.scaledIntervals = [];\n for (i = 0; i < gridlines.snapIntervals.length; i++) {\n gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale;\n }\n gridlines = snapSettings.verticalGridlines;\n gridlines.scaledIntervals = [];\n for (i = 0; i < gridlines.snapIntervals.length; i++) {\n gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale;\n }\n }\n return scale;\n };\n /**\n * Method used to render the text element \\\n *\n * @returns {void }Method used to render the text element .\\\n *\n * @param {TextElement} element - Provide the text element .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { object } centerPoint - Provide the center point value .\n * @private\n */\n DiagramRenderer.prototype.renderTextElement = function (element, canvas, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform, parentSvg, fromPalette, centerPoint) {\n var options = this.getBaseAttributes(element, transform);\n if (centerPoint) {\n //Bug 827039: Bezier annotation content alignment is not working properly.\n // Removed -2 cx-2 and cy-2 from the below two line to resolve the alignment issue.\n options.x = centerPoint[element.id] ? centerPoint[element.id].cx : options.x;\n options.y = centerPoint[element.id] ? centerPoint[element.id].cy : options.y;\n // (EJ2-56874) - Set the calculated x and y position to the bezier connector annotation's(text element) bounds x,y position\n element.bounds.x = options.x;\n element.bounds.y = options.y;\n // (EJ2-58802) - Calculate the center point x and y with the element export scale value if element is in export mode\n if (element.isExport) {\n options.x = options.x * Math.min(element.exportScaleValue.x || element.exportScaleValue.y);\n options.y = options.y * Math.min(element.exportScaleValue.x || element.exportScaleValue.y);\n }\n }\n options.cornerRadius = 0;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textWrapping = element.style.textWrapping;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.wrapBounds = element.wrapBounds;\n options.childNodes = element.childNodes;\n options.isHorizontalLane = element.isLaneOrientation;\n options.id = element.id ? element.id : randomId();\n if (element.isLaneOrientation) {\n options.parentOffsetX = this.groupElement.offsetX;\n options.parentOffsetY = this.groupElement.offsetY;\n options.parentWidth = this.groupElement.actualSize.width;\n options.parentHeight = this.groupElement.actualSize.height;\n }\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = element.style.fill;\n var ariaLabel = element.description ? element.description : element.content ? element.content : element.id;\n if ((element.style.textWrapping === 'Wrap' || element.style.textWrapping === 'WrapWithOverflow') &&\n this.groupElement && options.height > this.groupElement.actualSize.height &&\n (element.style.textOverflow === 'Clip' || element.style.textOverflow === 'Ellipsis')) {\n options.y = options.y + (options.height - this.groupElement.actualSize.height) / 2;\n }\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n this.renderer.drawText(canvas, options, parentSvg, ariaLabel, this.diagramId, (element.isExport && Math.min(element.exportScaleValue.x || element.exportScaleValue.y)), this.groupElement);\n if (this.isSvgMode) {\n element.doWrap = false;\n }\n };\n DiagramRenderer.prototype.renderNativeElement = function (element, canvas, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform, parentSvg, fromPalette) {\n var templateWidth;\n var templateHeight;\n var nativeSvg = this.getParentSvg(element, undefined, canvas) || parentSvg;\n var nativeLayer = this.getParentElement(element, canvas, nativeSvg).g || canvas;\n var options = this.getBaseAttributes(element, transform);\n options.fill = 'transparent';\n options.cornerRadius = element.cornerRadius;\n options.stroke = 'transparent';\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n switch (element.scale) {\n case 'None':\n templateWidth = element.contentSize.width;\n templateHeight = element.contentSize.height;\n break;\n case 'Stretch':\n templateWidth = element.actualSize.width;\n templateHeight = element.actualSize.height;\n break;\n case 'Meet':\n if (element.actualSize.width <= element.actualSize.height) {\n templateWidth = templateHeight = element.actualSize.width;\n }\n else {\n templateWidth = templateHeight = element.actualSize.height;\n }\n break;\n case 'Slice':\n if (element.actualSize.width >= element.actualSize.height) {\n templateWidth = templateHeight = element.actualSize.width;\n }\n else {\n templateWidth = templateHeight = element.actualSize.height;\n }\n break;\n }\n if (this.svgRenderer) {\n this.svgRenderer.drawNativeContent(element, nativeLayer, templateHeight, templateWidth, nativeSvg);\n }\n };\n DiagramRenderer.prototype.renderHTMLElement = function (element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue) {\n var options = this.getBaseAttributes(element, transform);\n options.fill = 'transparent';\n options.cornerRadius = element.cornerRadius;\n options.stroke = 'transparent';\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n if (this.svgRenderer) {\n this.svgRenderer.drawHTMLContent(element, htmlLayer.children[0], transform, isDiagramChild(htmlLayer), indexValue);\n }\n };\n /**\n * Method used to render the image element \\\n *\n * @returns {void }Method used to render the image element .\\\n *\n * @param {ImageElement} element - Provide the image element .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderImageElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n // let sx: number; let sy: number;\n var imageWidth;\n var imageHeight;\n var sourceWidth;\n var sourceHeight;\n var contentWidth = element.contentSize.width;\n var contentHeight = element.contentSize.height;\n var widthRatio = options.width / contentWidth;\n var heightRatio = options.height / contentHeight;\n var ratio;\n if (element.stretch === 'Stretch') {\n // 909174: Image node is not exported properly Issue Fix\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n }\n else {\n switch (element.stretch) {\n case 'Meet':\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n options.x += Math.abs(options.width - imageWidth) / 2;\n options.y += Math.abs(options.height - imageHeight) / 2;\n break;\n case 'Slice':\n ratio = Math.max(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n sourceWidth = options.width / imageWidth * contentWidth;\n sourceHeight = options.height / imageHeight * contentHeight;\n break;\n case 'None':\n imageWidth = contentWidth;\n imageHeight = contentHeight;\n break;\n }\n }\n options.width = imageWidth;\n options.height = imageHeight;\n //Commented for code coverage\n //(options as ImageAttributes).sourceX = sx;\n //(options as ImageAttributes).sourceY = sy;\n options.sourceWidth = sourceWidth;\n options.sourceHeight = sourceHeight;\n options.source = element.source;\n options.alignment = element.imageAlign;\n options.scale = element.imageScale;\n options.description = element.description ? element.description : element.id;\n this.renderer.drawImage(canvas, options, parentSvg, fromPalette);\n };\n /**\n * Method used to render the container \\\n *\n * @returns {void} Method used to render the container .\\\n *\n * @param {Container} group - Provide the container .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { HTMLElement } htmlLayer - Provide the html layer element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } createParent - Provide the boolean value .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { number } indexValue - Provide the indexValue value .\n * @param { boolean } isPreviewNode - Provide the boolean value .\n * @param { object } centerPoint - Provide the centerPoint value .\n * @param {object} portCenterPoint - provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.renderContainer = function (group, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint) {\n var svgParent = { svg: parentSvg, g: canvas };\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n if (this.diagramId) {\n parentSvg = this.getParentSvg(group) || parentSvg;\n if (this.isSvgMode) {\n //const groupElement: HTMLCanvasElement | SVGElement;\n // eslint-disable-next-line max-len\n var groupElement = this.getParentElement(group, canvas, parentSvg, indexValue).g || canvas;\n parentSvg = this.getParentSvg(this.hasNativeParent(group.children)) || parentSvg;\n var svgNativeParent = this.getParentElement(this.hasNativeParent(group.children), groupElement, parentSvg, indexValue);\n svgParent.svg = svgNativeParent.svg || parentSvg;\n svgParent.g = svgNativeParent.g || groupElement;\n if (createParent) {\n if (parentSvg) {\n if (!parentSvg.getElementById(svgParent.g.id)) {\n canvas.appendChild(svgParent.g);\n }\n }\n canvas = svgParent.g;\n }\n else {\n canvas = svgParent.g;\n }\n }\n }\n this.renderRect(group, canvas, transform, parentSvg);\n this.groupElement = group;\n if (group.hasChildren()) {\n var parentG = void 0;\n var svgParent_1;\n for (var _i = 0, _a = group.children; _i < _a.length; _i++) {\n var child = _a[_i];\n parentSvg = this.getParentSvg(this.hasNativeParent(group.children) || child) || parentSvg;\n if (this.isSvgMode) {\n svgParent_1 = this.getParentElement(this.hasNativeParent(group.children) || child, canvas, parentSvg);\n parentG = svgParent_1.g || canvas;\n if (svgParent_1.svg) {\n parentSvg = svgParent_1.svg;\n }\n }\n if (!this.isSvgMode) {\n child.flip = group.flip;\n }\n this.renderElement(child, parentG || canvas, htmlLayer, transform, parentSvg, true, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint);\n if (child instanceof TextElement && parentG && !(group.elementActions & ElementAction.ElementIsGroup)) {\n this.renderFlipElement(child, parentG, child.flip);\n }\n //EJ2-826617 - for BPMN node label\n if (child instanceof TextElement && parentG && (group.elementActions & ElementAction.ElementIsGroup)) {\n this.renderFlipElement(child, parentG, child.flip);\n }\n if ((child.elementActions & ElementAction.ElementIsPort) && parentG) {\n //EJ2-826617 - for BPMN node port\n if (parentG.id.includes('bpmn')) {\n this.renderFlipElement(group, parentG, child.flip);\n child.flip = 'None';\n }\n else {\n this.renderFlipElement(group, parentG, child.flip);\n }\n }\n //EJ2-826617 - for BPMN node child rendering\n if (!(child instanceof TextElement) &&\n (group.elementActions & ElementAction.ElementIsGroup) && !(child.elementActions & ElementAction.ElementIsPort)\n && parentG) {\n // EJ2-907739-Flipping the group node does not rotate the child nodes\n if (child.flip === 'None') {\n this.renderFlipElement(child, parentG || canvas, group.flip);\n }\n }\n }\n var selectedNode = void 0;\n if (diagram && diagram.selectedItems && diagram.selectedItems.nodes\n && diagram.selectedItems.nodes.length > 0) {\n selectedNode = diagram.selectedItems.nodes[0];\n }\n var innerNodeContent = void 0;\n var innerLabelContent = void 0;\n var isNodeSelected = false;\n var Node_1;\n if (diagram && diagram.selectedItems) {\n Node_1 = diagram.getObject(group.id);\n }\n if (group.flip !== 'None') {\n selectedNode = Node_1;\n }\n // EJ2-71981 - Flip mode \"Port\" is not working properly while dragging multiselected node\n // Below code to set selected node value\n if (group.flip === 'None') {\n selectedNode = Node_1;\n }\n if (selectedNode && selectedNode.flipMode) {\n isNodeSelected = true;\n }\n if (!(group.elementActions & ElementAction.ElementIsGroup) && diagram instanceof Diagram && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') {\n if (isNodeSelected && selectedNode) {\n if (group.children && group.children[0] instanceof DiagramNativeElement) {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element');\n }\n else {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement');\n }\n //Below code to check and flip the node.\n if (!(group.children[0] instanceof DiagramNativeElement) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' && selectedNode.flipMode !== 'PortAndLabel' && selectedNode.flipMode !== 'LabelText' && selectedNode.flipMode !== 'PortAndLabelText' && selectedNode.flipMode !== 'LabelAndLabelText' || (group.children[0] instanceof DiagramNativeElement && selectedNode.flipMode === 'Port')) {\n this.renderFlipElement(group, innerNodeContent, selectedNode.flip);\n return;\n }\n //Below code to check and flip the node except for flip mode Port.\n else if (group.children[0] instanceof DiagramNativeElement && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n if (group.flip !== 'None' && selectedNode.flipMode === 'None') {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the text element in the node.\n else if (group.flip !== 'None' && (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (group.children[0] instanceof DiagramNativeElement && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n return;\n }\n }\n }\n //Below code to check and flip for flip mode all in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'All') {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n }\n }\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the element for None in the node.\n else {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n }\n }\n //EJ2-826617 - Flip and flip mode option for BPMN node\n if ((group.elementActions & ElementAction.ElementIsGroup) && diagram instanceof Diagram && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') {\n if (isNodeSelected && selectedNode) {\n if (group.children && group.children[0] instanceof DiagramNativeElement) {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element');\n }\n else {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement');\n }\n //Below code to check and flip the node.\n if (!(group.children[0] instanceof DiagramNativeElement) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' && selectedNode.flipMode !== 'PortAndLabel' && selectedNode.flipMode !== 'LabelText' && selectedNode.flipMode !== 'PortAndLabelText' && selectedNode.flipMode !== 'LabelAndLabelText' || (group.children[0] instanceof DiagramNativeElement && selectedNode.flipMode === 'Port')) {\n this.renderFlipElement(group, innerNodeContent, selectedNode.flip);\n return;\n }\n //Below code to check and flip the node except for flip mode Port.\n else if (group.children[0] instanceof DiagramNativeElement && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n if (group.flip !== 'None' && selectedNode.flipMode === 'None') {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the text element in the node.\n else if (group.flip !== 'None' && (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (group.children[0] instanceof DiagramNativeElement && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n return;\n }\n }\n }\n //Below code to check and flip for flip mode all in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'All') {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n }\n }\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the element for None in the node.\n else {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n }\n }\n }\n };\n /**\n * Method used to flip the text element \\\n *\n * @returns {void} Method used to flip the text element.\\\n *\n * @param {DiagramElement} element - Provide the node element.\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the text canvas element.\n * @param { DiagramElement } textElement - Provide the text element.\n * @param { FlipDirection } flip - Provide the node flip direction.\n * @param { FlipMode } flipMode - Provide the node flipMode.\n */\n DiagramRenderer.prototype.renderFlipTextElement = function (element, canvas, textElement, flip, flipMode) {\n var attr = {};\n var scaleX = 1;\n var scaleY = 1;\n var posX = 0;\n var posY = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (flip !== 'None') {\n // Fetch annotation offset\n var textPos = textElement.getAbsolutePosition(textElement.desiredSize);\n if (textPos) {\n // Inverting and translating Annotation\n if (flipMode === 'All' || flipMode === 'LabelAndLabelText') {\n if (flip === 'Horizontal' || flip === 'Both') {\n posX = element.bounds.center.x;\n offsetX = -element.bounds.center.x;\n scaleX = -1;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n posY = element.bounds.center.y;\n offsetY = -element.bounds.center.y;\n scaleY = -1;\n }\n if (flip === 'Horizontal' || flip === 'Vertical') {\n var angle = Math.sin(element.rotateAngle * Math.PI / 180);\n //918299 - Issue with Polygon Shape Node Rotation After Grouping and Flipping\n if (textPos.y) {\n offsetX += -element.desiredSize.height * angle * (-2 * textPos.y / textElement.desiredSize.height + 1);\n }\n if (textPos.x) {\n offsetY += element.desiredSize.width * angle * (-2 * textPos.x / textElement.desiredSize.width + 1);\n }\n }\n attr = {\n 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ','\n + scaleY + ') translate(' + offsetX + ',' + offsetY + ')'\n };\n }\n // Inverting Annotation without flipping position\n else if (flipMode === 'LabelText' || flipMode === 'PortAndLabelText') {\n if (flip === 'Horizontal' || flip === 'Both') {\n posX = textElement.offsetX;\n offsetX = -textElement.offsetX;\n scaleX = -1;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n posY = textElement.offsetY;\n offsetY = -textElement.offsetY;\n scaleY = -1;\n }\n attr = {\n 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ','\n + scaleY + ') translate(' + offsetX + ',' + offsetY + ')'\n };\n }\n // Translating Annotation\n else if (flipMode === 'PortAndLabel' || flipMode === 'Label') {\n var labelPosX = 0;\n var labelPosY = 0;\n var labelPos = this.flipLabel(element, textElement, textPos, flip);\n labelPosX = labelPos.x - textElement.offsetX;\n labelPosY = labelPos.y - textElement.offsetY;\n attr = { 'transform': 'translate(' + labelPosX + ',' + labelPosY + ')' };\n }\n }\n }\n else {\n attr = {\n 'transform': 'translate(' + 0 + ',' + 0 + ')'\n };\n }\n this.setFlipAttributes(element, canvas, attr, scaleX, scaleY);\n };\n DiagramRenderer.prototype.renderFlipElement = function (element, canvas, flip) {\n var attr = {};\n var scaleX = 1;\n var scaleY = 1;\n var posX = 0;\n var posY = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (flip !== 'None') {\n if (flip === 'Horizontal' || flip === 'Both') {\n posX = element.bounds.center.x;\n offsetX = -element.bounds.center.x;\n scaleX = -1;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n posY = element.bounds.center.y;\n offsetY = -element.bounds.center.y;\n scaleY = -1;\n }\n attr = {\n 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ','\n + scaleY + ') translate(' + offsetX + ',' + offsetY + ')'\n };\n }\n else {\n attr = {\n 'transform': 'translate(' + 0 + ',' + 0 + ')'\n };\n }\n this.setFlipAttributes(element, canvas, attr, scaleX, scaleY);\n };\n DiagramRenderer.prototype.setFlipAttributes = function (element, canvas, attr, scaleX, scaleY) {\n if (attr) {\n if (element && element.children &&\n element.children.length && (element.children[0] instanceof DiagramHtmlElement)) {\n var id = canvas.id.split('_preview');\n var layer = document.getElementById(id[0] + '_html_div') ||\n (getHTMLLayer(this.diagramId).children[0]);\n canvas = layer.querySelector(('#' + element.id + '_content_html_element'));\n if (canvas) {\n canvas.style.transform =\n 'scale(' + scaleX + ',' + scaleY + ')' + 'rotate(' + (element.rotateAngle + element.parentTransform) + 'deg)';\n }\n }\n else {\n setAttributeSvg(canvas, attr);\n }\n }\n };\n /**\n * Calculates Flipped Position of textElement considering annotation offset\n *\n * @returns {PointModel} - flipped point of textElement current point\n *\n * @param {NodeModel} element - Provide node wrapper element containing the text element.\n * @param {TextElement} textElement - Provide the textElememt to flip.\n * @param {PointModel} labelPos - Provide the annotation offset.\n * @param {FlipDirection} flip - Provide the node flip direction.\n */\n DiagramRenderer.prototype.flipLabel = function (element, textElement, labelPos, flip) {\n var flippedOffset;\n if (flip !== 'None') {\n var flippedOffsetX = void 0;\n var flippedOffsetY = void 0;\n // Node's topLeft Position\n var topLeft = {\n x: element.offsetX - element.desiredSize.width / 2,\n y: element.offsetY - element.desiredSize.height / 2\n };\n flippedOffsetX = topLeft.x + (element.desiredSize.width * ((labelPos.x / textElement.desiredSize.width)));\n flippedOffsetY = topLeft.y + (element.desiredSize.height * ((labelPos.y / textElement.desiredSize.height)));\n if (flip === 'Both' || flip === 'Horizontal') {\n flippedOffsetX = topLeft.x + (element.desiredSize.width * (1 - (labelPos.x / textElement.desiredSize.width)));\n }\n if (flip === 'Vertical' || flip === 'Both') {\n flippedOffsetY = topLeft.y + (element.desiredSize.height * (1 - (labelPos.y / textElement.desiredSize.height)));\n }\n // Flipped Position\n flippedOffset = { x: flippedOffsetX, y: flippedOffsetY };\n // FlippedPoint after rotating with node offset as its pivot\n flippedOffset = rotatePoint(element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY, flippedOffset);\n }\n return flippedOffset;\n };\n /**\n * Method used to check the native parent \\\n *\n * @returns {void} Method used to check the native parent .\\\n *\n * @param { DiagramElement[]} children - Provide the diagram element .\n * @param { number} count - Provide the count value .\n * @private\n */\n DiagramRenderer.prototype.hasNativeParent = function (children, count) {\n if (children && children.length > 0 && (count || 0 < 3)) {\n var child = children[0];\n if (child instanceof DiagramNativeElement) {\n return child;\n }\n else if (child.children && child.children.length) {\n this.hasNativeParent(child.children, count++ || 0);\n }\n }\n return undefined;\n };\n /**\n * Method used the draw the reactangle for the diagram \\\n *\n * @returns {void} Method used the draw the reactangle for the diagram .\\\n *\n * @param { SVGElement} element - Provide the SVG elements .\n * @param { RectAttributes} canvas - Provide the Canvas element .\n * @param { RectAttributes} transform - Provide transform value for the node .\n * @param { RectAttributes} parentSvg -provide the parent SVG .\n * @param { RectAttributes} isPreviewNode - Provide the preview boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderRect = function (element, canvas, transform, parentSvg, isPreviewNode) {\n var options = this.getBaseAttributes(element, transform, isPreviewNode);\n options.cornerRadius = element.cornerRadius || 0;\n if (element.isExport) {\n options.cornerRadius *= element.exportScaleValue.x;\n }\n var ariaLabel = element.description ? element.description : element.id;\n this.renderer.drawRectangle(canvas, options, this.diagramId, element.isExport, undefined, parentSvg, ariaLabel);\n };\n /**\n * Method used the draw the reactangle for the diagram \\\n *\n * @returns {void} Method used the draw the reactangle for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG elements .\n * @param { RectAttributes} options - Provide the attributes to draw the rectangle .\n * @private\n */\n DiagramRenderer.prototype.drawRect = function (canvas, options) {\n options.cornerRadius = 0;\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId);\n };\n /**\n * Will get the base attributes for all the elements \\\n *\n * @returns {BaseAttributes} Will get the base attributes for all the elements .\\\n *\n * @param { DiagramElement} element - Provide the diagram elements .\n * @param { Transforms} transform - Provide the transform value for the elements .\n * @param { boolean} isPreviewNode - Provide the preview boolean value.\n * @private\n */\n DiagramRenderer.prototype.getBaseAttributes = function (element, transform, isPreviewNode) {\n var options = {\n width: element.actualSize.width, height: element.actualSize.height,\n //EJ2-840163-Draw highlighter not rendered properly while hovering ports\n x: element.offsetX - element.actualSize.width * element.pivot.x,\n y: element.offsetY - element.actualSize.height * element.pivot.y,\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray || '', opacity: element.style.opacity, shadow: element.shadow,\n gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description,\n canApplyStyle: element.canApplyStyle, shapeType: element.shapeType\n };\n if (element.rotationReference === 'Page') {\n options.angle = element.rotateAngle;\n }\n if (isPreviewNode) {\n options.x = options.x - .5;\n options.y = options.y - .5;\n }\n if (element.isExport) {\n options.width *= element.exportScaleValue.x;\n options.height *= element.exportScaleValue.y;\n options.x *= element.exportScaleValue.x;\n options.y *= element.exportScaleValue.y;\n options.strokeWidth *= element.exportScaleValue.x;\n }\n if (element.flip) {\n options.flip = element.flip;\n }\n if (transform) {\n options.x += transform.tx;\n options.y += transform.ty;\n }\n return options;\n };\n /**\n * Will render the SVG background image \\\n *\n * @returns {void} Will render the SVG background image .\\\n *\n * @param { Transforms} background - Provide the transforms values .\n * @param { boolean} diagramElement - Provide element for the daigram.\n * @param { boolean} x - Provide the rendering mode of the daigram.\n * @param { boolean} y - Provide the rendering mode of the daigram.\n * @param { boolean} width - Provide the rendering mode of the daigram.\n * @param { boolean} height - Provide the rendering mode of the daigram.\n * @private\n */\n DiagramRenderer.renderSvgBackGroundImage = function (background, diagramElement, x, y, width, height) {\n if (background.source) {\n var backgroundLayer = getBackgroundLayerSvg(diagramElement.id);\n var target = backgroundLayer.getElementById(diagramElement.id + '_image');\n if (!target) {\n var bgimageLayer = getBackgroundImageLayer(diagramElement.id);\n target = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n target.setAttribute('id', diagramElement.id + '_image');\n bgimageLayer.appendChild(target);\n }\n var imageObj = new Image();\n imageObj.src = background.source;\n target.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString());\n var scale = background.scale !== 'None' ? background.scale : '';\n var imgAlign = background.align;\n var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1);\n if (scale) {\n aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1);\n }\n var attr = {\n 'id': diagramElement.id + '_image', 'x': x, 'y': y,\n 'width': width, 'height': height,\n 'preserveAspectRatio': aspectRatio\n };\n setAttributeSvg(target, attr);\n }\n };\n /**\n * Method used to transform the layer \\\n *\n * @returns {boolean} Method used to transform the layer .\\\n * @param { Transforms} transform - Provide the transforms values .\n * @param { boolean} svgMode - Provide the rendering mode of the daigram.\n * @private\n */\n DiagramRenderer.prototype.transformLayers = function (transform, svgMode) {\n var tx = transform.tx * transform.scale;\n var ty = transform.ty * transform.scale;\n var domTable = 'domTable';\n if (tx !== this.transform.x || ty !== this.transform.y || (tx === 0 || ty === 0)) {\n //diagram layer\n if (svgMode) {\n if (!window[\"\" + domTable][this.diagramId + '_diagramLayer']) {\n window[\"\" + domTable][this.diagramId + '_diagramLayer'] =\n this.diagramSvgLayer.getElementById(this.diagramId + '_diagramLayer');\n }\n var diagramLayer = window[\"\" + domTable][this.diagramId + '_diagramLayer'];\n diagramLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n }\n //background\n //gridline\n var gridLayer = getGridLayer(this.diagramId);\n gridLayer.setAttribute('transform', 'translate(' + (transform.tx * transform.scale) + ','\n + (transform.ty * transform.scale) + ')');\n //portslayer\n if (!window[\"\" + domTable][this.diagramId + '_diagramPorts']) {\n window[\"\" + domTable][this.diagramId + '_diagramPorts'] = this.iconSvgLayer.getElementById(this.diagramId + '_diagramPorts');\n }\n var portsLayer = window[\"\" + domTable][this.diagramId + '_diagramPorts'];\n portsLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //expandlayer\n if (!window[\"\" + domTable][this.diagramId + '_diagramExpander']) {\n window[\"\" + domTable][this.diagramId + '_diagramExpander'] =\n this.iconSvgLayer.getElementById(this.diagramId + '_diagramExpander');\n }\n var expandLayer = window[\"\" + domTable][this.diagramId + '_diagramExpander'];\n expandLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //nativelayer\n if (!window[\"\" + domTable][this.diagramId + '_nativeLayer']) {\n window[\"\" + domTable][this.diagramId + '_nativeLayer'] = this.nativeSvgLayer.getElementById(this.diagramId + '_nativeLayer');\n }\n var nativeLayer = window[\"\" + domTable][this.diagramId + '_nativeLayer'];\n nativeLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //htmlLayer\n var htmlLayer = getHTMLLayer(this.diagramId).children[0];\n htmlLayer.style.transform = 'translate('\n + (transform.tx * transform.scale) + 'px,' + (transform.ty * transform.scale) + 'px)scale('\n + transform.scale + ')';\n this.transform = { x: transform.tx * transform.scale, y: transform.ty * transform.scale };\n return true;\n }\n return false;\n };\n /**\n * Method used to update the nodes in the diagram \\\n *\n * @returns {void} Method used to update the nodes in the diagram .\\\n * @param { HTMLCanvasElement} element - Provide the diagram element .\n * @param { HTMLCanvasElement} diagramElementsLayer - Provide the diagram layer element .\n * @param { HTMLCanvasElement} htmlLayer -Provide the html element .\n * @param { HTMLCanvasElement} transform - Provide the transform value .\n * @param { HTMLCanvasElement} insertIndex - Provide the index value.\n * @param { object} centerPoint - Provide the center point value.\n * @param {object} portCenterPoint - provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.updateNode = function (element, diagramElementsLayer, htmlLayer, transform, insertIndex, centerPoint, portCenterPoint) {\n this.renderElement(element, diagramElementsLayer, htmlLayer, transform, this.getParentSvg(element), undefined, undefined, insertIndex, null, centerPoint, portCenterPoint);\n };\n return DiagramRenderer;\n}());\nexport { DiagramRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RealAction } from '../diagram/enum/enum';\nimport { DiagramRenderer } from '../diagram/rendering/renderer';\nimport { CanvasRenderer } from '../diagram/rendering/canvas-renderer';\nimport { Component, Property, Browser, EventHandler, Event, isBlazor } from '@syncfusion/ej2-base';\nimport { setAttributeHtml, setAttributeSvg, createHtmlElement, getHTMLLayer } from '../diagram/utility/dom-util';\nimport { createSvgElement, getNativeLayer, hasClass } from '../diagram/utility/dom-util';\nimport { Rect } from '../diagram/primitives/rect';\nimport { Size } from '../diagram/primitives/size';\nimport { SvgRenderer } from '../diagram/rendering/svg-renderer';\n/**\n * Overview control allows you to see a preview or an overall view of the entire content of a Diagram.\n * This helps you to look at the overall picture of a large Diagram\n * To navigate, pan, or zoom, on a particular position of the page.\n * ```html\n *
\n *
\n * ```\n * ```typescript\n * let overview: Overview;\n * let diagram: Diagram = new Diagram({\n * width:'1000px', height:'500px' });\n * diagram.appendTo('#diagram');\n * let options: OverviewModel = {};\n * options.sourceID = 'diagram';\n * options.width = '250px';\n * options.height = '500px';\n * overview = new Overview(options);\n * overview.appendTo('#overview');\n * ```\n */\nvar Overview = /** @class */ (function (_super) {\n __extends(Overview, _super);\n function Overview(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.mode = 'Canvas';\n /** @private */\n _this.id = 'overview';\n _this.actionName = '';\n _this.startPoint = null;\n _this.currentPoint = null;\n _this.prevPoint = null;\n _this.scale = null;\n _this.inAction = false;\n _this.viewPortRatio = 1;\n _this.horizontalOffset = 0;\n _this.verticalOffset = 0;\n _this.model = {};\n _this.event = true;\n _this.overviewid = 88123;\n _this.model = { width: _this.width, height: _this.height };\n return _this;\n }\n /**\n * Updates the overview control when the objects are changed\n *\n * @param {OverviewModel} newProp - Lists the new values of the changed properties\n * @param {OverviewModel} oldProp - Lists the old values of the changed properties\n */\n Overview.prototype.onPropertyChanged = function (newProp, oldProp) {\n //let objectArray: Object[] = [];\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'sourceID':\n this.setParent(newProp.sourceID);\n break;\n case 'width':\n case 'height':\n this.renderCanvas();\n this.setParent(this.sourceID);\n break;\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n Overview.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n Overview.prototype.preRender = function () {\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-overview').length;\n this.element.id = 'overview_' + this.overviewid + '_' + collection;\n }\n //EJ2-64637 - Diagram element in the overview disappears on window resize.\n this.id = this.element.id ? this.element.id : this.id;\n this.element.style.background = 'transparent';\n this.unWireEvents();\n this.wireEvents();\n };\n Overview.prototype.render = function () {\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), false);\n this.renderCanvas();\n this.setParent(this.sourceID);\n this.renderComplete();\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n Overview.prototype.getSizeValue = function (real) {\n var text;\n if (real.toString().indexOf('px') > 0 || real.toString().indexOf('%') > 0) {\n text = real.toString();\n }\n else {\n text = real.toString() + 'px';\n }\n return text;\n };\n Overview.prototype.renderCanvas = function (options) {\n var canvas = document.getElementById(this.element.id + '_canvas');\n if (!canvas) {\n canvas = createHtmlElement('div', {});\n this.element.appendChild(canvas);\n }\n var attribute = {\n 'id': this.element.id + '_canvas', 'class': 'drawing',\n 'style': 'position:relative; height:' + this.getSizeValue(this.model.height) + '; width:' +\n this.getSizeValue(this.model.width) +\n ';style:-ms-touch-action: none;touch-action: none;'\n };\n setAttributeHtml(canvas, attribute);\n this.element.setAttribute('tabindex', String(-1));\n this.element.style.overflow = 'hidden';\n this.element.style.height = String(this.model.height);\n this.element.style.width = String(this.model.width);\n this.canvas = canvas;\n };\n Overview.prototype.setParent = function (id) {\n var element = document.getElementById(id);\n var instance = 'ej2_instances';\n if (this.parent) {\n var oldparent = this.parent;\n this.parent = null;\n oldparent.setOverview(null, this.element.id);\n this.removeDocument(this);\n }\n this.parent = this.getDiagram(element, instance);\n if (this.parent) {\n this.parent.setOverview(this);\n }\n };\n Overview.prototype.getDiagram = function (element, instance) {\n var diagram;\n var n = element[\"\" + instance].length;\n for (var i = 0; i < n; i++) {\n if (hasClass(element[\"\" + instance][parseInt(i.toString(), 10)].element, 'e-diagram')) {\n diagram = element[\"\" + instance][parseInt(i.toString(), 10)];\n break;\n }\n }\n return diagram;\n };\n Overview.prototype.unWireEvents = function () {\n var start = Browser.touchStartEvent;\n var move = Browser.touchMoveEvent;\n //const evnt: EventHandler;\n var cancel = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n //const isIE11Pointer: Boolean = Browser.isPointer;\n // const wheelEvent: string = Browser.info.name === 'mozilla' ?\n // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n var stop = Browser.touchEndEvent;\n EventHandler.remove(this.element, start, this.mouseDown);\n EventHandler.remove(this.element, move, this.mouseMove);\n EventHandler.remove(this.element, stop, this.mouseUp);\n EventHandler.remove(this.element, cancel, this.documentMouseUp);\n EventHandler.remove(window, 'resize', this.windowResize);\n var container = document.getElementById(this.sourceID + 'content');\n if (container) {\n EventHandler.remove(container, 'scroll', this.scrolled);\n }\n };\n Overview.prototype.wireEvents = function () {\n var start = Browser.touchStartEvent;\n var stop = Browser.touchEndEvent;\n var move = Browser.touchMoveEvent;\n var cancel = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n //const isIE11Pointer: Boolean = Browser.isPointer;\n // const wheelEvent: string = Browser.info.name === 'mozilla' ?\n // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n EventHandler.add(this.element, start, this.mouseDown, this);\n EventHandler.add(this.element, move, this.mouseMove, this);\n EventHandler.add(this.element, stop, this.mouseUp, this);\n EventHandler.add(this.element, cancel, this.documentMouseUp, this);\n // eslint-disable\n EventHandler.add(window, 'resize', this.windowResize, this);\n // eslint-enable\n var container = document.getElementById(this.sourceID + 'content');\n if (container) {\n EventHandler.add(container, 'scroll', this.scrolled, this);\n }\n };\n /**\n * renderDocument method\\\n *\n * @returns { void } renderDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.renderDocument = function (view) {\n view.canvas = this.canvas;\n var g = document.getElementById(this.canvas.id + '_svg');\n if (g) {\n g.parentNode.removeChild(g);\n }\n var attr = {\n id: this.canvas.id + '_svg',\n version: '1.1',\n 'class': 'overview_svg'\n };\n var svg = createSvgElement('svg', attr);\n this.svg = svg;\n view.svg = svg;\n view.canvas.appendChild(svg);\n var ovw = document.getElementById(this.element.id);\n var element = ovw;\n var eWidth = element.clientWidth || element.offsetWidth;\n var eHeight = element.clientHeight || element.offsetHeight;\n var bRect = element.getBoundingClientRect();\n // Check for the window resize\n var screenX = (window.screenX < 0) ? window.screenX * -1 : window.screenX;\n var screenY = (window.screenY < 0) ? window.screenY * -1 : window.screenY;\n if (eWidth === 0) {\n var widthValue = Math.floor(((window.innerWidth - screenX) - Math.floor(bRect.left)));\n eWidth = widthValue > 0 ? widthValue : Math.floor(window.innerWidth);\n }\n if (eHeight === 0) {\n var heightValue = Math.floor(((window.innerHeight - screenY) - Math.floor(bRect.top)));\n eHeight = heightValue > 0 ? heightValue : Math.floor(window.innerHeight);\n }\n if (eWidth > 0) {\n svg.setAttribute('width', String(eWidth));\n this.model.height = eHeight;\n }\n if (eHeight > 0) {\n svg.setAttribute('height', String(eHeight));\n this.model.width = eWidth;\n }\n //let attributes: Object;\n if (!view.diagramLayerDiv) {\n view.diagramLayerDiv = createHtmlElement('div', {});\n //const container: HTMLElement = document.getElementById(this.element.id);\n view.diagramLayer = CanvasRenderer.createCanvas(this.element.id + '_diagramLayer', this.model.width, this.model.height);\n view.diagramLayer.setAttribute('style', 'position:absolute; left:0px; top:0px ');\n view.diagramLayerDiv.appendChild(view.diagramLayer);\n view.canvas.appendChild(view.diagramLayerDiv);\n }\n var attributes = {\n 'id': this.element.id + '_diagramLayer_div',\n 'style': 'width:' + this.model.width + 'px; height:' + this.model.height + 'px;position:absolute;top:0px;left:0px'\n };\n setAttributeHtml(view.diagramLayerDiv, attributes);\n this.renderHtmlLayer(view.canvas);\n this.renderNativeLayer(view.canvas, view);\n this.addOverviewRectPanel(view);\n };\n /**\n * removeDocument method\\\n *\n * @returns { void } removeDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.removeDocument = function (view) {\n var svg = document.getElementById(this.canvas.id + '_svg');\n this.canvas.removeChild(svg);\n var htmlLayer = document.getElementById(this.element.id + '_htmlLayer');\n this.canvas.removeChild(htmlLayer);\n var diagramLayer = document.getElementById(this.element.id + '_diagramLayer_div');\n this.canvas.removeChild(diagramLayer);\n view.diagramLayerDiv = null;\n view.diagramLayer = null;\n var domTable = 'domTable';\n window[\"\" + domTable][this.id + 'html_layer'] = null;\n };\n Overview.prototype.renderHtmlLayer = function (canvas) {\n var htmlLayer = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer', 'class': 'e-html-layer',\n 'style': 'pointer-events:none;position:absolute;top:0px;left:0px;'\n });\n var options = {\n 'id': this.element.id + '_htmlLayer_div',\n 'style': 'position:absolute;top:0px;left:0px;'\n };\n var htmlDiv = createHtmlElement('div', options);\n htmlLayer.appendChild(htmlDiv);\n canvas.appendChild(htmlLayer);\n return htmlLayer;\n };\n Overview.prototype.renderNativeLayer = function (canvas, view) {\n if (!document.getElementById(this.element.id + '_nativeLayer_svg')) {\n var nativeLayerSvg = this.parent.createSvg(this.element.id + '_nativeLayer_svg', this.model.width, this.model.height);\n var nativeLayer = createSvgElement('g', { 'id': this.element.id + '_nativeLayer' });\n nativeLayerSvg.appendChild(nativeLayer);\n view.diagramLayerDiv.appendChild(nativeLayerSvg);\n setAttributeSvg(nativeLayerSvg, { 'class': 'e-native-layer' });\n }\n };\n Overview.prototype.addOverviewRectPanel = function (view) {\n var svg = document.getElementById(this.canvas.id + '_overviewsvg');\n if (svg) {\n svg.parentNode.removeChild(svg);\n }\n var attr = ({\n id: this.canvas.id + '_overviewsvg',\n class: 'overviewsvg',\n version: '1.1',\n 'style': 'position:absolute;left:0px;top:0px; aria-label:Specifies overview',\n width: this.model.width,\n height: this.model.height\n });\n svg = createSvgElement('svg', attr);\n view.canvas.appendChild(svg);\n var ovw = createSvgElement('g', { 'id': this.element.id + '_overviewlayer', 'style': 'pointer-events:none' });\n svg.appendChild(ovw);\n var rect = createSvgElement('rect', {\n 'fill': 'transparent', 'width': '100%', 'height': '100%', 'class': 'overviewbackrect',\n 'id': this.canvas.id + 'overviewbackrect'\n });\n rect.setAttribute('style', ' pointer-events: none; ');\n ovw.appendChild(rect);\n //const svgDocument: SVGElement = (ovw);\n var g = createSvgElement('g', { 'id': this.canvas.id + 'overviewhandle', 'style': 'pointer-events:all' });\n ovw.appendChild(g);\n var innerrect = createSvgElement('rect', { 'id': this.canvas.id + 'overviewrect', 'fill': 'transparent' });\n g.appendChild(innerrect);\n this.renderOverviewCorner('left', g);\n this.renderOverviewCorner('right', g);\n this.renderOverviewCorner('top', g);\n this.renderOverviewCorner('bottom', g);\n this.renderOverviewCorner('topleft', g);\n this.renderOverviewCorner('topright', g);\n this.renderOverviewCorner('bottomleft', g);\n this.renderOverviewCorner('bottomright', g);\n };\n Overview.prototype.renderOverviewCorner = function (name, parent) {\n var svg = this.svg;\n var shape;\n if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') {\n shape = 'rect';\n }\n else {\n shape = 'circle';\n }\n var innerrect = createSvgElement(shape, { 'id': this.canvas.id + 'visible' + name, 'class': 'overview-resizer' });\n parent.appendChild(innerrect);\n var transrect = createSvgElement(shape, {\n 'id': this.canvas.id + name, 'class': 'overviewresizer', 'fill': 'transparent'\n });\n parent.appendChild(transrect);\n };\n Overview.prototype.updateOverviewRectangle = function () {\n var difx = this.currentPoint.x - this.prevPoint.x;\n var dify = this.currentPoint.y - this.prevPoint.y;\n var size = new Size();\n size.width = 0;\n size.height = 0;\n var x = 0;\n var y = 0;\n var w;\n var h;\n switch (this.resizeDirection) {\n case 'left':\n size.width -= difx;\n size.height -= difx / this.viewPortRatio;\n x = difx;\n y = difx / this.viewPortRatio;\n y /= 2;\n break;\n case 'right':\n size.width += difx;\n size.height += difx / this.viewPortRatio;\n y = difx / this.viewPortRatio;\n y /= -2;\n break;\n case 'top':\n size.height -= dify;\n size.width -= dify * this.viewPortRatio;\n y = dify;\n x = dify * this.viewPortRatio;\n x /= 2;\n break;\n case 'bottom':\n size.height += dify;\n size.width += dify * this.viewPortRatio;\n x = dify * this.viewPortRatio;\n x /= -2;\n break;\n case 'topleft':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = dify * this.viewPortRatio;\n }\n else {\n dify = difx / this.viewPortRatio;\n }\n size.width -= difx;\n size.height -= dify;\n x = difx;\n y = dify;\n break;\n case 'topright':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = -dify * this.viewPortRatio;\n }\n else {\n dify = -(difx / this.viewPortRatio);\n }\n y = dify;\n size.width += difx;\n size.height -= dify;\n break;\n case 'bottomleft':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = -dify * this.viewPortRatio;\n }\n else {\n dify = -difx / this.viewPortRatio;\n }\n x = difx;\n size.width -= difx;\n size.height += dify;\n break;\n case 'bottomright':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = dify * this.viewPortRatio;\n }\n else {\n dify = difx / this.viewPortRatio;\n }\n size.width += difx;\n size.height += dify;\n break;\n }\n this.updateHelper(x, y, size, w, h);\n };\n Overview.prototype.updateHelper = function (difx, dify, size, width, height) {\n var x;\n var y;\n var bounds;\n var svg = this.element.getElementsByTagName('svg')[2];\n var rect = svg.getElementById('helper');\n if (size) {\n bounds = rect.getBBox();\n x = bounds.x + difx;\n y = bounds.y + dify;\n width = bounds.width + size.width;\n height = bounds.height + size.height;\n }\n else {\n var difx_1;\n if (this.currentPoint.x > this.startPoint.x) {\n difx_1 = this.currentPoint.x - this.prevPoint.x;\n }\n else {\n difx_1 = this.prevPoint.x - this.currentPoint.x;\n }\n var dify_1;\n if (this.currentPoint.y > this.startPoint.y) {\n dify_1 = this.currentPoint.y - this.prevPoint.y;\n }\n else {\n dify_1 = this.prevPoint.y - this.currentPoint.y;\n }\n var w = void 0;\n var h = void 0;\n if (Math.abs(dify_1) > Math.abs(difx_1)) {\n difx_1 = this.viewPortRatio * dify_1;\n h = true;\n w = false;\n }\n else {\n dify_1 = difx_1 / this.viewPortRatio;\n w = true;\n h = false;\n }\n bounds = rect.getBBox();\n x = ((this.startPoint.x > this.currentPoint.x) ?\n bounds.x - difx_1 : bounds.x);\n y = ((this.startPoint.y > this.currentPoint.y) ? bounds.y - dify_1 : bounds.y);\n width = bounds.width + difx_1;\n height = bounds.height + dify_1;\n }\n setAttributeSvg(this.helper, {\n 'id': this.helper.id, 'x': x, 'y': y,\n 'width': Math.max(0, width), 'height': Math.max(0, height)\n });\n };\n Overview.prototype.updateOverviewrect = function (x, y, width, height) {\n var rect = document.getElementById(this.canvas.id + 'overviewrect');\n var attr = { x: x, y: y, width: Math.max(1, width), height: Math.max(1, height) };\n setAttributeHtml(rect, attr);\n this.updateOverviewCorner('top', x + 8, y + 1, Math.max(0, width - 16), 2);\n this.updateOverviewCorner('bottom', x + 8, y + height + 3, Math.max(0, width - 16), 2);\n this.updateOverviewCorner('left', x - 2, y + 11, 2, Math.max(0, height - 16));\n this.updateOverviewCorner('right', x + width, y + 11, 2, Math.max(0, height - 16));\n this.updateOverviewCorner('topleft', x, y + 3, 5, 5);\n this.updateOverviewCorner('topright', x + width, y + 3, 5, 5);\n this.updateOverviewCorner('bottomleft', x, y + height + 3, 5, 5);\n this.updateOverviewCorner('bottomright', x + width, y + height + 3, 5, 5);\n };\n Overview.prototype.updateOverviewCorner = function (name, x, y, width, height) {\n var attr;\n var transattr;\n var rectname = 'visible' + name;\n var rect = document.getElementById(this.canvas.id + rectname);\n if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') {\n attr = { x: x, y: y, width: width, height: height, fill: '#ED1C24' };\n transattr = { x: x - 2, y: y - 2, width: width === 2 ? 4 : width, height: height === 2 ? 4 : height };\n }\n else {\n attr = { cx: x, cy: y, 'r': 4, fill: '#ED1C24' };\n transattr = { cx: x, cy: y, 'r': 6, fill: 'transparent' };\n }\n setAttributeHtml(rect, attr);\n var transrect = document.getElementById(this.canvas.id + name);\n setAttributeHtml(transrect, transattr);\n };\n Overview.prototype.translateOverviewRectangle = function () {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var difx = this.currentPoint.x - this.prevPoint.x;\n var dify = this.currentPoint.y - this.prevPoint.y;\n //const viewPort: Rect;\n //let zoom: number = Math.min(this.parent.scroller.viewPortWidth / offwidth, this.parent.scroller.viewPortHeight / offheight);\n var svg = this.element.getElementsByClassName('overviewsvg')[0];\n var panel = svg.getElementById(this.canvas.id\n + 'overviewrect');\n var bounds = panel.getBBox();\n var x = bounds.x + difx;\n var y = bounds.y + dify;\n var width = bounds.width;\n var height = bounds.height;\n this.updateOverviewrect(x, y, width, height);\n this.updateParentView(this.parent.scroller.currentZoom, x, y, width, height, null);\n };\n Overview.prototype.renderOverviewRect = function (x, y, width, height) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n //const viewPort: Rect;\n var viewwidth = (width / offwidth) * this.contentWidth;\n var viewheight = (height / offheight) * this.contentHeight;\n var zoom = Math.max(this.parent.scroller.viewPortWidth / viewwidth, this.parent.scroller.viewPortHeight / viewheight);\n if (zoom >= 0.25 && zoom <= 30) {\n var point = { x: 0, y: 0 };\n this.updateParentView(zoom, x, y, width, height, point);\n var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true);\n if (this.helper) {\n var panel = this.element.getElementsByTagName('rect')[10];\n var svgRect = panel.getBBox();\n bounds.x = svgRect.x;\n bounds.y = svgRect.y;\n }\n //Bug 884239: Overview rectangle not updated properly while double-clicking the overview canvas.\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.actionName === 'pan' ? this.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height) :\n this.updateOverviewrect(bounds.x, bounds.y, bounds.width, bounds.height);\n }\n };\n Overview.prototype.scrollOverviewRect = function (hoffset, voffset, currentZoom, scaled) {\n if (!(this.actionName) || scaled) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var scale = Math.min(this.contentWidth / offwidth, this.contentHeight / offheight);\n var bounds = new Rect();\n var x = bounds.x = (hoffset / currentZoom) / scale;\n var y = bounds.y = (voffset / currentZoom) / scale;\n //const viewPort: Rect;\n //Bug 863516: Overview is not synced with diagram content while zoom-out the diagram.\n //Added below code to consider ruler size and scrollbar size while calculating the width and height for the overview rectangle.\n var rulerSize = 0;\n if (this.parent.rulerSettings.showRulers) {\n rulerSize = 25;\n }\n var container = document.getElementById(this.parent.element.id + 'content');\n var wScrollBar = 0;\n var hScrollBar = 0;\n if (container) {\n wScrollBar = container.offsetWidth - container.clientWidth;\n hScrollBar = container.offsetHeight - container.clientHeight;\n }\n var width = bounds.width = ((this.parent.scroller.viewPortWidth - rulerSize - wScrollBar) / currentZoom) / scale;\n var height = bounds.height = ((this.parent.scroller.viewPortHeight - rulerSize - hScrollBar) / currentZoom) / scale;\n //const ratio: number = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight;\n if (scaled) {\n var rect = new Rect();\n rect.x = x;\n rect.y = y;\n rect.width = width;\n rect.height = height;\n return rect;\n }\n this.updateOverviewrect(-x, -y, width, height);\n }\n return null;\n };\n Overview.prototype.updateParentView = function (zoom, x, y, width, height, focusPoint) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var scalex = this.contentWidth / offwidth;\n var scaley = this.contentHeight / offheight;\n var hoffset = x * scalex * zoom;\n var voffset = y * scaley * zoom;\n var delx;\n var dely;\n var bounds = this.parent.scroller.getPageBounds();\n if (zoom !== 1 || this.actionName === 'pan') {\n delx = -hoffset - this.parent.scroller.horizontalOffset;\n dely = -voffset - this.parent.scroller.verticalOffset;\n }\n this.parent.setBlazorDiagramProps(true);\n this.parent.realActions |= RealAction.OverViewAction;\n var canOverview = true;\n if (this.actionName === 'scale' || this.actionName === 'draw') {\n this.parent.scroller.zoom(zoom / this.parent.scroller.currentZoom, delx, dely, focusPoint);\n }\n else {\n if (!isBlazor()) {\n this.parent.pan(delx, dely, focusPoint, canOverview);\n }\n else {\n this.parent.scroller.zoom(1, delx, dely, focusPoint);\n }\n }\n };\n Overview.prototype.updateHtmlLayer = function (view) {\n var htmlLayer = getHTMLLayer(view.element.id);\n var bounds = this.parent.scroller.getPageBounds(true);\n var width = bounds.width;\n var height = bounds.height;\n var w = Math.max(width, this.parent.scroller.viewPortWidth);\n var h = Math.max(height, this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom);\n var scale = Math.min(Number(this.model.width) / w, Number(this.model.height) / h);\n htmlLayer.style.transform = 'scale(' + scale + ') translate(' + this.parent.scroller.transform.tx + 'px,'\n + (this.parent.scroller.transform.ty) + 'px)';\n };\n /** @private */\n /**\n * updateView method\\\n *\n * @returns { void } removeDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.updateView = function (view) {\n //let width: number; let height: number;\n var bounds = this.parent.scroller.getPageBounds();\n // Bug 851571: Overview with html node is not updated properly when we zoom-out the diagram.\n // Below transformWidth calculation is removed.\n var width = bounds.width;\n var height = bounds.height;\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n //let scale: number;\n var w = Math.max(width, this.parent.scroller.viewPortWidth);\n // Bug 851571: Overview with html node is not updated properly when we zoom-out the diagram.\n // Removed viewPortHeight/ currentZoom for height calculation.\n var h = Math.max(height, this.parent.scroller.viewPortHeight);\n this.contentWidth = w = Math.max(w, (offwidth / offheight) * h);\n this.contentHeight = h = Math.max(h, (offheight / offwidth) * w);\n var scale = Math.min(offwidth / w, offheight / h);\n var htmlLayer = document.getElementById(this.element.id + '_htmlLayer');\n htmlLayer.style.webkitTransform = 'scale(' + scale + ') translate(' + -bounds.x + 'px,' + (-bounds.y) + 'px)';\n htmlLayer.style.transform = 'scale(' + scale + ') translate(' + ((-(bounds.x))) + 'px,'\n + (((-bounds.y))) + 'px)';\n var ovw = document.getElementById(this.element.id + '_overviewlayer');\n ovw.setAttribute('transform', 'translate(' + (-bounds.x * scale) + ',' + (-bounds.y * scale) + ')');\n this.horizontalOffset = bounds.x * scale;\n this.verticalOffset = bounds.y * scale;\n var canvas = document.getElementById(this.element.id + '_diagramLayer');\n var nativeLayer = getNativeLayer(this.element.id);\n var context = canvas.getContext('2d');\n var widthratio = (Number(this.model.width) / this.contentWidth);\n var heightratio = (Number(this.model.height) / this.contentHeight);\n widthratio = Math.min(widthratio, heightratio);\n var transform = this.parent.scroller.transform;\n var tx = transform.tx;\n var ty = transform.ty;\n nativeLayer.setAttribute('transform', 'translate('\n + (tx * widthratio) + ',' + (ty * heightratio) + '),scale('\n + widthratio + ')');\n context.setTransform(widthratio, 0, 0, widthratio, 0, 0);\n context.fillStyle = 'red';\n this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom);\n };\n // region - Event Handlers\n Overview.prototype.scrolled = function (evt) {\n if (this.event) {\n var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true);\n this.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height);\n // EJ2-67416 - Added below code to update the overview rect if the diagram and overview is scrolled.\n this.updateView(this);\n }\n };\n Overview.prototype.updateCursor = function (evt) {\n if (hasClass(evt.target, ('overviewresizer'))) {\n switch (evt.target.id) {\n case this.canvas.id + 'left':\n this.canvas.style.cursor = 'w-resize';\n break;\n case this.canvas.id + 'right':\n this.canvas.style.cursor = 'e-resize';\n break;\n case this.canvas.id + 'top':\n this.canvas.style.cursor = 'n-resize';\n break;\n case this.canvas.id + 'bottom':\n this.canvas.style.cursor = 's-resize';\n break;\n case this.canvas.id + 'topleft':\n this.canvas.style.cursor = 'nw-resize';\n break;\n case this.canvas.id + 'topright':\n this.canvas.style.cursor = 'ne-resize';\n break;\n case this.canvas.id + 'bottomleft':\n this.canvas.style.cursor = 'sw-resize';\n break;\n case this.canvas.id + 'bottomright':\n this.canvas.style.cursor = 'se-resize';\n break;\n }\n }\n else {\n this.canvas.style.cursor = 'default';\n }\n };\n Overview.prototype.mouseMove = function (evt) {\n this.event = false;\n this.updateCursor(evt);\n this.currentPoint = this.mousePosition(evt);\n if (this.actionName) {\n switch (this.actionName) {\n case 'draw':\n if (!this.inAction && (this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) {\n this.initHelper();\n this.inAction = true;\n }\n if (this.inAction) {\n this.updateHelper();\n }\n break;\n case 'scale':\n if (!this.inAction) {\n this.initHelper();\n this.inAction = true;\n }\n this.updateOverviewRectangle();\n break;\n case 'pan':\n if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y === this.currentPoint.y) || this.inAction) {\n this.inAction = true;\n this.translateOverviewRectangle();\n }\n break;\n }\n }\n this.prevPoint = this.currentPoint;\n };\n Overview.prototype.documentMouseUp = function (evt) {\n this.inAction = false;\n this.actionName = '';\n if (this.helper) {\n this.helper.parentNode.removeChild(this.helper);\n this.helper = null;\n }\n this.event = true;\n document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all';\n };\n Overview.prototype.windowResize = function (evt) {\n var _this = this;\n if (this.resizeTo) {\n clearTimeout(this.resizeTo);\n }\n this.resizeTo = setTimeout(function () {\n var element = document.getElementById(_this.element.id);\n var bRect = element.getBoundingClientRect();\n _this.model.width = bRect.width > 0 ? bRect.width : _this.model.width;\n _this.model.height = bRect.height > 0 ? bRect.height : _this.model.height;\n _this.renderCanvas();\n _this.setParent(_this.sourceID);\n }, 10);\n return false;\n };\n /**\n * mouseDown method\\\n *\n * @returns { void } mouseDown method .\\\n * @param {PointerEvent | TouchEvent} evt - provide the angle value.\n * @private\n */\n Overview.prototype.mouseDown = function (evt) {\n if (evt.target.id === this.canvas.id + '_overviewsvg') {\n this.actionName = 'draw';\n }\n if (evt.target.id === this.canvas.id + 'overviewrect') {\n this.actionName = 'pan';\n }\n if (hasClass(evt.target, 'overviewresizer')) {\n this.actionName = 'scale';\n switch (evt.target.id) {\n case this.canvas.id + 'left':\n this.resizeDirection = 'left';\n break;\n case this.canvas.id + 'right':\n this.resizeDirection = 'right';\n break;\n case this.canvas.id + 'top':\n this.resizeDirection = 'top';\n break;\n case this.canvas.id + 'bottom':\n this.resizeDirection = 'bottom';\n break;\n case this.canvas.id + 'topleft':\n this.resizeDirection = 'topleft';\n break;\n case this.canvas.id + 'topright':\n this.resizeDirection = 'topright';\n break;\n case this.canvas.id + 'bottomleft':\n this.resizeDirection = 'bottomleft';\n break;\n case this.canvas.id + 'bottomright':\n this.resizeDirection = 'bottomright';\n break;\n }\n }\n this.startPoint = this.prevPoint = this.mousePosition(evt);\n this.viewPortRatio = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight;\n var overViewHandle = document.getElementById(this.canvas.id + 'overviewhandle');\n overViewHandle.style.pointerEvents = 'none';\n };\n Overview.prototype.mouseUp = function (evt) {\n this.currentPoint = this.mousePosition(evt);\n //let offwidth: number = Number(this.model.width);\n //let offheight: number = Number(this.model.height);\n if (this.actionName) {\n if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) {\n if (this.actionName === 'pan') {\n //let i: number = 0;\n }\n else {\n if (this.helper) {\n var bounds = (this.element.getElementsByTagName('rect')[10]).getBBox();\n this.resizeDirection = this.resizeDirection || '';\n var x = bounds.x;\n var y = bounds.y;\n var width = bounds.width;\n var height = bounds.height;\n var adjust = this.resizeDirection === 'topleft' || this.resizeDirection === 'topright' ||\n this.resizeDirection === 'bottomleft' || this.resizeDirection === 'bottomright';\n this.renderOverviewRect(x, y, width, height);\n }\n }\n }\n else {\n if (evt.target.id === this.canvas.id + '_overviewsvg' || evt.target.id === 'helper') {\n var svg = this.element.getElementsByTagName('svg')[2];\n var g = svg.getElementById(this.canvas.id\n + 'overviewrect');\n var bounds = g.getBBox();\n var width = bounds.width;\n var height = bounds.height;\n this.inAction = true;\n this.actionName = 'pan';\n this.renderOverviewRect(this.currentPoint.x - width / 2, this.currentPoint.y - height / 2, width, height);\n this.inAction = false;\n }\n }\n }\n if (this.helper) {\n this.helper.parentNode.removeChild(this.helper);\n this.helper = null;\n }\n this.actionName = '';\n this.startPoint = null;\n this.currentPoint = null;\n this.prevPoint = null;\n this.helper = null;\n this.viewPortRatio = 1;\n this.resizeDirection = '';\n this.inAction = false;\n this.event = true;\n document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all';\n };\n Overview.prototype.initHelper = function () {\n var g = this.element.getElementsByTagName('svg')[2];\n //const scale: number = this.parent.scroller.currentZoom;\n var x = this.startPoint.x;\n var y = this.startPoint.y;\n var width = 1;\n var height = 1;\n if (this.actionName === 'scale') {\n var rect = g.\n getElementById(this.canvas.id + 'overviewrect');\n var bounds = rect.getBBox();\n x = bounds.x;\n y = bounds.y;\n width = bounds.width;\n height = bounds.height;\n }\n var selectionRect = createSvgElement('rect', {\n 'id': 'helper', x: x, y: y, width: width, height: height,\n 'fill': 'transparent', 'stroke': 'gray', 'stroke-dasharray': '2 2', 'shape-rendering': 'crispEdges'\n });\n var overviewLayer = g.getElementById(this.element.id + '_overviewlayer');\n overviewLayer.appendChild(selectionRect);\n this.helper = selectionRect;\n };\n Overview.prototype.mousePosition = function (evt) {\n var touchArg;\n var offsetX;\n var offsetY;\n if (evt.type.indexOf('touch') !== -1) {\n touchArg = evt;\n var pageX = touchArg.changedTouches[0].clientX;\n var pageY = touchArg.changedTouches[0].clientY;\n offsetX = pageX - this.element.offsetLeft;\n offsetY = pageY - this.element.offsetTop;\n }\n else {\n offsetX = evt.clientX;\n offsetY = evt.clientY;\n }\n var boundingRect = this.element.getBoundingClientRect();\n offsetX = offsetX - boundingRect.left;\n offsetY = offsetY - boundingRect.top;\n return { x: offsetX + this.horizontalOffset, y: offsetY + this.verticalOffset };\n };\n // end region - Event handlers\n /**\n *To destroy the overview\n *\n * @returns {void} To destroy the overview\n */\n Overview.prototype.destroy = function () {\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n if (document.getElementById(this.element.id)) {\n this.element.classList.remove('e-overview');\n var content = document.getElementById(this.element.id + '_canvas');\n if (content) {\n this.element.removeChild(content);\n }\n }\n this.parent.views.splice(this.parent.views.indexOf(this.element.id), 1);\n this.diagramLayerDiv = null;\n this.canvas = null;\n this.parent = null;\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Overview.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Overview';\n };\n __decorate([\n Property('100%')\n ], Overview.prototype, \"width\", void 0);\n __decorate([\n Property('100%')\n ], Overview.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Overview.prototype, \"sourceID\", void 0);\n __decorate([\n Event()\n ], Overview.prototype, \"created\", void 0);\n return Overview;\n}(Component));\nexport { Overview };\n","import { Size } from './../primitives/size';\nimport { Rect } from './../primitives/rect';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix, scaleMatrix } from './../primitives/matrix';\nimport { DiagramElement } from './../core/elements/diagram-element';\nimport { Container } from './../core/containers/container';\nimport { StrokeStyle, Stop } from './../core/appearance';\nimport { Point } from './../primitives/point';\nimport { ConnectorConstraints, NodeConstraints, PortConstraints, DiagramConstraints, DiagramTools, Transform, BlazorAction, ControlPointsVisibility, DiagramEvent } from './../enum/enum';\nimport { SelectorConstraints, ThumbsConstraints } from './../enum/enum';\nimport { PathElement } from './../core/elements/path-element';\nimport { DiagramNativeElement } from './../core/elements/native-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { PathAnnotation, ShapeAnnotation } from './../objects/annotation';\nimport { Node, FlowShape, BasicShape, Native, Html, UmlActivityShape, BpmnGateway, BpmnDataObject, BpmnEvent, BpmnSubEvent, BpmnActivity, BpmnAnnotation, MethodArguments, UmlClassAttribute, UmlClassMethod, UmlClass, UmlInterface, UmlEnumerationMember, UmlEnumeration, Lane, Phase, ChildContainer, SwimLane, Path, Image, Text, BpmnShape, UmlClassifierShape, Header } from './../objects/node';\nimport { Connector, bezierPoints, BezierSegment, StraightSegment, OrthogonalSegment } from './../objects/connector';\nimport { getBasicShape } from './../objects/dictionary/basic-shapes';\nimport { getFlowShape } from './../objects/dictionary/flow-shapes';\nimport { Diagram } from './../diagram';\nimport { findAngle } from './connector';\nimport { getContent, removeElement, hasClass, getDiagramElement } from './dom-util';\nimport { getBounds, cloneObject, rotatePoint, getFunction } from './base-util';\nimport { getPolygonPath } from './../utility/path-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { getRulerSize } from '../ruler/ruler';\nimport { canResize } from './constraints-util';\nimport { UserHandle } from '../interaction/selector';\nimport { getUMLActivityShape } from '../objects/dictionary/umlactivity-shapes';\nimport { Canvas } from '../core/containers/canvas';\nimport { PointPort } from '../objects/port';\nimport { Command } from '../diagram/keyboard-commands';\nimport { pasteSwimLane } from './swim-lane-util';\nimport { isBlazor, Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ConnectorFixedUserHandle } from '../objects/fixed-user-handle';\nimport { Overview } from '../../overview/overview';\n/**\n * completeRegion method\\\n *\n * @returns { void } completeRegion method .\\\n * @param {Rect} region - provide the region value.\n * @param {(NodeModel | ConnectorModel)[]} selectedObjects - provide the selectedObjects value.\n * @private\n */\nexport function completeRegion(region, selectedObjects) {\n var collection = [];\n for (var i = 0; i < selectedObjects.length; i++) {\n var obj = selectedObjects[parseInt(i.toString(), 10)];\n if (region.containsRect(obj.wrapper.bounds)) {\n collection.push(obj);\n }\n }\n return collection;\n}\n/**\n * findNodeByName method \\\n *\n * @returns { boolean } findNodeByName method .\\\n * @param {(NodeModel | ConnectorModel)[]} nodes - provide the nodes value.\n * @param {string} name - provide the orientation value.\n * @private\n */\nexport function findNodeByName(nodes, name) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[parseInt(i.toString(), 10)].id === name) {\n return true;\n }\n }\n return false;\n}\n/**\n * findNodeByName method \\\n *\n * @returns { string } findNodeByName method .\\\n * @param {(NodeModel | ConnectorModel)[]} drawingObject - provide the drawingObject value.\n * @private\n */\nexport function findObjectType(drawingObject) {\n var type;\n if (drawingObject) {\n if (drawingObject.type) {\n type = 'Connector';\n }\n else if (drawingObject.shape && !drawingObject.type) {\n type = 'Node';\n }\n }\n return type;\n}\n/**\n * setSwimLaneDefaults method \\\n *\n * @returns { void } setSwimLaneDefaults method .\\\n * @param {NodeModel | ConnectorModel} child - provide the child value.\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setSwimLaneDefaults(child, node) {\n if (node instanceof Node) {\n if (!child.shape.header) {\n node.shape.hasHeader = false;\n }\n }\n}\n/**\n * getSpaceValue method \\\n *\n * @returns { number } getSpaceValue method .\\\n * @param {number[]} intervals - provide the intervals value.\n * @param {boolean} isLine - provide the isLine value.\n * @param {number} i - provide the i value.\n * @param {number} space - provide the space value.\n * @private\n */\nexport function getSpaceValue(intervals, isLine, i, space) {\n space = !isLine ? ((intervals[i - 1] !== undefined) ? intervals[i - 1] + space : 0) : space;\n return space;\n}\n/**\n * getInterval method \\\n *\n * @returns { number[] } getInterval method .\\\n * @param {number[]} intervals - provide the intervals value.\n * @param {boolean} isLine - provide the isLine value.\n * @private\n */\nexport function getInterval(intervals, isLine) {\n var newInterval = [];\n if (!isLine) {\n for (var k = 0; k < intervals.length; k++) {\n newInterval.push(intervals[parseInt(k.toString(), 10)]);\n }\n newInterval.push(intervals[newInterval.length - 2]);\n newInterval.push(intervals[newInterval.length - 2]);\n }\n else {\n newInterval = intervals;\n }\n return newInterval;\n}\n/**\n * setPortsEdges method \\\n *\n * @returns { Node } setPortsEdges method .\\\n * @param {Node} node - provide the node value.\n * @private\n */\nexport function setPortsEdges(node) {\n for (var k = 0; k < node.ports.length; k++) {\n node.ports[parseInt(k.toString(), 10)].inEdges = [];\n node.ports[parseInt(k.toString(), 10)].outEdges = [];\n }\n return node;\n}\n/**\n * setUMLActivityDefaults method \\\n *\n * @returns { void } setUMLActivityDefaults method .\\\n * @param {NodeModel | ConnectorModel} child - provide the child value.\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setUMLActivityDefaults(child, node) {\n if (node instanceof Node) {\n var shape = child.shape.shape;\n switch (shape) {\n case 'JoinNode':\n if (!child.width) {\n node.width = 20;\n }\n if (!child.height) {\n node.height = 90;\n }\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'ForkNode':\n if (!child.width) {\n node.width = 90;\n }\n if (!child.height) {\n node.height = 20;\n }\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'InitialNode':\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'FinalNode':\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n }\n }\n else {\n var flow = child.shape.flow;\n switch (flow) {\n case 'Object':\n if (!child.style || !child.style.strokeDashArray) {\n node.style.strokeDashArray = '8 4';\n }\n if (!child.style || !child.style.strokeWidth) {\n node.style.strokeWidth = 2;\n }\n if (!child.targetDecorator || !child.targetDecorator.shape) {\n node.targetDecorator.shape = 'OpenArrow';\n }\n break;\n case 'Control':\n if (!child.style || !child.style.strokeWidth) {\n node.style.strokeWidth = 2;\n }\n if (!child.targetDecorator || !child.targetDecorator.shape) {\n node.targetDecorator.shape = 'OpenArrow';\n }\n if (!child.sourceDecorator || !child.sourceDecorator.shape) {\n node.sourceDecorator.shape = 'None';\n }\n break;\n }\n }\n}\n/* eslint-disable */\n/**\n * setConnectorDefaults method \\\n *\n * @returns { void } setConnectorDefaults method .\\\n * @param {ConnectorModel} child - provide the child value.\n * @param {ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setConnectorDefaults(child, node) {\n switch ((child.shape).type) {\n case 'Bpmn':\n var bpmnFlow = child.shape.flow;\n switch (bpmnFlow) {\n case 'Sequence':\n if ((((child.shape.sequence) === 'Normal' && child.type !== 'Bezier')) ||\n ((child.shape.sequence) === 'Default') || ((child.shape.sequence) === 'Conditional')) {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style\n && child.targetDecorator.style.fill) || 'black';\n }\n if ((child.shape.sequence) === 'Conditional' && node.sourceDecorator) {\n if (node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 20;\n node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.width) || 10;\n }\n }\n break;\n case 'Association':\n if (((child.shape.association) === 'Default') ||\n ((child.shape.association) === 'Directional') ||\n ((child.shape.association) === 'BiDirectional')) {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style &&\n child.targetDecorator.style.fill) || 'black';\n }\n if ((child.shape.association) === 'BiDirectional') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 5;\n node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.height) || 10;\n }\n }\n }\n break;\n case 'Message':\n if (node.style && !node.style.strokeDashArray) {\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4';\n }\n break;\n }\n break;\n case 'UmlActivity':\n var flow = child.shape.flow;\n switch (flow) {\n case 'Exception':\n if (((child.shape.association) === 'Directional') ||\n ((child.shape.association) === 'BiDirectional')) {\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '2 2';\n }\n break;\n }\n break;\n case 'UmlClassifier':\n var hasRelation = false;\n if (child.shape.relationship === 'Association') {\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Inheritance') {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style &&\n child.targetDecorator.style.fill) || 'white';\n }\n if (node.style) {\n hasRelation = true;\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4';\n }\n }\n else if (child.shape.relationship === 'Composition') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'black';\n }\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Aggregation' ||\n child.shape.relationship === undefined) {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Dependency') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n node.style.strokeDashArray = '4 4';\n }\n else if (child.shape.relationship === 'Realization') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n }\n if (hasRelation) {\n node.style.strokeWidth = (child.style && child.style.strokeWidth) || 2;\n }\n break;\n }\n}\n/* eslint-enable */\n/**\n * findNearestPoint method \\\n *\n * @returns { PointModel } findNearestPoint method .\\\n * @param {PointModel} reference - provide the reference value.\n * @param {PointModel} start - provide the start value.\n * @param {PointModel} end - provide the end value.\n * @private\n */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/**\n * pointsForBezier method \\\n *\n * @returns { PointModel[] } pointsForBezier method .\\\n * @param {ConnectorModel} connector - provide the connector value.\n * @private\n */\nfunction pointsForBezier(connector) {\n var points = [];\n if (connector.type === 'Bezier') {\n var k = 0;\n for (var i = 0; i < connector.segments.length; i++) {\n var tolerance = 1.5;\n var segment = connector.segments[parseInt(i.toString(), 10)];\n //const pt: PointModel = { x: 0, y: 0 };\n var point1 = !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1;\n var point2 = !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2;\n var max = Number((connector.distance(point1, segment.points[0]) +\n connector.distance(point2, point1) +\n connector.distance(segment.points[1], point2)) / tolerance);\n for (var j = 0; j < max - 1; j = j + 10) {\n points[parseInt(k.toString(), 10)] =\n bezierPoints(connector, segment.points[0], !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, segment.points[1], j, max);\n k++;\n }\n }\n }\n return points;\n}\n/**\n * isDiagramChild method \\\n *\n * @returns { boolean } isDiagramChild method .\\\n * @param {HTMLElement} htmlLayer - provide the htmlLayer value.\n * @private\n */\nexport function isDiagramChild(htmlLayer) {\n var element = htmlLayer.parentElement;\n do {\n if (hasClass(element, 'e-diagram')) {\n return true;\n }\n element = element.parentElement;\n } while (element);\n return false;\n}\n/**\n * groupHasType method \\\n *\n * @returns { boolean } groupHasType method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {Shapes} type - provide the type value.\n * @param {{}} nameTable - provide the nameTable value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function groupHasType(node, type, nameTable) {\n var contains = false;\n if (node && node.children && node.children.length > 0) {\n var child = void 0;\n var i = 0;\n for (; i < node.children.length; i++) {\n child = nameTable[node.children[parseInt(i.toString(), 10)]];\n if (child.shape.type === type) {\n return true;\n }\n return groupHasType(child, type, nameTable);\n }\n }\n return contains;\n}\n/**\n * groupHasType method \\\n *\n * @returns { void } groupHasType method .\\\n * @param {NodeModel | ConnectorModel} actualNode - provide the actualNode value.\n * @param { NodeModel | ConnectorModel} plainValue - provide the plainValue value.\n * @param {object} defaultValue - provide the defaultValue value.\n * @param {NodeModel | ConnectorModel} property - provide the property value.\n * @param {string} oldKey - provide the oldKey value.\n * @private\n */\nexport function updateDefaultValues(actualNode, plainValue, \n// eslint-disable-next-line @typescript-eslint/ban-types\ndefaultValue, property, oldKey) {\n if (defaultValue && ((actualNode instanceof Connector) || actualNode\n && ((actualNode.shape && actualNode.shape.type !== 'SwimLane') || actualNode.shape === undefined))) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var keyObj = void 0;\n for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) {\n var key = _a[_i];\n keyObj = defaultValue[\"\" + key];\n if (key === 'shape' && keyObj.type) {\n actualNode.shape = { type: keyObj.type };\n }\n if (keyObj) {\n if (Array.isArray(keyObj) && keyObj.length && keyObj.length > 0 && (oldKey !== 'annotations' && oldKey !== 'ports')) {\n if (actualNode[\"\" + key].length > 0) {\n for (var i = 0; i <= actualNode[\"\" + key].length; i++) {\n updateDefaultValues(actualNode[\"\" + key], plainValue ? plainValue[\"\" + key] : undefined, defaultValue[\"\" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key);\n }\n }\n else {\n updateDefaultValues(actualNode[\"\" + key], plainValue ? plainValue[\"\" + key] : undefined, defaultValue[\"\" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key);\n }\n }\n else if (keyObj instanceof Object && plainValue && (oldKey !== 'annotations' && oldKey !== 'ports')) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n else if ((oldKey !== 'annotations' && oldKey !== 'ports')\n && (plainValue && !plainValue[\"\" + key]) || (!plainValue && actualNode\n && (actualNode[\"\" + key] || actualNode[\"\" + key] !== undefined))) {\n actualNode[\"\" + key] = defaultValue[\"\" + key];\n }\n else {\n var createObject = void 0;\n if (oldKey === 'annotations' || oldKey === 'ports') {\n if (oldKey === 'annotations') {\n if (actualNode[\"\" + key]) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n if (!actualNode[\"\" + key]) {\n if (getObjectType(property) === Connector) {\n createObject = new PathAnnotation(property, 'annotations', defaultValue[\"\" + key]);\n property.annotations.push(createObject);\n }\n else {\n createObject = new ShapeAnnotation(property, 'annotations', defaultValue[\"\" + key]);\n property.annotations.push(createObject);\n }\n }\n }\n else {\n if (actualNode[\"\" + key]) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n else {\n createObject = new PointPort(property, 'ports', defaultValue[\"\" + key]);\n property.ports.push(createObject);\n }\n }\n }\n }\n }\n }\n }\n}\n/* tslint:disable:no-string-literal */\n/**\n * updateLayoutValue method \\\n *\n * @returns { void } updateLayoutValue method .\\\n * @param {TreeInfo} actualNode - provide the actualNode value.\n * @param { object} defaultValue - provide the defaultValue value.\n * @param {INode[]} nodes - provide the nodes value.\n * @param {INode} node - provide the node value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function updateLayoutValue(actualNode, defaultValue, nodes, node) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var keyObj;\n var assistantKey = 'Role';\n if (defaultValue) {\n for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) {\n var key = _a[_i];\n keyObj = defaultValue[\"\" + key];\n if (key === 'getAssistantDetails') {\n //Removed isBlazor code\n if (node.data[\"\" + assistantKey] === defaultValue[\"\" + key]['root']) {\n var assitants = defaultValue[\"\" + key]['assistants'];\n for (var i = 0; i < assitants.length; i++) {\n for (var j = 0; j < nodes.length; j++) {\n if (nodes[parseInt(j.toString(), 10)].data[\"\" + assistantKey] === assitants[parseInt(i.toString(), 10)]) {\n actualNode.assistants.push(nodes[parseInt(j.toString(), 10)].id);\n actualNode.children.splice(0, 1);\n }\n }\n }\n }\n }\n else if (keyObj) {\n actualNode[\"\" + key] = defaultValue[\"\" + key];\n }\n }\n }\n if (!actualNode.hasSubTree && defaultValue.canEnableSubTree) {\n actualNode.orientation = node.layoutInfo.orientation;\n actualNode.type = node.layoutInfo.type;\n if (node.layoutInfo.offset !== actualNode.offset && (node.layoutInfo.offset) !== undefined) {\n actualNode.offset = node.layoutInfo.offset;\n }\n }\n node.layoutInfo.hasSubTree = actualNode.hasSubTree;\n}\n/* tslint:enable:no-string-literal */\n/**\n * isPointOverConnector method \\\n *\n * @returns { boolean } isPointOverConnector method .\\\n * @param {ConnectorModel} connector - provide the connector value.\n * @param { PointModel} reference - provide the reference value.\n * @private\n */\nexport function isPointOverConnector(connector, reference) {\n //let intermediatePoints: PointModel[];\n var intermediatePoints = connector.type === 'Bezier' ? pointsForBezier(connector) :\n connector.intermediatePoints;\n for (var i = 0; i < intermediatePoints.length - 1; i++) {\n var start = intermediatePoints[parseInt(i.toString(), 10)];\n var end = intermediatePoints[i + 1];\n var rect = Rect.toBounds([start, end]);\n rect.Inflate(connector.hitPadding);\n if (rect.containsPoint(reference)) {\n var intersectinPt = findNearestPoint(reference, start, end);\n var segment1 = { x1: start.x, x2: end.x, y1: start.y, y2: end.y };\n var segment2 = { x1: reference.x, x2: intersectinPt.x, y1: reference.y, y2: intersectinPt.y };\n var intersectDetails = intersect3(segment1, segment2);\n if (intersectDetails.enabled) {\n var distance = Point.findLength(reference, intersectDetails.intersectPt);\n if (Math.abs(distance) < connector.hitPadding) {\n return true;\n }\n }\n else {\n var rect_1 = Rect.toBounds([reference, reference]);\n rect_1.Inflate(3);\n if (rect_1.containsPoint(start) || rect_1.containsPoint(end)) {\n return true;\n }\n }\n if (Point.equals(reference, intersectinPt)) {\n return true;\n }\n }\n }\n if (connector.annotations.length > 0 || connector.ports.length > 0) {\n var container = connector.wrapper.children;\n for (var i = 3; i < container.length; i++) {\n var textElement = container[parseInt(i.toString(), 10)];\n if (textElement.bounds.containsPoint(reference)) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * intersect3 method \\\n *\n * @returns { Intersection } intersect3 method .\\\n * @param {ConnectorModel} lineUtil1 - provide the lineUtil1 value.\n * @param { PointModel} lineUtil2 - provide the lineUtil2 value.\n * @private\n */\nexport function intersect3(lineUtil1, lineUtil2) {\n var point = { x: 0, y: 0 };\n var l1 = lineUtil1;\n var l2 = lineUtil2;\n var d = (l2.y2 - l2.y1) * (l1.x2 - l1.x1) - (l2.x2 - l2.x1) * (l1.y2 - l1.y1);\n var na = (l2.x2 - l2.x1) * (l1.y1 - l2.y1) - (l2.y2 - l2.y1) * (l1.x1 - l2.x1);\n var nb = (l1.x2 - l1.x1) * (l1.y1 - l2.y1) - (l1.y2 - l1.y1) * (l1.x1 - l2.x1);\n /*( EJ2-42102 - Connector segments not update properly ) by sivakumar sekar - condition added to avoid bridging for\n overlapping segments in the connectors and to validate whether the connector is intersecting over the other */\n if (d === 0 || ((lineUtil1.x1 === lineUtil2.x1 || lineUtil1.y1 === lineUtil2.y1) &&\n (lineUtil1.x2 === lineUtil2.x2 || lineUtil1.y2 === lineUtil2.y2) && ((na === 0 || nb === 0) && d > 0))) {\n return { enabled: false, intersectPt: point };\n }\n var ua = na / d;\n var ub = nb / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n point.x = l1.x1 + (ua * (l1.x2 - l1.x1));\n point.y = l1.y1 + (ua * (l1.y2 - l1.y1));\n return { enabled: true, intersectPt: point };\n }\n return { enabled: false, intersectPt: point };\n}\n/**\n * intersect2 method \\\n *\n * @returns { PointModel } intersect2 method .\\\n * @param {PointModel} start1 - provide the start1 value.\n * @param { PointModel} end1 - provide the end1 value.\n * @param { PointModel} start2 - provide the start2 value.\n * @param { PointModel} end2 - provide the end2 value.\n * @private\n */\nexport function intersect2(start1, end1, start2, end2) {\n var point = { x: 0, y: 0 };\n var lineUtil1 = getLineSegment(start1.x, start1.y, end1.x, end1.y);\n var lineUtil2 = getLineSegment(start2.x, start2.y, end2.x, end2.y);\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n return line3.intersectPt;\n }\n else {\n return point;\n }\n}\n/**\n * getLineSegment method \\\n *\n * @returns { Segment } getLineSegment method .\\\n * @param {number} x1 - provide the x1 value.\n * @param { number} y1 - provide the y1 value.\n * @param { number} x2 - provide the x2 value.\n * @param { number} y2 - provide the y2 value.\n * @private\n */\nexport function getLineSegment(x1, y1, x2, y2) {\n return { 'x1': Number(x1) || 0, 'y1': Number(y1) || 0, 'x2': Number(x2) || 0, 'y2': Number(y2) || 0 };\n}\n/**\n * getPoints method \\\n *\n * @returns { PointModel[] } getPoints method .\\\n * @param {number} element - provide the element value.\n * @param { number} corners - provide the corners value.\n * @param { number} padding - provide the padding value.\n * @private\n */\nexport function getPoints(element, corners, padding) {\n var line = [];\n padding = padding || 0;\n var left = { x: corners.topLeft.x - padding, y: corners.topLeft.y };\n var right = { x: corners.topRight.x + padding, y: corners.topRight.y };\n var top = { x: corners.bottomRight.x, y: corners.bottomRight.y - padding };\n var bottom = { x: corners.bottomLeft.x, y: corners.bottomLeft.y + padding };\n line.push(left);\n line.push(right);\n line.push(top);\n line.push(bottom);\n return line;\n}\n/**\n * getTooltipOffset method \\\n *\n * @returns { PointModel[] } getTooltipOffset method .\\\n * @param {number} diagram - provide the diagram value.\n * @param { number} mousePosition - provide the mousePosition value.\n * @param { NodeModel | ConnectorModel | PointPortModel} node - provide the node value.\n * @param { string} type - provide the type value.\n * @private\n */\nexport function getTooltipOffset(diagram, mousePosition, node, type) {\n //let offset: PointModel;\n var inheritTooltip = (node instanceof Node) ? (node.constraints & NodeConstraints.InheritTooltip)\n : (node instanceof Connector) ? (node.constraints & ConnectorConstraints.InheritTooltip)\n : (node.constraints & PortConstraints.InheritTooltip);\n var objectTooltip = (node instanceof Node) ? (node.constraints & NodeConstraints.Tooltip)\n : (node instanceof Connector) ? (node.constraints & ConnectorConstraints.Tooltip)\n : (node.constraints & PortConstraints.ToolTip);\n var isMouseBased = ((!inheritTooltip && objectTooltip ? node.tooltip.relativeMode\n : diagram.tooltip.relativeMode) === 'Mouse') ? true : false;\n if (type === 'Mouse') {\n isMouseBased = true;\n }\n else if (type === 'Object') {\n isMouseBased = false;\n }\n var offset = tooltipOffset(node, mousePosition, diagram, isMouseBased);\n var rulerSize = getRulerSize(diagram);\n return { x: offset.x + rulerSize.width, y: offset.y + rulerSize.height };\n}\n/**\n * tooltipOffset method \\\n *\n * @returns { PointModel } tooltipOffset method .\\\n * @param {NodeModel | ConnectorModel | PointPortModel} node - provide the node value.\n * @param { PointModel} mousePosition - provide the mousePosition value.\n * @param { Diagram } diagram - provide the diagram value.\n * @param { boolean} isMouseBased - provide the isMouseBased value.\n * @private\n */\nfunction tooltipOffset(node, mousePosition, diagram, isMouseBased) {\n var point = {};\n //let scale: number = diagram.scroller.transform.scale;\n var element = document.getElementById(diagram.element.id);\n var bounds;\n //EJ2-62120-Tooltip support for ports\n if (node instanceof Node || node instanceof Connector) {\n bounds = node.wrapper.bounds;\n }\n else {\n var objects = diagram.findObjectsUnderMouse(mousePosition);\n var obj = diagram.findObjectUnderMouse(objects, 'Select', false);\n var portElement = diagram.findElementUnderMouse(obj, mousePosition, diagram);\n bounds = portElement.bounds;\n }\n var rect = element.getBoundingClientRect();\n /* eslint-enable */\n //let horizontalOffset: number = diagram.scroller.horizontalOffset;\n //let verticalOffset: number = diagram.scroller.verticalOffset;\n switch (diagram.tooltipObject.position) {\n case 'BottomCenter':\n point = offsetPoint(mousePosition, bounds.bottomCenter, diagram, isMouseBased, (rect.width / 2), rect.height);\n break;\n case 'BottomLeft':\n case 'LeftBottom':\n point = offsetPoint(mousePosition, bounds.bottomLeft, diagram, isMouseBased, 0, rect.height);\n break;\n case 'BottomRight':\n case 'RightBottom':\n point = offsetPoint(mousePosition, bounds.bottomRight, diagram, isMouseBased, rect.width, rect.height);\n break;\n case 'LeftCenter':\n point = offsetPoint(mousePosition, bounds.middleLeft, diagram, isMouseBased, 0, (rect.height / 2));\n break;\n case 'LeftTop':\n case 'TopLeft':\n point = offsetPoint(mousePosition, bounds.topLeft, diagram, isMouseBased, 0, 0);\n break;\n case 'RightCenter':\n point = offsetPoint(mousePosition, bounds.middleRight, diagram, isMouseBased, rect.width, (rect.height / 2));\n break;\n case 'RightTop':\n case 'TopRight':\n point = offsetPoint(mousePosition, bounds.topRight, diagram, isMouseBased, rect.width, 0);\n break;\n case 'TopCenter':\n point = offsetPoint(mousePosition, bounds.topCenter, diagram, isMouseBased, (rect.width / 2), 0);\n break;\n }\n return point;\n}\n/**\n * offsetPoint method \\\n *\n * @returns { PointModel } offsetPoint method .\\\n * @param { PointModel} mousePosition - provide the mousePosition value.\n * @param { PointModel } bound - provide the diagram value.\n * @param { Diagram} diagram - provide the isMouseBased value.\n * @param { boolean} isMouseBased - provide the isMouseBased value.\n * @param { number} x - provide the isMouseBased value.\n * @param { number} y - provide the isMouseBased value.\n * @private\n */\nfunction offsetPoint(mousePosition, bound, diagram, isMouseBased, x, y) {\n var point = {};\n var scale = diagram.scroller.transform.scale;\n var horizontalOffset = diagram.scroller.horizontalOffset;\n var verticalOffset = diagram.scroller.verticalOffset;\n point.x = (isMouseBased ? mousePosition.x : bound.x) * scale + horizontalOffset - x;\n point.y = (isMouseBased ? mousePosition.y : bound.y) * scale + verticalOffset - y;\n return point;\n}\n/**\n * Gets the fixed user handles symbol \\\n *\n * @returns { DiagramElement } Gets the fixed user handles symbol .\\\n * @param {ConnectorFixedUserHandleModel | NodeFixedUserHandleModel} options - provide the options value.\n * @param { Canvas} fixedUserHandleContainer - provide the fixedUserHandleContainer value.\n * @private\n */\nexport function initFixedUserHandlesSymbol(options, fixedUserHandleContainer) {\n //let fixedUserHandleContent: PathElement | DiagramNativeElement;\n var fixedUserHandleContent = new PathElement();\n fixedUserHandleContent.data = options.pathData;\n fixedUserHandleContent.height =\n options.height > 10 ? options.height - (options.padding.bottom + options.padding.top) : options.height;\n fixedUserHandleContent.width =\n options.width > 10 ? options.width - (options.padding.left + options.padding.right) : options.width;\n //Bug 912616: Not able to hide the fixedUserHandle in diagram\n fixedUserHandleContent.visible = options.visibility;\n fixedUserHandleContent.id = fixedUserHandleContainer.id + '_shape';\n fixedUserHandleContent.inversedAlignment = false;\n fixedUserHandleContent.horizontalAlignment = 'Center';\n fixedUserHandleContent.verticalAlignment = 'Center';\n fixedUserHandleContent.style = {\n fill: options.iconStrokeColor, strokeColor: options.iconStrokeColor,\n strokeWidth: options.iconStrokeWidth\n };\n fixedUserHandleContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n fixedUserHandleContent.relativeMode = 'Object';\n fixedUserHandleContent.description = fixedUserHandleContainer.description || '';\n return fixedUserHandleContent;\n}\n/**\n * sort method \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } sort method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the options value.\n * @param { DistributeOptions} option - provide the fixedUserHandleContainer value.\n * @private\n */\nexport function sort(objects, option) {\n var i = 0;\n var j = 0;\n var temp;\n for (i = 0; i < objects.length; i++) {\n var b = getBounds(objects[parseInt(i.toString(), 10)].wrapper);\n for (j = i + 1; j < objects.length; j++) {\n var bounds = getBounds(objects[parseInt(j.toString(), 10)].wrapper);\n if (option === 'Top' || option === 'Bottom' || option === 'BottomToTop' || option === 'Middle') {\n if (b.center.y > bounds.center.y) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n else {\n if (b.center.x > bounds.center.x) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n return objects;\n}\n/**\n * getAnnotationPosition method \\\n *\n * @returns {SegmentInfo } getAnnotationPosition method .\\\n * @param {PointModel[]} pts - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value.\n * @param { Rect } bound - provide the bound value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getAnnotationPosition(pts, annotation, bound) {\n //let angle: number;\n //let getloop: SegmentInfo;\n //let point: PointModel;\n var getloop = getOffsetOfConnector(pts, annotation);\n var angle = Point.findAngle(pts[getloop.index], pts[getloop.index + 1]);\n var alignednumber = getAlignedPosition(annotation);\n var point = Point.transform(getloop.point, angle + 45, alignednumber);\n getloop.point = point;\n getloop.angle = angle;\n return getloop;\n}\n/**\n * getPortsPosition method \\\n *\n * @returns {SegmentInfo } getPortsPosition method .\\\n * @param {PointModel[]} pts - provide the pts value.\n * @param { Port} ports - provide the ports value.\n * @param { Rect } bound - provide the bound value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getPortsPosition(pts, ports, bound) {\n var getloop = getOffsetOfPorts(pts, ports);\n var angle = Point.findAngle(pts[getloop.index], pts[getloop.index + 1]);\n var alignednumber = getAlignedPositionForPorts(ports);\n var point = Point.transform(getloop.point, angle + 45, alignednumber);\n getloop.point = point;\n getloop.angle = angle;\n return getloop;\n}\n/**\n * getOffsetOfPorts method \\\n *\n * @returns {SegmentInfo } getOffsetOfPorts method .\\\n * @param {PointModel[]} points - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} ports - provide the ports value.\n * @private\n */\nexport function getOffsetOfPorts(points, ports) {\n // eslint-disable-next-line\n var distance = 0;\n var offset = ports.offset;\n var point;\n var angle;\n var pointDistance = [];\n var prevLength;\n var kCount;\n for (var j = 0; j < points.length - 1; j++) {\n distance += Point.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n pointDistance.push(distance);\n }\n var offsetLength = offset * distance;\n for (var k = 0; k < pointDistance.length; k++) {\n if (pointDistance[parseInt(k.toString(), 10)] >= offsetLength) {\n angle = Point.findAngle(points[parseInt(k.toString(), 10)], points[k + 1]);\n point = Point.transform(points[parseInt(k.toString(), 10)], angle, offsetLength - (prevLength || 0));\n kCount = k;\n return { point: point, index: kCount };\n }\n prevLength = pointDistance[parseInt(k.toString(), 10)];\n }\n return { point: point, index: kCount };\n}\n/**\n * getAlignedPosition method . To get the port alignment position \\\n *\n * @returns {number } getAlignedPosition method .\\\n * @param {PointModel[]} ports - provide the annotation value.\n * @private\n */\nexport function getAlignedPositionForPorts(ports) {\n var constant = 0;\n var state = 0;\n switch (ports.alignment) {\n case 'Center':\n state = 0;\n break;\n case 'Before':\n state = -((0) / 2 + constant);\n break;\n case 'After':\n state = ((0) / 2 + constant);\n break;\n }\n return state;\n}\n/**\n * getOffsetOfConnector method \\\n *\n * @returns {SegmentInfo } getOffsetOfConnector method .\\\n * @param {PointModel[]} points - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value.\n * @private\n */\nexport function getOffsetOfConnector(points, annotation) {\n // eslint-disable-next-line\n var length = 0;\n var offset = annotation.offset;\n var point;\n var angle;\n var lengths = [];\n var prevLength;\n var kCount;\n for (var j = 0; j < points.length - 1; j++) {\n length += Point.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n lengths.push(length);\n }\n var offsetLength = offset * length;\n for (var k = 0; k < lengths.length; k++) {\n if (lengths[parseInt(k.toString(), 10)] >= offsetLength) {\n angle = Point.findAngle(points[parseInt(k.toString(), 10)], points[k + 1]);\n point = Point.transform(points[parseInt(k.toString(), 10)], angle, offsetLength - (prevLength || 0));\n kCount = k;\n return { point: point, index: kCount };\n }\n prevLength = lengths[parseInt(k.toString(), 10)];\n }\n return { point: point, index: kCount };\n}\n/**\n * getAlignedPosition method \\\n *\n * @returns {number } getAlignedPosition method .\\\n * @param {PointModel[]} annotation - provide the annotation value.\n * @private\n */\nexport function getAlignedPosition(annotation) {\n var cnst;\n if ((annotation instanceof ConnectorFixedUserHandle)) {\n cnst = 0;\n }\n else {\n cnst = annotation.content === undefined ? 10 : 0;\n }\n var state = 0;\n switch (annotation.alignment) {\n case 'Center':\n state = 0;\n break;\n case 'Before':\n state = -((0) / 2 + cnst);\n break;\n case 'After':\n state = ((0) / 2 + cnst);\n break;\n }\n return state;\n}\n/**\n * alignLabelOnSegments method \\\n *\n * @returns {Alignment } alignLabelOnSegments method .\\\n * @param {PathAnnotation | ConnectorFixedUserHandle} obj - provide the obj value.\n * @param { number } ang - provide the ang value.\n * @param { PointModel[] } pts - provide the pts value.\n * @private\n */\nexport function alignLabelOnSegments(obj, ang, pts) {\n //let angle: number = ang % 360;\n ang %= 360;\n var fourty5 = 45;\n var one35 = 135;\n var two25 = 225;\n var three15 = 315;\n var vAlign;\n var hAlign;\n switch (obj.alignment) {\n case 'Before':\n if (ang >= fourty5 && ang <= one35) {\n hAlign = 'right';\n vAlign = obj.offset === 0.5 ? 'center' : 'top';\n }\n else if (ang >= two25 && ang <= three15) {\n hAlign = 'left';\n vAlign = obj.offset === 0.5 ? 'center' : 'bottom';\n }\n else if (ang > fourty5 && ang < two25) {\n vAlign = 'top';\n hAlign = obj.offset === 0.5 ? 'center' : 'right';\n }\n else {\n vAlign = 'bottom';\n hAlign = (obj.offset === 0.5) ? 'center' : 'left';\n }\n break;\n case 'After':\n if (ang >= fourty5 && ang <= one35) {\n hAlign = 'left';\n vAlign = obj.offset === 0.5 ? 'center' : 'top';\n }\n else if (ang >= two25 && ang <= three15) {\n hAlign = 'right';\n vAlign = obj.offset === 0.5 ? 'center' : 'bottom';\n }\n else if (ang > fourty5 && ang < two25) {\n vAlign = 'bottom';\n hAlign = obj.offset === 0.5 ? 'center' : 'right';\n }\n else {\n vAlign = 'top';\n hAlign = obj.offset === 0.5 ? 'center' : 'left';\n }\n break;\n case 'Center':\n hAlign = !isNullOrUndefined(obj.horizontalAlignment) ? obj.horizontalAlignment.toLowerCase() : 'center';\n vAlign = !isNullOrUndefined(obj.verticalAlignment) ? obj.verticalAlignment.toLowerCase() : 'center';\n break;\n }\n if (obj.offset === 0 || obj.offset === 1) {\n //let direction: string;\n var direction = getBezierDirection(pts[0], pts[1]);\n switch (direction) {\n case 'left':\n hAlign = obj.offset === 0 ? 'right' : 'left';\n break;\n case 'right':\n hAlign = obj.offset === 0 ? 'left' : 'right';\n break;\n case 'bottom':\n vAlign = obj.offset === 0 ? 'top' : 'bottom';\n break;\n case 'top':\n vAlign = obj.offset === 0 ? 'bottom' : 'top';\n break;\n }\n }\n return { hAlign: hAlign, vAlign: vAlign };\n}\n/**\n * getBezierDirection method \\\n *\n * @returns {string } getBezierDirection method .\\\n * @param {PointModel} src - provide the src value.\n * @param { PointModel } tar - provide the tar value.\n * @private\n */\nexport function getBezierDirection(src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'right' : 'left';\n }\n else {\n return src.y < tar.y ? 'bottom' : 'top';\n }\n}\n/**\n * removeChildNodes method \\\n *\n * @returns {void } removeChildNodes method .\\\n * @param {NodeModel} node - provide the node value.\n * @param { Diagram } diagram - provide the diagram value.\n * @private\n */\nexport function removeChildNodes(node, diagram) {\n if (node instanceof Node && node.children) {\n for (var i = 0; i < node.children.length; i++) {\n if (diagram.nameTable[node.children[parseInt(i.toString(), 10)]].children) {\n removeChildNodes(node, diagram);\n }\n diagram.removeFromAQuad(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]);\n diagram.removeObjectsFromLayer(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]);\n delete diagram.nameTable[node.children[parseInt(i.toString(), 10)]];\n }\n }\n}\n/**\n * getChild method \\\n *\n * @returns {string[] } getChild method .\\\n * @param {Canvas} child - provide the child value.\n * @param { string[] } children - provide the children value.\n * @private\n */\nexport function getChild(child, children) {\n if (child && child.children && child.children.length > 0) {\n for (var j = 0; j < child.children.length; j++) {\n var subChild = child.children[parseInt(j.toString(), 10)];\n if (subChild instanceof Canvas) {\n getChild(subChild, children);\n }\n }\n }\n if (children.indexOf(child.id) === -1) {\n children.push(child.id);\n }\n return children;\n}\n/**\n * getSwimLaneChildren method \\\n *\n * @returns {string[] } getSwimLaneChildren method .\\\n * @param {NodeModel[]} nodes - provide the nodes value.\n * @private\n */\nfunction getSwimLaneChildren(nodes) {\n var children = [];\n var node;\n var grid;\n var childTable;\n var child;\n var gridChild = 'childTable';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n grid = node.wrapper.children[0];\n childTable = grid[\"\" + gridChild];\n for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) {\n var key = _a[_i];\n child = childTable[\"\" + key];\n children = getChild(child, children);\n }\n }\n }\n return children;\n}\n/**\n * removeUnnecessaryNodes method \\\n *\n * @returns {void } removeUnnecessaryNodes method .\\\n * @param {string[]} children - provide the children value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nfunction removeUnnecessaryNodes(children, diagram) {\n var nodes = diagram.nodes;\n if (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (children.indexOf(nodes[parseInt(i.toString(), 10)].id) !== -1) {\n nodes.splice(i, 1);\n i--;\n }\n }\n }\n}\n/**\n * serialize method \\\n *\n * @returns {string } serialize method .\\\n * @param {Diagram} model - provide the model value.\n * @private\n */\nexport function serialize(model) {\n var removeNodes = getSwimLaneChildren(model.nodes);\n var clonedObject = cloneObject(model, model.getCustomProperty);\n clonedObject.selectedItems.nodes = [];\n clonedObject.selectedItems.connectors = [];\n clonedObject.selectedItems.wrapper = null;\n if (model.serializationSettings.preventDefaults) {\n clonedObject = preventDefaults(clonedObject, model);\n }\n removeUnnecessaryNodes(removeNodes, clonedObject);\n return JSON.stringify(clonedObject);\n}\n/**\n * preventDefaults method \\\n *\n * @returns {string } preventDefaults method .\\\n * @param {Object} clonedObject - provide the clonedObject value.\n * @param {object} model - provide the model value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @param {boolean} isNodeShape - provide the isNodeShape value.\n * @private\n */\n// eslint-disable-next-line\nfunction preventDefaults(clonedObject, model, defaultObject, isNodeShape) {\n defaultObject = getConstructor(model, defaultObject);\n var properties = [];\n properties = properties.concat(Object.keys(clonedObject));\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (model instanceof Node) {\n isNodeShape = (property === 'shape') ? true : false;\n }\n if (clonedObject[\"\" + property] instanceof Array) {\n preventArrayDefaults(clonedObject, defaultObject, model, property);\n }\n else if ((clonedObject[\"\" + property] instanceof Object) && defaultObject && defaultObject[\"\" + property]) {\n if (property !== 'wrapper') {\n clonedObject[\"\" + property] = preventDefaults(clonedObject[\"\" + property], model[\"\" + property], defaultObject[\"\" + property], isNodeShape);\n }\n }\n else if ((defaultObject && clonedObject[\"\" + property] === defaultObject[\"\" + property]) || clonedObject[\"\" + property] === undefined) {\n if (!(isNodeShape && property === 'type') && !(model instanceof SwimLane && property === 'orientation')) {\n delete clonedObject[\"\" + property];\n }\n }\n if (JSON.stringify(clonedObject[\"\" + property]) === '[]' ||\n JSON.stringify(clonedObject[\"\" + property]) === '{}' ||\n clonedObject[\"\" + property] === undefined) {\n delete clonedObject[\"\" + property];\n }\n }\n defaultObject = undefined;\n properties = undefined;\n return clonedObject;\n}\n/**\n * preventArrayDefaults method \\\n *\n * @returns {void } preventArrayDefaults method .\\\n * @param {object} clonedObject - provide the clonedObject value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @param {object} model - provide the model value.\n * @param {string} property - provide the property value.\n * @private\n */\n// eslint-disable-next-line\nfunction preventArrayDefaults(clonedObject, defaultObject, model, property) {\n if (clonedObject[\"\" + property].length === 0) {\n delete clonedObject[\"\" + property];\n // eslint-disable-next-line\n }\n else if (clonedObject[property].every(function (element) { return typeof element === 'number'; })) {\n var i = void 0;\n var isSameArray = true;\n for (i = 0; i < clonedObject[\"\" + property].length; i++) {\n if (isSameArray && clonedObject[\"\" + property][parseInt(i.toString(), 10)] === defaultObject[\"\" + property][parseInt(i.toString(), 10)]) {\n isSameArray = true;\n }\n else {\n isSameArray = false;\n }\n }\n if (isSameArray) {\n delete clonedObject[\"\" + property];\n }\n }\n else {\n var i = void 0;\n // Bug 826717: Unable to select swimlane child nodes after serializing the diagram when we enable preventDefault property.\n // Removed the codition to delete the layers from clonedObject.\n if (clonedObject[\"\" + property] && property !== 'layers') {\n for (i = clonedObject[\"\" + property].length - 1; i >= 0; i--) {\n if (property === 'nodes' || property === 'connectors') {\n clonedObject[\"\" + property][parseInt(i.toString(), 10)].wrapper = null;\n }\n if (property !== 'dataManager') {\n clonedObject[\"\" + property][parseInt(i.toString(), 10)] = preventDefaults(clonedObject[\"\" + property][parseInt(i.toString(), 10)], model[\"\" + property][parseInt(i.toString(), 10)], (defaultObject[\"\" + property] !== undefined ? defaultObject[\"\" + property][parseInt(i.toString(), 10)] : []));\n if (JSON.stringify(clonedObject[\"\" + property][parseInt(i.toString(), 10)]) === '[]' ||\n JSON.stringify(clonedObject[\"\" + property][parseInt(i.toString(), 10)]) === '{}' ||\n clonedObject[\"\" + property][parseInt(i.toString(), 10)] === undefined) {\n clonedObject[\"\" + property].splice(i, 1);\n }\n }\n }\n }\n }\n clonedObject = undefined;\n}\n/* eslint-disable */\n/**\n * getConstructor method \\\n *\n * @returns {object } getConstructor method .\\\n * @param {object} model - provide the model value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @private\n */\n/* tslint:disable */\nfunction getConstructor(model, defaultObject) {\n var obj = [];\n var constructor;\n var getClassName = 'getClassName';\n if (model[getClassName]) {\n //EJ2-59327 - Memory leak occurs in saveDiagram method \n var parent_1 = new Diagram();\n switch (model[getClassName]()) {\n case 'Diagram':\n constructor = parent_1;\n break;\n case 'Node':\n constructor = new Node(parent_1, '', obj);\n break;\n case 'Path':\n constructor = new Path(parent_1, '', obj);\n break;\n case 'Native':\n constructor = new Native(parent_1, '', obj);\n break;\n case 'Html':\n constructor = new Html(parent_1, '', obj);\n break;\n case 'Image':\n constructor = new Image(parent_1, '', obj);\n break;\n case 'Text':\n constructor = new Text(parent_1, '', obj);\n break;\n case 'BasicShape':\n constructor = new BasicShape(parent_1, '', obj);\n break;\n case 'FlowShape':\n constructor = new FlowShape(parent_1, '', obj);\n break;\n case 'BpmnShape':\n constructor = new BpmnShape(parent_1, '', obj);\n break;\n case 'UmlActivityShape':\n constructor = new UmlActivityShape(parent_1, '', obj);\n break;\n case 'UmlClassifierShape':\n constructor = new UmlClassifierShape(parent_1, '', obj);\n break;\n case 'SwimLane':\n constructor = new SwimLane(parent_1, '', obj);\n if (model.header) {\n constructor.header = new Header(parent_1, '', obj);\n constructor.header.style.fill = '';\n }\n break;\n case 'ShapeAnnotation':\n constructor = new ShapeAnnotation(parent_1, '', obj);\n break;\n case 'PointPort':\n constructor = new PointPort(parent_1, '', obj);\n break;\n case 'BpmnGateway':\n constructor = new BpmnGateway(parent_1, '', obj);\n break;\n case 'BpmnDataObject':\n constructor = new BpmnDataObject(parent_1, '', obj);\n break;\n case 'BpmnEvent':\n constructor = new BpmnEvent(parent_1, '', obj);\n break;\n case 'BpmnSubEvent':\n constructor = new BpmnSubEvent(parent_1, '', obj);\n break;\n case 'BpmnActivity':\n constructor = new BpmnActivity(parent_1, '', obj);\n break;\n case 'BpmnAnnotation':\n constructor = new BpmnAnnotation(parent_1, '', obj);\n break;\n case 'MethodArguments':\n constructor = new MethodArguments(parent_1, '', obj);\n break;\n case 'UmlClassAttribute':\n constructor = new UmlClassAttribute(parent_1, '', obj);\n break;\n case 'UmlClassMethod':\n constructor = new UmlClassMethod(parent_1, '', obj);\n break;\n case 'UmlClass':\n constructor = new UmlClass(parent_1, '', obj);\n break;\n case 'UmlInterface':\n constructor = new UmlInterface(parent_1, '', obj);\n break;\n case 'UmlEnumerationMember':\n constructor = new UmlEnumerationMember(parent_1, '', obj);\n break;\n case 'UmlEnumeration':\n constructor = new UmlEnumeration(parent_1, '', obj);\n break;\n case 'Lane':\n constructor = new Lane(parent_1, '', obj);\n break;\n case 'Phase':\n constructor = new Phase(parent_1, '', obj);\n break;\n case 'ChildContainer':\n constructor = new ChildContainer();\n break;\n case 'Connector':\n constructor = new Connector(parent_1, '', obj);\n break;\n case 'StraightSegment':\n constructor = new StraightSegment(parent_1, '', obj);\n break;\n case 'BezierSegment':\n constructor = new BezierSegment(parent_1, '', obj);\n break;\n case 'OrthogonalSegment':\n constructor = new OrthogonalSegment(parent_1, '', obj);\n break;\n case 'PathAnnotation':\n constructor = new PathAnnotation(parent_1, '', obj);\n break;\n case 'Stop':\n constructor = new Stop(parent_1, '', obj);\n break;\n case 'Point':\n if (!defaultObject) {\n constructor = new Point(parent_1, '', obj);\n }\n else {\n constructor = defaultObject;\n }\n break;\n case 'UserHandle':\n constructor = new UserHandle(parent_1, '', obj);\n break;\n case 'Command':\n constructor = new Command(parent_1, '', obj);\n break;\n }\n }\n else {\n constructor = defaultObject;\n }\n parent = undefined;\n defaultObject = undefined;\n return constructor;\n}\n/* eslint-enable */\n/* eslint-disable */\n/** @private */\nexport function deserialize(model, diagram) {\n diagram.enableServerDataBinding(false);\n var blazorAction = diagram.blazorActions;\n diagram.blazorActions = diagram.addConstraints(blazorAction, BlazorAction.ClearObject);\n diagram.clear();\n diagram.blazorActions = diagram.removeConstraints(blazorAction, BlazorAction.ClearObject);\n diagram.protectPropertyChange(true);\n var map = diagram.dataSourceSettings.doBinding;\n var nodeTemp = diagram.setNodeTemplate;\n var getDescription = diagram.getDescription;\n var getCustomProperty = diagram.getCustomProperty;\n var commands = {};\n for (var _i = 0, _a = diagram.commandManager.commands; _i < _a.length; _i++) {\n var command = _a[_i];\n commands[command.name] = { execute: command.execute, canExecute: command.canExecute };\n }\n var arrangeTickHorizontal = diagram.rulerSettings.horizontalRuler.arrangeTick;\n var arrangeTickVertical = diagram.rulerSettings.verticalRuler.arrangeTick;\n var getLayoutInfo = diagram.layout.getLayoutInfo;\n var getBranch = diagram.layout.getBranch;\n var nodeDefaults = diagram.getNodeDefaults;\n var connectorDefaults = diagram.getConnectorDefaults;\n var dataObj;\n if (!(model instanceof Object)) {\n dataObj = JSON.parse(model);\n }\n else {\n dataObj = model;\n }\n dataObj = upgrade(dataObj);\n diagram.contextMenuSettings = dataObj.contextMenuSettings || {};\n diagram.constraints = dataObj.constraints || DiagramConstraints.Default;\n diagram.tool = dataObj.tool || DiagramTools.Default;\n diagram.bridgeDirection = dataObj.bridgeDirection || 'Top';\n diagram.pageSettings = dataObj.pageSettings || {};\n diagram.drawingObject = dataObj.drawingObject || undefined;\n diagram.tooltip = dataObj.tooltip || {};\n diagram.addInfo = dataObj.addInfo || undefined;\n diagram.getDescription = getDescription;\n diagram.scrollSettings = dataObj.scrollSettings || {};\n diagram.commandManager = dataObj.commandManager || {};\n /**\n * EJ2-62846-Exception occurs after save and load when layers are undefined.\n */\n if (dataObj.layers && dataObj.layers.length > 0) {\n sortLayerObjects(dataObj);\n }\n diagram.layers = dataObj.layers || [];\n diagram.rulerSettings.horizontalRuler.arrangeTick = arrangeTickHorizontal;\n diagram.rulerSettings.verticalRuler.arrangeTick = arrangeTickVertical;\n for (var _b = 0, _c = diagram.commandManager.commands; _b < _c.length; _b++) {\n var cmd = _c[_b];\n if (commands[cmd.name]) {\n cmd.execute = commands[cmd.name].execute;\n cmd.canExecute = commands[cmd.name].canExecute;\n }\n }\n diagram.backgroundColor = dataObj.backgroundColor || 'transparent';\n diagram.basicElements = dataObj.basicElements || [];\n // EJ2-66465 - Added below code to empty the segment collection if connector type is bezier\n if (dataObj.connectors) {\n for (var i = 0; i < dataObj.connectors.length; i++) {\n // EJ2-69816 - Added below code to empty the segment collection if connector type is bezier and allowSegmentsReset is true\n if (dataObj.connectors[i].type === 'Bezier' && dataObj.connectors[i].segments.length > 0 && dataObj.connectors[i].bezierSettings && dataObj.connectors[i].bezierSettings.allowSegmentsReset) {\n dataObj.connectors[i].segments = [];\n }\n }\n }\n diagram.connectors = dataObj.connectors || [];\n diagram.dataSourceSettings = dataObj.dataSourceSettings || {};\n diagram.dataSourceSettings.doBinding = map;\n diagram.height = dataObj.height || '100%';\n diagram.setNodeTemplate = nodeTemp;\n diagram.getConnectorDefaults = connectorDefaults;\n diagram.getNodeDefaults = nodeDefaults;\n diagram.getCustomProperty = getCustomProperty;\n diagram.mode = dataObj.mode || 'SVG';\n if (dataObj.nodes) {\n for (var i = 0; i < dataObj.nodes.length; i++) {\n if (dataObj.nodes[i].shape && dataObj.nodes[i].shape.type === 'SwimLane') {\n if (dataObj.nodes[i].wrapper == null) {\n {\n dataObj.nodes[i].wrapper = {\n actualSize: { width: dataObj.nodes[i].width, height: dataObj.nodes[i].height },\n offsetX: dataObj.nodes[i].offsetX, offsetY: dataObj.nodes[i].offsetY\n };\n }\n }\n pasteSwimLane(dataObj.nodes[i], undefined, undefined, undefined, undefined, true);\n }\n }\n }\n diagram.nodes = dataObj.nodes || [];\n diagram.rulerSettings = dataObj.rulerSettings || {};\n diagram.snapSettings = dataObj.snapSettings || {};\n diagram.width = dataObj.width || '100%';\n diagram.layout = dataObj.layout || {};\n if (dataObj.layout && dataObj.layout.type !== \"None\") {\n diagram.canLayout = false;\n }\n diagram.layout.getLayoutInfo = getFunction(getLayoutInfo);\n diagram.layout.getBranch = getFunction(getBranch);\n diagram.diagramActions = 0;\n diagram.isLoading = true;\n diagram.protectPropertyChange(false);\n var key = 'refresh';\n var component;\n for (var i = 0; i < diagram.views.length; i++) {\n component = diagram.views[diagram.views[i]];\n diagram.blazorActions = diagram.addConstraints(blazorAction, BlazorAction.ClearObject);\n component.refresh();\n // Bug 849892: The Overview does not update properly When loading the diagram with the loadDiagram API.\n // For this -> EJ2-69580 issue the overview refresh got prevented which leads to this Bug 849892, so added below condition to reset \n // the overview.\n if (component instanceof Overview) {\n component.onPropertyChanged({ sourceID: component.sourceID }, {});\n }\n diagram.blazorActions = diagram.removeConstraints(blazorAction, BlazorAction.ClearObject);\n if (component instanceof Diagram) {\n diagram.element.classList.add('e-diagram');\n }\n }\n //881117 - Event to notify after diagram elements are loaded.  \n var args = { name: 'loaded', diagram: diagram };\n diagram.triggerEvent(DiagramEvent.loaded, args);\n if (dataObj.selectedItems) {\n dataObj.selectedItems.nodes = [];\n dataObj.selectedItems.connectors = [];\n //EJ2-61674 Exception occurs when we move the node after save and load\n dataObj.selectedItems.selectedObjects = [];\n }\n diagram.selectedItems = dataObj.selectedItems;\n diagram.enableServerDataBinding(true);\n diagram.canLayout = true;\n diagram.swimlaneChildTable = {};\n diagram.swimlaneZIndexTable = {};\n return dataObj;\n}\n/**\n * EJ2-61537 - Connectors not connected to the node after save and load\n * when we add nodes and connectors at runtime.\n * */\n/**\n* Sort the nodes and connectors in the layers.\n*\n* @param {Diagram} dataObj - provide the model value.\n* @private\n* */\nfunction sortLayerObjects(dataObj) {\n var i, j, k;\n var layers = [];\n for (i = 0; i < dataObj.layers.length; i++) {\n for (j = 0; j < dataObj.layers[i].objects.length; j++) {\n if (dataObj.nodes) {\n for (k = 0; k < dataObj.nodes.length; k++) {\n if (dataObj.layers[i].objects[j] === dataObj.nodes[k].id) {\n layers.push(dataObj.layers[i].objects[j]);\n }\n }\n }\n }\n for (j = 0; j < dataObj.layers[i].objects.length; j++) {\n if (dataObj.connectors) {\n for (k = 0; k < dataObj.connectors.length; k++) {\n if (dataObj.layers[i].objects[j] === dataObj.connectors[k].id) {\n layers.push(dataObj.layers[i].objects[j]);\n }\n }\n }\n }\n dataObj.layers[i].objects = layers;\n layers = [];\n }\n}\n/* eslint-enable */\n/**\n * upgrade method \\\n *\n * @returns {Diagram } upgrade method .\\\n * @param {Diagram} dataObj - provide the model value.\n * @private\n */\nexport function upgrade(dataObj) {\n if (dataObj && (dataObj.version === undefined || (dataObj.version < 17.1)) && dataObj.nodes) {\n var nodes = dataObj.nodes;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (node && node.ports && node.ports.length > 0) {\n for (var _a = 0, _b = node.ports; _a < _b.length; _a++) {\n var port = _b[_a];\n if (port && port.constraints && port.constraints === PortConstraints.None) {\n port.constraints = PortConstraints.Default;\n }\n }\n }\n }\n }\n return dataObj;\n}\n/**\n * updateStyle method \\\n *\n * @returns {void } updateStyle method .\\\n * @param {TextStyleModel} changedObject - provide the changedObject value.\n * @param {DiagramElement} target - provide the target value.\n * @private\n */\nexport function updateStyle(changedObject, target) {\n //since text style model is the super set of shape style model, we used text style model\n var style = target.style;\n var textElement = target;\n target.canApplyStyle = true;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'fill':\n style.fill = changedObject.fill;\n if (style instanceof StrokeStyle) {\n /* tslint:disable:no-string-literal */\n style['fill'] = 'transparent';\n }\n break;\n case 'textOverflow':\n style.textOverflow = changedObject.textOverflow;\n break;\n case 'opacity':\n style.opacity = changedObject.opacity;\n break;\n case 'strokeColor':\n style.strokeColor = changedObject.strokeColor;\n break;\n case 'strokeDashArray':\n style.strokeDashArray = changedObject.strokeDashArray;\n break;\n case 'strokeWidth':\n style.strokeWidth = changedObject.strokeWidth;\n break;\n case 'bold':\n style.bold = changedObject.bold;\n break;\n case 'color':\n style.color = changedObject.color;\n break;\n case 'textWrapping':\n style.textWrapping = changedObject.textWrapping;\n break;\n case 'fontFamily':\n style.fontFamily = changedObject.fontFamily;\n break;\n case 'fontSize':\n style.fontSize = changedObject.fontSize;\n break;\n case 'italic':\n style.italic = changedObject.italic;\n break;\n case 'textAlign':\n style.textAlign = changedObject.textAlign;\n break;\n case 'whiteSpace':\n style.whiteSpace = changedObject.whiteSpace;\n break;\n case 'textDecoration':\n style.textDecoration = changedObject.textDecoration;\n break;\n case 'gradient':\n if (style.gradient) {\n updateGradient(changedObject.gradient, style.gradient);\n break;\n }\n }\n }\n if (target instanceof TextElement) {\n textElement.refreshTextElement();\n }\n}\n/**\n * updateGradient method \\\n *\n * @returns {void } updateGradient method .\\\n * @param {GradientModel | LinearGradientModel | RadialGradientModel} changedGradient - provide the changedGradient value.\n * @param {GradientModel | LinearGradientModel | RadialGradientModel} targetGradient - provide the targetGradient value.\n * @private\n */\nfunction updateGradient(changedGradient, targetGradient) {\n for (var _i = 0, _a = Object.keys(changedGradient); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'type':\n targetGradient.type = changedGradient.type;\n break;\n case 'x1':\n targetGradient.x1 = changedGradient.x1;\n break;\n case 'x2':\n targetGradient.x2 = changedGradient.x2;\n break;\n case 'y1':\n targetGradient.y1 = changedGradient.y1;\n break;\n case 'y2':\n targetGradient.y2 = changedGradient.y2;\n break;\n case 'cx':\n targetGradient.cx = changedGradient.cx;\n break;\n case 'cy':\n targetGradient.cy = changedGradient.cy;\n break;\n case 'fx':\n targetGradient.fx = changedGradient.fx;\n break;\n case 'fy':\n targetGradient.fy = changedGradient.fy;\n break;\n case 'r':\n targetGradient.r = changedGradient.r;\n break;\n case 'stops':\n targetGradient.stops = changedGradient.stops;\n break;\n }\n }\n}\n/* eslint-disable */\n/**\n * updateHyperlink method \\\n *\n * @returns {void } updateHyperlink method .\\\n * @param {HyperlinkModel} changedObject - provide the changedObject value.\n * @param {DiagramElement} target - provide the target value.\n * @param {AnnotationModel} actualAnnotation - provide the actualAnnotation value.\n * @private\n */\nexport function updateHyperlink(changedObject, target, actualAnnotation) {\n var textElement = target;\n var hyperlink = textElement.hyperlink;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'color':\n textElement.style.color = hyperlink.color = changedObject.color;\n break;\n case 'content':\n textElement.content = hyperlink.content = changedObject.content || hyperlink.link;\n break;\n case 'link':\n var labelStyle = actualAnnotation.style;\n textElement.style.color = changedObject.link ? hyperlink.color : labelStyle.color;\n textElement.style.textDecoration = changedObject.link ? hyperlink.textDecoration : actualAnnotation.style.textDecoration;\n textElement.content = changedObject.link ? hyperlink.content || changedObject.link : actualAnnotation.content;\n hyperlink.link = changedObject.link;\n break;\n case 'textDecoration':\n textElement.style.textDecoration = hyperlink.textDecoration = changedObject.textDecoration;\n break;\n case 'hyperlinkOpenState':\n hyperlink.hyperlinkOpenState = changedObject.hyperlinkOpenState;\n break;\n }\n }\n}\n/* eslint-enable */\n/**\n * updateShapeContent method \\\n *\n * @returns {void } updateShapeContent method .\\\n * @param {DiagramElement} content - provide the content value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateShapeContent(content, actualObject, diagram) {\n content.width = actualObject.width;\n content.height = actualObject.height;\n content.minHeight = actualObject.minHeight;\n content.maxHeight = actualObject.maxHeight;\n content.minWidth = actualObject.minWidth;\n content.maxWidth = actualObject.maxWidth;\n content.horizontalAlignment = actualObject.wrapper.children[0].horizontalAlignment;\n content.verticalAlignment = actualObject.wrapper.children[0].verticalAlignment;\n content.relativeMode = actualObject.wrapper.children[0].relativeMode;\n content.visible = actualObject.wrapper.children[0].visible;\n if (actualObject.shape instanceof Text) {\n content.margin = actualObject.shape.margin;\n }\n content.id = actualObject.wrapper.children[0].id;\n content.style = actualObject.style;\n //let view: View;\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n removeElement(actualObject.id + '_content_groupElement', elementId);\n removeElement(actualObject.id + '_html_element', elementId);\n }\n actualObject.wrapper.children.splice(0, 1);\n actualObject.wrapper.children.splice(0, 0, content);\n}\n/* eslint-disable */\n/**\n * updateShape method \\\n *\n * @returns {void } updateShape method .\\\n * @param {Node} node - provide the node value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Node} oldObject - provide the oldObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateShape(node, actualObject, oldObject, diagram) {\n var content = new DiagramElement();\n var i;\n //let textStyle: TextStyleModel; let nodeStyle: TextStyleModel;\n switch (node.shape.type) {\n case 'Path':\n var pathContent = new PathElement();\n pathContent.data = actualObject.shape.data;\n content = pathContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Image':\n var imageContent = new ImageElement();\n imageContent.source = actualObject.shape.source;\n imageContent.imageAlign = actualObject.shape.align;\n imageContent.imageScale = actualObject.shape.scale;\n content = imageContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Text':\n //issue\n var textContent = new TextElement();\n // (textContent as TextElement).content = (node.shape as TextModel).content;\n content = textContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Basic':\n var element = (actualObject.shape.shape === 'Rectangle') ? new DiagramElement() : new PathElement();\n if ((!isBlazor() && actualObject.shape.shape === 'Polygon')) {\n element.data = getPolygonPath(actualObject.shape.points);\n }\n else {\n element.data = getBasicShape(actualObject.shape.shape);\n }\n if ((!isBlazor() && actualObject.shape.shape === 'Rectangle')) {\n element.cornerRadius = actualObject.shape.cornerRadius;\n }\n //EJ2-70880 - Node disappeared after changing shape and type dynamically.\n content = element;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Flow':\n /* eslint-disable */\n var flowShapeElement = new PathElement();\n var shape = actualObject.shape.shape;\n flowShapeElement.data = getFlowShape(shape);\n content = flowShapeElement;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Native':\n var nativeContent = new DiagramNativeElement(node.id, diagram.element.id);\n nativeContent.content = actualObject.shape.content;\n nativeContent.scale = actualObject.shape.scale;\n content = nativeContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'HTML':\n var htmlContent = new DiagramHtmlElement(actualObject.id, diagram.element.id);\n htmlContent.content = actualObject.shape.content;\n content = htmlContent;\n updateShapeContent(content, actualObject, diagram);\n }\n if (node.shape.type === undefined || node.shape.type === oldObject.shape.type) {\n updateContent(node, actualObject, diagram, oldObject);\n }\n else {\n content.width = actualObject.wrapper.children[0].width;\n content.height = actualObject.wrapper.children[0].height;\n if (actualObject.shape instanceof Text) {\n content.margin = actualObject.shape.margin;\n }\n content.style = actualObject.style;\n actualObject.wrapper.children[0] = content;\n }\n}\n/* eslint-enable */\n/**\n * updateContent method \\\n *\n * @returns {void } updateContent method .\\\n * @param {Node} newValues - provide the newValues value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Node} oldObject - provide the oldObject value.\n * @private\n */\nexport function updateContent(newValues, actualObject, diagram, oldObject) {\n if (Object.keys(newValues.shape).length > 0) {\n if (actualObject.shape.type === 'Path' && newValues.shape.data !== undefined) {\n actualObject.wrapper.children[0].data = newValues.shape.data;\n }\n else if (actualObject.shape.type === 'Text' && newValues.shape.content !== undefined) {\n actualObject.wrapper.children[0].content = newValues.shape.content;\n }\n else if (actualObject.shape.type === 'Image' && newValues.shape.source !== undefined) {\n actualObject.wrapper.children[0].source = newValues.shape.source;\n }\n else if (actualObject.shape.type === 'Native') {\n var nativeElement = void 0;\n for (var i = 0; i < diagram.views.length; i++) {\n nativeElement = getDiagramElement(actualObject.wrapper.children[0].id + '_native_element', diagram.views[parseInt(i.toString(), 10)]);\n if (newValues.shape.content !== undefined && nativeElement) {\n nativeElement.removeChild(nativeElement.children[0]);\n actualObject.wrapper.children[0].content = newValues.shape.content;\n nativeElement.appendChild(getContent(actualObject.wrapper.children[0], false));\n }\n }\n actualObject.wrapper.children[0].scale = newValues.shape.scale ?\n newValues.shape.scale : actualObject.wrapper.children[0].scale;\n }\n else if (actualObject.shape.type === 'HTML') {\n var htmlElement = void 0;\n for (var i = 0; i < diagram.views.length; i++) {\n htmlElement = getDiagramElement(actualObject.wrapper.children[0].id + '_html_element', diagram.views[parseInt(i.toString(), 10)]);\n if (htmlElement) {\n htmlElement.removeChild(htmlElement.children[0]);\n actualObject.wrapper.children[0].content = newValues.shape.content;\n htmlElement.appendChild(getContent(actualObject.wrapper.children[0], true));\n }\n }\n }\n else if (actualObject.shape.type === 'Flow' && (newValues.shape.shape !== undefined)) {\n actualObject.shape.shape = newValues.shape.shape;\n var shapes = actualObject.shape.shape;\n var flowshapedata = getFlowShape(shapes.toString());\n actualObject.wrapper.children[0].data = flowshapedata;\n }\n else if (actualObject.shape.type === 'UmlActivity' &&\n (!isBlazor() && newValues.shape.shape !== undefined)) {\n updateUmlActivityNode(actualObject, newValues);\n }\n else if (newValues.shape.cornerRadius !== undefined) {\n actualObject.wrapper.children[0].cornerRadius = newValues.shape.cornerRadius;\n }\n else if (actualObject.shape.type === 'Basic' && (oldObject && oldObject.shape.shape === 'Rectangle')) {\n var basicshape = new PathElement();\n var basicshapedata = getBasicShape(actualObject.shape.shape);\n basicshape.data = basicshapedata;\n var content = basicshape;\n updateShapeContent(content, actualObject, diagram);\n }\n else if (newValues.shape.shape !== undefined) {\n actualObject.shape.shape = newValues.shape.shape;\n var shapes = actualObject.shape.shape;\n var basicShapeData = getBasicShape(shapes.toString());\n actualObject.wrapper.children[0].data = basicShapeData;\n }\n }\n actualObject.wrapper.children[0].canMeasurePath = true;\n}\n/**\n * updateUmlActivityNode method \\\n *\n * @returns {void } updateUmlActivityNode method .\\\n * @param {Node} actualObject - provide the newValues value.\n * @param {Node} newValues - provide the actualObject value.\n * @private\n */\nexport function updateUmlActivityNode(actualObject, newValues) {\n if (!isBlazor()) {\n actualObject.shape.shape = newValues.shape.shape;\n }\n else {\n actualObject.shape.umlActivityShape = newValues.shape.umlActivityShape;\n }\n var shapes = !isBlazor() ? actualObject.shape.shape :\n actualObject.shape.umlActivityShape;\n var umlActivityShapeData = getUMLActivityShape(shapes.toString());\n if ((!isBlazor() && actualObject.shape.shape === 'InitialNode')) {\n actualObject.wrapper.children[0].style.fill = 'black';\n }\n else if ((!isBlazor() && (actualObject.shape.shape === 'ForkNode' ||\n actualObject.shape.shape === 'JoinNode'))) {\n actualObject.wrapper.children[0].style.fill = 'black';\n }\n else if ((!isBlazor() && actualObject.shape.shape === 'FinalNode')) {\n if (actualObject instanceof Node) {\n actualObject.wrapper = getUMLFinalNode(actualObject);\n }\n }\n if (umlActivityShapeData) {\n actualObject.wrapper.children[0].data = umlActivityShapeData;\n }\n}\n/**\n * getUMLFinalNode method \\\n *\n * @returns {Canvas } getUMLFinalNode method .\\\n * @param {Node} node - provide the newValues value.\n * @private\n */\nexport function getUMLFinalNode(node) {\n var finalNodeShape = new Canvas();\n finalNodeShape.style.fill = 'transparent';\n //childNode0\n var pathData = 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25' +\n ' C 50 38.79 38.78 50 25 50';\n var innerFinalNode = new PathElement();\n innerFinalNode.data = pathData;\n innerFinalNode.id = node.id + '_0_finalNode';\n innerFinalNode.horizontalAlignment = 'Center';\n innerFinalNode.verticalAlignment = 'Center';\n innerFinalNode.relativeMode = 'Object';\n innerFinalNode.style.strokeColor = node.style.strokeColor;\n innerFinalNode.style.strokeWidth = node.style.strokeWidth;\n //childNode1\n var outerFinalNode = new PathElement();\n outerFinalNode.data = pathData;\n outerFinalNode.id = node.id + '_1_finalNode';\n outerFinalNode.horizontalAlignment = 'Center';\n outerFinalNode.verticalAlignment = 'Center';\n outerFinalNode.relativeMode = 'Object';\n outerFinalNode.style.fill = node.style.fill;\n outerFinalNode.style.strokeColor = node.style.strokeColor;\n outerFinalNode.style.strokeWidth = node.style.strokeWidth;\n //append child and set style\n finalNodeShape.children = [innerFinalNode, outerFinalNode];\n finalNodeShape.children[0].width = node.width;\n finalNodeShape.children[0].height = node.height;\n finalNodeShape.children[1].height = node.height / 1.5;\n finalNodeShape.children[1].width = node.width / 1.5;\n finalNodeShape.style.strokeWidth = 0;\n finalNodeShape.style.strokeColor = 'transparent';\n return finalNodeShape;\n}\n/**\n * getUMLActivityShapes method \\\n *\n * @returns {DiagramElement } getUMLActivityShapes method .\\\n * @param {PathElement} umlActivityShape - provide the umlActivityShape value.\n * @param {DiagramElement} content - provide the content value.\n * @param {Node} node - provide the node value.\n * @private\n */\nexport function getUMLActivityShapes(umlActivityShape, content, node) {\n var shape = node.shape.shape;\n var umlActivityShapeData = getUMLActivityShape(shape);\n umlActivityShape.data = umlActivityShapeData;\n content = umlActivityShape;\n switch (shape) {\n case 'StructuredNode':\n if (node.annotations) {\n for (var i = 0; i < node.annotations.length; i++) {\n node.annotations[parseInt(i.toString(), 10)].content = '<<' + node.annotations[parseInt(i.toString(), 10)].content + '>>';\n }\n }\n content = umlActivityShape;\n break;\n case 'FinalNode':\n content = getUMLFinalNode(node);\n break;\n }\n return content;\n}\n/**\n * removeGradient method \\\n *\n * @returns {void } removeGradient method .\\\n * @param {string} svgId - provide the umlActivityShape value.\n * @private\n */\nexport function removeGradient(svgId) {\n removeElement(svgId + '_linear');\n removeElement(svgId + '_radial');\n}\n/**\n * removeItem method \\\n *\n * @returns {void } removeItem method .\\\n * @param {string[]} array - provide the umlActivityShape value.\n * @param {string} item - provide the umlActivityShape value.\n * @private\n */\nexport function removeItem(array, item) {\n var index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n/**\n * updateConnector method \\\n *\n * @returns {void } updateConnector method .\\\n * @param {Connector} connector - provide the connector value.\n * @param {PointModel[]} points - provide the points value.\n * @param {DiagramAction} diagramActions - provide the diagramActions value.\n * @private\n */\nexport function updateConnector(connector, points, diagramActions) {\n var anglePoint; //let srcDecorator: DecoratorModel;\n //let targetPoint: PointModel;\n connector.intermediatePoints = points;\n connector.updateSegmentElement(connector, points, connector.wrapper.children[0], diagramActions);\n var srcDecorator = connector.sourceDecorator;\n if (connector.type === 'Bezier') {\n var firstSegment = connector.segments[0];\n var lastSegment = connector.segments[connector.segments.length - 1];\n anglePoint = [!Point.isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2,\n !Point.isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1];\n }\n else {\n anglePoint = connector.intermediatePoints;\n }\n points = connector.clipDecorators(connector, points, diagramActions);\n var element = connector.wrapper.children[0];\n element.canMeasurePath = true;\n element = connector.wrapper.children[1];\n connector.updateDecoratorElement(element, points[0], anglePoint[1], srcDecorator);\n //const targetPoint: PointModel = connector.targetPoint;\n var tarDecorator = connector.targetDecorator;\n element = connector.wrapper.children[2];\n connector.updateDecoratorElement(element, points[points.length - 1], anglePoint[anglePoint.length - 2], tarDecorator);\n connector.updateShapeElement(connector);\n}\n/**\n * getUserHandlePosition method \\\n *\n * @returns {PointModel } getUserHandlePosition method .\\\n * @param {SelectorModel} selectorItem - provide the connector value.\n * @param {UserHandleModel} handle - provide the handle value.\n * @param {Transforms} transform - provide the transform value.\n * @private\n */\nexport function getUserHandlePosition(selectorItem, handle, transform) {\n var wrapper = selectorItem.wrapper;\n //let positionPoints: PointModel;\n var bounds = wrapper.bounds;\n var offset = handle.offset;\n var size = handle.size / transform.scale;\n var margin = handle.margin;\n var point;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n point = { x: 0, y: 0 };\n if (selectorItem.nodes.length > 0) {\n switch (handle.side) {\n case 'Top':\n point.x += left + offset * wrapper.actualSize.width;\n point.y += top - (size);\n break;\n case 'Bottom':\n point.x += left + offset * wrapper.actualSize.width;\n point.y += top + wrapper.actualSize.height + (size);\n break;\n case 'Left':\n point.x += left - (size);\n point.y += top + offset * wrapper.actualSize.height;\n break;\n case 'Right':\n point.x += left + wrapper.actualSize.width + (size);\n point.y += top + offset * wrapper.actualSize.height;\n break;\n }\n point.x += ((margin.left - margin.right) / transform.scale) +\n (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1));\n point.y += ((margin.top - margin.bottom) / transform.scale) +\n (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1));\n }\n else if (selectorItem.connectors.length > 0) {\n var connector = selectorItem.connectors[0];\n var annotation = { offset: offset };\n var connectorOffset = getOffsetOfConnector(connector.intermediatePoints, annotation);\n var index = connectorOffset.index;\n point = connectorOffset.point;\n var getPointloop = getAnnotationPosition(connector.intermediatePoints, annotation, bounds);\n //const points: PointModel[] = connector.intermediatePoints;\n //const offsetLength: number;\n var angle = getPointloop.angle;\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y);\n point = transformPointByMatrix(matrix, point);\n point.x += (margin.left - margin.right) +\n (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1));\n point.y += (margin.top - margin.bottom) +\n (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1));\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y);\n point = transformPointByMatrix(matrix, point);\n }\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n point = transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/**\n * canResizeCorner method \\\n *\n * @returns {SelectorConstraints } canResizeCorner method .\\\n * @param {string} selectorConstraints - provide the selectorConstraints value.\n * @param {string} action - provide the selectorConstraints value.\n * @param {ThumbsConstraints} thumbsConstraints - provide the thumbsConstraints value.\n * @param {Selector} selectedItems - provide the selectedItems value.\n * @private\n */\nexport function canResizeCorner(selectorConstraints, action, thumbsConstraints, selectedItems) {\n if (selectedItems.annotation) {\n if (canResize(selectedItems.annotation)) {\n return true;\n }\n }\n else if ((SelectorConstraints[\"\" + action] & selectorConstraints) && (ThumbsConstraints[\"\" + action] & thumbsConstraints)) {\n return true;\n }\n return false;\n}\n/**\n * canShowCorner method \\\n *\n * @returns {boolean } canShowCorner method .\\\n * @param {SelectorConstraints} selectorConstraints - provide the selectorConstraints value.\n * @param {string} action - provide the thumbsConstraints value.\n * @private\n */\nexport function canShowCorner(selectorConstraints, action) {\n if (SelectorConstraints[\"\" + action] & selectorConstraints) {\n return true;\n }\n return false;\n}\n/**\n * canShowControlPoints method \\\n *\n * @returns {boolean } canShowControlPoints method .\\\n * @param {ControlPointsVisibility} bezierControlPoints - provide the bezierControlPoints value.\n * @param {string} action - provide the value.\n * @private\n */\nexport function canShowControlPoints(bezierControlPoints, action) {\n if (ControlPointsVisibility[\"\" + action] & bezierControlPoints) {\n return true;\n }\n return false;\n}\n/**\n * checkPortRestriction method \\\n *\n * @returns {number } checkPortRestriction method .\\\n * @param {PointPortModel} port - provide the port value.\n * @param {PortVisibility} portVisibility - provide the portVisibility value.\n * @private\n */\nexport function checkPortRestriction(port, portVisibility) {\n return port.visibility & portVisibility;\n}\n/**\n * findAnnotation method \\\n *\n * @returns {ShapeAnnotationModel | PathAnnotationModel | TextModel } findAnnotation method .\\\n * @param { NodeModel | ConnectorModel} node - provide the port value.\n * @param {string} id - provide the portVisibility value.\n * @private\n */\nexport function findAnnotation(node, id) {\n var annotation;\n if (node.shape.type === 'Text') {\n annotation = (node.shape);\n }\n else {\n var annotationId = id.split('_');\n id = annotationId[annotationId.length - 1];\n for (var i = 0; i < node.annotations.length; i++) {\n if (id === node.annotations[parseInt(i.toString(), 10)].id) {\n annotation = node.annotations[parseInt(i.toString(), 10)];\n }\n }\n }\n return annotation;\n}\n/**\n * findPort method \\\n *\n * @returns {PointPortModel} findPort method .\\\n * @param { NodeModel | ConnectorModel} node - provide the port value.\n * @param {string} id - provide the portVisibility value.\n * @private\n */\nexport function findPort(node, id) {\n var port;\n if (id) {\n var portId = id.split('_');\n id = portId[portId.length - 1];\n }\n if (node) {\n node = node;\n for (var i = 0; i < node.ports.length; i++) {\n if (id === node.ports[parseInt(i.toString(), 10)].id) {\n return node.ports[parseInt(i.toString(), 10)];\n }\n }\n }\n return port;\n}\n/**\n * getInOutConnectPorts method \\\n *\n * @returns {PointPortModel} getInOutConnectPorts method .\\\n * @param { NodeModel} node - provide the port value.\n * @param {boolean} isInConnect - provide the portVisibility value.\n * @private\n */\nexport function getInOutConnectPorts(node, isInConnect) {\n var port = {};\n var i = 0;\n if (node.ports) {\n var ports = node.ports;\n for (i = 0; i < ports.length; i++) {\n if (isInConnect) {\n if ((ports[parseInt(i.toString(), 10)].constraints & PortConstraints.InConnect)) {\n port = ports[parseInt(i.toString(), 10)];\n }\n }\n else {\n if ((ports[parseInt(i.toString(), 10)].constraints & PortConstraints.OutConnect)) {\n port = ports[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n return port;\n}\n/**\n * findObjectIndex method \\\n *\n * @returns {PointPortModel} findObjectIndex method .\\\n * @param { NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the string value.\n * @param {boolean} annotation - provide the boolean value.\n * @private\n */\nexport function findObjectIndex(node, id, annotation) {\n //let index: number;\n var collection = (annotation) ? node.annotations : node.ports;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id === id) {\n return (i).toString();\n }\n }\n return '-1';\n}\n/**\n * findPortIndex method \\\n *\n * @returns {PointPortModel} findPortIndex method .\\\n * @param { NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the string value.\n * @param {boolean} port - provide the boolean value.\n * @private\n */\nexport function findPortIndex(node, id, port) {\n //let index: number;\n var collection = node.ports;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id === id) {\n return (i).toString();\n }\n }\n return '-1';\n}\n/**\n * getObjectFromCollection method \\\n *\n * @returns {boolean} getObjectFromCollection method .\\\n * @param { (NodeModel | ConnectorModel)[] } obj - provide the node value.\n * @param {string} id - provide the string value.\n * @private\n */\nexport function getObjectFromCollection(obj, id) {\n var i;\n for (i = 0; i < obj.length; i++) {\n if (id === obj[parseInt(i.toString(), 10)].id) {\n return true;\n }\n }\n return false;\n}\n/**\n * scaleElement method \\\n *\n * @returns {void} scaleElement method .\\\n * @param { DiagramElement } element - provide the element value.\n * @param {number} sw - provide the string value.\n * @param {number} sh - provide the string value.\n * @param {DiagramElement} refObject - provide the refObject value.\n * @private\n */\nexport function scaleElement(element, sw, sh, refObject) {\n if (element.width !== undefined && element.height !== undefined) {\n element.width *= sw;\n element.height *= sh;\n }\n if (element instanceof Container) {\n var matrix = identityMatrix();\n var width = refObject.width || refObject.actualSize.width;\n var height = refObject.height || refObject.actualSize.height;\n if (width !== undefined && height !== undefined) {\n var x = refObject.offsetX - width * refObject.pivot.x;\n var y = refObject.offsetY - height * refObject.pivot.y;\n var refPoint = {\n x: x + width * refObject.pivot.x,\n y: y + height * refObject.pivot.y\n };\n refPoint = rotatePoint(refObject.rotateAngle, refObject.offsetX, refObject.offsetY, refPoint);\n rotateMatrix(matrix, -refObject.rotateAngle, refPoint.x, refPoint.y);\n scaleMatrix(matrix, sw, sh, refPoint.x, refPoint.y);\n rotateMatrix(matrix, refObject.rotateAngle, refPoint.x, refPoint.y);\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.width !== undefined && child.height !== undefined) {\n var newPosition = transformPointByMatrix(matrix, { x: child.offsetX, y: child.offsetY });\n child.offsetX = newPosition.x;\n child.offsetY = newPosition.y;\n scaleElement(child, sw, sh, refObject);\n }\n }\n }\n }\n}\n/**\n * scaleElement method \\\n *\n * @returns {void} scaleElement method .\\\n * @param { Node } obj - provide the obj value.\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {DiagramElement} nameTable - provide the refObject value.\n * @param {DiagramElement} drop - provide the drop value.\n * @param {DiagramElement} diagram - provide the diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function arrangeChild(obj, x, y, nameTable, drop, diagram) {\n var child = obj.children;\n var node;\n for (var i = 0; i < child.length; i++) {\n node = nameTable[child[parseInt(i.toString(), 10)]];\n if (node) {\n if (node.children) {\n arrangeChild(node, x, y, nameTable, drop, diagram);\n }\n else {\n node.offsetX -= x;\n node.offsetY -= y;\n if (!drop) {\n //let content: DiagramElement;\n //let container: Container;\n nameTable[node.id] = node;\n var container = node.initContainer();\n if (!container.children) {\n container.children = [];\n }\n var content = node.init(diagram);\n container.children.push(content);\n container.measure(new Size(node.width, node.height));\n container.arrange(container.desiredSize);\n }\n }\n }\n }\n}\n/**\n * insertObject method \\\n *\n * @returns {void} insertObject method .\\\n * @param { NodeModel | ConnectorModel } obj - provide the obj value.\n * @param { string } key - provide the obj value.\n * @param { Object[]} collection - provide the x value.\n * @private\n */\nexport function insertObject(obj, key, collection) {\n if (collection.length === 0) {\n collection.push(obj);\n }\n else if (collection.length === 1) {\n if (collection[0][\"\" + key] > obj[\"\" + key]) {\n collection.splice(0, 0, obj);\n }\n else {\n collection.push(obj);\n }\n }\n else if (collection.length > 1) {\n var low = 0;\n var high = collection.length - 1;\n var mid = Math.floor((low + high) / 2);\n while (mid !== low) {\n if (collection[parseInt(mid.toString(), 10)][\"\" + key] < obj[\"\" + key]) {\n low = mid;\n mid = Math.floor((low + high) / 2);\n }\n else if (collection[parseInt(mid.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n high = mid;\n mid = Math.floor((low + high) / 2);\n }\n else {\n break;\n }\n }\n if (collection[parseInt(high.toString(), 10)][\"\" + key] < obj[\"\" + key]) {\n collection.push(obj);\n }\n else if (collection[parseInt(low.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n collection.splice(low, 0, obj);\n }\n else if ((collection[parseInt(low.toString(), 10)][\"\" + key] < obj[\"\" + key]) && collection[parseInt(high.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n collection.splice(high, 0, obj);\n }\n }\n}\n/**\n * getElement method \\\n *\n * @returns {Object} getElement method .\\\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value.\n * @private\n */\nexport function getElement(element) {\n var diagramElement = document.getElementById(element.diagramId);\n var instance = 'ej2_instances';\n // eslint-disable-next-line\n var node = {};\n var nodes = diagramElement[\"\" + instance][0].nodes;\n if (nodes === undefined) {\n nodes = getPaletteSymbols(diagramElement[\"\" + instance][0]);\n }\n var length = 'length';\n for (var i = 0; nodes && i < nodes[\"\" + length]; i++) {\n if (nodes[parseInt(i.toString(), 10)].id === element.nodeId) {\n return getAnnotation(nodes[parseInt(i.toString(), 10)], element);\n }\n }\n var connectors = diagramElement[\"\" + instance][0].connectors;\n for (var i = 0; connectors && i < connectors[\"\" + length]; i++) {\n if (connectors[parseInt(i.toString(), 10)].id === element.nodeId) {\n return getAnnotation(connectors[parseInt(i.toString(), 10)], element);\n }\n }\n // eslint-disable-next-line\n var enterObject = diagramElement[instance][0].enterObject;\n if (enterObject && (enterObject['id'] === element.nodeId || enterObject['children'])) {\n if (enterObject['children'] && groupHasType(enterObject, 'HTML', diagramElement[\"\" + instance][0].enterTable)) {\n return diagramElement[\"\" + instance][0].enterTable[element.nodeId];\n }\n else {\n return enterObject;\n }\n }\n return null;\n}\n/**\n * getAnnotation method \\\n *\n * @returns {Object} getAnnotation method .\\\n * @param { Object } obj - provide the obj value.\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value.\n * @private\n */\nfunction getAnnotation(obj, element) {\n var annotations = obj.annotations;\n var length = 'length';\n var j;\n for (j = 0; annotations && j < annotations[\"\" + length]; j++) {\n if (element.annotationId\n && annotations[parseInt(j.toString(), 10)].id === element.annotationId) {\n return annotations[parseInt(j.toString(), 10)];\n }\n }\n return obj;\n}\n/**\n * getPaletteSymbols method \\\n *\n * @returns {NodeModel[]} getPaletteSymbols method .\\\n * @param { Object } symbolPalette - provide the symbolPalette value.\n * @private\n */\nfunction getPaletteSymbols(symbolPalette) {\n var nodes = [];\n for (var i = 0; i < symbolPalette.palettes.length; i++) {\n var symbols = symbolPalette.palettes[parseInt(i.toString(), 10)].symbols;\n for (var j = 0; j < symbols.length; j++) {\n if (symbols[parseInt(j.toString(), 10)] instanceof Node) {\n nodes.push(symbols[parseInt(j.toString(), 10)]);\n }\n }\n }\n return nodes;\n}\n/**\n * getCollectionChangeEventArguements method \\\n *\n * @returns {IBlazorCollectionChangeEventArgs} getCollectionChangeEventArguements method .\\\n * @param { IBlazorCollectionChangeEventArgs } args1 - provide the args1 value.\n * @param { NodeModel | ConnectorModel } obj - provide the obj value.\n * @param { EventState } state - provide the state value.\n * @param { ChangeType } type - provide the type value.\n * @private\n */\nexport function getCollectionChangeEventArguements(args1, obj, state, type) {\n //Removed isBlazor code\n return args1;\n}\n/**\n * getDropEventArguements method \\\n *\n * @returns {IBlazorDropEventArgs} getDropEventArguements method .\\\n * @param { MouseEventArgs } args - provide the args1 value.\n * @param { IBlazorDropEventArgs } arg - provide the obj value.\n * @private\n */\nexport function getDropEventArguements(args, arg) {\n //Removed isBlazor code\n return arg;\n}\n/**\n * getPoint method \\\n *\n * @returns {PointModel} getPoint method .\\\n * @param { number } x - provide the x value.\n * @param { number } y - provide the y value.\n * @param { number } w - provide the w value.\n * @param { number } h - provide the y value.\n * @param { number } angle - provide the y value.\n * @param { number } offsetX - provide the y value.\n * @param { number } offsetY - provide the y value.\n * @param { PointModel } cornerPoint - provide the y value.\n * @private\n */\nexport function getPoint(x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivot = { x: 0, y: 0 };\n var trans = identityMatrix();\n rotateMatrix(trans, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 0:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n case 1:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivot.x, y: pivot.y };\n}\n/* eslint-disable */\n/**\n * Get the object as Node | Connector \\\n *\n * @returns {Object} Get the object as Node | Connector .\\\n * @param { number } obj - provide the x value.\n * @private\n */\nexport var getObjectType = function (obj) {\n if (obj) {\n if (obj.sourceID !== undefined || obj.sourcePoint !== undefined ||\n obj.targetID !== undefined || obj.targetPoint !== undefined ||\n obj.type !== undefined) {\n obj = Connector;\n }\n else {\n obj = Node;\n }\n }\n return obj;\n};\n/** @private */\nexport var flipConnector = function (connector) {\n if (!connector.sourceID && !connector.targetID) {\n var source = { x: connector.sourcePoint.x, y: connector.sourcePoint.y };\n var target = { x: connector.targetPoint.x, y: connector.targetPoint.y };\n if (connector.flip === 'Horizontal') {\n connector.sourcePoint.x = target.x;\n connector.targetPoint.x = source.x;\n }\n else if (connector.flip === 'Vertical') {\n connector.sourcePoint.y = target.y;\n connector.targetPoint.y = source.y;\n }\n else if (connector.flip === 'Both') {\n connector.sourcePoint = target;\n connector.targetPoint = source;\n }\n }\n};\n/** @private */\nexport var updatePortEdges = function (portContent, flip, port) {\n var offsetX = port.offset.x;\n var offsetY = port.offset.y;\n if (flip === 'Horizontal') {\n offsetX = 1 - port.offset.x;\n offsetY = port.offset.y;\n }\n else if (flip === 'Vertical') {\n offsetX = port.offset.x;\n offsetY = 1 - port.offset.y;\n }\n else if (flip === 'Both') {\n offsetX = 1 - port.offset.x;\n offsetY = 1 - port.offset.y;\n }\n portContent.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n return portContent;\n};\n/** @private */\nexport var alignElement = function (element, offsetX, offsetY, diagram, flip) {\n if (element.hasChildren()) {\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n // 923507: Ports rotating opposite to the node rotation after Group and Flip actions\n if (!(child instanceof PathElement)) {\n child.flip = flip;\n }\n var childX = ((offsetX - child.offsetX) + offsetX);\n var childY = ((offsetY - child.offsetY) + offsetY);\n if (flip === 'Horizontal' || flip === 'Both') {\n child.offsetX = childX;\n child.flipOffset.x = childX - child.desiredSize.width / 2;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n child.offsetY = childY;\n child.flipOffset.y = childY - child.desiredSize.height / 2;\n }\n if (child instanceof Canvas || child instanceof Container) {\n alignElement(child, offsetX, offsetY, diagram, flip);\n }\n child.measure(new Size(child.bounds.width, child.bounds.height));\n child.arrange(child.desiredSize);\n var node = diagram.nameTable[child.id];\n if (node) {\n diagram.updateConnectorEdges(node);\n }\n }\n }\n};\n/** @private */\nexport var cloneSelectedObjects = function (diagram) {\n var nodes = diagram.selectedItems.nodes;\n var connectors = diagram.selectedItems.connectors;\n var isProtectedOnChange = 'isProtectedOnChange';\n var isEnableServerDatabind = diagram.allowServerDataBinding;\n var isProtectedOnChangeValue = diagram[isProtectedOnChange];\n diagram.protectPropertyChange(true);\n diagram.allowServerDataBinding = false;\n diagram.selectedItems.nodes = [];\n diagram.selectedItems.connectors = [];\n diagram.allowServerDataBinding = isEnableServerDatabind;\n diagram.protectPropertyChange(isProtectedOnChangeValue);\n var clonedSelectedItems = cloneObject(diagram.selectedItems);\n for (var i = 0; i < nodes.length; i++) {\n diagram.selectedItems.nodes.push(diagram.nameTable[nodes[i].id]);\n }\n for (var i = 0; i < connectors.length; i++) {\n diagram.selectedItems.connectors.push(diagram.nameTable[connectors[i].id]);\n }\n return clonedSelectedItems;\n};\n/** @private */\nexport var updatePathElement = function (anglePoints, connector) {\n var pathElement = new PathElement();\n var pathseqData;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n pathseqData = findPath(anglePoints[j], anglePoints[j + 1]);\n pathElement.data = pathseqData[0];\n pathElement.id = connector.id + '_' + (connector.shape.sequence);\n //Bug 860251: Bpmn message flow and sequence flow connector child path is not rendered properly.\n //To get the offset of default sequence path.\n var pathOffset = getPathOffset(anglePoints, connector);\n pathElement.offsetX = pathOffset.x;\n pathElement.offsetY = pathOffset.y;\n pathElement.rotateAngle = 45;\n pathElement.transform = Transform.Self;\n break;\n }\n return pathElement;\n};\n/** @private */\nexport var getPathOffset = function (anglePoints, connector, segmentOffset) {\n var offsetDistance = 10; // Distance from the source point\n var angle;\n var pt;\n var totalLength = 0;\n // Calculate total length of the path\n for (var i_1 = 0; i_1 < anglePoints.length - 1; i_1++) {\n totalLength += findDistance(anglePoints[parseInt(i_1.toString(), 10)], anglePoints[i_1 + 1]);\n }\n var targetLength;\n if (segmentOffset) {\n targetLength = totalLength * segmentOffset;\n }\n else {\n targetLength = (totalLength / 2) > 30 ? offsetDistance : (totalLength / 2);\n }\n // Find the segment where the position lies\n var accumulatedLength = 0;\n for (var i = 0; i < anglePoints.length - 1; i++) {\n var segmentLength = findDistance(anglePoints[parseInt(i.toString(), 10)], anglePoints[i + 1]);\n if (accumulatedLength + segmentLength >= targetLength) {\n var remainingLength = targetLength - accumulatedLength;\n angle = findAngle(anglePoints[i], anglePoints[i + 1]);\n pt = Point.transform(anglePoints[i], angle, remainingLength);\n break;\n }\n accumulatedLength += segmentLength;\n }\n return pt;\n};\n/** @private */\nexport var checkPort = function (node, element) {\n if (node instanceof Node || node instanceof Connector) {\n for (var i = 0; i < node.ports.length; i++) {\n if (node.ports[i].id === element.id.split('_').splice(1).join('_')) {\n return true;\n }\n }\n }\n return false;\n};\n/** @private */\nexport var findPath = function (sourcePoint, targetPoint) {\n var beginningpoint = { x: sourcePoint.x, y: sourcePoint.y };\n var distance = findDistance(sourcePoint, targetPoint);\n distance = Math.min(10, distance / 2);\n var angle = findAngle(sourcePoint, targetPoint);\n var transferpt = Point.transform({ x: beginningpoint.x, y: beginningpoint.y }, angle, distance);\n var startpoint = Point.transform({ x: transferpt.x, y: transferpt.y }, angle, -11);\n var endpoint = Point.transform({ x: startpoint.x, y: startpoint.y }, angle, 11 * 2);\n var path = 'M' + startpoint.x + ' ' + startpoint.y + ' L' + endpoint.x + ' ' + endpoint.y;\n return [path, transferpt];\n};\n/** @private */\nexport var getConnectorDirection = function (src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'Right' : 'Left';\n }\n else {\n return src.y < tar.y ? 'Bottom' : 'Top';\n }\n};\n/** @private */\nexport var findDistance = function (point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\n/* eslint-enable */\n/**\n * cloneBlazorObject method \\\n *\n * @returns {Object} cloneBlazorObject method .\\\n * @param { object } args - provide the args value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function cloneBlazorObject(args) {\n //Removed isBlazor code\n return args;\n}\n/**\n * checkBrowserInfo method \\\n *\n * @returns {Object} checkBrowserInfo method .\\\n * @private\n */\nexport function checkBrowserInfo() {\n if ((navigator.platform.indexOf('Mac') >= 0 || navigator.platform.indexOf('iPad') >= 0\n || navigator.platform.indexOf('iPhone') >= 0 || navigator.platform.indexOf('MacIntel') >= 0)\n && (Browser.info.name === 'safari' || Browser.info.name === 'webkit')) {\n return true;\n }\n return false;\n}\n/**\n * canMeasureDecoratorPath method \\\n *\n * @returns {boolean} canMeasureDecoratorPath method .\\\n * @param { string[] } objects - provide the args value.\n * @private\n */\nexport function canMeasureDecoratorPath(objects) {\n if (objects.indexOf('shape') !== -1 || objects.indexOf('pathData') !== -1 ||\n objects.indexOf('width') !== -1 || objects.indexOf('height') !== -1) {\n return true;\n }\n return false;\n}\n/**\n * getPreviewSize method \\\n *\n * @returns {Size} getPreviewSize method .\\\n * @param { SymbolPaletteModel } sourceElement - provide the args value.\n * @param { Node } clonedObject - provide the args value.\n * @param { DiagramElement } wrapper - provide the args value.\n * @private\n */\nexport function getPreviewSize(sourceElement, clonedObject, wrapper) {\n //let previewWidth: number;\n //let previewHeight: number;\n var previewWidth = getSymbolSize(sourceElement, clonedObject, wrapper, 'width');\n var previewHeight = getSymbolSize(sourceElement, clonedObject, wrapper, 'height');\n return new Size(previewWidth, previewHeight);\n}\n/**\n * getSymbolSize method \\\n *\n * @returns {number} getSymbolSize method .\\\n * @param { SymbolPaletteModel } sourceElement - provide the sourceElement value.\n * @param { Node } clonedObject - provide the clonedObject value.\n * @param { DiagramElement } wrapper - provide the wrapper value.\n * @param { string } size - provide the size value.\n * @private\n */\nexport function getSymbolSize(sourceElement, clonedObject, wrapper, size) {\n var previewSize = 0;\n if (clonedObject.previewSize[\"\" + size] !== undefined) {\n previewSize = clonedObject.previewSize[\"\" + size];\n }\n else if (sourceElement.symbolPreview[\"\" + size] !== undefined) {\n previewSize = sourceElement.symbolPreview[\"\" + size];\n }\n else {\n previewSize = clonedObject[\"\" + size] || wrapper.actualSize[\"\" + size];\n }\n return previewSize;\n}\n/**\n * findParent method \\\n *\n * @returns {string} findParent method .\\\n * @param { Node } node - provide the clonedObject value.\n * @param { Diagram } diagram - provide the diagram element.\n * @param { string } parent - provide the parent id.\n * @private\n */\nexport function findParentInSwimlane(node, diagram, parent) {\n if (node && node.parentId) {\n node = diagram.nameTable[node.parentId];\n if (node.parentId) {\n parent = findParentInSwimlane(node, diagram, parent);\n }\n else {\n parent = node.id;\n }\n }\n return parent;\n}\n/**\n * selectionHasConnector method \\\n *\n * @returns {boolean} selectionHasConnector method .\\\n * @param { Diagram } diagram - provide the diagram element.\n * @param { selector } selector - provide the selector element.\n * @private\n */\nexport function selectionHasConnector(diagram, selector) {\n if (diagram.selectedItems.connectors.length > 1 && diagram.selectedItems.nodes.length === 0 && selector.rotateAngle !== 0) {\n return true;\n }\n return false;\n}\n/**\n * To Get connector style based on the arrow type\n * @param {FlowChartData} data - provide the flow chart data.\n * @returns {ArrowStyle} - Connector style\n */\nexport function getConnectorArrowType(data) {\n if (data.arrowType && data.arrowType.trim() !== '') {\n switch (data.arrowType) {\n case 'single-line-arrow':\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n case 'double-line-arrow':\n return { targetDecorator: 'Arrow', strokeWidth: 2 };\n case 'dotted-arrow':\n return { targetDecorator: 'Arrow', strokeDashArray: '2,2' };\n case 'single-line':\n return { targetDecorator: 'None', strokeWidth: 1 };\n case 'double-line':\n return { targetDecorator: 'None', strokeWidth: 2 };\n case 'dotted':\n return { targetDecorator: 'None', strokeDashArray: '2,2' };\n case 'wiggly-arrow':\n return { targetDecorator: 'None', strokeWidth: 1, opacity: 0 };\n default:\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n }\n }\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\n/**\n * Defines the behavior of default IconShapes\n */\nvar IconShape = /** @class */ (function (_super) {\n __extends(IconShape, _super);\n function IconShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], IconShape.prototype, \"shape\", void 0);\n __decorate([\n Property('white')\n ], IconShape.prototype, \"fill\", void 0);\n __decorate([\n Property('Auto')\n ], IconShape.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Auto')\n ], IconShape.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(10)\n ], IconShape.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], IconShape.prototype, \"height\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 1 }, Point)\n ], IconShape.prototype, \"offset\", void 0);\n __decorate([\n Property('#1a1a1a')\n ], IconShape.prototype, \"borderColor\", void 0);\n __decorate([\n Property(1)\n ], IconShape.prototype, \"borderWidth\", void 0);\n __decorate([\n Complex({}, Margin)\n ], IconShape.prototype, \"margin\", void 0);\n __decorate([\n Property('')\n ], IconShape.prototype, \"pathData\", void 0);\n __decorate([\n Property('')\n ], IconShape.prototype, \"content\", void 0);\n __decorate([\n Property(0)\n ], IconShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ left: 2, right: 2, top: 2, bottom: 2 }, Margin)\n ], IconShape.prototype, \"padding\", void 0);\n __decorate([\n Property('#1a1a1a')\n ], IconShape.prototype, \"iconColor\", void 0);\n return IconShape;\n}(ChildProperty));\nexport { IconShape };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Container } from './container';\nimport { rotateSize } from '../../utility/base-util';\n/**\n * StackPanel module is used to arrange its children in a line\n */\nvar StackPanel = /** @class */ (function (_super) {\n __extends(StackPanel, _super);\n function StackPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Gets/Sets the orientation of the stack panel\n */\n _this.orientation = 'Vertical';\n /**\n * Not applicable for canvas\n * to avoid the child size updation with respect to parent ser true\n *\n * @private\n */\n _this.measureChildren = undefined;\n /**\n * Sets or gets whether the padding of the element needs to be measured\n *\n * @private\n */\n _this.considerPadding = true;\n return _this;\n }\n /**\n * Measures the minimum space that the panel needs \\\n *\n * @returns { Size } Measures the minimum space that the panel needs.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.measure = function (availableSize) {\n var updateSize = this.orientation === 'Horizontal' ? this.updateHorizontalStack : this.updateVerticalStack;\n this.desiredSize = this.measureStackPanel(availableSize, updateSize);\n return this.desiredSize;\n };\n /**\n * Arranges the child elements of the stack panel \\\n *\n * @returns { Size } Arranges the child elements of the stack panel.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.arrange = function (desiredSize) {\n var updateSize = this.orientation === 'Horizontal' ? this.arrangeHorizontalStack : this.arrangeVerticalStack;\n this.actualSize = this.arrangeStackPanel(desiredSize, updateSize);\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Measures the minimum space that the panel needs \\\n *\n * @returns { Size } Measures the minimum space that the panel needs.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Function} updateSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.measureStackPanel = function (availableSize, updateSize) {\n var desired = undefined;\n if (this.children !== undefined && this.children.length > 0) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n child.parentTransform = this.rotateAngle + this.parentTransform;\n //Measure children\n if (this.measureChildren) {\n child.measure(child.desiredSize);\n }\n else {\n child.measure(availableSize);\n }\n var childSize = child.desiredSize.clone();\n //Consider Child's margin\n this.applyChildMargin(child, childSize);\n //Consider children's rotation\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n //Measure stack panel\n if (desired === undefined) {\n desired = childSize;\n }\n else {\n if (!child.preventContainer) {\n updateSize(childSize, desired);\n }\n }\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n this.stretchChildren(desired);\n //Considering padding values\n if (this.considerPadding) {\n this.applyPadding(desired);\n }\n return desired;\n };\n StackPanel.prototype.arrangeStackPanel = function (desiredSize, updatePosition) {\n if (this.children !== undefined && this.children.length > 0) {\n var x = void 0;\n var y = void 0;\n x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left;\n y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n var childSize = child.desiredSize.clone();\n var rotatedSize = childSize;\n if (this.orientation === 'Vertical') {\n y += child.margin.top;\n }\n else {\n x += child.margin.left;\n }\n if (child.rotateAngle !== 0) {\n rotatedSize = rotateSize(childSize, child.rotateAngle);\n }\n var center = updatePosition(x, y, child, this, desiredSize, rotatedSize);\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n child.arrange(childSize, true);\n if (this.orientation === 'Vertical') {\n y += rotatedSize.height + child.margin.bottom;\n }\n else {\n x += rotatedSize.width + child.margin.right;\n }\n }\n }\n return desiredSize;\n };\n StackPanel.prototype.updateHorizontalStack = function (child, parent) {\n parent.height = Math.max(child.height, parent.height);\n parent.width += child.width;\n };\n StackPanel.prototype.updateVerticalStack = function (child, parent) {\n parent.width = Math.max(child.width, parent.width);\n parent.height += child.height;\n };\n StackPanel.prototype.arrangeHorizontalStack = function (x, y, child, parent, parenBounds, childBounds) {\n var centerY = 0;\n if (child.verticalAlignment === 'Top') {\n centerY = y + child.margin.top + childBounds.height / 2;\n }\n else if (child.verticalAlignment === 'Bottom') {\n var parentBottom = parent.offsetY + parenBounds.height * (1 - parent.pivot.y);\n centerY = parentBottom - parent.padding.bottom - child.margin.bottom - childBounds.height / 2;\n }\n else {\n centerY = parent.offsetY - parenBounds.height * parent.pivot.y + parenBounds.height / 2;\n if (child.margin.top) {\n centerY = y + child.margin.top + childBounds.height / 2;\n }\n }\n return { x: x + childBounds.width / 2, y: centerY };\n };\n StackPanel.prototype.arrangeVerticalStack = function (x, y, child, parent, parentSize, childSize) {\n var centerX = 0;\n if (child.horizontalAlignment === 'Left') {\n centerX = x + child.margin.left + childSize.width / 2;\n }\n else if (child.horizontalAlignment === 'Right') {\n var parentRight = parent.offsetX + parentSize.width * (1 - parent.pivot.x);\n centerX = parentRight - parent.padding.right - child.margin.right - childSize.width / 2;\n }\n else {\n centerX = parent.offsetX - parentSize.width * parent.pivot.x + parentSize.width / 2;\n if (child.margin.left) {\n centerX = x + child.margin.left + childSize.width / 2;\n }\n }\n return { x: centerX, y: y + childSize.height / 2 };\n };\n StackPanel.prototype.stretchChildren = function (size) {\n if (this.children !== undefined && this.children.length > 0) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (this.orientation === 'Vertical') {\n if (child.horizontalAlignment === 'Stretch') {\n child.desiredSize.width = size.width - (child.margin.left + child.margin.right);\n }\n }\n else {\n if (child.verticalAlignment === 'Stretch') {\n child.desiredSize.height = size.height - (child.margin.top + child.margin.bottom);\n }\n }\n }\n }\n };\n StackPanel.prototype.applyChildMargin = function (child, size) {\n size.height += child.margin.top + child.margin.bottom;\n size.width += child.margin.left + child.margin.right;\n };\n return StackPanel;\n}(Container));\nexport { StackPanel };\n","import { NodeConstraints, AnnotationConstraints } from '../enum/enum';\nimport { Node } from '../objects/node';\nimport { randomId } from './../utility/base-util';\n/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/**\n * getULMClassifierShapes method \\\n *\n * @returns {DiagramElement} getULMClassifierShapes method .\\\n * @param { DiagramElement} content - provide the content value.\n * @param {NodeModel} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getULMClassifierShapes(content, node, diagram) {\n var classifier;\n var textWrap = 'NoWrap';\n if (node.shape.classifier === 'Class') {\n classifier = node.shape.classShape;\n }\n else if (node.shape.classifier === 'Enumeration') {\n classifier = node.shape.enumerationShape;\n }\n else if (node.shape.classifier === 'Interface') {\n classifier = node.shape.interfaceShape;\n }\n //let attributeText: string = '';\n node.container = { type: 'Stack', orientation: 'Vertical' };\n node.constraints = (NodeConstraints.Default | NodeConstraints.HideThumbs) &\n ~(NodeConstraints.Rotate | NodeConstraints.Resize);\n node.style = {\n fill: node.style.fill, strokeColor: node.style.strokeColor,\n strokeWidth: 1.5\n };\n node.children = [];\n if (node.maxWidth) {\n textWrap = 'Wrap';\n }\n var newObj = new Node(diagram, 'nodes', {\n id: node.id + '_umlClass_header',\n annotations: [\n {\n id: 'name', content: classifier.name,\n offset: { x: 0.5, y: 0.65 }, margin: { left: 10, right: 10 },\n style: {\n bold: true, fontSize: 14, color: classifier.style.color, fill: classifier.style.fill,\n textWrapping: textWrap\n }\n }, {\n content: '<<' + node.shape.classifier + '>>', margin: { left: 10, right: 10 },\n id: 'class', style: {\n fontSize: classifier.style.fontSize,\n color: classifier.style.color, fill: classifier.style.fill,\n textWrapping: textWrap\n }, offset: { x: 0.5, y: 0.3 }, constraints: AnnotationConstraints.ReadOnly\n }\n ],\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n verticalAlignment: 'Stretch',\n horizontalAlignment: 'Stretch',\n style: { fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor }\n }, true);\n diagram.initObject(newObj);\n diagram.nodes.push(newObj);\n diagram.UpdateBlazorDiagramModel(newObj, 'Node');\n node.children.push(newObj.id);\n getClassNodes(node, diagram, classifier, textWrap);\n getClassMembers(node, diagram, classifier, textWrap);\n /* eslint-disable */\n node.offsetX = node.offsetX;\n node.offsetY = node.offsetY;\n node.style.fill = node.style.fill;\n node.borderColor = node.borderColor;\n diagram.initObject(node);\n /* eslint-enable */\n return content;\n}\n/**\n * getClassNodes method \\\n *\n * @returns {void} getClassNodes method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassNodes(node, diagram, classifier, textWrap) {\n if (node.shape.classifier === 'Enumeration') {\n var member = classifier.members;\n if (member && member.length) {\n addSeparator(node, diagram);\n var memberText = '';\n for (var i = 0; i < member.length; i++) {\n var members = member[parseInt(i.toString(), 10)];\n if (members.name !== '') {\n memberText += members.name;\n }\n if (i !== member.length) {\n var style = getStyle(node, members);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMember',\n annotations: [\n {\n id: 'name', content: memberText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor, textWrapping: textWrap\n },\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n memberText = '';\n if (members.isSeparator && (i !== member.length - 1)) {\n addSeparator(node, diagram, members.separatorStyle);\n }\n //isSeperator boolean set as false whether it is set as true for last element\n if (members.isSeparator && (i === member.length - 1)) {\n members.isSeparator = false;\n }\n }\n }\n }\n }\n else {\n var attributes = classifier.attributes;\n if (attributes.length) {\n var attributeText = '';\n addSeparator(node, diagram);\n for (var i = 0; i < attributes.length; i++) {\n var text = void 0;\n var attribute = attributes[parseInt(i.toString(), 10)];\n if (attribute.scope && (attribute).scope === 'Public') {\n text = ' +';\n }\n else if (attribute.scope && attribute.scope === 'Private') {\n text = '-';\n }\n else if (attribute.scope && attribute.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (attribute.name !== '') {\n if (text) {\n attributeText += text + ' ' + attribute.name + ' ' + ': ' + attribute.type;\n }\n }\n if (i !== attributes.length) {\n var style = getStyle(node, attribute);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlProperty', style: { fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor },\n annotations: [\n {\n id: 'name', content: attributeText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n attributeText = '';\n if (attribute.isSeparator && (i !== attributes.length - 1)) {\n addSeparator(node, diagram, attribute.separatorStyle);\n }\n //isSeperator boolean set as false whether it is set as true for last element\n if (attribute.isSeparator && (i === attributes.length - 1)) {\n attribute.isSeparator = false;\n }\n }\n }\n }\n }\n}\n/**\n * getClassNodesChild method - This method is utilized to dynamically add members to a UML node at runtime. \\\n *\n * @returns {void} getClassNodesChild method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassNodesChild(node, diagram, classifier, textWrap) {\n if (node.shape.classifier === 'Enumeration') {\n var member = classifier.members;\n var memberText = '';\n // if there is no members in existing array, then the separator need to be added for new member\n if (member.length === 1) {\n var newIndex = member.length;\n addSeparatorChild(node, diagram, newIndex);\n }\n var count = 0;\n // Need to indentify the index value for newly added member\n for (var i = 0; i < member.length - 1; i++) {\n if (member[parseInt(i.toString(), 10)].isSeparator === true) {\n count++;\n }\n }\n var index = member.length + count + 1;\n //Iterate through an array of members and create each member as a child node to the UML node\n for (var i = 0; i < member.length; i++) {\n var members = member[member.length - 1];\n if (members.name !== '') {\n memberText += members.name;\n }\n if (i !== member.length) {\n var style = getStyle(node, members);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMember',\n annotations: [\n {\n id: 'name', content: memberText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor, textWrapping: textWrap\n },\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n temp.parentId = node.id;\n temp.umlIndex = index;\n diagram.add(temp);\n memberText = '';\n }\n break;\n }\n }\n}\n/**\n * getClassAttributesChild method - This method is utilized to dynamically add attributes to a UML node at runtime.\\\n *\n * @returns {void} getClassAttributesChild method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassAttributesChild(node, diagram, classifier, textWrap) {\n if (classifier.attributes && classifier.attributes.length) {\n var attributes = classifier.attributes;\n var attributeText = '';\n var text = void 0;\n // if there is no attributes in existing array, then the separator need to be added for new attribute\n if (attributes.length === 1) {\n var newIndex = attributes.length;\n addSeparatorChild(node, diagram, newIndex);\n }\n var count = 0;\n // Need to indentify the index value for newly added attribute\n for (var i = 0; i < attributes.length - 1; i++) {\n if (attributes[parseInt(i.toString(), 10)].isSeparator === true) {\n count++;\n }\n }\n var index = attributes.length + count + 1;\n //Iterate through an array of attributes and create each attribute as a child node to the UML node\n for (var i = 0; i < attributes.length; i++) {\n var attribute = attributes[attributes.length - 1];\n if (attribute.scope && (attribute).scope === 'Public') {\n text = ' +';\n }\n else if (attribute.scope && attribute.scope === 'Private') {\n text = '-';\n }\n else if (attribute.scope && attribute.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (attribute.name !== '') {\n if (text) {\n attributeText += text + ' ' + attribute.name + ' ' + ': ' + attribute.type;\n }\n }\n if (i !== attributes.length) {\n var style = getStyle(node, attribute);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlProperty', style: {\n fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor\n },\n annotations: [\n {\n id: 'name', content: attributeText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n temp.parentId = node.id;\n temp.umlIndex = index;\n diagram.add(temp);\n attributeText = '';\n }\n break;\n }\n }\n}\n/**\n * getClassMembers method \\\n *\n * @returns {void} getClassMembers method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassMembers(node, diagram, classifier, textWrap) {\n if (classifier.methods && classifier.methods.length) {\n var methods = classifier.methods;\n addSeparator(node, diagram);\n var argumentText = '';\n var methodText = '';\n var text = void 0;\n for (var i = 0; i < methods.length; i++) {\n var method = methods[parseInt(i.toString(), 10)];\n if (method.scope && method.scope === 'Public') {\n text = ' +';\n }\n else if (method.scope && method.scope === 'Private') {\n text = '-';\n }\n else if (method.scope && method.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (method.parameters) {\n for (var j = 0; j < method.parameters.length; j++) {\n if (method.parameters[parseInt(j.toString(), 10)].type) {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name + ':' + method.parameters[parseInt(j.toString(), 10)].type;\n }\n else {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name;\n }\n if (j !== method.parameters.length - 1) {\n argumentText += ',';\n }\n }\n }\n if (method.name !== '') {\n if (text) {\n methodText += text + ' ' + method.name + '(' + argumentText + ')' + ' ' + ':' + ' ' + method.type;\n }\n //893885: Parameter Name in UMLClass with multiple Methods are updated wrongly\n //clear the value stored in parameter variable after each method initiaization\n argumentText = '';\n }\n if (i !== methods.length) {\n var style = getStyle(node, method);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMethods', verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n annotations: [\n {\n id: 'name', content: methodText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ],\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor\n }, minHeight: 25,\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize)\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n methodText = '';\n if (method.isSeparator && (i !== methods.length - 1)) {\n addSeparator(node, diagram, method.separatorStyle);\n }\n //isSeperator boolean set as false whether it is set as true for last element\n if (method.isSeparator && (i === methods.length - 1)) {\n method.isSeparator = false;\n }\n }\n }\n }\n}\n/**\n * getClassMembersChild method - This method is utilized to dynamically add methods to a UML node at runtime. \\\n *\n * @returns {void} getClassMembersChild method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassMembersChild(node, diagram, classifier, textWrap) {\n if (classifier.methods && classifier.methods.length) {\n var methods = classifier.methods;\n var argumentText = '';\n var methodText = '';\n var text = void 0;\n var initialIndex = 1;\n var index = void 0;\n var attributeCount = 0;\n var methodCount = 0;\n var shapeModel = node.shape;\n var isClass = shapeModel.classifier === 'Class';\n var isInterface = shapeModel.classifier === 'Interface';\n var umlShape = isClass ? shapeModel.classShape : shapeModel.interfaceShape;\n // Need to indentify the index value for newly added method\n if (methods.length === 1) {\n if (umlShape.attributes.length > 0) {\n attributeCount = umlShape.attributes.filter(function (attr) { return attr.isSeparator; }).length;\n initialIndex = 1 + 1 + umlShape.attributes.length + attributeCount;\n index = initialIndex + 1;\n addSeparatorChild(node, diagram, initialIndex);\n }\n else {\n index = initialIndex + 1;\n }\n }\n // To determine the index value for adding methods, it is essential to take into account the existing attributes\n else {\n attributeCount = umlShape.attributes.filter(function (attr) { return attr.isSeparator; }).length;\n methodCount = umlShape.methods.filter(function (method) { return method.isSeparator; }).length;\n initialIndex = 1 + 1 + umlShape.attributes.length + attributeCount + umlShape.methods.length + methodCount;\n index = initialIndex + 1;\n }\n //Iterate through an array of methods and create each method as a child node to the UML node\n for (var i = 0; i < methods.length; i++) {\n var method = methods[methods.length - 1];\n if (method.scope && method.scope === 'Public') {\n text = ' +';\n }\n else if (method.scope && method.scope === 'Private') {\n text = '-';\n }\n else if (method.scope && method.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (method.parameters) {\n for (var j = 0; j < method.parameters.length; j++) {\n if (method.parameters[parseInt(j.toString(), 10)].type) {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name + ':' + method.parameters[parseInt(j.toString(), 10)].type;\n }\n else {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name;\n }\n if (j !== method.parameters.length - 1) {\n argumentText += ',';\n }\n }\n }\n if (method.name !== '') {\n if (text) {\n methodText += text + ' ' + method.name + '(' + argumentText + ')' + ' ' + ':' + ' ' + method.type;\n }\n }\n if (i !== methods.length) {\n var style = getStyle(node, method);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMethods', verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n annotations: [\n {\n id: 'name', content: methodText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ],\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor\n }, minHeight: 25,\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize)\n }, true);\n temp.parentId = node.id;\n temp.umlIndex = index;\n diagram.add(temp);\n methodText = '';\n }\n break;\n }\n }\n}\n/**\n * addSeparator method \\\n *\n * @returns {void} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {SeperatorStyle} SeperatorStyle - provide the Seperator color.\n * @private\n */\nexport function addSeparator(stack, diagram, SeperatorStyle) {\n var lineObject = new Node(diagram, 'nodes', {\n id: randomId() + '_path', height: 1, constraints: NodeConstraints.Default & ~(NodeConstraints.Select),\n verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: {\n strokeColor: (stack.style.strokeColor === 'black') ? '#ffffff00' : stack.style.strokeColor,\n fill: SeperatorStyle ? SeperatorStyle.fill : 'white'\n }\n }, true);\n diagram.initObject(lineObject);\n diagram.nodes.push(lineObject);\n stack.children.push(lineObject.id);\n}\n/**\n * addSeparatorChild method -This method is designed to add a separator for the newly added child type to the UML node. \\\n *\n * @returns {void} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {number} newIndex - provide the index value.\n * @private\n */\nexport function addSeparatorChild(stack, diagram, newIndex) {\n var lineObject = new Node(diagram, 'nodes', {\n id: randomId() + '_path', height: 1, constraints: NodeConstraints.Default & ~(NodeConstraints.Select),\n verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: { strokeColor: (stack.style.strokeColor === 'black') ? '#ffffff00' : stack.style.strokeColor, fill: 'white' }\n }, true);\n lineObject.parentId = stack.id;\n lineObject.umlIndex = newIndex;\n diagram.add(lineObject);\n}\n/**\n * getStyle method \\\n *\n * @returns {TextStyleModel} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {UmlClassModel} node - provide the node value.\n * @private\n */\nexport function getStyle(stack, node) {\n var newStyle = {};\n var style = node.style;\n newStyle.fill = (style.fill !== 'transparent') ? style.fill : stack.style.fill;\n newStyle.color = style.color;\n newStyle.fontFamily = (style.fontFamily !== 'Arial') ? style.fontFamily : stack.style.fontFamily;\n newStyle.italic = style.italic;\n newStyle.bold = style.bold;\n newStyle.whiteSpace = style.whiteSpace;\n newStyle.textAlign = style.textAlign;\n newStyle.textWrapping = style.textWrapping;\n newStyle.textDecoration = style.textDecoration;\n newStyle.textOverflow = style.textOverflow;\n // newStyle.margin = style.mar\n newStyle.fontSize = (style.fontSize !== 12) ? style.fontSize : stack.style.fontSize;\n newStyle.strokeColor = (style.strokeColor !== 'black') ? style.strokeColor : stack.style.strokeColor;\n newStyle.strokeWidth = (style.strokeWidth !== 1) ? style.strokeWidth : stack.style.strokeWidth;\n return newStyle;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar LayoutInfo = /** @class */ (function (_super) {\n __extends(LayoutInfo, _super);\n function LayoutInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Horizontal')\n ], LayoutInfo.prototype, \"orientation\", void 0);\n __decorate([\n Property('Center')\n ], LayoutInfo.prototype, \"type\", void 0);\n __decorate([\n Property(undefined)\n ], LayoutInfo.prototype, \"offset\", void 0);\n __decorate([\n Property(false)\n ], LayoutInfo.prototype, \"enableRouting\", void 0);\n __decorate([\n Property([])\n ], LayoutInfo.prototype, \"children\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"assistants\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"level\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"hasSubTree\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"rows\", void 0);\n return LayoutInfo;\n}(ChildProperty));\nexport { LayoutInfo };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable max-len */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable no-case-declarations */\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Property, Complex, Collection, ChildProperty, ComplexFactory, isBlazor, compile as baseTemplateCompiler } from '@syncfusion/ej2-base';\nimport { ShapeStyle, Margin, TextStyle, Shadow } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { Size } from '../primitives/size';\nimport { ElementAction } from '../enum/enum';\nimport { Container } from '../core/containers/container';\nimport { Canvas } from '../core/containers/canvas';\nimport { getBasicShape } from './dictionary/basic-shapes';\nimport { DiagramElement } from '../core/elements/diagram-element';\nimport { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { PointPort } from './port';\nimport { SelectorConstraints } from '../enum/enum';\nimport { Annotation, ShapeAnnotation } from './annotation';\nimport { getPortShape, getIconShape } from './dictionary/common';\nimport { getFlowShape } from './dictionary/flow-shapes';\nimport { NodeConstraints } from '../enum/enum';\nimport { checkPortRestriction, setUMLActivityDefaults, getUMLActivityShapes } from './../utility/diagram-util';\nimport { updatePortEdges, initFixedUserHandlesSymbol } from './../utility/diagram-util';\nimport { setSwimLaneDefaults, setPortsEdges } from './../utility/diagram-util';\nimport { randomId, getFunction, cloneObject } from './../utility/base-util';\nimport { NodeBase } from './node-base';\nimport { canShadow } from './../utility/constraints-util';\nimport { PortVisibility } from '../enum/enum';\nimport { IconShape } from './icon';\nimport { measurePath, getContent, getTemplateContent } from './../utility/dom-util';\nimport { getFreeHandPath, getPolygonPath } from './../utility/path-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { StackPanel } from '../core/containers/stack-panel';\nimport { GridPanel } from '../core/containers/grid';\nimport { getULMClassifierShapes } from '../utility/uml-util';\nimport { initSwimLane } from './../utility/swim-lane-util';\nimport { Connector } from './connector';\nimport { UserHandle } from '../interaction/selector';\nimport { LayoutInfo } from '../diagram/layoutinfo';\nimport { SymbolSize } from './preview';\nimport { NodeFixedUserHandle } from './fixed-user-handle';\nvar getShapeType = function (obj) {\n if (obj) {\n //Removed isBlazor code\n switch (obj.type) {\n case 'Basic':\n return BasicShape;\n case 'Flow':\n return FlowShape;\n case 'Path':\n return Path;\n case 'Image':\n return Image;\n case 'Text':\n return Text;\n case 'Bpmn':\n return BpmnShape;\n case 'Native':\n return Native;\n case 'HTML':\n return Html;\n case 'UmlActivity':\n return UmlActivityShape;\n case 'UmlClassifier':\n return UmlClassifierShape;\n case 'SwimLane':\n return SwimLane;\n default:\n return BasicShape;\n }\n }\n return BasicShape;\n};\n/**\n * Defines the behavior of default shape\n */\nvar Shape = /** @class */ (function (_super) {\n __extends(Shape, _super);\n function Shape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Basic')\n ], Shape.prototype, \"type\", void 0);\n return Shape;\n}(ChildProperty));\nexport { Shape };\n/**\n * Defines the behavior of path shape\n */\nvar Path = /** @class */ (function (_super) {\n __extends(Path, _super);\n function Path() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n Path.prototype.getClassName = function () {\n return 'Path';\n };\n __decorate([\n Property('Path')\n ], Path.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Path.prototype, \"data\", void 0);\n return Path;\n}(Shape));\nexport { Path };\n/**\n * Defines the behavior of Native shape\n */\nvar Native = /** @class */ (function (_super) {\n __extends(Native, _super);\n function Native() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Native\n *\n * @private\n */\n Native.prototype.getClassName = function () {\n return 'Native';\n };\n __decorate([\n Property('Native')\n ], Native.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Native.prototype, \"content\", void 0);\n __decorate([\n Property('Stretch')\n ], Native.prototype, \"scale\", void 0);\n return Native;\n}(Shape));\nexport { Native };\n/**\n * Defines the behavior of html shape\n */\nvar Html = /** @class */ (function (_super) {\n __extends(Html, _super);\n function Html() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Html\n *\n * @private\n */\n Html.prototype.getClassName = function () {\n return 'Html';\n };\n __decorate([\n Property('HTML')\n ], Html.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Html.prototype, \"content\", void 0);\n return Html;\n}(Shape));\nexport { Html };\n/**\n * Defines the behavior of image shape\n */\nvar Image = /** @class */ (function (_super) {\n __extends(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Image\n *\n * @private\n */\n Image.prototype.getClassName = function () {\n return 'Image';\n };\n __decorate([\n Property('Image')\n ], Image.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Image.prototype, \"source\", void 0);\n __decorate([\n Property('None')\n ], Image.prototype, \"scale\", void 0);\n __decorate([\n Property('None')\n ], Image.prototype, \"align\", void 0);\n return Image;\n}(Shape));\nexport { Image };\n/**\n * Defines the behavior of the text shape\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Text\n *\n * @private\n */\n Text.prototype.getClassName = function () {\n return 'Text';\n };\n __decorate([\n Property('Text')\n ], Text.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Text.prototype, \"content\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Text.prototype, \"margin\", void 0);\n return Text;\n}(Shape));\nexport { Text };\n/**\n * Defines the behavior of the basic shape\n */\nvar BasicShape = /** @class */ (function (_super) {\n __extends(BasicShape, _super);\n function BasicShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BasicShape\n *\n * @private\n *\n */\n BasicShape.prototype.getClassName = function () {\n return 'BasicShape';\n };\n __decorate([\n Property('Basic')\n ], BasicShape.prototype, \"type\", void 0);\n __decorate([\n Property('Rectangle')\n ], BasicShape.prototype, \"shape\", void 0);\n __decorate([\n Property(0)\n ], BasicShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Collection([], Point)\n ], BasicShape.prototype, \"points\", void 0);\n return BasicShape;\n}(Shape));\nexport { BasicShape };\n/**\n * Defines the behavior of the flow shape\n */\nvar FlowShape = /** @class */ (function (_super) {\n __extends(FlowShape, _super);\n function FlowShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class FlowShape\n *\n * @private\n */\n FlowShape.prototype.getClassName = function () {\n return 'FlowShape';\n };\n __decorate([\n Property('Flow')\n ], FlowShape.prototype, \"type\", void 0);\n __decorate([\n Property('Terminator')\n ], FlowShape.prototype, \"shape\", void 0);\n return FlowShape;\n}(Shape));\nexport { FlowShape };\n/**\n * Defines the behavior of the bpmn gateway shape\n */\nvar BpmnGateway = /** @class */ (function (_super) {\n __extends(BpmnGateway, _super);\n function BpmnGateway() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnGateway\n *\n * @private\n */\n BpmnGateway.prototype.getClassName = function () {\n return 'BpmnGateway';\n };\n __decorate([\n Property('None')\n ], BpmnGateway.prototype, \"type\", void 0);\n return BpmnGateway;\n}(ChildProperty));\nexport { BpmnGateway };\n/**\n * Defines the behavior of the bpmn data object\n */\nvar BpmnDataObject = /** @class */ (function (_super) {\n __extends(BpmnDataObject, _super);\n function BpmnDataObject() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnDataObject\n *\n * @private\n */\n BpmnDataObject.prototype.getClassName = function () {\n return 'BpmnDataObject';\n };\n __decorate([\n Property('None')\n ], BpmnDataObject.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], BpmnDataObject.prototype, \"collection\", void 0);\n return BpmnDataObject;\n}(ChildProperty));\nexport { BpmnDataObject };\n/**\n * Defines the behavior of the bpmn task shape\n */\nvar BpmnTask = /** @class */ (function (_super) {\n __extends(BpmnTask, _super);\n function BpmnTask() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], BpmnTask.prototype, \"type\", void 0);\n __decorate([\n Property('None')\n ], BpmnTask.prototype, \"loop\", void 0);\n __decorate([\n Property(false)\n ], BpmnTask.prototype, \"call\", void 0);\n __decorate([\n Property(false)\n ], BpmnTask.prototype, \"compensation\", void 0);\n return BpmnTask;\n}(ChildProperty));\nexport { BpmnTask };\n/**\n * Defines the behavior of the bpmn Event shape\n */\nvar BpmnEvent = /** @class */ (function (_super) {\n __extends(BpmnEvent, _super);\n function BpmnEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnEvent\n *\n * @private\n */\n BpmnEvent.prototype.getClassName = function () {\n return 'BpmnEvent';\n };\n __decorate([\n Property('Start')\n ], BpmnEvent.prototype, \"event\", void 0);\n __decorate([\n Property('None')\n ], BpmnEvent.prototype, \"trigger\", void 0);\n return BpmnEvent;\n}(ChildProperty));\nexport { BpmnEvent };\n/**\n * Defines the behavior of the bpmn sub event\n */\nvar BpmnSubEvent = /** @class */ (function (_super) {\n __extends(BpmnSubEvent, _super);\n function BpmnSubEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnSubEvent\n *\n * @private\n */\n BpmnSubEvent.prototype.getClassName = function () {\n return 'BpmnSubEvent';\n };\n __decorate([\n Property('None')\n ], BpmnSubEvent.prototype, \"trigger\", void 0);\n __decorate([\n Property('Start')\n ], BpmnSubEvent.prototype, \"event\", void 0);\n __decorate([\n Property('')\n ], BpmnSubEvent.prototype, \"id\", void 0);\n __decorate([\n Complex({}, Point)\n ], BpmnSubEvent.prototype, \"offset\", void 0);\n __decorate([\n Collection([], ShapeAnnotation)\n ], BpmnSubEvent.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PointPort)\n ], BpmnSubEvent.prototype, \"ports\", void 0);\n __decorate([\n Property()\n ], BpmnSubEvent.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], BpmnSubEvent.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Margin)\n ], BpmnSubEvent.prototype, \"margin\", void 0);\n __decorate([\n Property('Center')\n ], BpmnSubEvent.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], BpmnSubEvent.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(true)\n ], BpmnSubEvent.prototype, \"visible\", void 0);\n return BpmnSubEvent;\n}(ChildProperty));\nexport { BpmnSubEvent };\n/**\n * Defines the behavior of the BpmnTransactionSubProcess\n */\nvar BpmnTransactionSubProcess = /** @class */ (function (_super) {\n __extends(BpmnTransactionSubProcess, _super);\n function BpmnTransactionSubProcess() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ id: 'success', event: 'End', offset: { x: 1, y: 0.5 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"success\", void 0);\n __decorate([\n Complex({ id: 'failure', event: 'Intermediate', trigger: 'Error', offset: { x: 0.25, y: 1 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"failure\", void 0);\n __decorate([\n Complex({ id: 'cancel', event: 'Intermediate', trigger: 'Cancel', offset: { x: 0.75, y: 1 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"cancel\", void 0);\n return BpmnTransactionSubProcess;\n}(ChildProperty));\nexport { BpmnTransactionSubProcess };\n/**\n * Defines the behavior of the BPMNSubProcess\n */\nvar BpmnSubProcess = /** @class */ (function (_super) {\n __extends(BpmnSubProcess, _super);\n function BpmnSubProcess() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], BpmnSubProcess.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], BpmnSubProcess.prototype, \"adhoc\", void 0);\n __decorate([\n Property('Default')\n ], BpmnSubProcess.prototype, \"boundary\", void 0);\n __decorate([\n Property(false)\n ], BpmnSubProcess.prototype, \"compensation\", void 0);\n __decorate([\n Property('None')\n ], BpmnSubProcess.prototype, \"loop\", void 0);\n __decorate([\n Property(true)\n ], BpmnSubProcess.prototype, \"collapsed\", void 0);\n __decorate([\n Collection([], BpmnSubEvent)\n ], BpmnSubProcess.prototype, \"events\", void 0);\n __decorate([\n Complex({}, BpmnTransactionSubProcess)\n ], BpmnSubProcess.prototype, \"transaction\", void 0);\n __decorate([\n Property(undefined)\n ], BpmnSubProcess.prototype, \"processes\", void 0);\n return BpmnSubProcess;\n}(ChildProperty));\nexport { BpmnSubProcess };\n/**\n * Defines the behavior of the bpmn activity shape\n */\nvar BpmnActivity = /** @class */ (function (_super) {\n __extends(BpmnActivity, _super);\n function BpmnActivity() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnActivity\n *\n * @private\n */\n BpmnActivity.prototype.getClassName = function () {\n return 'BpmnActivity';\n };\n __decorate([\n Property('Task')\n ], BpmnActivity.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnTask)\n ], BpmnActivity.prototype, \"task\", void 0);\n __decorate([\n Complex({}, BpmnSubProcess)\n ], BpmnActivity.prototype, \"subProcess\", void 0);\n return BpmnActivity;\n}(ChildProperty));\nexport { BpmnActivity };\n/**\n * Defines the behavior of the bpmn annotation\n\n */\nvar BpmnAnnotation = /** @class */ (function (_super) {\n __extends(BpmnAnnotation, _super);\n // tslint:disable-next-line:no-any\n function BpmnAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * @private\n * Returns the name of class BpmnAnnotation\n */\n BpmnAnnotation.prototype.getClassName = function () {\n return 'BpmnAnnotation';\n };\n __decorate([\n Property('')\n ], BpmnAnnotation.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], BpmnAnnotation.prototype, \"id\", void 0);\n __decorate([\n Property(0)\n ], BpmnAnnotation.prototype, \"angle\", void 0);\n __decorate([\n Property()\n ], BpmnAnnotation.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], BpmnAnnotation.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], BpmnAnnotation.prototype, \"length\", void 0);\n return BpmnAnnotation;\n}(ChildProperty));\nexport { BpmnAnnotation };\nvar BpmnTextAnnotation = /** @class */ (function (_super) {\n __extends(BpmnTextAnnotation, _super);\n function BpmnTextAnnotation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], BpmnTextAnnotation.prototype, \"textAnnotationTarget\", void 0);\n __decorate([\n Property('Auto')\n ], BpmnTextAnnotation.prototype, \"textAnnotationDirection\", void 0);\n return BpmnTextAnnotation;\n}(ChildProperty));\nexport { BpmnTextAnnotation };\n/**\n * Defines the behavior of the bpmn shape\n */\nvar BpmnShape = /** @class */ (function (_super) {\n __extends(BpmnShape, _super);\n function BpmnShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnShape\n *\n * @private\n */\n BpmnShape.prototype.getClassName = function () {\n return 'BpmnShape';\n };\n __decorate([\n Property('Bpmn')\n ], BpmnShape.prototype, \"type\", void 0);\n __decorate([\n Property('Event')\n ], BpmnShape.prototype, \"shape\", void 0);\n __decorate([\n Complex({}, BpmnEvent)\n ], BpmnShape.prototype, \"event\", void 0);\n __decorate([\n Complex({}, BpmnGateway)\n ], BpmnShape.prototype, \"gateway\", void 0);\n __decorate([\n Complex({}, BpmnDataObject)\n ], BpmnShape.prototype, \"dataObject\", void 0);\n __decorate([\n Complex({}, BpmnActivity)\n ], BpmnShape.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnAnnotation)\n ], BpmnShape.prototype, \"annotation\", void 0);\n __decorate([\n Collection([], BpmnAnnotation)\n ], BpmnShape.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, BpmnTextAnnotation)\n ], BpmnShape.prototype, \"textAnnotation\", void 0);\n return BpmnShape;\n}(Shape));\nexport { BpmnShape };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar UmlActivityShape = /** @class */ (function (_super) {\n __extends(UmlActivityShape, _super);\n function UmlActivityShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlActivityShape\n *\n * @private\n */\n UmlActivityShape.prototype.getClassName = function () {\n return 'UmlActivityShape';\n };\n __decorate([\n Property('UmlActivity')\n ], UmlActivityShape.prototype, \"type\", void 0);\n __decorate([\n Property('Action')\n ], UmlActivityShape.prototype, \"shape\", void 0);\n return UmlActivityShape;\n}(Shape));\nexport { UmlActivityShape };\n/**\n * Defines the behavior of the uml class method\n */\nvar MethodArguments = /** @class */ (function (_super) {\n __extends(MethodArguments, _super);\n function MethodArguments() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class MethodArguments\n *\n * @private\n */\n MethodArguments.prototype.getClassName = function () {\n return 'MethodArguments';\n };\n __decorate([\n Property('')\n ], MethodArguments.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], MethodArguments.prototype, \"type\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], MethodArguments.prototype, \"style\", void 0);\n return MethodArguments;\n}(ChildProperty));\nexport { MethodArguments };\n/**\n * Defines the behavior of the uml class attributes\n */\nvar UmlClassAttribute = /** @class */ (function (_super) {\n __extends(UmlClassAttribute, _super);\n function UmlClassAttribute() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassAttribute\n *\n * @private\n */\n UmlClassAttribute.prototype.getClassName = function () {\n return 'UmlClassAttribute';\n };\n __decorate([\n Property('Public')\n ], UmlClassAttribute.prototype, \"scope\", void 0);\n __decorate([\n Property(false)\n ], UmlClassAttribute.prototype, \"isSeparator\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], UmlClassAttribute.prototype, \"separatorStyle\", void 0);\n return UmlClassAttribute;\n}(MethodArguments));\nexport { UmlClassAttribute };\n/**\n * Defines the behavior of the uml class method\n */\nvar UmlClassMethod = /** @class */ (function (_super) {\n __extends(UmlClassMethod, _super);\n function UmlClassMethod() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassMethod\n *\n * @private\n */\n UmlClassMethod.prototype.getClassName = function () {\n return 'UmlClassMethod';\n };\n __decorate([\n Collection([], MethodArguments)\n ], UmlClassMethod.prototype, \"parameters\", void 0);\n return UmlClassMethod;\n}(UmlClassAttribute));\nexport { UmlClassMethod };\n/**\n * Defines the behavior of the uml class shapes\n */\nvar UmlClass = /** @class */ (function (_super) {\n __extends(UmlClass, _super);\n function UmlClass() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClass\n *\n * @private\n */\n UmlClass.prototype.getClassName = function () {\n return 'UmlClass';\n };\n __decorate([\n Property('')\n ], UmlClass.prototype, \"name\", void 0);\n __decorate([\n Collection([], UmlClassAttribute)\n ], UmlClass.prototype, \"attributes\", void 0);\n __decorate([\n Collection([], UmlClassMethod)\n ], UmlClass.prototype, \"methods\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlClass.prototype, \"style\", void 0);\n return UmlClass;\n}(ChildProperty));\nexport { UmlClass };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlInterface = /** @class */ (function (_super) {\n __extends(UmlInterface, _super);\n function UmlInterface() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlInterface\n *\n * @private\n */\n UmlInterface.prototype.getClassName = function () {\n return 'UmlInterface';\n };\n __decorate([\n Property(false)\n ], UmlInterface.prototype, \"isSeparator\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], UmlInterface.prototype, \"separatorStyle\", void 0);\n return UmlInterface;\n}(UmlClass));\nexport { UmlInterface };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlEnumerationMember = /** @class */ (function (_super) {\n __extends(UmlEnumerationMember, _super);\n function UmlEnumerationMember() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlEnumerationMember\n *\n * @private\n */\n UmlEnumerationMember.prototype.getClassName = function () {\n return 'UmlEnumerationMember';\n };\n __decorate([\n Property('')\n ], UmlEnumerationMember.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], UmlEnumerationMember.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], UmlEnumerationMember.prototype, \"isSeparator\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], UmlEnumerationMember.prototype, \"separatorStyle\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlEnumerationMember.prototype, \"style\", void 0);\n return UmlEnumerationMember;\n}(ChildProperty));\nexport { UmlEnumerationMember };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlEnumeration = /** @class */ (function (_super) {\n __extends(UmlEnumeration, _super);\n function UmlEnumeration() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlEnumeration\n *\n * @private\n */\n UmlEnumeration.prototype.getClassName = function () {\n return 'UmlEnumeration';\n };\n __decorate([\n Property('')\n ], UmlEnumeration.prototype, \"name\", void 0);\n __decorate([\n Collection([], UmlEnumerationMember)\n ], UmlEnumeration.prototype, \"members\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlEnumeration.prototype, \"style\", void 0);\n return UmlEnumeration;\n}(ChildProperty));\nexport { UmlEnumeration };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar UmlClassifierShape = /** @class */ (function (_super) {\n __extends(UmlClassifierShape, _super);\n function UmlClassifierShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassifierShape\n *\n * @private\n */\n UmlClassifierShape.prototype.getClassName = function () {\n return 'UmlClassifierShape';\n };\n __decorate([\n Property('UmlClassifier')\n ], UmlClassifierShape.prototype, \"type\", void 0);\n __decorate([\n Complex({}, UmlClass)\n ], UmlClassifierShape.prototype, \"classShape\", void 0);\n __decorate([\n Complex({}, UmlInterface)\n ], UmlClassifierShape.prototype, \"interfaceShape\", void 0);\n __decorate([\n Complex({}, UmlEnumeration)\n ], UmlClassifierShape.prototype, \"enumerationShape\", void 0);\n __decorate([\n Property('Class')\n ], UmlClassifierShape.prototype, \"classifier\", void 0);\n return UmlClassifierShape;\n}(Shape));\nexport { UmlClassifierShape };\n/* tslint:disable */\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar DiagramShape = /** @class */ (function (_super) {\n __extends(DiagramShape, _super);\n function DiagramShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassifierShape\n *\n * @private\n */\n DiagramShape.prototype.getClassName = function () {\n return 'DiagramShape';\n };\n __decorate([\n Property('Basic')\n ], DiagramShape.prototype, \"type\", void 0);\n __decorate([\n Property('Rectangle')\n ], DiagramShape.prototype, \"basicShape\", void 0);\n __decorate([\n Property('Terminator')\n ], DiagramShape.prototype, \"flowShape\", void 0);\n __decorate([\n Property('Event')\n ], DiagramShape.prototype, \"bpmnShape\", void 0);\n __decorate([\n Property('Action')\n ], DiagramShape.prototype, \"umlActivityShape\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"data\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"textContent\", void 0);\n __decorate([\n Property('Stretch')\n ], DiagramShape.prototype, \"scale\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"source\", void 0);\n __decorate([\n Property('None')\n ], DiagramShape.prototype, \"align\", void 0);\n __decorate([\n Complex({}, Margin)\n ], DiagramShape.prototype, \"margin\", void 0);\n __decorate([\n Property(0)\n ], DiagramShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Collection([], Point)\n ], DiagramShape.prototype, \"points\", void 0);\n __decorate([\n Complex({}, BpmnDataObject)\n ], DiagramShape.prototype, \"dataObject\", void 0);\n __decorate([\n Complex({}, BpmnEvent)\n ], DiagramShape.prototype, \"event\", void 0);\n __decorate([\n Complex({}, BpmnGateway)\n ], DiagramShape.prototype, \"gateway\", void 0);\n __decorate([\n Collection([], BpmnAnnotation)\n ], DiagramShape.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, BpmnActivity)\n ], DiagramShape.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnAnnotation)\n ], DiagramShape.prototype, \"annotation\", void 0);\n __decorate([\n Complex({}, UmlEnumeration)\n ], DiagramShape.prototype, \"enumerationShape\", void 0);\n __decorate([\n Property('Class')\n ], DiagramShape.prototype, \"classifier\", void 0);\n __decorate([\n Complex({}, UmlClass)\n ], DiagramShape.prototype, \"classShape\", void 0);\n __decorate([\n Complex({}, UmlInterface)\n ], DiagramShape.prototype, \"interfaceShape\", void 0);\n return DiagramShape;\n}(ChildProperty));\nexport { DiagramShape };\n/* tslint:enable */\n/**\n * Defines the behavior of nodes\n */\nvar Node = /** @class */ (function (_super) {\n __extends(Node, _super);\n function Node(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.isCanvasUpdate = false;\n /** @private */\n _this.status = 'None';\n /** @private */\n _this.parentId = '';\n /** @private */\n _this.processId = '';\n /** @private */\n _this.umlIndex = -1;\n /** @private */\n _this.outEdges = [];\n /** @private */\n _this.inEdges = [];\n /** @private */\n _this.isHeader = false;\n /** @private */\n _this.isLane = false;\n /** @private */\n _this.isPhase = false;\n var nodeDefault;\n if (_this.children && _this.children.length > 0) {\n nodeDefault = defaultValue;\n if (!nodeDefault.style || !nodeDefault.style.fill) {\n _this.style.fill = 'transparent';\n }\n if (!nodeDefault.style || !nodeDefault.style.strokeColor) {\n _this.style.strokeColor = 'transparent';\n }\n }\n if (_this.shape && _this.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(defaultValue, _this);\n }\n if (_this.shape && _this.shape.type === 'SwimLane') {\n setSwimLaneDefaults(defaultValue, _this);\n }\n if (_this.ports && _this.ports.length) {\n setPortsEdges(_this);\n }\n return _this;\n }\n Object.defineProperty(Node.prototype, \"actualSize\", {\n /** @private */\n get: function () {\n if (this.wrapper !== null) {\n return this.wrapper.actualSize;\n }\n else {\n return new Size(this.width || 0, this.height || 0);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Allows to initialize the UI of a node\n */\n /** @private */\n /* tslint:disable */\n // tslint:disable-next-line:no-any\n Node.prototype.init = function (diagram) {\n var content;\n if (this.shape.type !== 'SwimLane') {\n content = new DiagramElement();\n }\n else {\n content = new GridPanel();\n }\n var textStyle;\n var changedProperties = 'changedProperties';\n var oldProperties = 'oldProperties';\n this.shape[\"\" + changedProperties] = {};\n this.shape[\"\" + oldProperties] = {};\n switch (this.shape.type) {\n case 'Path':\n if ((!isBlazor() && (this.type === 'Freehand'))) {\n var path = new PathElement();\n path.data = getFreeHandPath(this.shape.points);\n content = path;\n }\n else {\n var pathContent = new PathElement();\n pathContent.data = this.shape.data;\n content = pathContent;\n }\n break;\n case 'Image':\n var imageContent = new ImageElement();\n imageContent.source = this.shape.source;\n imageContent.imageAlign = this.shape.align;\n imageContent.imageScale = this.shape.scale;\n content = imageContent;\n break;\n case 'Text':\n var textContent = new TextElement();\n textContent.content = this.shape.content;\n content = textContent;\n textStyle = this.style;\n content.style = textStyle;\n break;\n case 'Basic':\n if ((!isBlazor() && this.shape.shape === 'Rectangle')) {\n var basicshape = new DiagramElement();\n content = basicshape;\n content.cornerRadius = this.shape.cornerRadius;\n }\n else if ((!isBlazor() && this.shape.shape === 'Polygon')) {\n var path = new PathElement();\n path.data = getPolygonPath(this.shape.points);\n content = path;\n }\n else {\n var basicshape = new PathElement();\n var basicshapedata = getBasicShape(this.shape.shape);\n basicshape.data = basicshapedata;\n content = basicshape;\n }\n break;\n case 'Flow':\n var flowshape = new PathElement();\n var flowshapedata = getFlowShape(this.shape.shape);\n flowshape.data = flowshapedata;\n content = flowshape;\n break;\n case 'UmlActivity':\n var umlactivityshape = new PathElement();\n content = getUMLActivityShapes(umlactivityshape, content, this);\n break;\n case 'Bpmn':\n if (diagram.bpmnModule) {\n content = diagram.bpmnModule.initBPMNContent(content, this, diagram);\n this.wrapper.elementActions = this.wrapper.elementActions | ElementAction.ElementIsGroup;\n var subProcess = this.shape.activity.subProcess;\n if (subProcess.processes && subProcess.processes.length) {\n var children = this.shape.activity.subProcess.processes;\n for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {\n var i = children_1[_i];\n if (diagram.nameTable[\"\" + i] && (!diagram.nameTable[\"\" + i].processId || diagram.nameTable[\"\" + i].processId === this.id)) {\n diagram.nameTable[\"\" + i].processId = this.id;\n if (subProcess.collapsed) {\n diagram.updateElementVisibility(diagram.nameTable[\"\" + i].wrapper, diagram.nameTable[\"\" + i], !subProcess.collapsed);\n }\n content.children.push(diagram.nameTable[\"\" + i].wrapper);\n }\n }\n }\n }\n else {\n console.warn('[WARNING] :: Module \"BpmnDiagrams\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n break;\n case 'Native':\n var nativeContent = new DiagramNativeElement(this.id, diagram.element.id);\n nativeContent.content = this.shape.content;\n nativeContent.scale = this.shape.scale;\n content = nativeContent;\n break;\n case 'HTML':\n var htmlContent = new DiagramHtmlElement(this.id, diagram.element.id, undefined, diagram.nodeTemplate);\n if (this.shape.content && (typeof (this.shape.content) === 'string' || !diagram.isReact)) {\n htmlContent.content = this.shape.content;\n }\n else if (diagram.nodeTemplate) {\n htmlContent.isTemplate = true;\n htmlContent.template = htmlContent.content = getContent(htmlContent, true, this);\n }\n //Task 834121: Content-Security-Policy support for diagram.\n if (this.shape.content && typeof (this.shape.content) === 'function' && diagram.isReact) {\n htmlContent.isTemplate = true;\n htmlContent.templateFn = baseTemplateCompiler(this.shape.content);\n htmlContent.template = htmlContent.content = getContent(htmlContent, true, this);\n }\n content = htmlContent;\n break;\n case 'UmlClassifier':\n // let umlClassifierShape: StackPanel = new StackPanel();\n content = getULMClassifierShapes(content, this, diagram);\n break;\n case 'SwimLane':\n this.annotations = [];\n this.ports = [];\n content.cellStyle.fill = 'none';\n content.cellStyle.strokeColor = 'none';\n this.container = { type: 'Grid', orientation: this.shape.orientation };\n content.id = this.id;\n this.container.orientation = this.shape.orientation;\n this.constraints |= NodeConstraints.HideThumbs;\n initSwimLane(content, diagram, this);\n break;\n }\n content.id = this.id + '_content';\n content.relativeMode = 'Object';\n // (EJ2-56444) - Added the below code to check whether node shape type is basic and shape is rectangle.\n // This code added due to while render radial gradient in canvas mode we want to check this type and pass args according to that\n if (this.shape.type === 'Basic' && this.shape.shape === 'Rectangle') {\n content.shapeType = 'Rectangle';\n }\n else {\n content.shapeType = 'Others';\n }\n if (this.width !== undefined) {\n content.width = this.width;\n }\n content.horizontalAlignment = 'Stretch';\n if (this.height !== undefined) {\n content.height = this.height;\n }\n if (this.minHeight !== undefined) {\n content.minHeight = this.minHeight;\n }\n if (this.maxHeight !== undefined) {\n content.maxHeight = this.maxHeight;\n }\n if (this.minWidth !== undefined) {\n content.minWidth = this.minWidth;\n }\n if (this.maxWidth !== undefined) {\n content.maxWidth = this.maxWidth;\n }\n if ((!isBlazor() && this.shape.shape === 'Rectangle' && !this.shape.cornerRadius)) {\n content.isRectElement = true;\n }\n content.verticalAlignment = 'Stretch';\n if ((this.shape instanceof Text)) {\n content.margin = this.shape.margin;\n }\n // 923325: Grey area visible while drawing \"Freehand\" connector with DragSegmentThumb enabled\n if (canShadow(this) && (this.type !== 'Freehand')) {\n if ((this.constraints & NodeConstraints.Shadow) !== 0) {\n content.shadow = this.shadow;\n }\n }\n if ((this.shape.type !== 'Bpmn' || ((!isBlazor() && this.shape.shape === 'Message')) ||\n ((!isBlazor() && this.shape.shape === 'DataSource'))) && ((this.shape.type !== 'UmlActivity' || ((!isBlazor() && this.shape.shape !== 'FinalNode'))))) {\n if (this.shape.type !== 'Text') {\n content.style = this.style;\n this.oldGradientValue = (this.style.gradient) ? cloneObject(this.style.gradient) : null;\n }\n }\n if (!(this.wrapper.elementActions & ElementAction.ElementIsGroup) && this.flip === 'Horizontal' || this.flip === 'Vertical') {\n content.flip = this.flip;\n content.flipMode = this.flipMode;\n }\n return content;\n };\n /* tslint:enable */\n /** @private */\n Node.prototype.initContainer = function () {\n if (!this.id) {\n this.id = randomId();\n }\n // Creates canvas element\n var canvas;\n if (!this.container || this.shape instanceof SwimLane) {\n canvas = this.children ? new Container() : new Canvas();\n }\n else {\n switch (this.container.type) {\n case 'Canvas':\n canvas = new Canvas();\n break;\n case 'Stack':\n canvas = new StackPanel();\n break;\n case 'Grid':\n canvas = new GridPanel();\n canvas.setDefinitions(this.rows, this.columns);\n break;\n }\n }\n canvas.id = this.id;\n canvas.offsetX = this.offsetX;\n canvas.offsetY = this.offsetY;\n canvas.visible = this.visible;\n canvas.horizontalAlignment = this.horizontalAlignment;\n canvas.verticalAlignment = this.verticalAlignment;\n //903772 - Swimlane Save and Load Issue\n if (this.container && this.shape.type !== 'SwimLane') {\n canvas.width = this.width;\n canvas.height = this.height;\n if (this.container.type === 'Stack') {\n canvas.orientation = this.container.orientation;\n }\n }\n canvas.style.fill = this.backgroundColor;\n canvas.style.strokeColor = this.borderColor;\n canvas.style.strokeWidth = this.borderWidth;\n canvas.rotateAngle = this.rotateAngle;\n canvas.minHeight = this.minHeight;\n canvas.minWidth = this.minWidth;\n canvas.maxHeight = this.maxHeight;\n canvas.maxWidth = this.maxWidth;\n canvas.pivot = this.pivot;\n canvas.margin = this.margin;\n canvas.flip = this.flip;\n canvas.flipMode = this.flipMode;\n this.wrapper = canvas;\n return canvas;\n };\n /** @private */\n Node.prototype.initPorts = function (accessibilityContent, container) {\n for (var i = 0; this.ports !== undefined, i < this.ports.length; i++) {\n this.initPort(accessibilityContent, container, this.ports[parseInt(i.toString(), 10)]);\n }\n };\n /** @private */\n Node.prototype.initPort = function (accessibilityContent, container, port) {\n var canvas = this.wrapper;\n var portWrapper;\n // eslint-disable-next-line prefer-const\n portWrapper = this.initPortWrapper(port, this);\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(portWrapper, this);\n }\n portWrapper.description = wrapperContent ? wrapperContent : portWrapper.id;\n portWrapper.inversedAlignment = canvas.inversedAlignment;\n portWrapper.elementActions = portWrapper.elementActions | ElementAction.ElementIsPort;\n container.children.push(portWrapper);\n };\n Node.prototype.getIconOffet = function (layout, icon) {\n var x;\n var y;\n if (layout.orientation === 'BottomToTop') {\n x = icon.offset.x;\n y = 1 - icon.offset.y;\n }\n else if (layout.orientation === 'LeftToRight') {\n x = icon.offset.y;\n y = icon.offset.x;\n }\n else if (layout.orientation === 'RightToLeft') {\n x = 1 - icon.offset.y;\n y = icon.offset.x;\n }\n else {\n x = icon.offset.x;\n y = icon.offset.y;\n }\n return { x: x, y: y };\n };\n /** @private */\n Node.prototype.initIcons = function (accessibilityContent, layout, container, diagramId) {\n var canvas = this.wrapper;\n var offset;\n var icon = this.isExpanded ? this.expandIcon : this.collapseIcon;\n if (icon.shape !== 'None') {\n var iconContainer = new Canvas();\n iconContainer.float = true;\n var children = [];\n iconContainer.id = this.id + '_icon_content';\n iconContainer.children = children;\n iconContainer.height = icon.height;\n iconContainer.width = icon.width;\n iconContainer.style.strokeColor = 'transparent';\n iconContainer.margin = icon.margin;\n iconContainer.horizontalAlignment = 'Center';\n iconContainer.verticalAlignment = 'Center';\n iconContainer.visible = this.visible;\n iconContainer.cornerRadius = icon.cornerRadius;\n offset = this.getIconOffet(layout, icon);\n iconContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction');\n iconContainer.relativeMode = 'Point';\n this.initIconSymbol(icon, iconContainer, accessibilityContent, diagramId);\n // tslint:disable-next-line:no-any\n var wrapperContent = void 0;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(icon, this);\n }\n iconContainer.description = wrapperContent ? wrapperContent : iconContainer.id;\n iconContainer.inversedAlignment = canvas.inversedAlignment;\n container.children.push(iconContainer);\n }\n };\n // 882378 - Added below code to provide template support for fixedUserHandles in nodes\n /** @private */\n Node.prototype.initFixedUserHandles = function (fixedUserHandle, fixedUserHandleTemplate, diagramId) {\n var fixedUserHandleContainer;\n if (fixedUserHandle.pathData === '' && fixedUserHandleTemplate) {\n fixedUserHandleContainer = new DiagramHtmlElement(this.id, diagramId, undefined, fixedUserHandleTemplate);\n fixedUserHandleContainer.isTemplate = true;\n fixedUserHandleContainer.template = getContent(fixedUserHandleContainer, true, fixedUserHandle);\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n }\n else {\n var canvas = this.wrapper;\n fixedUserHandleContainer = new Canvas();\n var children = [];\n fixedUserHandleContainer.children = children;\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n var symbolIcon = initFixedUserHandlesSymbol(fixedUserHandle, fixedUserHandleContainer);\n fixedUserHandleContainer.children.push(symbolIcon);\n fixedUserHandleContainer.inversedAlignment = canvas.inversedAlignment;\n }\n fixedUserHandleContainer.float = true;\n fixedUserHandleContainer.height = fixedUserHandle.height;\n fixedUserHandleContainer.width = fixedUserHandle.width;\n fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor;\n fixedUserHandleContainer.style.fill = fixedUserHandle.fill;\n fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth;\n fixedUserHandleContainer.margin = fixedUserHandle.margin;\n fixedUserHandleContainer.visible = fixedUserHandle.visibility;\n fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius;\n fixedUserHandleContainer.horizontalAlignment = 'Center';\n fixedUserHandleContainer.verticalAlignment = 'Center';\n var offset = this.getfixedUserHandleOffet(fixedUserHandle);\n fixedUserHandleContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction');\n fixedUserHandleContainer.relativeMode = 'Point';\n fixedUserHandleContainer.description = fixedUserHandleContainer.id;\n return fixedUserHandleContainer;\n };\n Node.prototype.getfixedUserHandleOffet = function (fixedUserHandle) {\n //let x: number;\n //let y: number;\n var x = fixedUserHandle.offset.x;\n var y = fixedUserHandle.offset.y;\n return { x: x, y: y };\n };\n /** @private */\n Node.prototype.initAnnotations = function (accessibilityContent, container, diagramId, virtualize, annotationTemplate) {\n var annotation;\n for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) {\n annotation = this.initAnnotationWrapper(this.annotations[parseInt(i.toString(), 10)], diagramId, virtualize, i, annotationTemplate);\n // tslint:disable-next-line:no-any\n var wrapperContent = void 0;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(annotation, this);\n }\n annotation.description = wrapperContent ? wrapperContent : annotation.id;\n annotation.inversedAlignment = container.inversedAlignment;\n container.children.push(annotation);\n }\n };\n /** @private */\n Node.prototype.initPortWrapper = function (ports, Node) {\n ports.id = ports.id || randomId();\n // Creates port element\n var portContent = new PathElement();\n portContent.height = ports.height;\n portContent.width = ports.width;\n portContent.connectionDirection = ports.connectionDirection;\n var pathdata = (ports.shape === 'Custom') ? ports.pathData : getPortShape(ports.shape);\n portContent.id = this.id + '_' + (ports.id);\n portContent.margin = ports.margin;\n portContent.data = pathdata;\n //EJ2-826617 - For BPMN node port flip is to be defined.\n //EJ2-830012 - Complex-hierarchical tree breaks due to Node undefined\n if (Node) {\n if (Node.shape.type === 'Bpmn') {\n portContent.flip = this.flip;\n }\n }\n var style = ports.style;\n portContent.style = {\n fill: style.fill, strokeColor: style.strokeColor, gradient: null,\n opacity: style.opacity, strokeDashArray: style.strokeDashArray, strokeWidth: style.strokeWidth\n };\n portContent.horizontalAlignment = ports.horizontalAlignment;\n portContent.verticalAlignment = ports.verticalAlignment;\n if (Node && Node.flipMode !== 'Label' && Node.flipMode !== 'None') {\n portContent = updatePortEdges(portContent, this.flip, ports);\n }\n else {\n portContent = updatePortEdges(portContent, 'None', ports);\n }\n if (this.width !== undefined || this.height !== undefined) {\n portContent.float = true;\n }\n portContent.relativeMode = 'Point';\n portContent.visible = checkPortRestriction(ports, PortVisibility.Visible) &&\n !checkPortRestriction(ports, PortVisibility.Hover) && !checkPortRestriction(ports, PortVisibility.Connect) ? true : false;\n portContent.elementActions = portContent.elementActions | ElementAction.ElementIsPort;\n return portContent;\n };\n /** @private */\n Node.prototype.initAnnotationWrapper = function (annotation, diagramId, virtualize, value, annotationTemplate) {\n annotation.id = annotation.id || value + 'annotation' || randomId();\n var label = annotation;\n var annotationcontent;\n //Removed isBlazor code\n if (diagramId && (annotation.template || annotation.annotationType === 'Template'\n || (annotationTemplate && annotation.content === ''))) {\n annotationcontent = new DiagramHtmlElement(this.id, diagramId, annotation.id, annotationTemplate);\n // Task 834121: Content-Security-Policy support for diagram\n var diagramElement = document.getElementById(diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[\"\" + instance][0];\n if (annotation.template && typeof annotation.template === 'function' && diagram.isReact) {\n annotationcontent.templateFn = baseTemplateCompiler(annotation.template);\n annotationcontent.isTemplate = true;\n }\n annotationcontent = getTemplateContent(annotationcontent, annotation, annotationTemplate, diagram);\n }\n else {\n annotationcontent = new TextElement();\n annotationcontent.canMeasure = !virtualize;\n var style = annotation.style;\n var link = annotation.hyperlink.link ? annotation.hyperlink : undefined;\n annotationcontent.style = {\n fill: style.fill, strokeColor: style.strokeColor, strokeWidth: style.strokeWidth,\n bold: style.bold, textWrapping: style.textWrapping,\n color: link ? link.color || annotationcontent.hyperlink.color : style.color, whiteSpace: style.whiteSpace,\n fontFamily: style.fontFamily, fontSize: style.fontSize, italic: style.italic, gradient: null, opacity: style.opacity,\n strokeDashArray: style.strokeDashArray, textAlign: style.textAlign, textOverflow: annotation.style.textOverflow,\n textDecoration: link ? link.textDecoration ||\n annotationcontent.hyperlink.textDecoration : style.textDecoration\n };\n annotationcontent.hyperlink.link = annotation.hyperlink.link || undefined;\n annotationcontent.hyperlink.hyperlinkOpenState = annotation.hyperlink.hyperlinkOpenState || undefined;\n annotationcontent.hyperlink.content = annotation.hyperlink.content || undefined;\n annotationcontent.hyperlink.textDecoration = annotation.hyperlink.textDecoration || undefined;\n annotationcontent.content = link ? link.content ||\n annotationcontent.hyperlink.link : annotation.content;\n }\n annotationcontent.constraints = annotation.constraints;\n annotationcontent.height = annotation.height;\n annotationcontent.width = annotation.width;\n annotationcontent.visible = annotation.visibility;\n //Bug 855273: Annotation visible property is not working while changing node visibility at runtime\n annotationcontent.annotationVisibility = annotationcontent.visible ? 'Visible' : 'Collapsed';\n annotationcontent.rotateAngle = annotation.rotateAngle;\n annotationcontent.rotationReference = annotation.rotationReference;\n annotationcontent.id = this.id + '_' + annotation.id;\n if (this.width !== undefined && !annotation.template) {\n //910583: Annotation Wrapper updates wrongly after save and load.\n if (annotation.width === undefined) {\n if (annotation.style.textWrapping === 'Wrap' || annotation.style.textWrapping === 'WrapWithOverflow') {\n annotationcontent.width = this.width;\n }\n }\n }\n annotationcontent.margin = annotation.margin;\n annotationcontent.horizontalAlignment = annotation.horizontalAlignment;\n annotationcontent.verticalAlignment = annotation.verticalAlignment;\n annotationcontent.setOffsetWithRespectToBounds(label.offset.x, label.offset.y, 'Fraction');\n if (this.width !== undefined || this.height !== undefined) {\n annotationcontent.float = true;\n }\n annotationcontent.relativeMode = 'Point';\n return annotationcontent;\n };\n Node.prototype.initIconContainer = function (options, iconContainer) {\n var rect = new DiagramElement();\n rect.id = iconContainer.id + '_rect';\n rect.height = options.height;\n rect.width = options.width;\n rect.visible = iconContainer.visible;\n rect.margin = options.margin;\n rect.cornerRadius = options.cornerRadius;\n rect.style = {\n fill: options.fill, strokeColor: options.borderColor,\n strokeWidth: options.borderWidth\n };\n rect.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n rect.horizontalAlignment = 'Center';\n rect.verticalAlignment = 'Center';\n rect.relativeMode = 'Object';\n rect.description = rect.description || 'Click here to expand or collapse';\n return rect;\n };\n Node.prototype.initIconSymbol = function (options, iconContainer, accessibilityContent, diagramId) {\n var iconContent;\n iconContainer.children.push(this.initIconContainer(options, iconContainer));\n if (options.shape === 'Template') {\n iconContent = new DiagramNativeElement(this.id, diagramId);\n iconContent.content = options.content;\n iconContent.height = 10;\n iconContent.width = 10;\n }\n else {\n iconContent = new PathElement();\n iconContent.data = getIconShape(options);\n var iconContentBounds = measurePath(iconContent.data);\n iconContent.height =\n iconContentBounds.height < 10 ? iconContentBounds.height : 10 - (options.padding.bottom + options.padding.top);\n iconContent.width =\n iconContentBounds.width < 10 ? iconContentBounds.width : 10 - (options.padding.left + options.padding.right);\n }\n iconContent.id = iconContainer.id + '_shape';\n iconContent.horizontalAlignment = 'Center';\n iconContent.verticalAlignment = 'Center';\n iconContent.visible = iconContainer.visible;\n iconContent.visible = iconContainer.visible;\n iconContent.style = {\n fill: 'black',\n strokeColor: options.iconColor,\n strokeWidth: options.borderWidth\n };\n iconContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n iconContent.relativeMode = 'Object';\n iconContent.description = iconContainer.description || 'Click here to expand or collapse';\n iconContainer.children.push(iconContent);\n };\n /**\n * @private\n *\n * Returns the name of class Node\n */\n Node.prototype.getClassName = function () {\n return 'Node';\n };\n __decorate([\n Collection([], ShapeAnnotation)\n ], Node.prototype, \"annotations\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"offsetX\", void 0);\n __decorate([\n Complex({}, LayoutInfo)\n ], Node.prototype, \"layoutInfo\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"offsetY\", void 0);\n __decorate([\n Collection([], PointPort)\n ], Node.prototype, \"ports\", void 0);\n __decorate([\n Property(true)\n ], Node.prototype, \"isExpanded\", void 0);\n __decorate([\n Collection([], NodeFixedUserHandle)\n ], Node.prototype, \"fixedUserHandles\", void 0);\n __decorate([\n Complex({}, IconShape)\n ], Node.prototype, \"expandIcon\", void 0);\n __decorate([\n Complex({}, IconShape)\n ], Node.prototype, \"collapseIcon\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Node.prototype, \"pivot\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"minWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"minHeight\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"maxWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"rotateAngle\", void 0);\n __decorate([\n Complex({ fill: 'white' }, TextStyle)\n ], Node.prototype, \"style\", void 0);\n __decorate([\n Property('transparent')\n ], Node.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('none')\n ], Node.prototype, \"borderColor\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"borderWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"data\", void 0);\n __decorate([\n ComplexFactory(getShapeType)\n ], Node.prototype, \"shape\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Node.prototype, \"previewSize\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Node.prototype, \"dragSize\", void 0);\n __decorate([\n Property(null)\n ], Node.prototype, \"wrapper\", void 0);\n __decorate([\n Property(NodeConstraints.Default)\n ], Node.prototype, \"constraints\", void 0);\n __decorate([\n Complex({}, Shadow)\n ], Node.prototype, \"shadow\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"children\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], Node.prototype, \"padding\", void 0);\n __decorate([\n Property(null)\n ], Node.prototype, \"container\", void 0);\n __decorate([\n Property('Left')\n ], Node.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Top')\n ], Node.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rows\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columns\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rowIndex\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columnIndex\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rowSpan\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columnSpan\", void 0);\n __decorate([\n Property('')\n ], Node.prototype, \"branch\", void 0);\n return Node;\n}(NodeBase));\nexport { Node };\n/**\n * Defines the behavior of header in swimLane\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Header.prototype, \"id\", void 0);\n __decorate([\n Complex({}, Annotation)\n ], Header.prototype, \"annotation\", void 0);\n __decorate([\n Complex({ fill: '#E7F4FF', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Header.prototype, \"style\", void 0);\n __decorate([\n Property(50)\n ], Header.prototype, \"height\", void 0);\n __decorate([\n Property(50)\n ], Header.prototype, \"width\", void 0);\n return Header;\n}(ChildProperty));\nexport { Header };\n/**\n * Defines the behavior of lane in swimLane\n */\nvar Lane = /** @class */ (function (_super) {\n __extends(Lane, _super);\n function Lane() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Lane\n *\n * @private\n */\n Lane.prototype.getClassName = function () {\n return 'Lane';\n };\n __decorate([\n Property('')\n ], Lane.prototype, \"id\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Lane.prototype, \"style\", void 0);\n __decorate([\n Collection([], Node)\n ], Lane.prototype, \"children\", void 0);\n __decorate([\n Property(100)\n ], Lane.prototype, \"height\", void 0);\n __decorate([\n Property(100)\n ], Lane.prototype, \"width\", void 0);\n __decorate([\n Complex({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header)\n ], Lane.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Lane.prototype, \"canMove\", void 0);\n __decorate([\n Property()\n ], Lane.prototype, \"addInfo\", void 0);\n return Lane;\n}(ChildProperty));\nexport { Lane };\n/**\n * Defines the behavior of phase in swimLane\n */\nvar Phase = /** @class */ (function (_super) {\n __extends(Phase, _super);\n function Phase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Phase\n *\n * @private\n */\n Phase.prototype.getClassName = function () {\n return 'Phase';\n };\n __decorate([\n Property('')\n ], Phase.prototype, \"id\", void 0);\n __decorate([\n Complex({ fill: '#FFFFFF', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Phase.prototype, \"style\", void 0);\n __decorate([\n Complex({ annotation: { content: 'Phase' } }, Header)\n ], Phase.prototype, \"header\", void 0);\n __decorate([\n Property(100)\n ], Phase.prototype, \"offset\", void 0);\n __decorate([\n Property()\n ], Phase.prototype, \"addInfo\", void 0);\n return Phase;\n}(ChildProperty));\nexport { Phase };\n/**\n * Defines the behavior of swimLane shape\n */\nvar SwimLane = /** @class */ (function (_super) {\n __extends(SwimLane, _super);\n function SwimLane() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Defines space between children and lane\n *\n * @private\n *\n */\n _this.padding = 20;\n /**\n * Defines header by user or not\n *\n * @private\n *\n */\n _this.hasHeader = true;\n return _this;\n }\n /**\n * Returns the name of class Phase\n *\n * @private\n */\n SwimLane.prototype.getClassName = function () {\n return 'SwimLane';\n };\n __decorate([\n Property('SwimLane')\n ], SwimLane.prototype, \"type\", void 0);\n __decorate([\n Property(20)\n ], SwimLane.prototype, \"phaseSize\", void 0);\n __decorate([\n Collection([], Phase)\n ], SwimLane.prototype, \"phases\", void 0);\n __decorate([\n Property('Horizontal')\n ], SwimLane.prototype, \"orientation\", void 0);\n __decorate([\n Collection([], Lane)\n ], SwimLane.prototype, \"lanes\", void 0);\n __decorate([\n Complex({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header)\n ], SwimLane.prototype, \"header\", void 0);\n __decorate([\n Property(false)\n ], SwimLane.prototype, \"isLane\", void 0);\n __decorate([\n Property(false)\n ], SwimLane.prototype, \"isPhase\", void 0);\n return SwimLane;\n}(Shape));\nexport { SwimLane };\n/**\n * Defines the behavior of container\n */\nvar ChildContainer = /** @class */ (function () {\n function ChildContainer() {\n }\n /**\n * Returns the name of class ChildContainer\n *\n * @private\n */\n ChildContainer.prototype.getClassName = function () {\n return 'ChildContainer';\n };\n __decorate([\n Property('Canvas')\n ], ChildContainer.prototype, \"type\", void 0);\n __decorate([\n Property('Vertical')\n ], ChildContainer.prototype, \"orientation\", void 0);\n return ChildContainer;\n}());\nexport { ChildContainer };\n/**\n * Defines the size and position of selected items and defines the appearance of selector\n */\nvar Selector = /** @class */ (function (_super) {\n __extends(Selector, _super);\n function Selector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Initializes the UI of the container\n */\n Selector.prototype.init = function (diagram) {\n var container = new Container();\n container.measureChildren = false;\n //const consize: Size = new Size();\n container.children = [];\n if (this.annotation) {\n var object = (this.nodes.length > 0) ? diagram.nameTable[this.nodes[0].id].wrapper :\n diagram.nameTable[this.connectors[0].id].wrapper;\n var wrapper = diagram.getWrapper(object, this.annotation.id);\n container.children.push(wrapper);\n }\n else {\n if (this.nodes || this.connectors) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = diagram.nameTable[this.nodes[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n // this.width = wrapper.actualSize.width;\n // this.height = wrapper.actualSize.height;\n // this.rotateAngle = wrapper.rotateAngle;\n // this.offsetX = wrapper.offsetX;\n // this.offsetY = wrapper.offsetY;\n container.children.push(wrapper);\n }\n for (var j = 0; j < this.connectors.length; j++) {\n var connector = diagram.nameTable[this.connectors[parseInt(j.toString(), 10)].id];\n var wrapper = connector.wrapper;\n // this.width = wrapper.actualSize.width; this.height = wrapper.actualSize.height;\n // this.rotateAngle = wrapper.rotateAngle; this.offsetX = wrapper.offsetX;\n // this.offsetY = wrapper.offsetY;\n container.children.push(wrapper);\n }\n }\n }\n var isProtectedOnChange = 'isProtectedOnChange';\n var diagramProtectPropertyChange = diagram[\"\" + isProtectedOnChange];\n diagram.protectPropertyChange(false);\n this.wrapper = container;\n diagram.protectPropertyChange(diagramProtectPropertyChange);\n return container;\n };\n __decorate([\n Property(null)\n ], Selector.prototype, \"wrapper\", void 0);\n __decorate([\n Property(14)\n ], Selector.prototype, \"handleSize\", void 0);\n __decorate([\n Collection([], Node)\n ], Selector.prototype, \"nodes\", void 0);\n __decorate([\n Collection([], Connector)\n ], Selector.prototype, \"connectors\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetY\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Selector.prototype, \"pivot\", void 0);\n __decorate([\n Property('CompleteIntersect')\n ], Selector.prototype, \"rubberBandSelectionMode\", void 0);\n __decorate([\n Collection([], UserHandle)\n ], Selector.prototype, \"userHandles\", void 0);\n __decorate([\n Property(SelectorConstraints.All)\n ], Selector.prototype, \"constraints\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"setTooltipTemplate\", void 0);\n __decorate([\n Collection([], Node)\n ], Selector.prototype, \"selectedObjects\", void 0);\n __decorate([\n Property(false)\n ], Selector.prototype, \"canToggleSelection\", void 0);\n return Selector;\n}(ChildProperty));\nexport { Selector };\n","import { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { processPathData, splitArrayCollection, transformPath } from './path-util';\nimport { whiteSpaceToString, wordBreakToString, textAlignToString, bBoxText, cloneObject } from './base-util';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { compile, createElement, Browser } from '@syncfusion/ej2-base';\nimport { Node } from '../objects/node';\nimport { getElement } from './diagram-util';\nimport { templateCompiler } from '../utility/base-util';\n/**\n * Defines the functionalities that need to access DOM\n */\n/**\n * removeElementsByClass method \\\n *\n * @returns {void} removeElementsByClass method .\\\n * @param { string } className - provide the element value.\n * @param {string} id - provide the string value.\n * @private\n */\nexport function removeElementsByClass(className, id) {\n var elements;\n if (id && document.getElementById(id).classList.contains(className)) {\n elements = document.getElementById(id).getElementsByClassName(className);\n }\n else {\n elements = document.getElementsByClassName(className);\n }\n while (elements.length > 0) {\n elements[0].parentNode.removeChild(elements[0]);\n }\n}\n/**\n * findSegmentPoints method \\\n *\n * @returns {PointModel[]} findSegmentPoints method .\\\n * @param { PathElement } element - provide the element value.\n * @private\n */\nexport function findSegmentPoints(element) {\n var pts = [];\n var sample;\n var sampleLength;\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var pathNode = getChildNode(svg)[0];\n pathNode.setAttributeNS(null, 'd', element.data);\n var pathBounds = element.absoluteBounds; // || pathNode.getBBox();\n var pathData = updatePath(element, pathBounds, element);\n pathNode.setAttributeNS(null, 'd', pathData);\n var pathLength = pathNode.getTotalLength();\n for (sampleLength = 0; sampleLength <= pathLength; sampleLength += 10) {\n sample = pathNode.getPointAtLength(sampleLength);\n pts.push({ x: sample.x, y: sample.y });\n }\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return pts;\n}\n/**\n * getChildNode method \\\n *\n * @returns {SVGElement[] | HTMLCollection} findSegmentPoints method .\\\n * @param { SVGElement } node - provide the element value.\n * @private\n */\nexport function getChildNode(node) {\n var child;\n var collection = [];\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n for (var i = 0; i < node.childNodes.length; i++) {\n child = node.childNodes[parseInt(i.toString(), 10)];\n if (child.nodeType === 1) {\n collection.push(child);\n }\n }\n }\n else {\n collection = node.children;\n }\n return collection;\n}\n/**\n * translatePoints method \\\n *\n * @returns {PointModel[]} translatePoints method .\\\n * @param { SVGElement } element - provide the element value.\n * @param { PointModel[] } points - provide the element value.\n * @private\n */\nexport function translatePoints(element, points) {\n var translatedPts = [];\n //895069: Update Connector docking position in node after flipping the node\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n var pt1 = void 0;\n var baseX = left + point.x;\n var baseY = top + point.y;\n var flipX = left + element.actualSize.width - point.x;\n var flipY = top + element.actualSize.height - point.y;\n // 895069: Updating the node and connector's docking point for node's fliped position\n switch (element.flip) {\n case 'Both':\n pt1 = { x: flipX, y: flipY };\n break;\n case 'Horizontal':\n pt1 = { x: flipX, y: baseY };\n break;\n case 'Vertical':\n pt1 = { x: baseX, y: flipY };\n break;\n default:\n pt1 = { x: baseX, y: baseY };\n break;\n }\n var matrix = void 0;\n var angle = element.rotateAngle + element.parentTransform;\n if (angle) {\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n }\n if (matrix) {\n pt1 = transformPointByMatrix(matrix, pt1);\n }\n translatedPts.push(pt1);\n }\n return translatedPts;\n}\n/**\n * measurePath method \\\n *\n * @returns {Rect} measurePath method .\\\n * @param { string } data - provide the element value.\n * @private\n */\nexport function measurePath(data) {\n if (data) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var element = getChildNode(svg)[0];\n element.setAttribute('d', data);\n var bounds = element.getBBox();\n var svgBounds = new Rect(bounds.x, bounds.y, bounds.width, bounds.height);\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return svgBounds;\n }\n return new Rect(0, 0, 0, 0);\n}\n/**\n * getTextOptions method \\\n *\n * @returns {BaseAttributes} getTextOptions method .\\\n * @param { TextElement } element - provide the element value.\n * @param { number } maxWidth - provide the maxWidth value.\n * @private\n */\nfunction getTextOptions(element, maxWidth) {\n var options = {\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray, opacity: element.style.opacity, shadow: element.shadow,\n gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description,\n width: maxWidth || element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5\n };\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.textWrapping = element.style.textWrapping;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = '';\n return options;\n}\n/**\n * wrapSvgText method \\\n *\n * @returns {SubTextElement[]} wrapSvgText method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } textValue - provide the maxWidth value.\n * @param { number } laneWidth - provide the maxWidth value.\n * @private\n */\nfunction wrapSvgText(text, textValue, laneWidth) {\n var childNodes = [];\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || text.content;\n if (text.whiteSpace !== 'nowrap' && text.whiteSpace !== 'pre') {\n if (text.breakWord === 'breakall') {\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, text);\n if (bounds1 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n if (txtValue.indexOf('\\n') > -1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bBoxText(txtValue, text) };\n txtValue = '';\n }\n var width = bBoxText(txtValue, text);\n if (Math.ceil(width) + 2 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n }\n else {\n childNodes = wordWrapping(text, textValue, laneWidth);\n }\n }\n else {\n childNodes[childNodes.length] = { text: content, x: 0, dy: 0, width: bBoxText(content, text) };\n }\n return childNodes;\n}\n/**\n * wordWrapping method \\\n *\n * @returns {SubTextElement[]} wordWrapping method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } textValue - provide the maxWidth value.\n * @param { number } laneWidth - provide the maxWidth value.\n * @private\n */\nfunction wordWrapping(text, textValue, laneWidth) {\n var childNodes = [];\n var txtValue = '';\n var j = 0;\n var i = 0;\n var wrap = text.whiteSpace !== 'nowrap' ? true : false;\n var content = textValue || text.content;\n var eachLine = content.split('\\n');\n var txt;\n var words;\n var newText;\n var existingWidth;\n var existingText;\n for (j = 0; j < eachLine.length; j++) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n txt = '';\n words = text.textWrapping !== 'NoWrap' ? eachLine[parseInt(j.toString(), 10)].split(' ') : (text.textWrapping === 'NoWrap') ? [eachLine[parseInt(j.toString(), 10)]] : eachLine;\n for (i = 0; i < words.length; i++) {\n txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[parseInt(i.toString(), 10)];\n //Bug 885842: Position of annotation inside the node is not aligned center.\n //Extra space is added when we have single word as annotation text and due to this the width of the text is increased.\n if (words[i + 1]) {\n newText = txtValue + ' ' + (words[i + 1]);\n }\n else {\n newText = txtValue;\n }\n var width = bBoxText(newText, text);\n if (Math.floor(width) > (laneWidth || text.width) - 2 && txtValue.length > 0) {\n childNodes[childNodes.length] = {\n text: txtValue, x: 0, dy: 0,\n width: newText === txtValue ? width : (txtValue === existingText) ? existingWidth : bBoxText(txtValue, text)\n };\n txtValue = '';\n }\n else {\n if (i === words.length - 1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n existingText = newText;\n existingWidth = width;\n }\n }\n return childNodes;\n}\n/**\n * wrapSvgTextAlign method \\\n *\n * @returns {TextBounds} wrapSvgTextAlign method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } childNodes - provide the maxWidth value.\n * @private\n */\nfunction wrapSvgTextAlign(text, childNodes) {\n var wrapBounds = { x: 0, width: 0 };\n var k = 0;\n var txtWidth;\n var width;\n for (k = 0; k < childNodes.length; k++) {\n txtWidth = childNodes[parseInt(k.toString(), 10)].width;\n width = txtWidth;\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n if (text.textAlign === 'left' || text.textAlign === 'justify') {\n txtWidth = 0;\n }\n else if (text.textAlign === 'center') {\n if (txtWidth > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n txtWidth = 0;\n }\n else {\n txtWidth = -txtWidth / 2;\n }\n }\n else if (text.textAlign === 'right') {\n txtWidth = -txtWidth;\n }\n else {\n txtWidth = childNodes.length > 1 ? 0 : -txtWidth / 2;\n }\n childNodes[parseInt(k.toString(), 10)].dy = text.fontSize * 1.2;\n childNodes[parseInt(k.toString(), 10)].x = txtWidth;\n wrapBounds.x = Math.min(wrapBounds.x, txtWidth);\n wrapBounds.width = Math.max(wrapBounds.width, width);\n }\n return wrapBounds;\n}\n/**\n * measureHtmlText method \\\n *\n * @returns {TextBounds} measureHtmlText method .\\\n * @param { TextStyleModel } style - provide the style value.\n * @param { string } content - provide the content value.\n * @param { string } width - provide the width value.\n * @param { string } height - provide the height value.\n * @param { string } maxWidth - provide the maxWidth value.\n * @private\n */\nexport function measureHtmlText(style, content, width, height, maxWidth) {\n var bounds = new Size();\n var text = createHtmlElement('span', { 'style': 'display:inline-block; line-height: normal' });\n if (style.bold) {\n text.style.fontWeight = 'bold';\n }\n if (style.italic) {\n text.style.fontStyle = 'italic';\n }\n if (width !== undefined) {\n text.style.width = width.toString() + 'px';\n }\n if (height !== undefined) {\n text.style.height = height.toString() + 'px';\n }\n if (maxWidth !== undefined) {\n text.style.maxWidth = maxWidth.toString() + 'px';\n }\n text.style.fontFamily = style.fontFamily;\n text.style.fontSize = style.fontSize + 'px';\n text.style.color = style.color;\n text.textContent = content;\n text.style.whiteSpace = whiteSpaceToString(style.whiteSpace, style.textWrapping);\n if (maxWidth !== undefined) {\n text.style.wordBreak = 'break-word';\n }\n else {\n text.style.wordBreak = wordBreakToString(style.textWrapping);\n }\n document.body.appendChild(text);\n bounds.width = text.offsetWidth;\n bounds.height = text.offsetHeight;\n document.body.removeChild(text);\n return bounds;\n}\n/**\n * measureText method \\\n *\n * @returns {Size} measureText method .\\\n * @param { TextStyleModel } text - provide the text value.\n * @param { string } style - provide the style value.\n * @param { string } content - provide the content value.\n * @param { number } maxWidth - provide the maxWidth value.\n * @param { string } textValue - provide the textValue value.\n * @private\n */\nexport function measureText(text, style, content, maxWidth, textValue) {\n var bounds = new Size(0, 0);\n var childNodes;\n var wrapBounds;\n var options = getTextOptions(text, maxWidth);\n text.childNodes = childNodes = wrapSvgText(options, textValue, text.isLaneOrientation ? maxWidth : undefined);\n text.wrapBounds = wrapBounds = wrapSvgTextAlign(options, childNodes);\n bounds.width = wrapBounds.width;\n if (text.wrapBounds.width >= maxWidth && options.textOverflow !== 'Wrap') {\n bounds.width = maxWidth;\n }\n bounds.height = childNodes.length * text.style.fontSize * 1.2;\n return bounds;\n}\n/**\n * measureImage method \\\n *\n * @returns {Size} measureImage method .\\\n * @param { string } source - provide the text value.\n * @param { Size } contentSize - provide the style value.\n * @param { string } id - provide the content value.\n * @param { Function } callback - provide the maxWidth value.\n * @private\n */\n// eslint-disable-next-line\nexport function measureImage(source, contentSize, id, callback) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var imageElement = window[\"\" + measureWindowElement].children[1];\n imageElement.setAttribute('src', source);\n var bounds = imageElement.getBoundingClientRect();\n var width = bounds.width;\n var height = bounds.height;\n contentSize = new Size(width, height);\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n var element = document.createElement('img');\n element.setAttribute('src', source);\n setAttributeHtml(element, { id: id + 'sf-imageNode', style: 'display: none;' });\n document.body.appendChild(element);\n // eslint-disable-next-line\n element.onload = function (event) {\n var loadedImage = event.currentTarget;\n if (callback) {\n callback(id, { width: loadedImage.width, height: loadedImage.height });\n }\n };\n return contentSize;\n}\n/* eslint-disable */\n/**\n * measureNativeContent method \\\n *\n * @returns {Rect} measureNativeContent method .\\\n * @param { SVGElement } nativeContent - provide the text value.\n * @private\n */\nexport function measureNativeContent(nativeContent) {\n var measureWindowElement = 'measureElement';\n window[measureWindowElement].style.visibility = 'visible';\n var nativeSVG = window[measureWindowElement].children[2];\n nativeSVG.appendChild(nativeContent);\n var bounds = nativeContent.getBoundingClientRect();\n var svgBounds = nativeSVG.getBoundingClientRect();\n var rect = bounds;\n rect.x = bounds.left - svgBounds.left;\n rect.y = bounds.top - svgBounds.top;\n nativeSVG.removeChild(nativeContent);\n window[measureWindowElement].style.visibility = 'hidden';\n return rect;\n}\n/**\n * measureNativeSvg method \\\n *\n * @returns {Rect} measureNativeSvg method .\\\n * @param { SVGElement } nativeContent - provide the text value.\n * @private\n */\nexport function measureNativeSvg(nativeContent) {\n var measureWindowElement = 'measureElement';\n window[measureWindowElement].style.visibility = 'visible';\n var nativeSVG = window[measureWindowElement].children[2];\n nativeSVG.appendChild(nativeContent);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var svgBounds = nativeSVG.getBoundingClientRect();\n nativeSVG.removeChild(nativeContent);\n window[measureWindowElement].style.visibility = 'hidden';\n return svgBounds;\n}\n/**\n * updatePath method \\\n *\n * @returns {string} updatePath method .\\\n * @param { SVGElement } element - provide the element value.\n * @param { Rect } bounds - provide the bounds value.\n * @param { PathElement } child - provide the child value.\n * @param { BaseAttributes } options - provide the options value.\n * @private\n */\nexport function updatePath(element, bounds, child, options) {\n var initX = 0;\n var initY = 0;\n var scaleX = 0;\n var scaleY = 0;\n var isScale = false;\n var newPathString = '';\n var arrayCollection = [];\n var bBox = bounds;\n if (initX !== bBox.x || initY !== bBox.y) {\n scaleX = initX - Number(bBox.x);\n scaleY = initY - Number(bBox.y);\n }\n if (element.actualSize.width !== bBox.width || element.actualSize.height !== bBox.height || options) {\n scaleX = (options && options.width || element.actualSize.width) / Number(bBox.width ? bBox.width : 1);\n scaleY = (options && options.height || element.actualSize.height) / Number(bBox.height ? bBox.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(element.data);\n arrayCollection = splitArrayCollection(arrayCollection);\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bBox.x, bBox.y, initX, initY);\n isScale = false;\n return newPathString;\n}\n/**\n * getDiagramLayerSvg method \\\n *\n * @returns {string} getDiagramLayerSvg method .\\\n * @param { string } diagramId - provide the element value.\n * @private\n */\nexport function getDiagramLayerSvg(diagramId) {\n //let diagramLayerSvg: SVGSVGElement;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-diagram-layer');\n var diagramLayerSvg = elementcoll[0];\n return diagramLayerSvg;\n}\n/**\n * getDiagramElement method \\\n *\n * @returns {HTMLElement} getDiagramElement method .\\\n * @param { string } elementId - provide the elementId value.\n * @param { string } contentId - provide the elementId value.\n * @private\n */\nexport function getDiagramElement(elementId, contentId) {\n var diagramElement;\n var element;\n if (contentId) {\n element = document.getElementById(contentId);\n }\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n diagramElement = (element) ? element.querySelector('#' + elementId) : document.getElementById(elementId);\n }\n else {\n diagramElement = (element) ? element.querySelector('#' + CSS.escape(elementId)) : document.getElementById(elementId);\n }\n return diagramElement;\n}\n/**\n * getDomIndex method \\\n *\n * @returns {HTMLElement} getDomIndex method .\\\n * @param { string } viewId - provide the elementId value.\n * @param { string } elementId - provide the elementId value.\n * @param { string } layer - provide the elementId value.\n * @private\n */\nexport function getDomIndex(viewId, elementId, layer) {\n var index = undefined;\n var parentElement;\n var postId = '';\n if (layer === 'native') {\n parentElement = getNativeLayer(viewId);\n postId = '_content_groupElement';\n }\n else if (layer === 'html') {\n parentElement = getHTMLLayer(viewId).childNodes[0];\n postId = '_html_element';\n }\n else {\n parentElement = getDiagramLayer(viewId);\n postId = '_groupElement';\n }\n var childElement;\n for (var i = 0; parentElement.childNodes && i < parentElement.childNodes.length; i++) {\n childElement = parentElement.childNodes[i];\n if (childElement && childElement.id === elementId + postId) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * getAdornerLayerSvg method \\\n *\n * @returns {SVGSVGElement} getAdornerLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getAdornerLayerSvg(diagramId) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-adorner-layer');\n adornerLayerSvg = elementcoll[0];\n return adornerLayerSvg;\n}\n/**\n * getSelectorElement method \\\n *\n * @returns {SVGSVGElement} getSelectorElement method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getSelectorElement(diagramId) {\n var adornerLayer = null;\n var adornerSvg = getAdornerLayerSvg(diagramId);\n adornerLayer = adornerSvg.getElementById(diagramId + '_SelectorElement');\n return adornerLayer;\n}\n/**\n * getAdornerLayer method \\\n *\n * @returns {SVGSVGElement} getAdornerLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getAdornerLayer(diagramId) {\n var adornerLayer = null;\n var diagramAdornerSvg = getAdornerLayerSvg(diagramId);\n adornerLayer = diagramAdornerSvg.getElementById(diagramId + '_diagramAdorner');\n return adornerLayer;\n}\n/**\n * getUserHandleLayer method \\\n *\n * @returns {HTMLElement} getUserHandleLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getUserHandleLayer(diagramId) {\n var adornerLayer = null;\n var diagramUserHandleLayer = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramUserHandleLayer.getElementsByClassName('e-userHandle-layer');\n adornerLayer = elementcoll[0];\n return adornerLayer;\n}\n/**\n * getDiagramLayer method \\\n *\n * @returns {HTMLElement} getDiagramLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getDiagramLayer(diagramId) {\n //let diagramLayer: SVGElement;\n var diagramLayerSvg = getDiagramLayerSvg(diagramId);\n var diagramLayer = diagramLayerSvg.getElementById(diagramId + '_diagramLayer');\n return diagramLayer;\n}\n/**\n * getPortLayerSvg method \\\n *\n * @returns {SVGSVGElement} getPortLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getPortLayerSvg(diagramId) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-ports-expand-layer');\n adornerLayerSvg = elementcoll[0];\n return adornerLayerSvg;\n}\n/**\n * getNativeLayerSvg method \\\n *\n * @returns {SVGSVGElement} getNativeLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getNativeLayerSvg(diagramId) {\n var nativeLayerSvg;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-native-layer');\n nativeLayerSvg = elementcoll[0];\n return nativeLayerSvg;\n}\n/**\n * getGridLayerSvg method \\\n *\n * @returns {SVGSVGElement} getNativeLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getGridLayerSvg(diagramId) {\n var gridLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-grid-layer');\n gridLayerSvg = elementcoll[0];\n return gridLayerSvg;\n}\n/**\n * getBackgroundLayerSvg method \\\n *\n * @returns {SVGSVGElement} getBackgroundLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundLayerSvg(diagramId) {\n var gridLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-layer');\n return elementcoll[0].parentNode;\n}\n/**\n * getBackgroundImageLayer method \\\n *\n * @returns {SVGSVGElement} getBackgroundImageLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundImageLayer(diagramId) {\n var imageLayer = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-image-layer');\n imageLayer = elementcoll[0];\n return imageLayer;\n}\n/**\n * getBackgroundLayer method \\\n *\n * @returns {SVGSVGElement} getBackgroundLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundLayer(diagramId) {\n var imageLayer = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-layer');\n imageLayer = elementcoll[0];\n return imageLayer;\n}\n/**\n * getGridLayer method \\\n *\n * @returns {SVGSVGElement} getGridLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getGridLayer(diagramId) {\n var domTable = 'domTable';\n var expandCollapse = null;\n if (!window[domTable][diagramId + '_gridline']) {\n var diagramGridSvg = getGridLayerSvg(diagramId);\n expandCollapse = diagramGridSvg.getElementById(diagramId + '_gridline');\n window[domTable][diagramId + '_gridline'] = expandCollapse;\n }\n else {\n expandCollapse = window[domTable][diagramId + '_gridline'];\n }\n return expandCollapse;\n}\n// /** @private */\n// export function getExpandCollapseLayer(diagramId: string): SVGElement {\n// let expandCollapse: SVGElement = null;\n// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId);\n// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramExpander') as SVGElement;\n// return expandCollapse;\n// }\n// /** @private */\n// export function getPortsLayer(diagramId: string): SVGElement {\n// let expandCollapse: SVGElement = null;\n// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId);\n// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramPorts') as SVGElement;\n// return expandCollapse;\n// }\n/**\n * getNativeLayer method \\\n *\n * @returns {SVGSVGElement} getNativeLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getNativeLayer(diagramId) {\n var nativeLayer = null;\n var nativeLayerSvg = getNativeLayerSvg(diagramId);\n nativeLayer = nativeLayerSvg.getElementById(diagramId + '_nativeLayer');\n return nativeLayer;\n}\n/**\n * getHTMLLayer method \\\n *\n * @returns {SVGSVGElement} getHTMLLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getHTMLLayer(diagramId) {\n var htmlLayer = null;\n var domTable = 'domTable';\n if (!window[domTable][diagramId + 'html_layer']) {\n var element = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = element.getElementsByClassName('e-html-layer');\n htmlLayer = elementcoll[0];\n window[domTable][diagramId + 'html_layer'] = htmlLayer;\n }\n else {\n htmlLayer = window[domTable][diagramId + 'html_layer'];\n }\n return htmlLayer;\n}\n/* eslint-enable */\n/**\n * createHtmlElement method \\\n *\n * @returns {SVGSVGElement} createHtmlElement method .\\\n * @param { string } elementType - provide the diagramId value.\n * @param { Object } attribute - provide the diagramId value.\n * @private\n */\nexport function createHtmlElement(elementType, attribute) {\n var element = createElement(elementType);\n setAttributeHtml(element, attribute);\n return element;\n}\n/**\n * createSvgElement method \\\n *\n * @returns {SVGSVGElement} createSvgElement method .\\\n * @param { string } elementType - provide the elementType value.\n * @param { Object } attribute - provide the attribute value.\n * @private\n */\nexport function createSvgElement(elementType, attribute) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', elementType);\n setAttributeSvg(element, attribute);\n return element;\n}\n/** @hidden */\n/**\n * parentsUntil method \\\n *\n * @returns {SVGSVGElement} parentsUntil method .\\\n * @param { Element } elem - provide the elementType value.\n * @param { string } selector - provide the attribute value.\n * @param { boolean } isID - provide the attribute value.\n * @private\n */\nexport function parentsUntil(elem, selector, isID) {\n var parent = elem;\n while (parent) {\n if (isID ? parent.id === selector : hasClass(parent, selector)) {\n break;\n }\n parent = parent.parentNode;\n }\n return parent;\n}\n/**\n * hasClass method \\\n *\n * @returns {SVGSVGElement} hasClass method .\\\n * @param { HTMLElement } element - provide the element value.\n * @param { string } className - provide the className value.\n * @private\n */\nexport function hasClass(element, className) {\n var eClassName = (typeof element.className === 'object') ? element.className.animVal : element.className;\n return ((' ' + eClassName + ' ').indexOf(' ' + className + ' ') > -1) ? true : false;\n}\n/**\n * getScrollerWidth method \\\n *\n * @returns {number} getScrollerWidth method .\\\n * @private\n */\nexport function getScrollerWidth() {\n var outer = createHtmlElement('div', { 'style': 'visibility:hidden; width: 100px' });\n document.body.appendChild(outer);\n var widthNoScroll = outer.getBoundingClientRect().width;\n // force scrollbars\n outer.style.overflow = 'scroll';\n // add innerdiv\n var inner = createHtmlElement('div', { 'style': 'width:100%' });\n outer.appendChild(inner);\n var widthWithScroll = inner.getBoundingClientRect().width;\n // remove divs\n outer.parentNode.removeChild(outer);\n return widthNoScroll - widthWithScroll;\n}\n/**\n * addTouchPointer method \\\n *\n * @returns {ITouches[]} addTouchPointer method .\\\n * @param { ITouches[] } touchList - provide the touchList value.\n * @param { PointerEvent } e - provide the e value.\n * @param { TouchList } touches - provide the touches value.\n * @private\n */\nexport function addTouchPointer(touchList, e, touches) {\n touchList = [];\n for (var i = 0, length_1 = touches.length; i < length_1; i++) {\n touchList.push({\n pageX: touches[parseInt(i.toString(), 10)].clientX, pageY: touches[parseInt(i.toString(), 10)].clientY,\n pointerId: null\n });\n }\n return touchList;\n}\n/**\n * removes the element from dom \\\n *\n * @returns {void} removes the element from dom .\\\n * @param { ITouches[] } elementId - provide the elementId value.\n * @param { PointerEvent } contentId - provide the contentId value.\n * @private\n */\nexport function removeElement(elementId, contentId) {\n var div = getDiagramElement(elementId, contentId);\n if (div) {\n div.parentNode.removeChild(div);\n }\n}\n/**\n * getContent method \\\n *\n * @returns {void} getContent method .\\\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the elementId value.\n * @param { boolean } isHtml - provide the boolean value.\n * @param { Node | Annotation | PathAnnotation | NodeFixedUserHandle | ConnectorFixedUserHandle } nodeObject - provide the nodeObject value.\n * @private\n */\nexport function getContent(element, isHtml, nodeObject) {\n var div;\n /* eslint-disable */\n if (isHtml) {\n var attr = { 'style': 'height: 100%; width: 100%' };\n div = createHtmlElement('div', attr);\n }\n else {\n div = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n }\n var node = getElement(element);\n var content = '';\n var sentNode = {};\n var isSvg = false;\n var propertyName;\n if (node instanceof Node) {\n sentNode = node;\n if (node.shape.type === 'Native') {\n isSvg = true;\n var svgContent = void 0;\n var div_1 = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n document.body.appendChild(div_1);\n div_1.innerHTML = (node.shape.content);\n /* tslint:disable */\n svgContent = (div_1.getElementsByTagName('svg').length > 0)\n ? div_1.getElementsByTagName('svg')[0].outerHTML :\n div_1.getElementsByTagName('g').length > 0 ? div_1.getElementsByTagName('g')[0].outerHTML : \"\";\n /* tslint:disable */\n node.shape.content = svgContent;\n /* tslint:disable */\n element.content = svgContent;\n div_1.parentElement.removeChild(div_1);\n }\n //let blazor: string = 'Blazor';\n //Removed isBlazor code\n propertyName = \"nodeTemplate\";\n }\n else {\n sentNode = node;\n //new\n //Removed isBlazor code\n propertyName = \"annotationTemplate\";\n }\n var item;\n var diagramElement = document.getElementById(element.diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[instance][0];\n if ((typeof element.content === 'string' || typeof element.content === 'function') && (!element.isTemplate)) {\n var template = document.getElementById(element.content);\n if (template) {\n div.appendChild(template);\n }\n else {\n /* eslint-disable */\n var compiledString = void 0;\n compiledString = compile(element.content);\n for (var _i = 0, _a = compiledString(sentNode, diagram, propertyName, content); _i < _a.length; _i++) {\n item = _a[_i];\n div.appendChild(item);\n }\n //new\n // for (item of compiledString(sentNode, null, null, content, undefined, undefined, isSvg)) {\n // div.appendChild(item);\n // }\n }\n }\n else if (element.isTemplate) {\n var compiledString = void 0;\n if (diagram.isReact) {\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n else if (diagram.isVue || diagram.isVue3) {\n // EJ2-57563 - Added the below code to provide slot template support for Vue and Vue 3\n var templateFn = element.getNodeTemplate();\n if (templateFn) {\n // If other than slot template, this if block gets execute and template get returned.\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n else {\n // If we provide slot template means then it enters in this block and returns a template\n if (propertyName === 'nodeTemplate') {\n compiledString = compile(diagram.nodeTemplate);\n }\n else {\n compiledString = compile(diagram.annotationTemplate);\n }\n compiledString = compiledString(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n }\n else {\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false);\n }\n if (compiledString) {\n for (var i = 0; i < compiledString.length; i++) {\n div.appendChild(compiledString[parseInt(i.toString(), 10)]);\n }\n }\n }\n else {\n if (element.content && element.content.outerHTML) {\n div.appendChild(element.content);\n }\n }\n return element.isTemplate ?\n div : (isHtml ? div.cloneNode(true) : div.cloneNode(true));\n}\n/* eslint-enable */\n/**\n * setAttributeSvg method \\\n *\n * @returns {void} setAttributeSvg method .\\\n * @param { SVGElement } svg - provide the svg value.\n * @param { Object } attributes - provide the boolean value.\n * @private\n */\nexport function setAttributeSvg(svg, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n // Added below condition to check whether svg is undefined or not\n if (svg && keys[parseInt(i.toString(), 10)] !== 'style') {\n svg.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n else {\n applyStyleAgainstCsp(svg, attributes[keys[parseInt(i.toString(), 10)]]);\n }\n }\n}\n/**\n * applyStyleAgainstCsp method \\\n *\n * @returns {void} applyStyleAgainstCsp method .\\\n * @param { SVGElement } svg - provide the svg value.\n * @param { string } attributes - provide the boolean value.\n * @private\n */\nexport function applyStyleAgainstCsp(svg, attributes) {\n var keys = attributes.split(';');\n for (var i = 0; i < keys.length; i++) {\n var attribute = keys[parseInt(i.toString(), 10)].split(':');\n if (attribute.length === 2) {\n svg.style[attribute[0].trim()] = attribute[1].trim();\n }\n }\n}\n/**\n * setAttributeHtml method \\\n *\n * @returns {void} setAttributeHtml method .\\\n * @param { HTMLElement } element - provide the svg value.\n * @param { Object } attributes - provide the boolean value.\n * @private\n */\nexport function setAttributeHtml(element, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n if (keys[parseInt(i.toString(), 10)] !== 'style') {\n element.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n else {\n applyStyleAgainstCsp(element, attributes[keys[parseInt(i.toString(), 10)]]);\n }\n }\n}\n/**\n * createMeasureElements method \\\n *\n * @returns {void} createMeasureElements method .\\\n * @private\n */\nexport function createMeasureElements() {\n var measureWindowElement = 'measureElement';\n if (!window[\"\" + measureWindowElement]) {\n var divElement = createHtmlElement('div', {\n id: 'measureElement',\n style: 'visibility:hidden ; height: 0px ; width: 0px; overflow: hidden;'\n });\n var text = createHtmlElement('span', { 'style': 'display:inline-block ; line-height: normal' });\n divElement.appendChild(text);\n //let imageElement: HTMLImageElement;\n var imageElement = createHtmlElement('img', { 'alt': 'measureElementImage', 'src': 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' });\n divElement.appendChild(imageElement);\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n divElement.appendChild(svg);\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n element.setAttribute('d', '');\n svg.appendChild(element);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var data = document.createTextNode('');\n var tSpan = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n svg.appendChild(tSpan);\n window[\"\" + measureWindowElement] = divElement;\n window[\"\" + measureWindowElement].usageCount = 1;\n document.body.appendChild(divElement);\n var measureElementCount = 'measureElementCount';\n if (!window[\"\" + measureElementCount]) {\n window[\"\" + measureElementCount] = 1;\n }\n else {\n window[\"\" + measureElementCount]++;\n }\n }\n else {\n window[\"\" + measureWindowElement].usageCount += 1;\n }\n}\n/**\n * setChildPosition method \\\n *\n * @returns {number} setChildPosition method .\\\n * @param {SubTextElement} temp - provide the temp value.\n * @param {SubTextElement[]} childNodes - provide the childNodes value.\n * @param {number} i - provide the i value.\n * @param {TextAttributes} options - provide the options value.\n * @private\n */\nexport function setChildPosition(temp, childNodes, i, options) {\n if (childNodes.length >= 1 && temp.x === 0 &&\n (options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') &&\n (options.textWrapping === 'Wrap' || options.textWrapping === 'WrapWithOverflow')) {\n temp.x = childNodes[i - 1] ? childNodes[i - 1].x : -(temp.width / 2);\n return temp.x;\n }\n return temp.x;\n}\n/**\n * getTemplateContent method\\\n *\n * @returns {DiagramHtmlElement} getTemplateContent method .\\\n * @param {DiagramHtmlElement} annotationcontent - provide the annotationcontent value.\n * @param {Annotation} annotation - provide the annotation value.\n * @param {number} annotationTemplate - provide the annotationTemplate value.\n * @param {Object} diagram - provide the diagram value.\n * @private\n */\nexport function getTemplateContent(\n// eslint-disable-next-line @typescript-eslint/ban-types\nannotationcontent, annotation, annotationTemplate, diagram) {\n if ((annotationTemplate && !annotation.template) ||\n (annotation.template && typeof annotation.template === 'function' && diagram.isReact)) {\n annotationcontent.isTemplate = true;\n annotationcontent.template = annotationcontent.content = getContent(annotationcontent, true, annotation);\n }\n else {\n annotationcontent.content = annotation.template;\n }\n return annotationcontent;\n}\n/* eslint-disable */\n/** @private */\nexport function createUserHandleTemplates(userHandleTemplate, template, selectedItems, diagramID) {\n var userHandleFn;\n var handle;\n var compiledString;\n var i;\n var div;\n var diagramElement = document.getElementById(diagramID);\n var instance = 'ej2_instances';\n var diagram = diagramElement[instance][0];\n if (userHandleTemplate && template) {\n userHandleFn = templateCompiler(userHandleTemplate);\n for (var _i = 0, _a = selectedItems.userHandles; _i < _a.length; _i++) {\n handle = _a[_i];\n if (userHandleFn) {\n compiledString = userHandleFn(cloneObject(handle), diagram, 'userHandleTemplate' + '_' + handle.name, undefined, undefined, false);\n for (i = 0; i < compiledString.length; i++) {\n var attr = {\n 'style': 'height: 100%; width: 100%; pointer-events: all',\n 'id': handle.name + '_template_hiddenUserHandle'\n };\n div = createHtmlElement('div', attr);\n div.appendChild(compiledString[i]);\n }\n template[0].appendChild(div);\n }\n }\n } //Removed isBlazor code\n}\n/* eslint-enable */\n","import { compile as baseTemplateComplier } from '@syncfusion/ej2-base';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getValue } from '@syncfusion/ej2-base';\nimport { getChildNode, applyStyleAgainstCsp } from './dom-util';\n/**\n * Implements the basic functionalities\n */\n/**\n * Used to generate the random id \\\n *\n * @returns { boolean } Used to generate the random id .\\\n *\n * @private\n */\nexport function randomId() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';\n var id = '';\n var num;\n for (var i = 0; i < 5; i++) {\n if (typeof window !== 'undefined' && 'crypto' in window && 'getRandomValues' in crypto) {\n var count = new Uint16Array(1);\n // tslint:disable-next-line:no-any\n var intCrypto = window.msCrypto || window.crypto;\n num = intCrypto.getRandomValues(count)[0] % (chars.length - 1);\n }\n else {\n num = Math.floor(Math.random() * chars.length);\n }\n if (i === 0 && num < 10) {\n i--;\n continue;\n }\n id += chars.substring(num, num + 1);\n }\n return id;\n}\n/**\n * Used to get the index value \\\n *\n * @returns { boolean } Used to get the index value .\\\n * @param {Diagram} comp - provide the Diagram value.\n * @param {string} id - provide the id value.\n *\n * @private\n */\nexport function getIndex(comp, id) {\n if (comp.nodes && comp.nodes.length > 0) {\n for (var i = 0; i < comp.nodes.length; i++) {\n if (comp.nodes[parseInt(i.toString(), 10)].id === id) {\n return i;\n }\n }\n }\n if (comp.connectors && comp.connectors.length > 0) {\n for (var i = 0; i < comp.connectors.length; i++) {\n if (comp.connectors[parseInt(i.toString(), 10)].id === id) {\n return i;\n }\n }\n }\n return null;\n}\n/**\n * templateCompiler method\\\n *\n * @returns { Function } templateCompiler method .\\\n * @param {string} template - provide the template value.\n *\n * @private\n */\nexport function templateCompiler(template) {\n if (template) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var e = void 0;\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n else {\n return baseTemplateComplier(template);\n }\n }\n catch (e) {\n return baseTemplateComplier(template);\n }\n }\n return undefined;\n}\n/**\n * cornersPointsBeforeRotation method\\\n *\n * @returns { Rect } templateCompiler method .\\\n * @param {DiagramElement} ele - provide the template value.\n *\n * @private\n */\nexport function cornersPointsBeforeRotation(ele) {\n var bounds = new Rect();\n var top = ele.offsetY - ele.actualSize.height * ele.pivot.y;\n var bottom = ele.offsetY + ele.actualSize.height * (1 - ele.pivot.y);\n var left = ele.offsetX - ele.actualSize.width * ele.pivot.x;\n var right = ele.offsetX + ele.actualSize.width * (1 - ele.pivot.x);\n var topLeft = { x: left, y: top };\n //const topCenter: PointModel = { x: (left + right) / 2, y: top };\n var topRight = { x: right, y: top };\n //const middleLeft: PointModel = { x: left, y: (top + bottom) / 2 };\n //const middleRight: PointModel = { x: right, y: (top + bottom) / 2 };\n var bottomLeft = { x: left, y: bottom };\n //const bottomCenter: PointModel = { x: (left + right) / 2, y: bottom };\n var bottomRight = { x: right, y: bottom };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n return bounds;\n}\n/**\n * getBounds method\\\n *\n * @returns { Rect } getBounds method .\\\n * @param {DiagramElement} element - provide the template value.\n *\n * @private\n */\nexport function getBounds(element) {\n var bounds = new Rect();\n //let corners: Rect;\n var corners = cornersPointsBeforeRotation(element);\n var middleLeft = corners.middleLeft;\n var topCenter = corners.topCenter;\n var bottomCenter = corners.bottomCenter;\n var middleRight = corners.middleRight;\n var topLeft = corners.topLeft;\n var topRight = corners.topRight;\n var bottomLeft = corners.bottomLeft;\n var bottomRight = corners.bottomRight;\n element.corners = {\n topLeft: topLeft, topCenter: topCenter, topRight: topRight, middleLeft: middleLeft,\n middleRight: middleRight, bottomLeft: bottomLeft, bottomCenter: bottomCenter, bottomRight: bottomRight\n };\n if (element.rotateAngle !== 0 || element.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n element.corners.topLeft = topLeft = transformPointByMatrix(matrix, topLeft);\n element.corners.topCenter = topCenter = transformPointByMatrix(matrix, topCenter);\n element.corners.topRight = topRight = transformPointByMatrix(matrix, topRight);\n element.corners.middleLeft = middleLeft = transformPointByMatrix(matrix, middleLeft);\n element.corners.middleRight = middleRight = transformPointByMatrix(matrix, middleRight);\n element.corners.bottomLeft = bottomLeft = transformPointByMatrix(matrix, bottomLeft);\n element.corners.bottomCenter = bottomCenter = transformPointByMatrix(matrix, bottomCenter);\n element.corners.bottomRight = bottomRight = transformPointByMatrix(matrix, bottomRight);\n //Set corners based on rotate angle\n }\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n element.corners.left = bounds.left;\n element.corners.right = bounds.right;\n element.corners.top = bounds.top;\n element.corners.bottom = bounds.bottom;\n element.corners.center = bounds.center;\n element.corners.width = bounds.width;\n element.corners.height = bounds.height;\n return bounds;\n}\n// Removed updateCloneProp method\n/**\n * cloneObject method\\\n *\n * @returns { Rect } cloneObject method .\\\n * @param {DiagramElement} obj - provide the obj value.\n * @param {DiagramElement} additionalProp - provide the additionalProp value.\n * @param {DiagramElement} key - provide the key value.\n * @param {DiagramElement} cloneBlazorProp - provide the cloneBlazorProp value.\n *\n * @private\n */\nexport function cloneObject(obj, additionalProp, key, cloneBlazorProp) {\n var newObject = {};\n var keys = 'properties';\n var prop = 'propName';\n if (obj) {\n key = obj[\"\" + prop];\n var sourceObject = obj[\"\" + keys] || obj;\n var properties = [];\n properties = properties.concat(Object.keys(sourceObject));\n var customProperties = [];\n properties.push('version');\n if (key) {\n var propAdditional = getFunction(additionalProp);\n if (propAdditional) {\n customProperties = propAdditional(key);\n }\n else {\n customProperties = [];\n }\n properties = properties.concat(customProperties);\n }\n var internalProp = getInternalProperties(key);\n properties = properties.concat(internalProp);\n //Removed blazor code\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (property !== 'historyManager') {\n if (property !== 'wrapper') {\n //const constructorId: string = 'constructor';\n //const name: string = 'name';\n // eslint-disable-next-line no-prototype-builtins\n var isEventEmmitter = obj[\"\" + property] && obj.hasOwnProperty('observers') ? true : false;\n if (!isEventEmmitter) {\n if (obj[\"\" + property] instanceof Array) {\n newObject[\"\" + property] = cloneArray((internalProp.indexOf(property) === -1 && obj[\"\" + keys]) ? obj[\"\" + keys][\"\" + property] : obj[\"\" + property], additionalProp, property, cloneBlazorProp);\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof HTMLElement) {\n newObject[\"\" + property] = obj[\"\" + property].cloneNode(true).innerHTML;\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof Object) {\n newObject[\"\" + property] = cloneObject((internalProp.indexOf(property) === -1 && obj[\"\" + keys]) ? obj[\"\" + keys][\"\" + property] : obj[\"\" + property], undefined, undefined, cloneBlazorProp);\n }\n else {\n newObject[\"\" + property] = obj[\"\" + property];\n }\n }\n }\n else {\n if (obj[\"\" + property]) {\n newObject[\"\" + property] = {\n actualSize: {\n width: obj[\"\" + property].actualSize.width, height: obj[\"\" + property].actualSize.height\n }, offsetX: obj[\"\" + property].offsetX, offsetY: obj[\"\" + property].offsetY\n };\n }\n }\n }\n }\n }\n return newObject;\n}\n/**\n * getInternalProperties method\\\n *\n * @returns { string[] } getInternalProperties method .\\\n * @param {string} propName - provide the propName value.\n *\n * @private\n */\nexport function getInternalProperties(propName) {\n switch (propName) {\n case 'nodes':\n case 'children':\n return ['inEdges', 'outEdges', 'parentId', 'processId', 'nodeId', 'umlIndex', 'isPhase', 'isLane'];\n case 'connectors':\n return ['parentId'];\n case 'annotation':\n return ['nodeId'];\n case 'annotations':\n return ['nodeId'];\n case 'shape':\n return ['hasHeader'];\n case 'layers':\n return ['objectZIndex'];\n }\n return [];\n}\n/**\n * cloneArray method\\\n *\n * @returns { Object[] } getInternalProperties method .\\\n * @param {string} sourceArray - provide the sourceArray value.\n * @param {string} additionalProp - provide the additionalProp value.\n * @param {string} key - provide the key value.\n * @param {string} cloneBlazorProp - provide the cloneBlazorProp value.\n *\n * @private\n */\nexport function cloneArray(sourceArray, additionalProp, key, cloneBlazorProp) {\n var clonedArray;\n if (sourceArray) {\n clonedArray = [];\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n clonedArray.push(cloneObject(sourceArray[parseInt(i.toString(), 10)], additionalProp, key, cloneBlazorProp));\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n return clonedArray;\n}\n/**\n * extendObject method\\\n *\n * @returns { Object} getInternalProperties method .\\\n * @param {string} options - provide the options value.\n * @param {string} childObject - provide the childObject value.\n *\n * @private\n */\nexport function extendObject(options, childObject) {\n var properties = 'properties';\n if (options) {\n if (!childObject) {\n childObject = { properties: {} };\n }\n //const target: Object = childObject;\n for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) {\n var property = _a[_i];\n if (options[\"\" + property] instanceof Array) {\n var extendeArray = extendArray(options[\"\" + property], childObject[\"\" + properties][\"\" + property]);\n if (!childObject[\"\" + properties][\"\" + property] || !childObject[\"\" + properties][\"\" + property].length) {\n childObject[\"\" + property] = extendeArray;\n }\n }\n else if (options[\"\" + property] instanceof Array === false && options[\"\" + property] instanceof HTMLElement) {\n childObject[\"\" + property] = options[\"\" + property].cloneNode(true).innerHtml;\n }\n else if (options[\"\" + property] instanceof Array === false && options[\"\" + property] instanceof Object) {\n var extendedObject = extendObject(options[\"\" + property], childObject[\"\" + properties][\"\" + property]);\n if (extendedObject[\"\" + properties] && !Object.keys(extendedObject[\"\" + properties]).length) {\n delete extendedObject[\"\" + properties];\n }\n childObject[\"\" + property] = extendedObject;\n }\n else {\n childObject[\"\" + property] = childObject[\"\" + properties][\"\" + property] !== undefined ?\n childObject[\"\" + property] : options[\"\" + property];\n }\n }\n }\n return childObject;\n}\n/**\n * extendObject method\\\n *\n * @returns { Object} getInternalProperties method .\\\n * @param {string} sourceArray - provide the sourceArray value.\n * @param {string} childArray - provide the childArray value.\n *\n * @private\n */\nexport function extendArray(sourceArray, childArray) {\n var clonedArray = [];\n var reset = false;\n if (!childArray) {\n childArray = [];\n }\n if (!childArray.length) {\n reset = true;\n }\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var extendedArray = extendArray(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]);\n if (reset) {\n clonedArray.push(extendArray);\n }\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n var extendedObject = extendObject(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]);\n if (reset) {\n clonedArray.push(extendedObject);\n }\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n return clonedArray;\n}\n/**\n * textAlignToString method\\\n *\n * @returns { Object} textAlignToString method .\\\n * @param {string} value - provide the sourceArray value.\n *\n * @private\n */\nexport function textAlignToString(value) {\n var state = '';\n switch (value) {\n case 'Center':\n state = 'center';\n break;\n case 'Left':\n state = 'left';\n break;\n case 'Right':\n state = 'right';\n break;\n case 'Justify':\n state = 'justify';\n break;\n }\n return state;\n}\n/**\n * wordBreakToString method\\\n *\n * @returns { string } wordBreakToString method .\\\n * @param {TextWrap | TextDecoration} value - provide the value value.\n *\n * @private\n */\nexport function wordBreakToString(value) {\n var state = '';\n switch (value) {\n case 'Wrap':\n state = 'breakall';\n break;\n case 'NoWrap':\n state = 'keepall';\n break;\n case 'WrapWithOverflow':\n state = 'normal';\n break;\n case 'LineThrough':\n state = 'line-through';\n break;\n }\n return state;\n}\n/**\n * bBoxText method\\\n *\n * @returns { number } bBoxText method .\\\n * @param {string} textContent - provide the textContent value.\n * @param {string} options - provide the options value.\n *\n * @private\n */\nexport function bBoxText(textContent, options) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var text = getChildNode(svg)[1];\n text.textContent = textContent;\n applyStyleAgainstCsp(text, 'font-size:' + options.fontSize + 'px; font-family:'\n + options.fontFamily + ';font-weight:' + (options.bold ? 'bold' : 'normal'));\n var bBox = text.getBBox().width;\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return bBox;\n}\n/**\n * middleElement method\\\n *\n * @returns { number} middleElement method .\\\n * @param {number} i - provide the textContent value.\n * @param {number} j - provide the options value.\n *\n * @private\n */\nexport function middleElement(i, j) {\n var m = 0;\n m = (i + j) / 2;\n return m;\n}\n/**\n * overFlow method\\\n *\n * @returns { number} overFlow method .\\\n * @param {number} text - provide the text value.\n * @param {number} options - provide the options value.\n *\n * @private\n */\nexport function overFlow(text, options) {\n var i = 0;\n var j = 0;\n var middle = 0;\n var bounds = 0;\n var temp = '';\n j = text.length;\n var t = 0;\n do {\n if (bounds > 0) {\n i = middle;\n }\n middle = Math.floor(middleElement(i, j));\n temp += text.substr(i, middle);\n bounds = bBoxText(temp, options);\n } while (bounds <= options.width);\n temp = temp.substr(0, i);\n for (t = i; t < j; t++) {\n temp += text[parseInt(t.toString(), 10)];\n bounds = bBoxText(temp, options);\n if (bounds >= options.width) {\n text = text.substr(0, temp.length - 1);\n break;\n }\n }\n if (options.textOverflow === 'Ellipsis') {\n text = text.substr(0, text.length - 3);\n text += '...';\n }\n else {\n text = text.substr(0, text.length);\n }\n return text;\n}\n/**\n * whiteSpaceToString method\\\n *\n * @returns { number} whiteSpaceToString method .\\\n * @param {number} value - provide the value value.\n * @param {number} wrap - provide the wrap value.\n *\n * @private\n */\nexport function whiteSpaceToString(value, wrap) {\n if (wrap === 'NoWrap' && value === 'PreserveAll') {\n return 'pre';\n }\n var state = '';\n switch (value) {\n case 'CollapseAll':\n state = 'nowrap';\n break;\n case 'CollapseSpace':\n state = 'pre-line';\n break;\n case 'PreserveAll':\n state = 'pre-wrap';\n break;\n }\n return state;\n}\n/**\n * rotateSize method\\\n *\n * @returns { number} rotateSize method .\\\n * @param {number} size - provide the size value.\n * @param {number} angle - provide the angle value.\n *\n * @private\n */\nexport function rotateSize(size, angle) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, 0, 0);\n var topLeft = transformPointByMatrix(matrix, { x: 0, y: 0 });\n var topRight = transformPointByMatrix(matrix, { x: size.width, y: 0 });\n var bottomLeft = transformPointByMatrix(matrix, { x: 0, y: size.height });\n var bottomRight = transformPointByMatrix(matrix, { x: size.width, y: size.height });\n var minX = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var minY = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n var maxX = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var maxY = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n return new Size(maxX - minX, maxY - minY);\n}\n/**\n * rotatePoint method\\\n *\n * @returns { number} rotateSize method .\\\n * @param {number} angle - provide the angle value.\n * @param {number} pivotX - provide the pivotX value.\n * @param {number} pivotY - provide the pivotY value.\n * @param {PointModel} point - provide the point value.\n * @private\n */\nexport function rotatePoint(angle, pivotX, pivotY, point) {\n if (angle !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivotX, pivotY);\n return transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/**\n * getOffset method\\\n *\n * @returns { number} getOffset method .\\\n * @param {PointModel} topLeft - provide the angle value.\n * @param {DiagramElement} obj - provide the pivotX value.\n * @private\n */\nexport function getOffset(topLeft, obj) {\n var offX = topLeft.x + obj.desiredSize.width * obj.pivot.x;\n var offY = topLeft.y + obj.desiredSize.height * obj.pivot.y;\n return {\n x: offX, y: offY\n };\n}\n/**\n * getFunction method\\\n *\n * @returns { Function } getFunction method .\\\n * @param {PointModel} value - provide the angle value.\n * @private\n */\nexport function getFunction(value) {\n if (value !== undefined) {\n if (typeof value === 'string') {\n value = getValue(value, window);\n }\n }\n return value;\n}\n","/* eslint-disable no-case-declarations */\n/* eslint-disable @typescript-eslint/indent */\nimport { Size } from './../primitives/size';\nimport { Point } from './../primitives/point';\nimport { processPathData, pathSegmentCollection, getRectanglePath } from './../utility/path-util';\nimport { overFlow } from './../utility/base-util';\nimport { createHtmlElement, setChildPosition } from './../utility/dom-util';\n/**\n * Canvas Renderer\n */\n/** @private */\nvar CanvasRenderer = /** @class */ (function () {\n function CanvasRenderer() {\n }\n /**\n * Provide the context value for the canvas \\\n *\n * @returns {CanvasRenderingContext2D} Provide the context value for the canvas .\\\n * @param { HTMLCanvasElement} canvas - Return the dashed array values .\n * @private\n */\n CanvasRenderer.getContext = function (canvas) {\n return canvas.getContext('2d');\n };\n CanvasRenderer.setCanvasSize = function (canvas, width, height) {\n if (canvas) {\n canvas.setAttribute('width', width.toString());\n canvas.setAttribute('height', height.toString());\n }\n };\n /**\n * Draw the gradient for the diagram shapes .\\\n *\n * @returns {SVGElement} Draw the gradient for the diagram shapes.\n * @param {StyleAttributes} options - Provide the options for the gradient element .\n * @param {SVGElement} ctx - Provide canvas values .\n * @param {string} x - Provide the x value for the gradient .\n * @param {string} y - Provide the x value for the gradient .\n * @private\n */\n CanvasRenderer.prototype.renderGradient = function (options, ctx, x, y) {\n var max;\n var min;\n var grd;\n if (options.gradient.type !== 'None') {\n for (var i = 0; i < options.gradient.stops.length; i++) {\n max = max !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n min = min !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n }\n if (options.gradient.type === 'Linear') {\n var linear = options.gradient;\n grd = ctx.createLinearGradient(x + linear.x1, y + linear.y1, x + linear.x2, y + linear.y2);\n }\n else {\n var radial = options.gradient;\n grd = ctx.createRadialGradient(x + radial.fx, y + radial.fy, 0, x + radial.cx, y + radial.cy, radial.r);\n }\n for (var i = 0; i < options.gradient.stops.length; i++) {\n var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)];\n var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max;\n grd.addColorStop(offset, stop_1.color);\n }\n ctx.fillStyle = grd;\n }\n return ctx;\n };\n /**\n * Draw the shawdow for the rectangle shape in diagram \\\n *\n * @returns {void} Draw the shawdow for the rectangle shape in diagram .\\\n *\n * @param { SVGElement} options - Provide the base attributes .\n * @param { RectAttributes} canvas - Provide the canvas values .\n * @param { string} collection - Provide the collection value.\n * @private\n */\n CanvasRenderer.prototype.renderShadow = function (options, canvas, collection) {\n if (collection === void 0) { collection = null; }\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n ctx.strokeStyle = ctx.fillStyle = options.shadow.color;\n ctx.globalAlpha = options.shadow.opacity;\n var ptModel = { x: 0, y: 0 };\n var point = Point.transform(ptModel, options.shadow.angle, options.shadow.distance);\n var transX = options.x + point.x;\n var transY = options.y + point.y;\n var pivotX = transX + options.width * options.pivotX;\n var pivotY = transY + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n if (collection) {\n ctx.translate(transX, transY);\n this.renderPath(canvas, options, collection);\n ctx.translate(-transX, -transY);\n }\n else {\n ctx.rect(transX, transY, options.width, options.height);\n ctx.fillRect(transX, transY, options.width, options.height);\n }\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n };\n /**\n * Create canvas element for the diagram \\\n *\n * @returns {HTMLCanvasElement} Create canvas element for the diagram .\\\n *\n * @param { SVGElement} id - Provide the id for the canvas.\n * @param { Object} width - Provide the width for the canvas.\n * @param { Object} height - Provide the height for the canvas.\n * @private\n */\n CanvasRenderer.createCanvas = function (id, width, height) {\n var canvasObj = createHtmlElement('canvas', { 'id': id });\n this.setCanvasSize(canvasObj, width, height);\n return canvasObj;\n };\n CanvasRenderer.prototype.setStyle = function (canvas, style) {\n var ctx = CanvasRenderer.getContext(canvas);\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n ctx.strokeStyle = style.stroke;\n ctx.lineWidth = style.strokeWidth;\n if (style.strokeWidth === 0) {\n ctx.strokeStyle = 'transparent';\n }\n ctx.globalAlpha = style.opacity;\n var dashArray = [];\n if (style.dashArray) {\n dashArray = this.parseDashArray(style.dashArray);\n }\n ctx.setLineDash(dashArray);\n if (style.gradient && style.gradient.type !== 'None') {\n if (style.shapeType === 'Rectangle') {\n this.renderGradient(style, ctx, style.x, style.y);\n }\n else {\n this.renderGradient(style, ctx, 0, 0);\n }\n }\n else {\n ctx.fillStyle = style.fill;\n }\n };\n CanvasRenderer.prototype.rotateContext = function (canvas, angle, x, y) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.translate(x, y);\n ctx.rotate(angle * Math.PI / 180);\n ctx.translate(-x, -y);\n };\n CanvasRenderer.prototype.setFontStyle = function (canvas, text) {\n var ctx = CanvasRenderer.getContext(canvas);\n var font = '';\n if (text.italic) {\n font += 'italic ';\n }\n if (text.bold) {\n font += 'bold ';\n }\n font += (text.fontSize) + 'px ';\n font += text.fontFamily;\n ctx.font = font;\n };\n /**\n * Return the dashed array values \\\n *\n * @returns {number[]} Return the dashed array values .\\\n * @param { SVGElement} dashArray - Return the dashed array values .\n * @private\n */\n CanvasRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n var separator = dashArray.indexOf(' ') !== -1 ? ' ' : ',';\n var splittedDashes = dashArray.split(separator);\n for (var _i = 0, splittedDashes_1 = splittedDashes; _i < splittedDashes_1.length; _i++) {\n var i = splittedDashes_1[_i];\n dashes.push(Number(i));\n }\n return dashes;\n };\n CanvasRenderer.prototype.drawRoundedRect = function (canvas, options) {\n var context = CanvasRenderer.getContext(canvas);\n context.beginPath();\n var x = options.x;\n var y = options.y;\n var w = options.width;\n var h = options.height;\n var mx = x + w / 2;\n var my = y + h / 2;\n context.beginPath();\n this.setStyle(canvas, options);\n context.moveTo(x, my);\n context.quadraticCurveTo(x, y, mx, y);\n context.quadraticCurveTo(x + w, y, x + w, my);\n context.quadraticCurveTo(x + w, y + h, mx, y + h);\n context.quadraticCurveTo(x, y + h, x, my);\n //892454-Fill color not applied for BPMN activity shapes inside the symbol palette.\n context.fill();\n context.stroke();\n };\n //Rendering Part\n /**\n * Draw the Rectangle for the diagram \\\n *\n * @returns {void} Draw the Rectangle for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG .\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @param { string} diagramId - Provide the diagram id .\n * @param { boolean} isExport - Provide the isExport .\n * @private\n */\n CanvasRenderer.prototype.drawRectangle = function (canvas, options, diagramId, isExport) {\n if (options.visible === true) {\n if (options.cornerRadius) {\n if (!isExport && (options.width < 30 || options.height < 30)) {\n this.drawRoundedRect(canvas, options);\n }\n else {\n options.data = getRectanglePath(options.cornerRadius, options.height, options.width);\n this.drawPath(canvas, options);\n }\n }\n else {\n var ctx = CanvasRenderer.getContext(canvas);\n if (options.shadow) {\n this.renderShadow(options, canvas);\n }\n ctx.save();\n ctx.beginPath();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var cornerRadius = options.cornerRadius;\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n // 919944: Image Node Flip and Rotation Not Applied in Exported Image\n if (options.flip === 'Horizontal' || options.flip === 'Vertical') {\n ctx.translate(options.x + options.width / 2, options.y + options.height / 2);\n ctx.rotate(-options.angle * Math.PI / 180);\n ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2);\n }\n else {\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n }\n this.setStyle(canvas, options);\n ctx.rect(options.x, options.y, options.width, options.height);\n ctx.fillRect(options.x, options.y, options.width, options.height);\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n }\n }\n };\n // public updateSelectionRegion(canvas: HTMLCanvasElement, options: RectAttributes): void {\n // this.drawRectangle(canvas, options);\n // }\n // public drawLine(canvas: HTMLCanvasElement, options: LineAttributes): void {\n // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas);\n // ctx.save();\n // ctx.beginPath();\n // let pivotX: number = options.x + options.width * options.pivotX;\n // let pivotY: number = options.y + options.height * options.pivotY;\n // this.rotateContext(canvas, options.angle, pivotX, pivotY);\n // this.setStyle(canvas, options as StyleAttributes);\n // ctx.translate(options.x, options.y);\n // ctx.moveTo(options.startPoint.x, options.startPoint.y);\n // ctx.lineTo(options.endPoint.x, options.endPoint.y);\n // ctx.translate(-options.x, -options.y);\n // ctx.stroke();\n // ctx.closePath();\n // ctx.restore();\n // }\n // public drawCircle(canvas: HTMLCanvasElement, options: CircleAttributes): void {\n // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas);\n // ctx.save();\n // ctx.beginPath();\n // let pivotY: number = options.y + options.height * options.pivotY;\n // let pivotX: number = options.x + options.width * options.pivotX;\n // this.setStyle(canvas, options as StyleAttributes);\n // this.rotateContext(canvas, options.angle, pivotX, pivotY);\n // ctx.arc(options.centerX, options.centerY, options.radius, 0, 2 * Math.PI);\n // ctx.fill();\n // ctx.stroke();\n // ctx.closePath();\n // ctx.restore();\n // }\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param { PathAttributes} options - Provide the path element attributes .\n * @private\n */\n CanvasRenderer.prototype.drawPath = function (canvas, options) {\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n if (options.shadow) {\n this.renderShadow(options, canvas, collection);\n }\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var pivotY = options.y + options.height * options.pivotY;\n var pivotX = options.x + options.width * options.pivotX;\n if (options.flip === 'Horizontal' || options.flip === 'Vertical') {\n ctx.translate(options.x + options.width / 2, options.y + options.height / 2);\n ctx.rotate(-options.angle * Math.PI / 180);\n ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2);\n }\n else {\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n }\n this.setStyle(canvas, options);\n ctx.translate(options.x, options.y);\n if (options.flip === 'Horizontal') {\n ctx.scale(-1, 1);\n ctx.translate(options.width * -1, 0);\n }\n else if (options.flip === 'Vertical') {\n ctx.scale(1, -1);\n ctx.translate(0, options.height * -1);\n }\n else if (options.flip === 'Both') {\n ctx.scale(-1, -1);\n ctx.translate(options.width * -1, options.height * -1);\n }\n this.renderPath(canvas, options, collection);\n ctx.fill();\n ctx.translate(-options.x, -options.y);\n ctx.stroke();\n ctx.restore();\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {PathAttributes} options - Provide the path element attributes .\n * @param {Object[]} collection - Provide the parent SVG element .\n * @private\n */\n CanvasRenderer.prototype.renderPath = function (canvas, options, collection) {\n if (options.visible === true) {\n var arcCount = 0;\n var ctx = CanvasRenderer.getContext(canvas);\n var x0 = void 0;\n var y0 = void 0;\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x = void 0;\n var y = void 0;\n var length_1;\n var i = void 0;\n var segs = collection;\n for (x = 0, y = 0, i = 0, length_1 = segs.length; i < length_1; ++i) {\n var obj = segs[parseInt(i.toString(), 10)];\n var seg = obj;\n var char = seg.command;\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n switch (char) {\n case 'M':\n ctx.moveTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'L':\n ctx.lineTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'C':\n ctx.bezierCurveTo(x1, y1, x2, y2, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n seg.x2 = x2;\n seg.y2 = y2;\n break;\n case 'Q':\n ctx.quadraticCurveTo(x1, y1, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n break;\n case 'A':\n // eslint-disable-next-line\n var curr = { x: x0, y: y0 };\n var rx = void 0;\n var ry = void 0;\n if (options.arc && options.arc.length > 0) {\n if (seg.r1 === 0) {\n rx = options.arc[parseInt(arcCount.toString(), 10)].r1;\n }\n else {\n rx = seg.r1;\n }\n if (seg.r2 === 0) {\n ry = options.arc[parseInt(arcCount.toString(), 10)].r2;\n }\n else {\n ry = seg.r2;\n }\n arcCount++;\n }\n else {\n rx = seg.r1;\n ry = seg.r2;\n }\n var xAxisRotation = seg.angle * (Math.PI / 180.0);\n var largeArc = seg.largeArc;\n var sweep = seg.sweep;\n var cp = { x: x, y: y };\n var currp = {\n x: Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,\n y: -Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0\n };\n var l = Math.pow(currp.x, 2) / Math.pow(rx, 2) + Math.pow(currp.y, 2) / Math.pow(ry, 2);\n if (l > 1) {\n rx *= Math.sqrt(l);\n ry *= Math.sqrt(l);\n }\n var k = (Math.pow(ry, 2) * Math.pow(currp.x, 2));\n var s = (largeArc === sweep ? -1 : 1) * Math.sqrt(((Math.pow(rx, 2) * Math.pow(ry, 2)) - (Math.pow(rx, 2) * Math.pow(currp.y, 2)) - k) /\n (Math.pow(rx, 2) * Math.pow(currp.y, 2) + Math.pow(ry, 2) * Math.pow(currp.x, 2)));\n if (isNaN(s)) {\n s = 0;\n }\n var cpp = { x: s * rx * currp.y / ry, y: s * -ry * currp.x / rx };\n var centp = {\n x: (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\n y: (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\n };\n var a1 = this.a([1, 0], [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]);\n var u = [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry];\n var v = [(-currp.x - cpp.x) / rx, (-currp.y - cpp.y) / ry];\n var ad = this.a(u, v);\n if (this.r(u, v) <= -1) {\n ad = Math.PI;\n }\n if (this.r(u, v) >= 1) {\n ad = 0;\n }\n var dir = !sweep ? -1.0 : 1.0;\n var ah = a1 + dir * (ad / 2.0);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var halfWay = {\n x: centp.x + rx * Math.cos(ah),\n y: centp.y + ry * Math.sin(ah)\n };\n seg.centp = centp;\n seg.xAxisRotation = xAxisRotation;\n seg.rx = rx;\n seg.ry = ry;\n seg.a1 = a1;\n seg.ad = ad;\n seg.sweep = sweep;\n if (ctx != null) {\n var ra = rx > ry ? rx : ry;\n var sx = rx > ry ? 1 : rx / ry;\n var sy = rx > ry ? ry / rx : 1;\n ctx.save();\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, ra, a1, a1 + ad, !sweep);\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n ctx.restore();\n }\n break;\n case 'Z':\n case 'z':\n ctx.closePath();\n x = x0;\n y = y0;\n break;\n }\n x0 = x;\n y0 = y;\n }\n }\n };\n /**\n * Draw the text element for the diagram\\\n *\n * @returns {void} Draw the text element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {TextAttributes} options - Provide the text element attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide the label properties .\n * @param {string} diagramId - Provide the diagram id .\n * @param {number} scaleValue - Provide the scale value .\n * @param {Container} parentNode - Provide the parent node .\n * @private\n */\n CanvasRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) {\n if (options.content && options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n this.setStyle(canvas, options);\n if (scaleValue) {\n options.fontSize *= scaleValue;\n }\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n // 919944: Text Flip and Rotation Not Applied in Exported Image\n this.applyFlipAndRotate(ctx, options, canvas, pivotX, pivotY);\n this.setFontStyle(canvas, options);\n var i = 0;\n var childNodes = [];\n childNodes = options.childNodes;\n var wrapBounds = options.wrapBounds;\n ctx.fillStyle = options.color;\n if (wrapBounds) {\n var position = this.labelAlign(options, wrapBounds, childNodes);\n for (i = 0; i < childNodes.length; i++) {\n var child = childNodes[parseInt(i.toString(), 10)];\n child.x = setChildPosition(child, childNodes, i, options);\n var offsetX = position.x + (scaleValue ? child.x * scaleValue : child.x) - wrapBounds.x;\n var offsetY = position.y + (scaleValue ? child.dy * scaleValue : child.dy) * i + ((options.fontSize) * 0.8);\n if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') {\n child.text = overFlow(child.text, options);\n }\n if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') && options.textWrapping === 'Wrap') {\n if (offsetY < parentNode.actualSize.height + parentNode.bounds.y) {\n if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) {\n var temp = childNodes[i + 1];\n var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8);\n if (y > parentNode.actualSize.height + parentNode.bounds.y) {\n child.text = child.text.slice(0, child.text.length - 3);\n child.text = child.text.concat('...');\n }\n }\n ctx.fillText(child.text, offsetX, offsetY);\n }\n }\n else {\n ctx.fillText(child.text, offsetX, offsetY);\n }\n if (options.textDecoration === 'Underline'\n || options.textDecoration === 'Overline'\n || options.textDecoration === 'LineThrough') {\n var startPointX = offsetX;\n var startPointY = void 0;\n var textlength = ctx.measureText(child.text).width;\n var endPointX = offsetX + textlength;\n var endPointY = void 0;\n switch (options.textDecoration) {\n case 'Underline':\n startPointY = offsetY + 2;\n endPointY = offsetY + 2;\n break;\n case 'Overline':\n startPointY = (position.y + child.dy * i);\n endPointY = (position.y + child.dy * i);\n break;\n case 'LineThrough':\n startPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n endPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n }\n ctx.beginPath();\n ctx.moveTo(startPointX, startPointY);\n ctx.lineTo(endPointX, endPointY);\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.fontSize * .08;\n ctx.globalAlpha = options.opacity;\n ctx.stroke();\n }\n }\n }\n ctx.restore();\n }\n };\n // 919944: Flip position and rotate angle calculation for elements\n CanvasRenderer.prototype.applyFlipAndRotate = function (ctx, options, canvas, pivotX, pivotY) {\n if (options.flip === 'Horizontal' || options.flip === 'Vertical') {\n ctx.translate(options.x + options.width / 2, options.y + options.height / 2);\n ctx.rotate(-options.angle * Math.PI / 180);\n ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2);\n }\n else {\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n }\n ctx.translate(options.x, options.y);\n if (options.flip === 'Horizontal') {\n ctx.scale(-1, 1);\n ctx.translate(options.width * -1, 0);\n }\n else if (options.flip === 'Vertical') {\n ctx.scale(1, -1);\n ctx.translate(0, options.height * -1);\n }\n else if (options.flip === 'Both') {\n ctx.scale(-1, -1);\n ctx.translate(options.width * -1, options.height * -1);\n }\n ctx.translate(-options.x, -options.y);\n };\n CanvasRenderer.prototype.loadImage = function (ctx, obj, canvas, pivotX, pivotY) {\n // 919944: Image Node Flip and Rotation Not Applied in Exported Image\n var image = new Image();\n image.src = obj.source;\n this.image(ctx, image, obj.x, obj.y, obj.width, obj.height, obj);\n };\n /**\n * Draw the image element for the diagram\\\n *\n * @returns {void} Draw the image element for the diagram .\n * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {ImageAttributes} obj - Provide the image attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {boolean} fromPalette - Provide the pointer event value .\n * @private\n */\n CanvasRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n var _this = this;\n if (obj.visible) {\n var ctx_1 = CanvasRenderer.getContext(canvas);\n ctx_1.save();\n var pivotX_1 = obj.x + obj.width * obj.pivotX;\n var pivotY_1 = obj.y + obj.height * obj.pivotY;\n var imageObj = new Image();\n imageObj.src = obj.source;\n // 919867: Opacity for the image node is not applied to the exported image\n this.setStyle(canvas, obj);\n var id = ctx_1.canvas.id.split('_');\n // eslint-disable-next-line\n var value = id[id.length - 1] === ('diagram' || 'diagramLayer') ? true : false;\n // eslint-disable-next-line\n /**\n * Since Clipping portion for node with slice option is not calculated properly\n * if (obj.sourceX !== undefined && obj.sourceY !== undefined && obj.sourceWidth !== undefined\n * && obj.sourceHeight !== undefined) {\n * ctx.drawImage(imageObj, obj.sourceX, obj.sourceY, obj.sourceWidth, obj.sourceHeight, obj.x, obj.y, obj.width, obj.height);\n * } else {\n * ctx.drawImage(imageObj, obj.x, obj.y, obj.width, obj.height);\n * }\n */\n // 919944: Image Node Flip and Rotation Not Applied in Exported Image\n this.applyFlipAndRotate(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n if (!fromPalette) {\n this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n }\n else {\n imageObj.onload = function () {\n _this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n };\n }\n ctx_1.restore();\n }\n };\n CanvasRenderer.prototype.image = function (ctx, image, x, y, width, height, alignOptions) {\n ctx.beginPath();\n var srcWidth = image.width;\n var srcHeight = image.height;\n var destinationW = width;\n var destinationH = height;\n var resultWidth = 0;\n var resultHeight = 0;\n if (alignOptions && alignOptions.alignment !== 'None') {\n var xalign = alignOptions.alignment.toLowerCase().substr(1, 3);\n var yalign = alignOptions.alignment.toLowerCase().substr(5, 3);\n if (alignOptions.scale === 'Slice') {\n // eslint-disable-next-line\n var a = function () {\n resultWidth = destinationW;\n resultHeight = srcHeight * destinationW / srcWidth;\n };\n // eslint-disable-next-line\n var b = function () {\n resultWidth = srcWidth * destinationH / srcHeight;\n resultHeight = destinationH;\n };\n if (destinationW > destinationH) {\n a();\n if (destinationH > resultHeight) {\n b();\n }\n }\n else if (destinationW === destinationH) {\n if (srcWidth > srcHeight) {\n b();\n }\n else {\n a();\n }\n }\n else {\n b();\n if (destinationW > resultWidth) {\n a();\n }\n }\n var x1 = this.getSliceOffset(xalign, resultWidth, destinationW, srcWidth);\n var y1 = this.getSliceOffset(yalign, resultHeight, destinationH, srcHeight);\n var sWidth = srcWidth - x1;\n var sHeight = srcHeight - y1;\n var dWidth = resultWidth - (x1 * (resultWidth / srcWidth));\n var dHeight = resultHeight - (y1 * (resultHeight / srcHeight));\n var canvas1 = createHtmlElement('canvas', { 'width': width.toString(), 'height': height.toString() });\n var ctx1 = canvas1.getContext('2d');\n ctx1.drawImage(image, x1, y1, sWidth, sHeight, 0, 0, dWidth, dHeight);\n ctx.drawImage(canvas1, x, y, width, height);\n }\n else if (alignOptions.scale === 'Meet') {\n var srcRatio = (srcHeight / srcWidth);\n var destRatio = (destinationH / destinationW);\n resultWidth = destRatio > srcRatio ? destinationW : destinationH / srcRatio;\n resultHeight = destRatio > srcRatio ? destinationW * srcRatio : destinationH;\n x += this.getMeetOffset(xalign, resultWidth, destinationW);\n y += this.getMeetOffset(yalign, resultHeight, destinationH);\n ctx.drawImage(image, 0, 0, srcWidth, srcHeight, x, y, resultWidth, resultHeight);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n }\n else if (alignOptions.flip !== 'None') {\n var scaleX = 1;\n var scaleY = 1;\n if (alignOptions.flip === 'Horizontal' || alignOptions.flip === 'Both') {\n x = -x;\n width = -width;\n scaleX = -1;\n }\n if (alignOptions.flip === 'Vertical' || alignOptions.flip === 'Both') {\n y = -y;\n height = -height;\n scaleY = -1;\n }\n ctx.scale(scaleX, scaleY);\n ctx.drawImage(image, x, y, width, height);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n ctx.closePath();\n };\n CanvasRenderer.prototype.getSliceOffset = function (arg, res, dest, src) {\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (res - dest) / 2 * src / res;\n case 'max': return (res - dest) * src / res;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.getMeetOffset = function (arg, res, dest) {\n var max = Math.max(res, dest);\n var min = Math.min(res, dest);\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (max - min) / 2;\n case 'max': return max - min;\n default: return 0;\n }\n };\n //end region\n // vector magnitude\n CanvasRenderer.prototype.m = function (v) { return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2)); };\n // ratio between two vectors\n CanvasRenderer.prototype.r = function (u, v) { return (u[0] * v[0] + u[1] * v[1]) / (this.m(u) * this.m(v)); };\n // angle between two vectors\n CanvasRenderer.prototype.a = function (u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(this.r(u, v)); };\n // text utility\n /**\n * Draw the SVG label.\\\n *\n * @returns {PointModel} Draw the SVG label .\n * @param {TextAttributes} text - Provide the canvas element .\n * @param {Object} wrapBounds - Provide the canvas element .\n * @param {SubTextElement []} childNodes - Provide the canvas element .\n * @private\n */\n CanvasRenderer.prototype.labelAlign = function (text, wrapBounds, childNodes) {\n var bounds = new Size(wrapBounds.width, childNodes.length * (text.fontSize * 1.2));\n var position = { x: 0, y: 0 };\n var labelX = text.x;\n var labelY = text.y;\n var offsetx = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointx = offsetx;\n var pointy = offsety;\n if (text.textAlign === 'left') {\n pointx = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBounds.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n if (text.textWrapping === 'NoWrap') {\n pointx = 0;\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointx = (text.width * 1);\n }\n position.x = labelX + pointx + (wrapBounds ? wrapBounds.x : 0);\n position.y = labelY + pointy - bounds.height / 2;\n return position;\n };\n return CanvasRenderer;\n}());\nexport { CanvasRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\n/**\n * Defines the size and appearance of the diagram page\n */\nvar Background = /** @class */ (function (_super) {\n __extends(Background, _super);\n function Background() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Background.prototype, \"source\", void 0);\n __decorate([\n Property('transparent')\n ], Background.prototype, \"color\", void 0);\n __decorate([\n Property('None')\n ], Background.prototype, \"scale\", void 0);\n __decorate([\n Property('None')\n ], Background.prototype, \"align\", void 0);\n return Background;\n}(ChildProperty));\nexport { Background };\nvar FitOptions = /** @class */ (function (_super) {\n __extends(FitOptions, _super);\n function FitOptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Page')\n ], FitOptions.prototype, \"mode\", void 0);\n __decorate([\n Property('PageSettings')\n ], FitOptions.prototype, \"region\", void 0);\n __decorate([\n Complex({ top: 25, bottom: 25, left: 25, right: 25 }, Margin)\n ], FitOptions.prototype, \"margin\", void 0);\n __decorate([\n Property(false)\n ], FitOptions.prototype, \"canZoomIn\", void 0);\n __decorate([\n Property(undefined)\n ], FitOptions.prototype, \"customBounds\", void 0);\n __decorate([\n Property(false)\n ], FitOptions.prototype, \"canFit\", void 0);\n return FitOptions;\n}(ChildProperty));\nexport { FitOptions };\n/**\n * Defines the size and appearance of diagram page\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * pageSettings: { width: 800, height: 600, orientation: 'Landscape',\n * background: { color: 'blue' }, boundaryConstraints: 'Infinity',\n * multiplePage: true, showPageBreaks: true, },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar PageSettings = /** @class */ (function (_super) {\n __extends(PageSettings, _super);\n function PageSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], PageSettings.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], PageSettings.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Margin)\n ], PageSettings.prototype, \"margin\", void 0);\n __decorate([\n Property('Landscape')\n ], PageSettings.prototype, \"orientation\", void 0);\n __decorate([\n Property('Infinity')\n ], PageSettings.prototype, \"boundaryConstraints\", void 0);\n __decorate([\n Complex({}, Background)\n ], PageSettings.prototype, \"background\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"multiplePage\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"showPageBreaks\", void 0);\n __decorate([\n Complex({}, FitOptions)\n ], PageSettings.prototype, \"fitOptions\", void 0);\n return PageSettings;\n}(ChildProperty));\nexport { PageSettings };\n/**\n * Diagram ScrollSettings module handles the scroller properties of the diagram\n */\nvar ScrollSettings = /** @class */ (function (_super) {\n __extends(ScrollSettings, _super);\n function ScrollSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"horizontalOffset\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"verticalOffset\", void 0);\n __decorate([\n Property(1)\n ], ScrollSettings.prototype, \"currentZoom\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"viewPortWidth\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"viewPortHeight\", void 0);\n __decorate([\n Property(0.2)\n ], ScrollSettings.prototype, \"minZoom\", void 0);\n __decorate([\n Property(30)\n ], ScrollSettings.prototype, \"maxZoom\", void 0);\n __decorate([\n Property('Diagram')\n ], ScrollSettings.prototype, \"scrollLimit\", void 0);\n __decorate([\n Property()\n ], ScrollSettings.prototype, \"scrollableArea\", void 0);\n __decorate([\n Property(false)\n ], ScrollSettings.prototype, \"canAutoScroll\", void 0);\n __decorate([\n Property(100)\n ], ScrollSettings.prototype, \"autoScrollFrequency\", void 0);\n __decorate([\n Complex({ left: 15, right: 15, top: 15, bottom: 15 }, Margin)\n ], ScrollSettings.prototype, \"autoScrollBorder\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], ScrollSettings.prototype, \"padding\", void 0);\n __decorate([\n Property(0.2)\n ], ScrollSettings.prototype, \"zoomFactor\", void 0);\n return ScrollSettings;\n}(ChildProperty));\nexport { ScrollSettings };\n","/**\n * ServiceLocator\n *\n * @hidden\n */\nvar ServiceLocator = /** @class */ (function () {\n function ServiceLocator() {\n this.services = {};\n }\n ServiceLocator.prototype.register = function (name, type) {\n this.services[\"\" + name] = type;\n };\n ServiceLocator.prototype.getService = function (name) {\n return this.services[\"\" + name];\n };\n return ServiceLocator;\n}());\nexport { ServiceLocator };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { SnapConstraints } from '../enum/enum';\n/**\n * Provides a visual guidance while dragging or arranging the objects on the Diagram surface\n */\nvar Gridlines = /** @class */ (function (_super) {\n __extends(Gridlines, _super);\n function Gridlines() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('lightgray')\n ], Gridlines.prototype, \"lineColor\", void 0);\n __decorate([\n Property('')\n ], Gridlines.prototype, \"lineDashArray\", void 0);\n __decorate([\n Property([1.25, 18.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75])\n ], Gridlines.prototype, \"lineIntervals\", void 0);\n __decorate([\n Property([1, 19, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5])\n ], Gridlines.prototype, \"dotIntervals\", void 0);\n __decorate([\n Property([20])\n ], Gridlines.prototype, \"snapIntervals\", void 0);\n return Gridlines;\n}(ChildProperty));\nexport { Gridlines };\n/**\n * Defines the gridlines and defines how and when the objects have to be snapped\n *\n * @default {}\n */\nvar SnapSettings = /** @class */ (function (_super) {\n __extends(SnapSettings, _super);\n function SnapSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({}, Gridlines)\n ], SnapSettings.prototype, \"horizontalGridlines\", void 0);\n __decorate([\n Complex({}, Gridlines)\n ], SnapSettings.prototype, \"verticalGridlines\", void 0);\n __decorate([\n Property(SnapConstraints.All)\n ], SnapSettings.prototype, \"constraints\", void 0);\n __decorate([\n Property(5)\n ], SnapSettings.prototype, \"snapAngle\", void 0);\n __decorate([\n Property('Lines')\n ], SnapSettings.prototype, \"gridType\", void 0);\n __decorate([\n Property(5)\n ], SnapSettings.prototype, \"snapObjectDistance\", void 0);\n __decorate([\n Property('#07EDE1')\n ], SnapSettings.prototype, \"snapLineColor\", void 0);\n return SnapSettings;\n}(ChildProperty));\nexport { SnapSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\n/**\n * Defines the properties of both horizontal and vertical guides/rulers to measure the diagram area.\n */\nvar DiagramRuler = /** @class */ (function (_super) {\n __extends(DiagramRuler, _super);\n function DiagramRuler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(5)\n ], DiagramRuler.prototype, \"interval\", void 0);\n __decorate([\n Property(100)\n ], DiagramRuler.prototype, \"segmentWidth\", void 0);\n __decorate([\n Property('Horizontal')\n ], DiagramRuler.prototype, \"orientation\", void 0);\n __decorate([\n Property('RightOrBottom')\n ], DiagramRuler.prototype, \"tickAlignment\", void 0);\n __decorate([\n Property('red')\n ], DiagramRuler.prototype, \"markerColor\", void 0);\n __decorate([\n Property(25)\n ], DiagramRuler.prototype, \"thickness\", void 0);\n __decorate([\n Property(null)\n ], DiagramRuler.prototype, \"arrangeTick\", void 0);\n return DiagramRuler;\n}(ChildProperty));\nexport { DiagramRuler };\n/**\n * Defines the ruler settings of diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * rulerSettings: { showRulers: true,\n * horizontalRuler: { segmentWidth: 50,interval: 10 },\n * verticalRuler: {segmentWidth: 200,interval: 20}\n * },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar RulerSettings = /** @class */ (function (_super) {\n __extends(RulerSettings, _super);\n function RulerSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], RulerSettings.prototype, \"showRulers\", void 0);\n __decorate([\n Property(true)\n ], RulerSettings.prototype, \"dynamicGrid\", void 0);\n __decorate([\n Complex({ orientation: 'Horizontal' }, DiagramRuler)\n ], RulerSettings.prototype, \"horizontalRuler\", void 0);\n __decorate([\n Complex({ orientation: 'Vertical' }, DiagramRuler)\n ], RulerSettings.prototype, \"verticalRuler\", void 0);\n return RulerSettings;\n}(ChildProperty));\nexport { RulerSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar DataMappingItems = /** @class */ (function (_super) {\n __extends(DataMappingItems, _super);\n function DataMappingItems() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DataMappingItems.prototype, \"property\", void 0);\n __decorate([\n Property('')\n ], DataMappingItems.prototype, \"field\", void 0);\n return DataMappingItems;\n}(ChildProperty));\nexport { DataMappingItems };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex, Collection } from '@syncfusion/ej2-base';\nimport { DataMappingItems as DataMappingItems } from './data-mapping';\n/**\n * Configures the data source that is to be bound with diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let data: object[] = [\n * { Name: \"Elizabeth\", Role: \"Director\" },\n * { Name: \"Christina\", ReportingPerson: \"Elizabeth\", Role: \"Manager\" },\n * { Name: \"Yoshi\", ReportingPerson: \"Christina\", Role: \"Lead\" },\n * { Name: \"Philip\", ReportingPerson: \"Christina\", Role: \"Lead\" },\n * { Name: \"Yang\", ReportingPerson: \"Elizabeth\", Role: \"Manager\" },\n * { Name: \"Roland\", ReportingPerson: \"Yang\", Role: \"Lead\" },\n * { Name: \"Yvonne\", ReportingPerson: \"Yang\", Role: \"Lead\" }\n * ];\n * let items: DataManager = new DataManager(data as JSON[]);\n * let diagram: Diagram = new Diagram({\n * ...\n * layout: {\n * type: 'OrganizationalChart'\n * },\n * dataSourceSettings: {\n * id: 'Name', parentId: 'ReportingPerson', dataManager: items,\n * }\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar CrudAction = /** @class */ (function (_super) {\n __extends(CrudAction, _super);\n function CrudAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CrudAction.prototype, \"read\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"create\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"update\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"destroy\", void 0);\n __decorate([\n Property()\n ], CrudAction.prototype, \"customFields\", void 0);\n return CrudAction;\n}(ChildProperty));\nexport { CrudAction };\nvar ConnectionDataSource = /** @class */ (function (_super) {\n __extends(ConnectionDataSource, _super);\n function ConnectionDataSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"sourceID\", void 0);\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"targetID\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"sourcePointX\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"sourcePointY\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"targetPointX\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"targetPointY\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"dataManager\", void 0);\n __decorate([\n Complex({}, CrudAction)\n ], ConnectionDataSource.prototype, \"crudAction\", void 0);\n return ConnectionDataSource;\n}(ChildProperty));\nexport { ConnectionDataSource };\nvar DataSource = /** @class */ (function (_super) {\n __extends(DataSource, _super);\n function DataSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DataSource.prototype, \"id\", void 0);\n __decorate([\n Property(null)\n ], DataSource.prototype, \"dataManager\", void 0);\n __decorate([\n Property(null)\n ], DataSource.prototype, \"dataSource\", void 0);\n __decorate([\n Property('')\n ], DataSource.prototype, \"root\", void 0);\n __decorate([\n Property('')\n ], DataSource.prototype, \"parentId\", void 0);\n __decorate([\n Property()\n ], DataSource.prototype, \"doBinding\", void 0);\n __decorate([\n Collection([], DataMappingItems)\n ], DataSource.prototype, \"dataMapSettings\", void 0);\n __decorate([\n Complex({}, CrudAction)\n ], DataSource.prototype, \"crudAction\", void 0);\n __decorate([\n Complex({}, ConnectionDataSource)\n ], DataSource.prototype, \"connectionDataSource\", void 0);\n return DataSource;\n}(ChildProperty));\nexport { DataSource };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Margin } from '../core/appearance';\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines the configuration settings for flowchart automatic layout\n */\nvar FlowchartLayoutSettings = /** @class */ (function (_super) {\n __extends(FlowchartLayoutSettings, _super);\n function FlowchartLayoutSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('LeftInFlow')\n ], FlowchartLayoutSettings.prototype, \"yesBranchDirection\", void 0);\n __decorate([\n Property('RightInFlow')\n ], FlowchartLayoutSettings.prototype, \"noBranchDirection\", void 0);\n __decorate([\n Property(['Yes', 'True'])\n ], FlowchartLayoutSettings.prototype, \"yesBranchValues\", void 0);\n __decorate([\n Property(['No', 'False'])\n ], FlowchartLayoutSettings.prototype, \"noBranchValues\", void 0);\n return FlowchartLayoutSettings;\n}(ChildProperty));\nexport { FlowchartLayoutSettings };\n/**\n * Defines the behavior of the automatic layouts\n */\nvar Layout = /** @class */ (function (_super) {\n __extends(Layout, _super);\n function Layout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Layout.prototype, \"fixedNode\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"horizontalSpacing\", void 0);\n __decorate([\n Property('SamePoint')\n ], Layout.prototype, \"connectionPointOrigin\", void 0);\n __decorate([\n Property('Nonlinear')\n ], Layout.prototype, \"arrangement\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"verticalSpacing\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"maxIteration\", void 0);\n __decorate([\n Property(40)\n ], Layout.prototype, \"springFactor\", void 0);\n __decorate([\n Property(50)\n ], Layout.prototype, \"springLength\", void 0);\n __decorate([\n Complex({ left: 50, top: 50, right: 0, bottom: 0 }, Margin)\n ], Layout.prototype, \"margin\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property('TopToBottom')\n ], Layout.prototype, \"orientation\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"connectionDirection\", void 0);\n __decorate([\n Property('Default')\n ], Layout.prototype, \"connectorSegments\", void 0);\n __decorate([\n Property('None')\n ], Layout.prototype, \"type\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"getLayoutInfo\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"layoutInfo\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"getBranch\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"bounds\", void 0);\n __decorate([\n Property(true)\n ], Layout.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property(false)\n ], Layout.prototype, \"enableRouting\", void 0);\n __decorate([\n Property('')\n ], Layout.prototype, \"root\", void 0);\n __decorate([\n Complex({}, FlowchartLayoutSettings)\n ], Layout.prototype, \"flowchartLayoutSettings\", void 0);\n return Layout;\n}(ChildProperty));\nexport { Layout };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Point } from '../primitives/point';\nimport { Rect } from '../primitives/rect';\nimport { intersect3, cloneBlazorObject } from '../utility/diagram-util';\nimport { cloneObject } from '../utility/base-util';\nimport { DiagramEvent } from './../enum/enum';\nimport { contains } from './actions';\nimport { getOppositeDirection } from '../utility/connector';\nimport { StraightSegment, OrthogonalSegment } from '../objects/connector';\nimport { ToolBase } from './tool';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * Multiple segments editing for Connector\n */\nvar ConnectorEditing = /** @class */ (function (_super) {\n __extends(ConnectorEditing, _super);\n function ConnectorEditing(commandHandler, endPoint) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.oldValue = null;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * mouseDown method\\\n *\n * @returns { void } mouseDown method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseDown = function (args) {\n var connectors;\n var edit = true;\n if (args.source && args.source.connectors) {\n connectors = args.source.connectors[0];\n }\n if (args.info && args.actualObject) {\n edit = args.info.ctrlKey && args.actualObject.type !== 'Orthogonal';\n }\n if (connectors && edit) {\n this.inAction = true;\n this.undoElement = cloneObject(args.source);\n _super.prototype.mouseDown.call(this, args);\n // Sets the selected segment\n for (var i = 0; i < connectors.segments.length; i++) {\n var segment = connectors.segments[parseInt(i.toString(), 10)];\n if (this.endPoint === 'OrthoThumb') {\n for (var j = 0; j < segment.points.length - 1; j++) {\n var segPoint = { x: 0, y: 0 };\n segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2);\n segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2);\n if (contains(this.currentPosition, segPoint, 30)) {\n this.selectedSegment = segment;\n this.segmentIndex = j;\n }\n }\n }\n else {\n if (contains(this.currentPosition, segment.point, 10)) {\n this.selectedSegment = segment;\n }\n }\n }\n }\n };\n /**\n * mouseMove method\\\n *\n * @returns { void } mouseMove method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var diffX = this.currentPosition.x - this.prevPosition.x;\n this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition);\n var connector = void 0;\n var newValue = void 0;\n var isSame = false;\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n }\n if (Point.equals(this.startPosition, this.prevPosition)) {\n isSame = true;\n }\n if (this.oldValue === null) {\n this.oldValue = cloneObject(this.selectedSegment);\n }\n var arg = {\n source: connector, state: 'Start', oldValue: this.oldValue, newValue: this.oldValue,\n segment: this.selectedSegment, cancel: false\n };\n //EJ2-66217 - Support to add event for segment points editing in connector.\n arg = {\n source: cloneBlazorObject(connector), state: 'Start', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneBlazorObject(this.oldValue),\n segment: cloneBlazorObject(this.selectedSegment), cancel: false\n };\n if (isSame && !isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg);\n }\n // When cancel is set to true at state Start, the segment change will be prevented.\n if (arg.cancel) {\n this.commandHandler.diagram.resetTool();\n }\n if ((this.inAction && this.selectedSegment !== undefined && this.endPoint !== undefined)\n && (diffX !== 0 || diffY !== 0) && !arg.cancel) {\n if (this.endPoint === 'OrthoThumb') {\n this.blocked = !this.dragOrthogonalSegment(connector, this.selectedSegment, this.currentPosition, this.segmentIndex);\n if (this.oldValue.length === null && this.oldValue.direction === null) {\n this.oldValue = cloneObject(this.selectedSegment);\n }\n newValue = cloneObject(this.selectedSegment);\n }\n else {\n var tx = this.currentPosition.x - this.selectedSegment.point.x;\n var ty = this.currentPosition.y - this.selectedSegment.point.y;\n var index = connector.segments.indexOf(this.selectedSegment);\n this.blocked = !this.commandHandler.dragControlPoint(connector, tx, ty, false, index);\n newValue = cloneObject(this.selectedSegment);\n }\n this.commandHandler.updateSelector();\n this.currentPosition = args.position;\n var arg1 = {\n source: cloneBlazorObject(connector), state: 'Progress', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneBlazorObject(newValue),\n segment: cloneBlazorObject(this.selectedSegment), cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg1);\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * mouseUp method\\\n *\n * @returns { void } mouseUp method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseUp = function (args) {\n var connector;\n var oldValues;\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n oldValues = { segments: connector.segments };\n }\n if (args && args.source && args.info && args.info.ctrlKey && args.info.shiftKey && connector.type === 'Straight') {\n this.addOrRemoveSegment(connector, this.currentPosition);\n }\n else {\n if (this.endPoint === 'OrthoThumb' && this.selectedSegment) {\n var index = connector.segments.indexOf(this.selectedSegment);\n var prev = connector.segments[index - 1];\n var next = connector.segments[index + 1];\n if (index === connector.segments.length - 2\n && this.updateLastSegment(connector, this.selectedSegment)) {\n connector.segments.splice(connector.segments.length - 2, 1);\n }\n else {\n //Bug 853404: Exception occurs while adjusting the connector segment.\n if (prev && Math.abs(prev.length) < 5 && prev.length > 0) {\n if (index !== 1) {\n this.removePrevSegment(connector, index);\n }\n }\n else if (next) {\n var len = Point.distancePoints(next.points[0], next.points[1]);\n var length_1 = ((next.length || next.length === 0) ? next.length : len);\n if ((Math.abs(length_1) <= 5)) {\n this.removeNextSegment(connector, index);\n }\n }\n }\n this.commandHandler.updateEndPoint(connector, oldValues);\n // EJ2-65063 - While mouseUp set the selectedSegmentIndex as zero.\n connector.selectedSegmentIndex = 0;\n }\n }\n if (this.undoElement) {\n //let obj: SelectorModel;\n var obj = cloneObject(args.source);\n var entry = {\n type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n if (connector.isBezierEditing) {\n connector.isBezierEditing = false;\n }\n if (this.prevPosition !== this.startPosition) {\n var arg = {\n source: cloneBlazorObject(connector), state: 'Completed', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneObject(this.selectedSegment), cancel: false, segment: cloneBlazorObject(this.selectedSegment)\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg);\n }\n _super.prototype.mouseUp.call(this, args);\n };\n ConnectorEditing.prototype.removePrevSegment = function (connector, index) {\n var first = connector.segments[index - 2];\n var next = connector.segments[index + 1];\n //Bug 905092: Exception through while dragging segment and reverted back to its original position.\n //Added next condition to check the next segment is not null.\n if (next) {\n var length_2 = (next.length || next.length === 0) ? next.length : Point.distancePoints(next.points[0], next.points[1]);\n if (!(length_2 <= 5)) {\n var removeSegments = connector.segments.slice(index - 1, index + 1);\n var args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n var last = connector.segments[index + 1];\n connector.segments.splice(index - 1, 2);\n var segment = this.selectedSegment;\n if (segment.direction === 'Left' || segment.direction === 'Right') {\n first.points[first.points.length - 1].x = last.points[0].x;\n last.points[0].y = first.points[first.points.length - 1].y;\n }\n else {\n first.points[first.points.length - 1].y = last.points[0].y;\n last.points[0].x = first.points[first.points.length - 1].x;\n }\n if (segment.length || segment.length === 0) {\n this.findSegmentDirection(first);\n }\n this.findSegmentDirection(last);\n }\n }\n }\n };\n ConnectorEditing.prototype.findSegmentDirection = function (segment) {\n if (segment.direction && (segment.length || segment.length === 0)) {\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n segment.direction = Point.direction(segment.points[0], segment.points[segment.points.length - 1]);\n }\n };\n ConnectorEditing.prototype.removeNextSegment = function (connector, index) {\n var segment = this.selectedSegment;\n var first = connector.segments[index - 1];\n var last = connector.segments[index + 2];\n var next = connector.segments[index + 1];\n // eslint-disable-next-line\n var removeSegments;\n var args;\n if (next.length || next.length === 0) {\n removeSegments = connector.segments.slice(index, 2);\n args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n args = {\n element: cloneBlazorObject(connector), removeSegments: cloneBlazorObject(removeSegments),\n type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n connector.segments.splice(index, 2);\n if (segment.direction === 'Top' || segment.direction === 'Bottom') {\n last.points[0].y = segment.points[0].y;\n first.points[first.points.length - 1].x = last.points[0].x;\n }\n else {\n last.points[0].x = segment.points[0].x;\n first.points[first.points.length - 1].y = last.points[0].y;\n }\n }\n }\n else {\n removeSegments = connector.segments.slice(index + 1, 1);\n args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n connector.segments.splice(index + 1, 1);\n if (segment.direction === 'Top' || segment.direction === 'Bottom') {\n first.points[first.points.length - 1].x = next.points[next.points.length - 1].x;\n }\n else {\n first.points[first.points.length - 1].y = next.points[next.points.length - 1].y;\n }\n this.findSegmentDirection(first);\n segment.length = segment.direction = null;\n }\n }\n if (first && last && !args.cancel) {\n first.length = Point.distancePoints(first.points[0], last.points[0]);\n first.direction = Point.direction(first.points[0], last.points[0]);\n if (last.length || last.length === 0) {\n last.length = Point.distancePoints(first.points[first.points.length - 1], last.points[last.points.length - 1]);\n var point1 = first.points;\n var point2 = last.points;\n last.direction = Point.direction(point1[point1.length - 1], point2[point2.length - 1]);\n }\n }\n };\n /**\n * addOrRemoveSegment method Used to add or remove intermediate segments to the straight connector. \\\n *\n * @returns {void} addOrRemoveSegment method Used to add or remove intermediate segments to the straight connector.\n * @param {ConnectorModel} connector - provide the connector value in which segment to be added/removed.\n * @param {PointModel} point - provide the mouse clicked position as a point of the segment\n * @param {CommandHandler} commandHandler - provide the CommandHandler value that defines the behavior of commands\n * @private\n */\n ConnectorEditing.prototype.addOrRemoveSegment = function (connector, point, commandHandler) {\n var updateSeg;\n var segmentIndex;\n var segmentsChanged = [];\n var oldValues = { segments: connector.segments };\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = (connector.segments)[parseInt(i.toString(), 10)];\n if (contains(point, segment.point, connector.hitPadding)) {\n segmentIndex = i;\n updateSeg = true;\n //848696-Trigger SegmentCollectionChange Event for straight connector\n segmentsChanged.push(segment);\n var args = {\n element: connector, removeSegments: segmentsChanged, type: 'Removal', cancel: false\n };\n if (commandHandler) {\n commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n }\n }\n }\n //827745-support to edit Segment for Straight connector at runtime\n if (!this.commandHandler) {\n this.commandHandler = commandHandler;\n }\n if (updateSeg && segmentIndex !== undefined) {\n if (connector.segments && connector.segments[parseInt(segmentIndex.toString(), 10)] && connector.segments[parseInt(segmentIndex.toString(), 10)].type === 'Straight') {\n var segment = connector.segments[parseInt(segmentIndex.toString(), 10)];\n var previous = connector.segments[segmentIndex + 1];\n if (previous) {\n connector.segments.splice(segmentIndex, 1);\n previous.points[0] = segment.points[0];\n }\n }\n }\n else {\n this.commandHandler.enableServerDataBinding(false);\n var index = this.findIndex(connector, point);\n if (connector.segments && connector.segments[parseInt(index.toString(), 10)] && connector.segments[parseInt(index.toString(), 10)].type === 'Straight') {\n var segment = connector.segments[parseInt(index.toString(), 10)];\n var newseg = new StraightSegment(connector, 'segments', { type: 'Straight', point: point }, true);\n newseg.points[0] = segment.points[0];\n newseg.points[1] = point;\n segment.points[0] = point;\n connector.segments.splice(index, 0, newseg);\n updateSeg = true;\n //848696-Trigger SegmentCollectionchange Event for straight connector\n segmentsChanged.push(segment);\n var args = {\n element: connector, addSegments: segmentsChanged, type: 'Addition', cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n }\n this.commandHandler.enableServerDataBinding(true);\n }\n if (updateSeg) {\n this.commandHandler.updateEndPoint(connector, oldValues);\n }\n };\n ConnectorEditing.prototype.findIndex = function (connector, point) {\n var intersectingSegs = [];\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = connector.segments[parseInt(i.toString(), 10)];\n var rect = Rect.toBounds([segment.points[0], segment.points[1]]);\n rect.Inflate(connector.hitPadding);\n if (rect.containsPoint(point)) {\n intersectingSegs.push(segment);\n }\n }\n if (intersectingSegs.length === 1) {\n return connector.segments.indexOf(intersectingSegs[0]);\n }\n else {\n var ratio = void 0;\n var min = void 0;\n var index = void 0;\n var seg = void 0;\n var v = void 0;\n var h = void 0;\n for (var i = 0; i < intersectingSegs.length; i++) {\n seg = intersectingSegs[parseInt(i.toString(), 10)];\n v = (point.y - seg.points[0].y) / (seg.points[1].y - point.y);\n h = (point.x - seg.points[0].x) / (seg.points[1].x - point.x);\n ratio = Math.abs(v - h);\n if (i === 0) {\n min = ratio;\n index = 0;\n }\n if (ratio < min) {\n min = ratio;\n index = i;\n }\n }\n return connector.segments.indexOf(intersectingSegs[parseInt(index.toString(), 10)]);\n }\n };\n ConnectorEditing.prototype.dragOrthogonalSegment = function (obj, segment, point, segmentIndex) {\n var segmentPoint = { x: 0, y: 0 };\n var oldValues = { segments: obj.segments };\n segmentPoint.x = ((segment.points[parseInt(segmentIndex.toString(), 10)].x + segment.points[segmentIndex + 1].x) / 2);\n segmentPoint.y = ((segment.points[parseInt(segmentIndex.toString(), 10)].y + segment.points[segmentIndex + 1].y) / 2);\n var ty = point.y - segmentPoint.y;\n var tx = point.x - segmentPoint.x;\n var index = obj.segments.indexOf(segment);\n var update = false;\n //const orientation: string = (segment.points[0].y.toFixed(2) === segment.points[1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n //const prevSegment: OrthogonalSegmentModel; const nextSegment: OrthogonalSegmentModel;\n // EJ2-65063 - If the allowNodeOverlap is set as true means then we set the segment index which is going to drag in selectedSegmentIndex property\n if (obj.allowNodeOverlap) {\n obj.selectedSegmentIndex = index ? index : segmentIndex;\n }\n if (index !== -1) {\n if (index === 0 && obj.segments.length === 1 && segment.points.length === 2) {\n index = this.addSegments(obj, segment, tx, ty, index);\n update = true;\n }\n else if (index === obj.segments.length - 1 && (segment.direction === null || segment.length === null)) {\n index = this.addTerminalSegment(obj, segment, tx, ty, segmentIndex);\n update = true;\n }\n else if (index === 0) {\n index = this.insertFirstSegment(obj, segment, tx, ty, index);\n update = true;\n }\n if (index) {\n if (update) {\n this.selectedSegment = segment = obj.segments[parseInt(index.toString(), 10)];\n this.segmentIndex = 0;\n }\n this.updateAdjacentSegments(obj, index, tx, ty);\n this.commandHandler.updateEndPoint(obj, oldValues);\n }\n }\n return true;\n };\n ConnectorEditing.prototype.addSegments = function (obj, segment, tx, ty, coll) {\n var index;\n var segments = []; //let len: number;\n var length = Point.distancePoints(segment.points[0], segment.points[1]);\n var segmentDirection = Point.direction(segment.points[0], segment.points[1]);\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 4 }, true));\n var direction = (segment.points[0].y === segment.points[1].y) ? ((ty > 0) ? 'Bottom' : 'Top') : ((tx > 0) ? 'Right' : 'Left');\n var len = (segment.points[0].x === segment.points[1].x) ? ty : tx;\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: direction, length: len }, true));\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 2 }, true));\n var args = {\n element: obj, addSegments: segments, type: 'Addition', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n obj.segments = segments.concat(obj.segments);\n index = coll + 2;\n }\n return index;\n };\n // eslint-disable-next-line\n ConnectorEditing.prototype.insertFirstSegment = function (obj, segment, tx, ty, coll) {\n var direction;\n var length;\n var segments = [];\n var segValues;\n var index;\n var insertseg;\n if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) {\n var prev = void 0;\n for (var i = 0; i < segment.points.length - 1; i++) {\n var len = Point.distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n var dir = Point.direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n insertseg = new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: dir, length: len }, true);\n if (insertseg.length === 0) {\n if (prev && (prev.direction === 'Top' || prev.direction === 'Bottom')) {\n insertseg.direction = tx > 0 ? 'Right' : 'Left';\n }\n else {\n insertseg.direction = ty > 0 ? 'Bottom' : 'Top';\n }\n }\n prev = insertseg;\n segments.push(insertseg);\n }\n }\n else {\n segValues = { type: 'Orthogonal', direction: segment.direction, length: segment.length / 3 };\n segments.push(new OrthogonalSegment(obj, 'segments', segValues, true));\n if (segment.direction === 'Bottom' || segment.direction === 'Top') {\n length = Math.abs(tx);\n direction = tx > 0 ? 'Right' : 'Left';\n }\n else {\n length = Math.abs(ty);\n direction = ty > 0 ? 'Bottom' : 'Top';\n }\n insertseg = new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: direction, length: length }, true);\n segments.push(insertseg);\n }\n var args = {\n element: obj, addSegments: segments, type: 'Addition', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) {\n obj.segments.splice(0, 1);\n index = 1;\n }\n else {\n var nextseg = obj.segments[1];\n if (nextseg && nextseg.length) {\n nextseg.length = (direction !== nextseg.direction) ? nextseg.length + length : nextseg.length - length;\n }\n index = 2;\n segment.length = 2 * segment.length / 3;\n }\n obj.segments = segments.concat(obj.segments);\n }\n return index;\n };\n ConnectorEditing.prototype.updateAdjacentSegments = function (obj, index, tx, ty) {\n var current = obj.segments[parseInt(index.toString(), 10)];\n var endPoint = current.points[current.points.length - 1];\n var startPoint = current.points[0];\n var isNextUpdate = true;\n if (current.type === 'Orthogonal') {\n current.points[0] = startPoint;\n current.points[current.points.length - 1] = endPoint;\n var prev = obj.segments[index - 1];\n if (prev) {\n isNextUpdate = this.updatePreviousSegment(tx, ty, obj, index);\n }\n if (obj.segments.length - 1 > index && isNextUpdate) {\n var nextSegment = obj.segments[index + 1];\n this.updateNextSegment(obj, current, nextSegment, tx, ty);\n }\n }\n };\n ConnectorEditing.prototype.addTerminalSegment = function (connector, segment, tx, ty, segmentIndex) {\n //const oldValues: Connector = { segments: connector.segments } as Connector;\n var index = connector.segments.indexOf(segment);\n var first;\n var insertseg;\n var len;\n var dir;\n var segments = [];\n var removeSegment = connector.segments.pop();\n var last = connector.segments[connector.segments.length - 1];\n first = (last && last.type === 'Orthogonal') ? last : null;\n for (var i = 0; i < segment.points.length - 2; i++) {\n len = Point.distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n dir = Point.direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n insertseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: dir }, true);\n segments.push(insertseg);\n first = insertseg;\n }\n var sec = segmentIndex;\n if (segment.points.length === 2 || sec === segment.points.length - 2) {\n if (first) {\n first.length += 5;\n }\n if (sec !== undefined) {\n //let newseg: OrthogonalSegment;\n len = 2 * Point.distancePoints(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]) / 3;\n dir = Point.direction(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]);\n var newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: dir });\n segments.push(newseg);\n }\n }\n var lastseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segments.push(lastseg);\n var args = {\n element: connector, addSegments: segments, type: 'Addition', cancel: false\n };\n var args1 = {\n element: cloneBlazorObject(connector), addSegments: cloneBlazorObject(segments),\n type: 'Addition', cancel: args.cancel\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args1);\n if (!args1.cancel) {\n connector.segments = connector.segments.concat(segments);\n index = index + segmentIndex;\n }\n else {\n connector.segments.push(removeSegment);\n }\n this.commandHandler.updateEndPoint(connector);\n return index;\n };\n // eslint-disable-next-line\n ConnectorEditing.prototype.updatePortSegment = function (prev, connector, index, tx, ty) {\n if (index === 1 && prev.points.length === 2 && prev.length < 0) {\n var source = connector.sourceWrapper.corners;\n var current = connector.segments[parseInt(index.toString(), 10)];\n var next = connector.segments[index + 1];\n var newseg = void 0;\n var segment = [];\n newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: 13, direction: prev.direction });\n segment.push(newseg);\n var len = void 0;\n if (current.direction === 'Left') {\n len = (current.points[0].x - (source.middleLeft.x - 20));\n }\n else if (current.direction === 'Right') {\n len = ((source.middleRight.x + 20) - current.points[0].x);\n }\n else if (current.direction === 'Bottom') {\n len = ((source.bottomCenter.y + 20) - current.points[0].y);\n }\n else {\n len = (current.points[0].y - (source.topCenter.y - 20));\n }\n //const dir: Direction = current.direction;\n newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: current.direction });\n segment.push(newseg);\n current.length = current.length - len;\n if (next && next.length && next.direction) {\n if (next.direction === prev.direction) {\n next.length -= 13;\n }\n else if (next.direction === getOppositeDirection(prev.direction)) {\n next.length += 13;\n }\n }\n connector.segments = segment.concat(connector.segments);\n this.selectedSegment = connector.segments[3];\n }\n };\n ConnectorEditing.prototype.updatePreviousSegment = function (tx, ty, connector, index) {\n var current = connector.segments[parseInt(index.toString(), 10)];\n var prev = connector.segments[index - 1];\n //const firstSegment: boolean = (index === 1) ? true : false;\n prev.points[prev.points.length - 1] = current.points[0];\n var isSourceNode = (connector.sourceID && connector.sourcePortID === '') ? false : true;\n var isNextUpdate = true;\n if (prev.type === 'Orthogonal') {\n if (prev.direction === 'Bottom') {\n prev.length += ty;\n }\n else if (prev.direction === 'Top') {\n prev.length -= ty;\n }\n else if (prev.direction === 'Right') {\n prev.length += tx;\n }\n else {\n prev.length -= tx;\n }\n // EJ2-65063 - Added the below condition !allowNodeOverlap to prevent the segment to split into two segments while intersect with source node.\n if (connector.sourcePortID !== '' && prev.length < 0 && !connector.allowNodeOverlap) {\n this.updatePortSegment(prev, connector, index, tx, ty);\n }\n else if (connector.sourceID && connector.sourcePortID === '' && prev.length < 0 && index === 1) {\n isNextUpdate = false;\n this.updateFirstSegment(connector, current);\n }\n if (isSourceNode) {\n this.changeSegmentDirection(prev, connector);\n }\n }\n return isNextUpdate;\n };\n ConnectorEditing.prototype.changeSegmentDirection = function (segment, connector) {\n if (!connector.maxSegmentThumb) {\n if (segment.length < 0) {\n segment.direction = getOppositeDirection(segment.direction);\n segment.length *= -1;\n }\n }\n };\n ConnectorEditing.prototype.updateNextSegment = function (obj, current, next, tx, ty) {\n next.points[0] = current.points[current.points.length - 1];\n if (next && next.type === 'Orthogonal') {\n if (next.length || next.length === 0) {\n if (next.direction === 'Left' || next.direction === 'Right') {\n if (tx !== 0) {\n next.length = (next.direction === 'Right') ? next.length - tx : next.length + tx;\n if (next.length || next.length === 0) {\n this.changeSegmentDirection(next, obj);\n }\n }\n }\n else {\n if (ty !== 0) {\n next.length = (next.direction === 'Bottom') ? next.length - ty : next.length + ty;\n if (next.length || next.length === 0) {\n this.changeSegmentDirection(next, obj);\n }\n }\n }\n }\n }\n };\n ConnectorEditing.prototype.updateFirstSegment = function (connector, selectedSegment) {\n var index = connector.segments.indexOf(selectedSegment);\n var insertfirst = false;\n var current = connector.segments[parseInt(index.toString(), 10)];\n var prev = connector.segments[index - 1];\n var con = connector;\n var sourcePoint;\n var oldValues = { segments: connector.segments };\n if (prev.length < 0 && connector.sourceID) {\n var sourceNode = connector.sourceWrapper.corners;\n var segments = [];\n var segValues = void 0;\n var removeCurrentPrev = false;\n this.changeSegmentDirection(current, connector);\n var next = connector.segments[index + 1];\n var nextNext = connector.segments[index + 2];\n if (next) {\n this.changeSegmentDirection(next, connector);\n }\n if (nextNext) {\n this.changeSegmentDirection(nextNext, connector);\n }\n switch (prev.direction) {\n case 'Top':\n case 'Bottom':\n sourcePoint = (current.length > 0 && current.direction === 'Left') ? sourceNode.middleLeft : sourceNode.middleRight;\n if (current.length > sourceNode.width / 2) {\n if (Math.abs(prev.length) < sourceNode.height / 2) {\n prev.length = Point.distancePoints(sourceNode.center, prev.points[prev.points.length - 1]);\n current.points[0].x = sourcePoint.x;\n current.length = Point.distancePoints(current.points[0], current.points[current.points.length - 1]);\n current.length -= 20;\n insertfirst = true;\n }\n }\n else {\n if (next && next.direction && next.length) {\n next.points[0].y = sourcePoint.y;\n next.points[0].x = next.points[next.points.length - 1].x = (current.direction === 'Right') ?\n sourcePoint.x + 20 : sourcePoint.x - 20;\n }\n insertfirst = true;\n removeCurrentPrev = true;\n }\n break;\n case 'Left':\n case 'Right':\n sourcePoint = (current.length > 0 && current.direction === 'Top') ? sourceNode.topCenter : sourceNode.bottomCenter;\n if (current.length > sourceNode.height / 2) {\n if (Math.abs(prev.length) < sourceNode.width / 2) {\n prev.length = Point.distancePoints(sourceNode.center, prev.points[prev.points.length - 1]);\n current.points[0].y = sourcePoint.y;\n current.length = Point.distancePoints(current.points[0], current.points[current.points.length - 1]);\n current.length -= 20;\n insertfirst = true;\n }\n }\n else {\n if (next && next.direction && next.length) {\n next.points[0].x = sourcePoint.x;\n next.points[0].y = next.points[next.points.length - 1].y = (current.direction === 'Bottom') ?\n sourcePoint.y + 20 : sourcePoint.y - 20;\n }\n insertfirst = true;\n removeCurrentPrev = true;\n }\n break;\n }\n this.changeSegmentDirection(prev, connector);\n this.changeSegmentDirection(current, connector);\n if (insertfirst) {\n segValues = { type: 'Orthogonal', direction: current.direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n if (removeCurrentPrev) {\n if (next && next.direction && next.length) {\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n }\n if (nextNext && nextNext.direction && nextNext.length) {\n nextNext.length = Point.distancePoints(next.points[next.points.length - 1], nextNext.points[nextNext.points.length - 1]);\n }\n connector.segments.splice(index - 1, 2);\n }\n connector.segments = segments.concat(connector.segments);\n }\n this.selectedSegment = ((removeCurrentPrev) ? connector.segments[index - 1] :\n connector.segments[index + 1]);\n this.commandHandler.updateEndPoint(connector, oldValues);\n }\n };\n ConnectorEditing.prototype.updateLastSegment = function (connector, selectedSegment) {\n if (connector.targetID && connector.targetPortID === '') {\n var line1Start = void 0;\n var line1End = void 0;\n var line2Start = void 0;\n var line2End = void 0;\n var corners = connector.targetWrapper.corners;\n var firstSegPoint = selectedSegment.points[0];\n var lastSegPoint = selectedSegment.points[selectedSegment.points.length - 1];\n if (selectedSegment.direction === 'Right' || selectedSegment.direction === 'Left') {\n line1Start = { x: firstSegPoint.x, y: firstSegPoint.y };\n line1End = {\n x: (selectedSegment.direction === 'Left') ? lastSegPoint.x - corners.width / 2 : lastSegPoint.x + corners.width / 2,\n y: lastSegPoint.y\n };\n line2Start = { x: corners.center.x, y: corners.center.y - corners.height };\n line2End = { x: corners.center.x, y: corners.center.y + corners.height };\n }\n else {\n line1Start = { x: firstSegPoint.x, y: firstSegPoint.y };\n line1End = {\n x: lastSegPoint.x,\n y: (selectedSegment.direction === 'Bottom') ? lastSegPoint.y + corners.height / 2 : lastSegPoint.y - corners.height / 2\n };\n line2Start = { x: corners.center.x - corners.width, y: corners.center.y };\n line2End = { x: corners.center.x + corners.width, y: corners.center.y };\n }\n var line1 = { x1: line1Start.x, y1: line1Start.y, x2: line1End.x, y2: line1End.y };\n var line2 = { x1: line2Start.x, y1: line2Start.y, x2: line2End.x, y2: line2End.y };\n return (intersect3(line1, line2).enabled);\n }\n return false;\n };\n /**\n *To destroy the module\n *\n * @returns {void} To destroy the module\n */\n ConnectorEditing.prototype.destroy = function () {\n /**\n * Destroys the connector editing module\n */\n };\n /**\n * Get module name.\n */\n /**\n * Get module name.\\\n *\n * @returns { string } Get module name.\\\n */\n ConnectorEditing.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'ConnectorEditingTool';\n };\n return ConnectorEditing;\n}(ToolBase));\nexport { ConnectorEditing };\n","/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-case-declarations */\nimport { Browser } from '@syncfusion/ej2-base';\nimport { Point } from '../primitives/point';\nimport { Container } from '../core/containers/container';\nimport { Connector } from '../objects/connector';\nimport { NodeDrawingTool, ConnectorDrawingTool, TextDrawingTool, FreeHandTool } from './tool';\nimport { PolygonDrawingTool, PolyLineDrawingTool, FixedUserHandleTool } from './tool';\nimport { Native, Node, Lane, Phase, UmlClassAttribute, UmlClassMethod, UmlEnumerationMember } from '../objects/node';\nimport { SelectTool, MoveTool, ResizeTool, RotateTool, ConnectTool, ExpandTool, LabelTool, ZoomPanTool } from './tool';\nimport { LabelDragTool, LabelResizeTool, LabelRotateTool } from './tool';\nimport { ConnectorEditing } from './connector-editing';\nimport { Selector } from '../objects/node';\nimport { findToolToActivate, isSelected, getCursor, contains } from './actions';\nimport { DiagramAction, KeyModifiers, Keys, DiagramEvent, DiagramTools, RendererAction, DiagramConstraints, PortConstraints } from '../enum/enum';\nimport { BlazorAction, ScrollActions } from '../enum/enum';\nimport { isPointOverConnector, findObjectType, insertObject, getObjectFromCollection, getTooltipOffset, findParentInSwimlane, findPort } from '../utility/diagram-util';\nimport { getObjectType, getInOutConnectPorts, removeChildNodes, cloneBlazorObject, checkPort } from '../utility/diagram-util';\nimport { canZoomPan, canDraw, canDrag, canZoomTextEdit, canVitualize, canPreventClearSelection, canSingleSelect, canMultiSelect } from './../utility/constraints-util';\nimport { selectionHasConnector } from '../utility/diagram-util';\nimport { canMove, canEnablePointerEvents, canSelect, canEnableToolTip } from './../utility/constraints-util';\nimport { canOutConnect, canInConnect, canPortInConnect, canPortOutConnect, canAllowDrop, canUserInteract, defaultTool } from './../utility/constraints-util';\nimport { updateTooltip } from '../objects/tooltip';\nimport { PortVisibility, NodeConstraints, ConnectorConstraints, AnnotationConstraints, RealAction } from '../enum/enum';\nimport { addTouchPointer, measureHtmlText, getAdornerLayerSvg } from '../utility/dom-util';\nimport { TextElement } from '../core/elements/text-element';\nimport { Size } from '../primitives/size';\nimport { cloneObject as clone, cloneObject } from './../utility/base-util';\nimport { Rect } from '../primitives/rect';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix } from './../primitives/matrix';\nimport { removeRulerMarkers, drawRulerMarkers, getRulerSize, updateRuler } from '../ruler/ruler';\nimport { canContinuousDraw, canDrawOnce } from '../utility/constraints-util';\nimport { getFunction, cornersPointsBeforeRotation } from '../utility/base-util';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { updateCanvasBounds, checkChildNodeInContainer, checkParentAsContainer, removeChildInContainer } from './container-interaction';\nimport { moveChildInStack, renderStackHighlighter } from './container-interaction';\nimport { updateSwimLaneObject } from '../utility/swim-lane-util';\nimport { getConnectors, updateHeaderMaxWidth, laneInterChanged, updateConnectorsProperties } from '../utility/swim-lane-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { PathElement, randomId } from '../index';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { PathPort, PointPort } from '../objects/port';\nimport { Overview } from '../../overview/overview';\n/**\n * This module handles the mouse and touch events\n */\nvar DiagramEventHandler = /** @class */ (function () {\n /** @private */\n function DiagramEventHandler(diagram, commandHandler) {\n this.currentAction = 'None';\n this.previousAction = 'None';\n this.previousTarget = null;\n /** @private */\n this.touchArgs = undefined;\n /** @private */\n this.focus = false;\n this.isBlocked = false;\n this.isMouseDown = false;\n this.inAction = false;\n this.doingAutoScroll = false;\n this.diagram = null;\n this.objectFinder = null;\n this.tool = null;\n this.eventArgs = null;\n this.previousElement = null;\n this.isKeyUp = true;\n this.keyCount = 0;\n this.isNudgeKey = false;\n this.commandObj = {};\n this.keyArgs = {};\n this.diagram = diagram;\n this.objectFinder = new ObjectFinder();\n this.commandHandler = commandHandler;\n }\n Object.defineProperty(DiagramEventHandler.prototype, \"action\", {\n get: function () {\n return this.currentAction;\n },\n set: function (action) {\n if (action !== this.currentAction) {\n if (this.currentAction === 'PortDraw') {\n this.diagram.tool &= ~DiagramTools.DrawOnce;\n //EJ2-70550 - Connector disconnected from source and target while dragging mutliple selected element\n if (this.diagram.currentDrawingObject) {\n this.diagram.currentDrawingObject = null;\n }\n if (this.tool) {\n this.tool.mouseUp({ position: this.currentPosition });\n }\n this.tool = null;\n }\n if (action === 'Rotate' || action === 'LabelRotate') {\n this.diagram.diagramCanvas.classList.add('e-diagram-rotate');\n }\n else if (this.currentAction === 'Rotate' || this.currentAction === 'LabelRotate') {\n this.diagram.diagramCanvas.classList.remove('e-diagram-rotate');\n }\n this.currentAction = action;\n //Ej2-26204 - Exception occurs when remove method called without mouse Interaction\n if (this.currentAction !== 'None' && this.currentAction !== 'Select' &&\n !(this.diagram.diagramActions & DiagramAction.TextEdit) ||\n (this.currentPosition && this.commandHandler.isUserHandle(this.currentPosition))) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.ToolAction;\n }\n else {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.ToolAction;\n }\n this.diagram.setCursor(this.diagram.getCursor(action, this.inAction));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramEventHandler.prototype, \"blocked\", {\n get: function () {\n return this.isBlocked;\n },\n set: function (blocked) {\n this.isBlocked = blocked;\n if (this.blocked) {\n this.diagram.setCursor('not-allowed');\n }\n else {\n this.diagram.setCursor(this.diagram.getCursor(this.action, this.inAction));\n }\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n DiagramEventHandler.prototype.getMousePosition = function (e) {\n var touchArg;\n var offsetX;\n var offsetY;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n offsetX = touchArg.changedTouches[0].clientX;\n offsetY = touchArg.changedTouches[0].clientY;\n }\n else {\n offsetX = e.clientX;\n offsetY = e.clientY;\n }\n var position = new Size();\n position = getRulerSize(this.diagram);\n var boundingRect = this.diagram.element.getBoundingClientRect();\n offsetX = offsetX + this.diagram.diagramCanvas.scrollLeft - boundingRect.left - position.width;\n offsetY = offsetY + this.diagram.diagramCanvas.scrollTop - boundingRect.top - position.height;\n offsetX /= this.diagram.scroller.transform.scale;\n offsetY /= this.diagram.scroller.transform.scale;\n offsetX -= this.diagram.scroller.transform.tx;\n offsetY -= this.diagram.scroller.transform.ty;\n return { x: offsetX, y: offsetY };\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.windowResize = function (evt) {\n var _this = this;\n if (this.resizeTo) {\n clearTimeout(this.resizeTo);\n }\n this.resizeTo = setTimeout(function () {\n _this.updateViewPortSize(_this.diagram.element);\n }, 300);\n return false;\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.updateViewPortSize = function (element) {\n var container = document.getElementById(element.id);\n if (container) {\n var bounds = container.getBoundingClientRect();\n this.diagram.scroller.setViewPortSize(bounds.width, bounds.height);\n var position = new Size();\n position = getRulerSize(this.diagram);\n var width = this.diagram.getSizeValue(this.diagram.width, position.width);\n var height = this.diagram.getSizeValue(this.diagram.height, position.height);\n this.diagram.diagramCanvas.style.width = width;\n this.diagram.diagramCanvas.style.height = height;\n this.diagram.scroller.setSize();\n this.diagram.transformLayers();\n if (this.diagram.rulerSettings.showRulers) {\n updateRuler(this.diagram);\n }\n if (this.diagram.views.length > 1) {\n //884316 - updating overview after window resize\n for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.diagram.views[\"\" + temp];\n if ((view instanceof Overview)) {\n //Calling onproperty change method to update overview.\n view.onPropertyChanged({ sourceID: view.sourceID }, {});\n }\n }\n }\n }\n };\n /** @private */\n DiagramEventHandler.prototype.canHideResizers = function () {\n return ((this.tool instanceof MoveTool || this.tool instanceof RotateTool) && this.isMouseDown);\n };\n /** @private */\n DiagramEventHandler.prototype.updateCursor = function () {\n if ((this.diagram.selectedItems.nodes.length === 1 || this.diagram.selectedItems.connectors.length === 1)) {\n var list = [];\n list = list.concat(this.diagram.selectedItems.nodes, this.diagram.selectedItems.connectors);\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.blocked = (this.eventArgs && this.eventArgs.source && !canMove(this.eventArgs.source)) ? false :\n (this.isMouseDown && list.length === 1 && this.tool instanceof SelectTool && !canMove(list[0]));\n }\n };\n DiagramEventHandler.prototype.isForeignObject = function (target, isTextBox) {\n var foreignobject = target;\n if (foreignobject) {\n while (foreignobject.parentNode !== null) {\n if (typeof foreignobject.className === 'string' &&\n ((!isTextBox && foreignobject.className.indexOf('foreign-object') !== -1) ||\n (isTextBox && foreignobject.className.indexOf('e-diagram-text-edit') !== -1))) {\n return foreignobject;\n }\n else {\n foreignobject = foreignobject.parentNode;\n }\n }\n }\n return null;\n };\n DiagramEventHandler.prototype.isMetaKey = function (evt) {\n //EJ2-55887 - added the beow code to perform pinch zoom in mac os and windows while pinch zoom all browser return ctrl key as true.\n if (evt.type === 'mousewheel') {\n return evt.ctrlKey;\n }\n else {\n return navigator.platform.match('Mac') ? evt.metaKey : evt.ctrlKey;\n }\n };\n DiagramEventHandler.prototype.renderUmlHighLighter = function (args) {\n this.diagram.commandHandler.removeStackHighlighter();\n var node = this.diagram.selectedItems.nodes[0];\n if (node && node.container && node.container.type === 'Stack' && node.shape.type === 'UmlClassifier') {\n var bound = node.wrapper.bounds;\n if (!bound.containsPoint(this.currentPosition)) {\n // eslint-disable-next-line max-len\n var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y });\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n if (target && target.parentId && (target.parentId === node.id)) {\n // eslint-disable-next-line max-len\n var isVertical = this.diagram.nameTable[target.parentId].container.orientation === 'Vertical';\n renderStackHighlighter(target.wrapper, isVertical, args.position, this.diagram, true);\n }\n }\n }\n };\n DiagramEventHandler.prototype.isDeleteKey = function (key, value) {\n return (navigator.platform.match('Mac') && key === 'Backspace' && value === 'delete');\n };\n DiagramEventHandler.prototype.isMouseOnScrollBar = function (evt) {\n var x = evt.offsetX;\n var y = evt.offsetY;\n var diagramCanvas = this.diagram.diagramCanvas;\n var height = diagramCanvas.offsetHeight;\n var width = diagramCanvas.offsetWidth;\n var topLeft;\n var topRight;\n var bottomLeft;\n var bottomRight;\n var bounds;\n if (height < diagramCanvas.scrollHeight) {\n //default scrollbar width in browser is '17pixels'.\n topLeft = { x: (width - 17), y: 0 };\n topRight = { x: width, y: 0 };\n bottomLeft = { x: (width - 17), y: height };\n bottomRight = { x: width, y: height };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n // EJ2-64563-Added below code to calculate the bounds x and y value if vertical offset != 0\n if (this.diagram.scroller.verticalOffset !== 0) {\n bounds.x = bounds.x - this.diagram.scroller.horizontalOffset;\n bounds.y = bounds.y - this.diagram.scroller.verticalOffset;\n }\n if (bounds.containsPoint({ x: x, y: y })) {\n return true;\n }\n }\n if (width < diagramCanvas.scrollWidth) {\n topLeft = { x: 0, y: (height - 17) };\n topRight = { x: width, y: (height - 17) };\n bottomLeft = { x: 0, y: height };\n bottomRight = { x: width, y: height };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n // EJ2-64563-Added below code to calculate the bounds x and y value if horizontal offset != 0\n if (this.diagram.scroller.horizontalOffset !== 0) {\n bounds.x = bounds.x - this.diagram.scroller.horizontalOffset;\n bounds.y = bounds.y - this.diagram.scroller.verticalOffset;\n }\n if (bounds.containsPoint({ x: x, y: y })) {\n return true;\n }\n }\n return false;\n };\n /** @private */\n DiagramEventHandler.prototype.updateVirtualization = function () {\n var _this = this;\n var delay = 50;\n //let removeObjectInterval: Object;\n var removeObjectInterval = setInterval(function (args) {\n _this.diagram.removeVirtualObjects(removeObjectInterval);\n }, delay);\n setTimeout(function () {\n _this.diagram.deleteVirtualObject = true;\n }, delay);\n };\n DiagramEventHandler.prototype.checkPreviousAction = function () {\n if (this.action !== this.previousAction && this.diagram.selectedItems.userHandles.length) {\n for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) {\n if (this.previousAction && this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)]) {\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseLeave);\n this.previousAction = 'None';\n }\n }\n }\n if (this.action !== this.previousAction) {\n // If the mouse leaves the fixed user handle, the tooltip is closed\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseLeave, this.targetItem, this.previousTarget);\n this.previousTarget = null;\n this.targetItem = null;\n }\n };\n DiagramEventHandler.prototype.checkUserHandleEvent = function (eventName) {\n if (this.diagram.selectedItems && this.diagram.selectedItems.userHandles.length > 0) {\n var currentAction = (eventName === DiagramEvent.onUserHandleMouseLeave) ? this.previousAction : this.action;\n var arg = { element: undefined };\n for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) {\n if ((currentAction === this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name) ||\n (eventName === DiagramEvent.onUserHandleMouseUp && currentAction === 'Select')) {\n arg.element = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)];\n this.userHandle(eventName, i, arg, null);\n }\n }\n }\n };\n DiagramEventHandler.prototype.userHandle = function (eventName, i, arg, targetItem) {\n if (eventName === DiagramEvent.onUserHandleMouseEnter || eventName === DiagramEvent.onFixedUserHandleMouseEnter) {\n this.previousAction = this.action;\n // EJ2-32213- Added the below code to check whether the userhandle has tooltip content.\n // If userhandle has tooltip content then we open the tooltip based on the userhandle shape\n if (arg.element.tooltip && arg.element.tooltip.openOn === 'Auto' && arg.element.tooltip.content !== '') {\n updateTooltip(this.diagram, arg.element);\n var targetEle = void 0;\n if (arg.element.pathData) {\n if (eventName === DiagramEvent.onUserHandleMouseEnter) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle');\n }\n else if (eventName === DiagramEvent.onFixedUserHandleMouseEnter) {\n targetEle = document.getElementById(targetItem.id + '_' + targetItem.fixedUserHandles[parseInt(i.toString(), 10)].id + '_groupElement');\n }\n }\n else if (arg.element.source) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_image');\n }\n else if (arg.element.content) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_native_element');\n }\n else {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_html_element');\n }\n //892828: Flickering of tooltip while hovering userhandle\n if (arg.element.tooltip.openOn === 'Auto' && (arg.element !== this.isUserHandleHover)) {\n this.isUserHandleHover = arg.element;\n this.diagram.tooltipObject.open(targetEle);\n }\n }\n this.diagram.triggerEvent(eventName, arg);\n }\n if (eventName === DiagramEvent.onUserHandleMouseDown) {\n this.userHandleObject = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name;\n this.diagram.triggerEvent(eventName, arg);\n }\n else if (eventName === DiagramEvent.onFixedUserHandleMouseDown) {\n this.diagram.triggerEvent(eventName, arg);\n }\n if (eventName === DiagramEvent.onUserHandleMouseUp) {\n var element = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle');\n if (this.commandHandler.isUserHandle(this.currentPosition)\n && element && element.id === this.userHandleObject + '_userhandle') {\n //EJ2-838423 -onUserHandleMouseUp event triggers multiple times\n this.diagram.triggerEvent(eventName, arg);\n }\n }\n else if (eventName === DiagramEvent.onFixedUserHandleMouseUp) {\n this.diagram.triggerEvent(eventName, arg);\n }\n if (eventName === DiagramEvent.onUserHandleMouseLeave || eventName === DiagramEvent.onFixedUserHandleMouseLeave) {\n if (this.diagram.tooltipObject && this.diagram.tooltipObject.openOn !== 'Custom') {\n this.isUserHandleHover = null;\n this.diagram.tooltipObject.close();\n }\n this.diagram.triggerEvent(eventName, arg);\n }\n };\n // In the method, verify the fixed user handle and manage the opening and closing of the tooltip according to mouse events\n DiagramEventHandler.prototype.checkFixedUserHandleEvent = function (eventName, targetItem, wrapper) {\n if (targetItem && targetItem.fixedUserHandles.length > 0) {\n var arg = { element: undefined };\n var userid = void 0;\n var currentAction = void 0;\n for (var i = 0; i < targetItem.fixedUserHandles.length; i++) {\n userid = targetItem.fixedUserHandles[parseInt(i.toString(), 10)].id;\n if (wrapper && wrapper.id && (wrapper.id.indexOf(userid) > -1)) {\n currentAction = userid;\n this.previousTarget = wrapper;\n this.targetItem = targetItem;\n }\n if (currentAction === targetItem.fixedUserHandles[parseInt(i.toString(), 10)].id) {\n arg.element = targetItem.fixedUserHandles[parseInt(i.toString(), 10)];\n this.userHandle(eventName, i, arg, targetItem);\n }\n }\n }\n };\n DiagramEventHandler.prototype.mouseDown = function (evt) {\n var _this = this;\n //Bug 913785: Tooltip for node is not showing when touch and hold on node in mobile device.\n if (evt.type === 'touchstart') {\n this.timeOutTapHold = setTimeout(function () {\n if (_this.action === 'Select' || _this.action === 'Drag') {\n _this.mouseMove(evt, undefined);\n }\n }, 500);\n }\n // EJ2-57541 - Added the below code to check whether diagram tool is instance of node drawing tool or connector drawing tool.\n // If node or connector drawing tool means then we have returned without perform any operation.\n if (this.inAction === true && ((this.tool) instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool)) {\n return;\n }\n this.focus = true;\n //let touches: TouchList;\n var touches = evt.touches;\n var isSymblDragging = document.getElementsByClassName('e-dragclone')[0] ? true : false;\n if (this.isMouseOnScrollBar(evt) && !isSymblDragging) {\n this.isScrolling = true;\n evt.preventDefault();\n return;\n }\n // commanded by gowtham- unwanted cloning of selectedItems\n // if (isBlazor()) {\n // this.commandHandler.oldSelectedObjects = cloneObject(this.diagram.selectedItems);\n // }\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseDown, this.targetItem, this.previousTarget);\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseDown);\n if (!this.checkEditBoxAsTarget(evt) && (canUserInteract(this.diagram)) ||\n (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n if (this.action === 'Select' || this.action === 'Drag') {\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, true);\n }\n if (((this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)\n && (evt.button === 2 || evt.buttons === 2))) {\n // eslint-disable-next-line\n var arg = {\n element: cloneBlazorObject(this.diagram), position: cloneBlazorObject(this.currentPosition),\n count: evt.buttons, actualObject: cloneBlazorObject(this.eventArgs.actualObject),\n button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right'\n };\n this.inAction = false;\n this.tool.mouseUp(this.eventArgs);\n }\n else if (((this.inAction === true) && this.isMouseDown === true &&\n (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool))) {\n this.isMouseDown = true;\n this.eventArgs = {};\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n this.eventArgs.position = this.currentPosition;\n this.tool.mouseDown(this.eventArgs);\n }\n else {\n this.isMouseDown = true;\n this.currentPosition = this.prevPosition = this.getMousePosition(evt);\n this.eventArgs = {};\n if (this.diagram.textEditing && !this.isMouseOnScrollBar(evt)) {\n this.diagram.endEdit();\n this.diagram.textEditing = false;\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.diagram.mode === 'Canvas' && this.diagram.scroller.currentZoom !== 1) {\n this.diagram.refreshDiagramLayer();\n }\n }\n var targetObject = this.getTargetElement();\n this.action = this.diagram.findActionToBeDone(targetObject.obj, targetObject.sourceElement, this.currentPosition, targetObject.target);\n //work around - correct it\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey && evt.shiftKey && this.diagram.connectorEditingToolModule) {\n this.action = 'SegmentEnd';\n //Bug 892496: Unable to unselect selected node using CTRL+Click when zoompan is enabled.\n //Added this condition whether single select or multi select is enabled in diagram tool.\n }\n else if ((ctrlKey || evt.shiftKey) && (canSingleSelect(this.diagram) || canMultiSelect(this.diagram))) {\n this.action = 'Select';\n }\n this.tool = this.diagram.getTool(this.action);\n if (!this.tool) {\n this.action = 'Select';\n this.tool = this.diagram.getTool(this.action);\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n if (ctrlKey || evt.shiftKey) {\n var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } : { ctrlKey: true };\n this.eventArgs.info = info;\n }\n this.eventArgs.position = this.currentPosition;\n //834641 - Support to unselect the diagram element that is already selected\n var prevSelectedNode = this.diagram.selectedItems.nodes;\n this.tool.mouseDown(this.eventArgs);\n if (this.diagram.selectedItems.canToggleSelection && prevSelectedNode\n && this.diagram.selectedItems.nodes && this.tool instanceof MoveTool) {\n for (var i = 0; i < prevSelectedNode.length; i++) {\n if (prevSelectedNode[parseInt(i.toString(), 10)].id\n !== this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].id) {\n this.isSwimlaneSelected = true;\n }\n }\n }\n this.initialEventArgs = { source: this.eventArgs.source, sourceWrapper: this.eventArgs.sourceWrapper };\n this.initialEventArgs.position = this.currentPosition;\n this.initialEventArgs.info = this.eventArgs.info;\n this.inAction = false;\n if (evt.type === 'touchstart') {\n if (touches && touches.length >= 2) {\n this.touchStartList = addTouchPointer(this.touchStartList, evt, touches);\n }\n if (!touches) {\n evt.preventDefault();\n }\n }\n }\n }\n if (!this.isForeignObject(evt.target) && !this.isForeignObject(evt.target, true) && (!touches)) {\n evt.preventDefault();\n }\n };\n /** @private */\n DiagramEventHandler.prototype.mouseMoveExtend = function (e, obj) {\n if (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool) {\n this.tool.mouseMove(this.eventArgs);\n }\n if (this.diagram.scrollSettings.canAutoScroll) {\n this.checkAutoScroll(e);\n }\n else {\n if (!this.blocked) {\n (this.tool.mouseMove(this.eventArgs));\n }\n }\n if (this.eventArgs.target) {\n this.hoverElement = this.eventArgs.target;\n }\n var isNode = (this.eventArgs.target instanceof Node || this.eventArgs.target instanceof Connector)\n && (obj instanceof Node || obj instanceof Connector) ? false : true;\n if (this.tool instanceof ConnectTool) {\n this.diagram.updatePortVisibility((this.hoverElement instanceof Node || this.hoverElement instanceof Connector)\n ? this.hoverElement : this.hoverNode, PortVisibility.Connect | PortVisibility.Hover, isNode);\n }\n if (this.hoverElement instanceof Node\n && this.hoverNode instanceof Node && this.hoverNode && this.hoverNode.id !== this.hoverElement.id) {\n this.diagram.updatePortVisibility(this.hoverNode, PortVisibility.Connect | PortVisibility.Hover, true);\n }\n if (this.hoverElement instanceof Connector && (this.hoverElement.ports.length > 0)) {\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Connect | PortVisibility.Hover, true);\n }\n // 890089: Unintended Port Visibility Issue Fix\n // Updating port visibility based on the previous hoverElement\n if (this.previousElement instanceof Node && this.hoverElement && (this.previousElement.id !== this.hoverElement.id)) {\n this.diagram.updatePortVisibility(this.previousElement, PortVisibility.Connect | PortVisibility.Hover, true);\n }\n this.previousElement = this.hoverElement;\n // Updating tooltip content on mouse relative mode\n if (this.diagram.tooltip.content !== '') {\n this.hoverElement = null;\n }\n this.hoverNode = isNode ? null : obj;\n };\n /** @private */\n DiagramEventHandler.prototype.checkAction = function (obj) {\n if (this.action === 'LabelSelect' && this.eventArgs.sourceWrapper &&\n (this.eventArgs.sourceWrapper instanceof TextElement || this.eventArgs.sourceWrapper instanceof DiagramHtmlElement)) {\n var annotation = this.commandHandler.findTarget(this.eventArgs.sourceWrapper, this.eventArgs.source);\n if (!isSelected(this.diagram, annotation, false, this.eventArgs.sourceWrapper) && canMove(annotation)) {\n this.action = 'LabelDrag';\n this.tool = this.getTool(this.action);\n this.tool.mouseDown(this.initialEventArgs);\n }\n }\n else if (canMove(obj) && canSelect(obj) && this.initialEventArgs &&\n this.initialEventArgs.source && this.action === 'Select') {\n if (!isSelected(this.diagram, this.eventArgs.source, false) &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n }\n if (!(obj instanceof Connector) || (obj instanceof Connector &&\n !(contains(this.currentPosition, obj.sourcePoint, obj.hitPadding) ||\n contains(this.currentPosition, obj.targetPoint, obj.hitPadding)))) {\n this.action = 'Drag';\n }\n this.tool = this.getTool(this.action);\n this.tool.mouseDown(this.initialEventArgs);\n }\n };\n DiagramEventHandler.prototype.isSwimlaneElements = function (obj) {\n if (obj && (obj.isLane || obj.isPhase || obj.isHeader)) {\n return false;\n }\n else {\n return true;\n }\n };\n //To decide whether to show tooltip on touch long press\n DiagramEventHandler.prototype.canShowTouchTooltip = function (evt) {\n if (evt.type === 'touchstart') {\n if ((this.diagram.tool & DiagramTools.SingleSelect) && (this.diagram.tool & DiagramTools.ZoomPan)) {\n this.isMouseDown = false;\n return true;\n }\n }\n return false;\n };\n /* tslint:disable */\n /** @private */\n DiagramEventHandler.prototype.mouseMove = function (e, touches) {\n this.focus = true;\n //Bug 914365: Node is not resizable using touch interaction\n if (e.type === 'touchmove') {\n this.touchArgs = { target: e.target, type: 'touchmove' };\n }\n if (this.isScrolling) {\n e.preventDefault();\n return;\n }\n if (canUserInteract(this.diagram) || (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n this.currentPosition = this.getMousePosition(e);\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n drawRulerMarkers(this.diagram, this.currentPosition);\n var force = false;\n var target = void 0;\n if (e.type === 'touchmove') {\n touches = e.touches;\n if (touches && touches.length > 1) {\n this.touchMoveList = addTouchPointer(this.touchMoveList, e, touches);\n if (this.action !== 'PinchZoom') {\n force = true;\n }\n }\n }\n if (Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction || this.canShowTouchTooltip(e)) {\n if (this.isMouseDown === false || force) {\n this.eventArgs = {};\n var sourceElement = null;\n var tooltipTarget = void 0;\n if (obj !== null) {\n sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n //834842-Exception/error occurs when hovering on the connector\n //tooltiptarget to be found only if the source element is not null\n if (sourceElement) {\n tooltipTarget = this.commandHandler.findTarget(sourceElement, obj);\n }\n //908569: Node Tooltip Flickers when hovering on Annotation\n //If the annotation does not have tooltip content, set the tooltip target as an object\n if (tooltipTarget instanceof ShapeAnnotation || tooltipTarget instanceof PathAnnotation) {\n if (!(tooltipTarget.tooltip && tooltipTarget.tooltip.content !== '')) {\n tooltipTarget = obj;\n }\n }\n if (tooltipTarget !== this.hoverElement) {\n var content_1 = this.getContent();\n if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content_1 !== '') {\n this.elementLeave();\n }\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, true);\n if (obj instanceof Node) {\n this.hoverNode = obj;\n }\n var canResetElement = true;\n if (!this.isSwimlaneElements(obj)\n && (this.hoverElement && this.isSwimlaneElements(this.hoverElement))) {\n canResetElement = false;\n }\n this.hoverElement = canResetElement ? obj : this.hoverElement;\n //EJ2-62120 - Provide tooltip support for ports - to set hoverelement as PathElement if hovered on ports in Node\n var portElement = null;\n var portTarget = void 0;\n portElement = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n if (portElement instanceof PathElement) {\n portTarget = this.commandHandler.findTarget(portElement, obj);\n if ((portTarget instanceof PointPort || portTarget instanceof PathPort)\n && this.hoverElement.constraints & PortConstraints.ToolTip) {\n this.hoverElement = portTarget;\n }\n }\n //839511: Tooltip support for annotation - to set hoverelement as TextElement if hovered on annotation in Node/Connector\n var annotationTarget = void 0;\n if (portElement instanceof TextElement) {\n annotationTarget = this.commandHandler.findTarget(portElement, obj);\n if ((annotationTarget instanceof ShapeAnnotation || annotationTarget instanceof PathAnnotation)\n && annotationTarget.constraints & AnnotationConstraints.Tooltip) {\n this.hoverElement = annotationTarget;\n }\n }\n if (canResetElement) {\n this.elementEnter(this.currentPosition, false);\n }\n else {\n this.hoverElement = obj;\n }\n }\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Updating the tooltip position based on Mouse move\n else if (this.hoverElement) {\n if (this.hoverElement === tooltipTarget && this.hoverElement.tooltip.content && this.diagram.tooltipObject !== undefined && this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.setTooltipOffset(this.currentPosition);\n }\n }\n if (sourceElement) {\n target = this.commandHandler.findTarget(sourceElement, obj);\n }\n }\n this.action = this.diagram.findActionToBeDone(obj, sourceElement, this.currentPosition, target);\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseEnter, obj, sourceElement);\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseEnter);\n this.checkPreviousAction();\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n this.tool = this.getTool(this.action);\n this.mouseEvents();\n if (this.tool instanceof ConnectorDrawingTool ||\n this.tool instanceof PolyLineDrawingTool ||\n this.tool instanceof PolygonDrawingTool) {\n this.tool.mouseMove(this.eventArgs);\n }\n else if (touches && this.tool instanceof ZoomPanTool) {\n this.tool.mouseDown(this.eventArgs);\n }\n this.updateCursor();\n this.renderUmlHighLighter(this.eventArgs);\n var isNode = false;\n if (!(this.hoverElement && (!(this.tool instanceof ZoomPanTool))\n && (obj instanceof Node && this.isSwimlaneElements(obj)) &&\n (this.diagram.selectedItems.nodes.length === 0 || !isSelected(this.diagram, this.hoverElement)))\n && (!(this.hoverElement instanceof Connector))) {\n isNode = true;\n }\n if (!(this.hoverElement && (!(this.tool instanceof ZoomPanTool))\n && (obj instanceof Connector) &&\n (this.diagram.selectedItems.connectors.length === 0 || !isSelected(this.diagram, this.hoverElement)))\n && (!(this.hoverElement instanceof Node))) {\n isNode = true;\n }\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, isNode);\n var content = this.getContent();\n if (obj === null && this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content) {\n this.hoverElement = null;\n this.elementLeave();\n }\n force = false;\n }\n else {\n this.eventArgs.position = this.currentPosition;\n if (this.action === 'Drag' && !isSelected(this.diagram, this.eventArgs.source, false) &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n }\n this.mouseEvents();\n if (e.ctrlKey || e.shiftKey) {\n var info = (e.ctrlKey && e.shiftKey) ? { ctrlKey: e.ctrlKey, shiftKey: e.shiftKey } : { ctrlKey: true };\n this.eventArgs.info = info;\n }\n this.checkAction(obj);\n var padding = this.getConnectorPadding(this.eventArgs);\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding);\n this.updateCursor();\n this.inAction = true;\n this.initialEventArgs = null;\n if (this.action === 'Drag' || this.action === 'Rotate') {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Interactions;\n }\n //Bug 863516: Overview is not synced with diagram content while zoom-out the diagram.\n //Checking page bounds before and after dragging node, and updating the overview rect if the page bounds modified after the drag.\n var preDragBounds = this.diagram.scroller.getPageBounds();\n this.mouseMoveExtend(e, obj);\n var postDragBounds = this.diagram.scroller.getPageBounds();\n if (obj && (preDragBounds.width !== postDragBounds.width ||\n preDragBounds.height !== postDragBounds.height ||\n preDragBounds.x !== postDragBounds.x ||\n preDragBounds.y !== postDragBounds.y)) {\n if (this.diagram.views && this.diagram.views.overview) {\n var overview = this.diagram.views.overview;\n overview.updateView(overview);\n }\n }\n }\n this.prevPosition = this.currentPosition;\n if (!this.isForeignObject(e.target, true)) {\n e.preventDefault();\n }\n }\n }\n };\n /* tslint:enable */\n DiagramEventHandler.prototype.getContent = function () {\n var isPrivateTooltip = ((this.hoverElement instanceof Node)\n && this.hoverElement.constraints & NodeConstraints.Tooltip) ||\n ((this.hoverElement instanceof Connector) && this.hoverElement.constraints & ConnectorConstraints.Tooltip)\n || ((this.hoverElement instanceof PointPort || this.hoverElement instanceof PathPort)\n && this.hoverElement.constraints & PortConstraints.ToolTip) ||\n ((this.hoverElement instanceof ShapeAnnotation || this.hoverElement instanceof PathAnnotation)\n && this.hoverElement.constraints & AnnotationConstraints.Tooltip);\n var node = this.hoverElement;\n var childNode;\n if (node instanceof Node && node.children && node.children.length > 0) {\n childNode = this.findIntersectChild(node);\n }\n var content = isPrivateTooltip ? this.hoverElement.tooltip.content :\n this.diagram.tooltip.content;\n content = childNode ? childNode.tooltip.content : content;\n return content;\n };\n DiagramEventHandler.prototype.findIntersectChild = function (node) {\n var childNode;\n var rect = new Rect(this.currentPosition.x, this.currentPosition.y, 8, 8);\n for (var i = 0; i < node.children.length; i++) {\n childNode = this.diagram.getObject(node.children[parseInt(i.toString(), 10)]);\n if (childNode.wrapper.outerBounds.intersects(rect)) {\n return childNode;\n }\n }\n return null;\n };\n DiagramEventHandler.prototype.checkAutoScroll = function (e) {\n var autoScrollPosition = this.startAutoScroll(e);\n if (!autoScrollPosition && this.doingAutoScroll) {\n this.doingAutoScroll = false;\n clearInterval(this.timeOutValue);\n }\n else if (autoScrollPosition) {\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool\n || this.tool instanceof MoveTool || this.tool instanceof ResizeTool\n || this.tool instanceof SelectTool || this.tool instanceof ConnectTool) && this.inAction) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var diagram_1 = this;\n var delay_1 = this.diagram.scrollSettings.autoScrollFrequency;\n if (delay_1 < 10 || isNaN(delay_1)) {\n delay_1 = 100;\n }\n if (this.diagram.scrollSettings.canAutoScroll && autoScrollPosition && !this.doingAutoScroll) {\n this.doingAutoScroll = true;\n this.timeOutValue = setInterval(function (args) {\n diagram_1.doAutoScroll(autoScrollPosition, e, delay_1);\n }, delay_1);\n }\n }\n }\n else {\n this.blocked = !(this.tool.mouseMove(this.eventArgs));\n }\n };\n /* tslint:disable */\n /** @private */\n DiagramEventHandler.prototype.mouseUp = function (evt) {\n clearTimeout(this.timeOutTapHold);\n //Bug 914365: Node is not resizable using touch interaction\n this.touchArgs = undefined;\n this.diagram.diagramRenderer.touchMove = undefined;\n //EJ2-849817-Dropping nodes in swimlane does not consider as child in angular\n if (this.eventArgs && this.eventArgs.target && this.eventArgs.target !== this.hoverNode\n && this.eventArgs.target !== this.lastObjectUnderMouse) {\n this.hoverNode = this.eventArgs.target;\n this.lastObjectUnderMouse = this.eventArgs.target;\n }\n //Bug 881512: Wrapping of the connector annotation at run time not working properly.\n //To wrap the connector annotation text after the node rotated or dragged.\n var updateAnnotation = false;\n if (this.tool instanceof MoveTool || this.tool instanceof RotateTool) {\n updateAnnotation = true;\n }\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseUp, this.targetItem, this.previousTarget);\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseUp);\n if (this.diagram.mode === 'SVG' && canVitualize(this.diagram)) {\n this.updateVirtualization();\n }\n var prevSelectedNodes = this.diagram.selectedItems.nodes;\n var prevSelectedConnectors = this.diagram.selectedItems.connectors;\n var unSelectLaneObj;\n this.diagram.previousSelectedObject = null;\n this.diagram.diagramRenderer.rendererActions =\n this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n var touches = evt.touches;\n if (this.isScrolling) {\n this.isScrolling = false;\n evt.preventDefault();\n return;\n }\n if (!this.checkEditBoxAsTarget(evt) && (canUserInteract(this.diagram))\n || (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n if (this.tool && (!(this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool) ||\n ((this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)\n && evt.detail === 2))) {\n if (!this.isForeignObject(evt.target) && this.isMouseDown) {\n document.getElementById(this.diagram.element.id + 'content').focus();\n }\n if (!this.inAction && evt.which !== 3) {\n if (this.action === 'Drag') {\n this.action = 'Select';\n var oldSelectedValue = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n var isMultipleSelect = true;\n if ((!evt.ctrlKey && this.isMouseDown\n && (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length) > 1)\n && evt.which === 1 && !canPreventClearSelection(this.diagram.diagramActions)) {\n isMultipleSelect = false;\n this.commandHandler.clearSelection();\n }\n if (!isSelected(this.diagram, obj) || (!isMultipleSelect)) {\n this.commandHandler.selectObjects([obj], undefined, oldSelectedValue);\n //834641 - Support to unselect the diagram element that is already selected\n if (this.diagram.selectedItems.canToggleSelection) {\n var selectedObj = this.diagram.selectedItems.nodes;\n if (selectedObj) {\n if (selectedObj[0].parentObj instanceof Lane) {\n unSelectLaneObj = true;\n }\n }\n else if (this.diagram.selectedItems.connectors.length > 0) {\n unSelectLaneObj = true;\n }\n }\n }\n }\n }\n var avoidDropChildren = false;\n var history_1 = this.updateContainerProperties();\n var isGroupAction = void 0;\n this.addUmlNode();\n this.inAction = false;\n this.isMouseDown = false;\n if (this.diagram.selectedObject.helperObject) {\n isGroupAction = this.updateContainerBounds();\n }\n if (this.tool && (this.tool.prevPosition || this.tool instanceof LabelTool)) {\n this.eventArgs.position = this.currentPosition;\n var padding = this.getConnectorPadding(this.eventArgs);\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding);\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey || evt.shiftKey) {\n var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } :\n { ctrlKey: true };\n this.eventArgs.info = info;\n }\n if (this.diagram.diagramActions & DiagramAction.Interactions) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Interactions;\n }\n this.eventArgs.clickCount = evt.detail;\n if (this.diagram.selectedObject.helperObject && (this.tool instanceof MoveTool || this.tool instanceof ResizeTool)) {\n if (this.diagram.selectedObject.actualObject &&\n this.diagram.selectedObject.actualObject.parentId !== '') {\n var parentNode = this.diagram.getObject(this.diagram.selectedObject.actualObject.parentId);\n if (parentNode && parentNode.isLane) {\n this.commandHandler.isContainer = true;\n }\n }\n avoidDropChildren = this.diagram.lineRoutingModule\n && this.diagram.nameTable['helper'] && this.eventArgs.target && this.eventArgs.target.isLane\n && ((this.eventArgs.source instanceof Selector && this.eventArgs.source.nodes.length > 0\n && this.eventArgs.source.nodes[0].parentId === '') || (this.eventArgs.source.parentId === ''));\n if (avoidDropChildren) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.PreventLaneContainerUpdate;\n }\n this.tool.mouseUp(this.eventArgs, history_1.isPreventHistory);\n }\n else {\n //834641 - Support to unselect the diagram element that is already selected\n if (this.diagram.selectedItems.canToggleSelection) {\n var isGroupObj = void 0;\n var isMultiSelect = void 0;\n if (this.diagram.selectedItems.nodes.length > 0) {\n for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) {\n var swimlane = (this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].isLane\n || this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].isPhase);\n if (!swimlane) {\n if ((!(this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].parentObj instanceof Lane\n || this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].parentObj instanceof Phase))) {\n isGroupObj = this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].parentId !== '' ? true : false;\n }\n }\n }\n }\n var currSelectedNodes = this.diagram.selectedItems.nodes;\n for (var i = 0; i < prevSelectedNodes.length; i++) {\n if ((prevSelectedNodes.length > 1 && currSelectedNodes[0].id\n === prevSelectedNodes[parseInt(i.toString(), 10)].id) || prevSelectedConnectors.length > 0) {\n isMultiSelect = true;\n }\n }\n if (!this.isSwimlaneSelected && !unSelectLaneObj && !isMultiSelect && this.tool instanceof MoveTool &&\n this.currentAction === 'Select' && (!isGroupObj || this.diagram.selectedItems.connectors.length > 0)) {\n this.commandHandler.clearSelection(true);\n }\n }\n this.isSwimlaneSelected = false;\n this.tool.mouseUp(this.eventArgs);\n if (this.diagram.checkMenu && (window.navigator.userAgent.indexOf('Linux') !== -1 || window.navigator.userAgent.indexOf('X11') !== -1)) {\n if (!evt.pageY && (evt instanceof TouchEvent) && evt.changedTouches) {\n window.getSelection().removeAllRanges();\n this.diagram.contextMenuModule.contextMenu.open(evt.changedTouches[0].pageY, evt.changedTouches[0].pageX, this.diagram.element);\n evt.preventDefault();\n }\n else {\n this.diagram.contextMenuModule.contextMenu.open(evt.pageY, evt.pageX, this.diagram.element);\n }\n this.diagram.checkMenu = false;\n }\n }\n if (history_1.hasStack) {\n this.diagram.endGroupAction();\n }\n }\n if (isGroupAction) {\n this.diagram.endGroupAction();\n }\n this.updateContainerBounds(true);\n if (this.eventArgs.clickCount !== 2) {\n this.commandHandler.updateSelectedNodeProperties(this.eventArgs.source);\n if (avoidDropChildren) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventLaneContainerUpdate;\n var nodes = this.eventArgs.source instanceof Selector\n ? this.eventArgs.source.nodes : [this.eventArgs.source];\n if (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].container) {\n this.commandHandler.dropChildToContainer(this.eventArgs.target, nodes[parseInt(i.toString(), 10)]);\n this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]);\n }\n }\n }\n }\n }\n if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) {\n //Bug 884946: Undo redo not working for swimlane child node's label edit.\n //committed to remove the diagram actions public method when actual object is inside swimlane.\n var isInsideLane = this.isSwimlaneChild(this.diagram.selectedObject.actualObject);\n //isSwimlaneChildHelper is used to check whether the helper object is child's helper of lane's helper. if it is lane's helper then we should not remove the DiagramAction.PublicMethod from diagram actions.\n //If we remove the DiagramAction.PublicMethod from diagram actions then undo redo will not work properly after dropping child from diagram to swimlane.\n var isSwimlaneChildHelper = this.diagram.selectedObject.actualObject &&\n this.diagram.selectedObject.actualObject.width === this.diagram.selectedObject.helperObject.width &&\n this.diagram.selectedObject.actualObject.height === this.diagram.selectedObject.helperObject.height;\n this.diagram.remove(this.diagram.selectedObject.helperObject);\n if (this.commandHandler.isTargetSubProcess(this.diagram.selectedObject.actualObject) && this.diagram.selectedObject.actualObject.parentId === '') {\n this.swapProcessChildInDom(this.diagram.element.id + '_diagramLayer', this.diagram.selectedObject.actualObject);\n }\n this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined };\n // EJ2-42605 - Annotation undo redo not working properly if the line routing is enabled committed by sivakumar sekar\n // committed to remove the diagram actions public method when line routing is enabled\n // eslint-disable-next-line\n if ((this.diagram.diagramActions & DiagramAction.PublicMethod) && (this.diagram.constraints & DiagramConstraints.LineRouting) || (isInsideLane && isSwimlaneChildHelper)) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PublicMethod;\n }\n }\n this.blocked = false;\n if (this.hoverElement) {\n var portVisibility = PortVisibility.Connect;\n if (isSelected(this.diagram, this.hoverElement)) {\n portVisibility |= PortVisibility.Hover;\n }\n this.diagram.updatePortVisibility(this.hoverElement, portVisibility, true);\n this.hoverElement = null;\n }\n this.touchStartList = null;\n this.touchMoveList = null;\n if (!(this.tool instanceof TextDrawingTool)) {\n this.tool = null;\n }\n }\n if (!touches) {\n evt.preventDefault();\n }\n this.diagram.currentDrawingObject = undefined;\n var selector = this.diagram.selectedItems;\n var disbleRenderSelector = false;\n if (this.commandHandler.isUserHandle(this.currentPosition)) {\n if (this.isForeignObject(evt.target)) {\n disbleRenderSelector = true;\n }\n }\n if (!this.inAction && selector.wrapper && selector.userHandles.length > 0 && !disbleRenderSelector) {\n this.diagram.renderSelector(true);\n }\n if (!this.inAction && !this.diagram.currentSymbol && this.eventArgs) {\n /**\n *\n * EJ2-45543 Provide Event support to notify the port click\n */\n var targetObject = this.getTargetElement();\n var arg = {\n element: (targetObject.target instanceof PointPort)\n ? targetObject.target : cloneBlazorObject(this.eventArgs.source) || cloneBlazorObject(this.diagram),\n position: cloneBlazorObject(this.eventArgs.position), count: evt.detail,\n actualObject: cloneBlazorObject(this.eventArgs.actualObject),\n button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right'\n };\n //Removed isBlazor code\n if (this.diagram.tool !== DiagramTools.ZoomPan) {\n this.diagram.triggerEvent(DiagramEvent.click, arg);\n }\n }\n this.eventArgs = {};\n }\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventLaneContainerUpdate;\n if (updateAnnotation) {\n this.updateAnnotation(this.diagram.selectedItems);\n }\n // 920132: Node Interactions Cause Previously Deleted Nodes to Reappear\n this.previousElement = null;\n this.eventArgs = {};\n this.diagram.commandHandler.removeStackHighlighter(); // end the corresponding tool\n };\n //To check whether the node is child of swimlane or not.\n DiagramEventHandler.prototype.isSwimlaneChild = function (node) {\n if (node.shape && node.shape.type !== 'SwimLane') {\n var parent_1 = this.diagram.nameTable[node.parentId];\n if (!parent_1) {\n return false;\n }\n var swimlane = parent_1.parentId ? this.diagram.nameTable[parent_1.parentId] : parent_1;\n return swimlane && swimlane.shape && swimlane.shape.type === 'SwimLane';\n }\n else {\n return false;\n }\n };\n // To wrap connector annotation text based on the connector length.\n DiagramEventHandler.prototype.updateAnnotation = function (selectedItems) {\n var nodes = selectedItems.nodes;\n if (nodes.length > 0) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[parseInt(i.toString(), 10)];\n this.diagram.updateConnectorEdges(node);\n }\n }\n };\n // Adding child node of sub process in the diagram layer after the subprocess dropped out from swimlane to diagram.\n DiagramEventHandler.prototype.swapProcessChildInDom = function (diagramLayerId, node) {\n var diagramLayer = document.getElementById(diagramLayerId);\n if (node.shape.activity.subProcess.processes) {\n for (var i = 0; i < node.shape.activity.subProcess.processes.length; i++) {\n var child = document.getElementById(node.shape.activity.subProcess.processes[parseInt(i.toString(), 10)] + '_groupElement');\n if (child) {\n diagramLayer.appendChild(child);\n }\n }\n }\n };\n /**\n * return the clicked element such as node/connector/port/diagram\n */\n DiagramEventHandler.prototype.getTargetElement = function () {\n var target;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n var obj = this.objectFinder.findObjectUnderMouse(this.diagram, objects, this.action, this.inAction, this.eventArgs, this.currentPosition);\n var sourceElement = null;\n if (obj !== null) {\n sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n if (sourceElement) {\n target = this.commandHandler.findTarget(sourceElement, obj);\n }\n }\n var targetObject = {\n 'obj': obj,\n 'sourceElement': sourceElement,\n 'target': target\n };\n return targetObject;\n };\n /* tslint:enable */\n DiagramEventHandler.prototype.getConnectorPadding = function (eventArgs) {\n var padding;\n var targetObject = eventArgs.source;\n if (targetObject && (targetObject instanceof Selector) && targetObject.connectors.length) {\n var selectedConnector = targetObject.connectors[0];\n padding = (selectedConnector.constraints & ConnectorConstraints.ConnectToNearByPort) ? selectedConnector.connectionPadding : 0;\n }\n else if (targetObject && (targetObject instanceof Connector) && this.action === 'PortDraw' && (this.tool instanceof ConnectorDrawingTool)) {\n if (targetObject.constraints & ConnectorConstraints.ConnectToNearByPort) {\n padding = targetObject.connectionPadding;\n }\n }\n return padding || 0;\n };\n DiagramEventHandler.prototype.addSwimLaneObject = function (selectedNode) {\n var swimlaneNode;\n var targetNode;\n var shape;\n var value;\n var canInsert;\n var index = 0;\n var offset;\n var actualShape = selectedNode.shape;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n if (!targetNode) {\n targetNode = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n this.diagram.clearSelectorLayer();\n if (targetNode && !(targetNode.isLane || targetNode.isPhase || targetNode.isHeader)) {\n for (var i = 0; i < objects.length; i++) {\n var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id];\n if (laneNode.isLane || laneNode.isPhase || laneNode.isHeader) {\n targetNode = laneNode;\n }\n }\n }\n if (targetNode && (actualShape.isPhase || (actualShape.isLane && targetNode.isLane))) {\n var id = targetNode.parentId;\n swimlaneNode = this.diagram.nameTable[\"\" + id];\n }\n var orientationSwap = null;\n if (swimlaneNode) {\n shape = swimlaneNode.shape;\n canInsert = (actualShape.isLane) ? actualShape.orientation === shape.orientation :\n actualShape.orientation !== shape.orientation;\n if (actualShape.isLane && actualShape.orientation !== shape.orientation) {\n canInsert = true;\n orientationSwap = actualShape.orientation === 'Horizontal' ? 'height' : 'width';\n }\n }\n if (canInsert && targetNode) {\n if (shape && shape.header && shape.hasHeader && shape.orientation === 'Horizontal') {\n index = 1;\n }\n if (shape.phases.length > 0) {\n index += 1;\n }\n if (actualShape.isPhase) {\n if (shape.orientation === 'Horizontal') {\n offset = this.currentPosition.x - swimlaneNode.wrapper.bounds.x;\n }\n else {\n offset = this.currentPosition.y - (swimlaneNode.wrapper.bounds.y + shape.header.height);\n }\n var phases = { id: randomId(), offset: offset, header: { annotation: {\n content: actualShape.phases[0].header === undefined ? 'Phase' : actualShape.phases[0].header.annotation.content,\n style: actualShape.phases[0].header === undefined ? {} : actualShape.phases[0].header.annotation.style\n } },\n //882239 - Fill color not applied properly while adding phase at runtime\n style: actualShape.phases[0] === undefined ? {} : actualShape.phases[0].style };\n this.diagram.addPhases(swimlaneNode, [phases]);\n }\n else {\n //const laneHeight: number = actualShape.lanes[0].header.height;\n var lane = {\n id: randomId(), style: actualShape.lanes[0].style, header: {\n annotation: {\n content: actualShape.lanes[0].header.annotation.content,\n style: actualShape.lanes[0].header.annotation.style\n },\n style: actualShape.lanes[0].header.style\n }\n };\n var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n orientation_1 ? lane.height = actualShape.lanes[0].height : lane.width = actualShape.lanes[0].width;\n if (shape.orientation === 'Horizontal') {\n value = targetNode.rowIndex ? targetNode.rowIndex :\n this.diagram.nameTable[targetNode.parentId].rowIndex;\n if (targetNode.wrapper.offsetY < this.currentPosition.y) {\n value += 1;\n }\n }\n else {\n value = targetNode.columnIndex ? targetNode.columnIndex :\n this.diagram.nameTable[targetNode.parentId].columnIndex;\n if (this.currentPosition.x < targetNode.wrapper.bounds.center.x) {\n value -= 1;\n }\n }\n if (shape.lanes.length > (value)) {\n lane.header.width = shape.lanes[parseInt(value.toString(), 10)].header.width;\n lane.header.height = shape.lanes[parseInt(value.toString(), 10)].header.height;\n }\n else {\n //EJ2-64457 - Not able to add lane in the existing vertical swimlane.\n var ind = void 0;\n if (shape.orientation === 'Horizontal') {\n ind = targetNode.rowIndex < 3 ? 0 : value - index - 1;\n }\n else {\n ind = value - 1;\n }\n lane.header.width = shape.lanes[parseInt(ind.toString(), 10)].header.width;\n lane.header.height = shape.lanes[parseInt(ind.toString(), 10)].header.height;\n }\n //Bug 879093: Incorrect helperguide for vertical and horizontal swim lanes.\n //With below code, we swap the height and width property of lane based on orientationSwap value.\n if (orientationSwap) {\n if (orientationSwap === 'height') {\n lane.width = lane.height;\n delete lane.height;\n }\n else {\n lane.height = lane.width;\n delete lane.width;\n }\n }\n this.diagram.addLanes(swimlaneNode, [lane], shape.orientation === 'Horizontal' ? value - index : value);\n }\n this.commandHandler.select(swimlaneNode);\n }\n else if (actualShape.isLane) {\n var swimLaneobj = {\n id: randomId(), width: selectedNode.width, height: selectedNode.height, addInfo: selectedNode.addInfo,\n shape: {\n type: 'SwimLane',\n header: {\n //864525-Issue in updating swimlane header properties dynamically\n annotation: {\n content: actualShape.header === undefined ? 'Header' : actualShape.header.annotation.content,\n style: actualShape.header === undefined ? {} : actualShape.header.annotation.style\n },\n height: 50,\n style: actualShape.header ? actualShape.header.style : actualShape.lanes[0].header.style\n },\n phases: [{\n id: randomId(),\n //864555-Issue in updating swimlane phase properties dynamically\n header: {\n annotation: {\n content: actualShape.phases === undefined ? 'Phase' : actualShape.phases[0].header === undefined\n ? 'Phase' : actualShape.phases[0].header.annotation.content,\n style: actualShape.phases === undefined ? {} : actualShape.phases[0].header === undefined\n ? {} : actualShape.phases[0].header.annotation.style\n },\n style: actualShape.phases === undefined ? {} : actualShape.phases[0].header === undefined\n ? {} : actualShape.phases[0].header.style\n },\n style: actualShape.phases === undefined ? {} : actualShape.phases[0].style\n }],\n lanes: [{\n id: randomId(), height: selectedNode.height, width: selectedNode.width, style: actualShape.lanes[0].style,\n header: {\n annotation: {\n content: actualShape.lanes[0].header.annotation.content,\n style: actualShape.lanes[0].header.annotation.style\n },\n style: actualShape.lanes[0].header.style\n }\n }], orientation: actualShape.orientation\n }\n };\n if (actualShape.orientation === 'Vertical') {\n swimLaneobj.width += 20;\n }\n swimLaneobj.offsetX = this.currentPosition.x + (swimLaneobj.width / 2);\n swimLaneobj.offsetY = this.currentPosition.y + (swimLaneobj.height / 2);\n //Bug 853721: Grid lines remain hidden when lane fill is set to transparent.\n // Added below code to set swimlane style for dropped swimlane.\n swimLaneobj.style = selectedNode.style;\n this.diagram.add(swimLaneobj);\n }\n };\n /** @private */\n DiagramEventHandler.prototype.mouseLeave = function (evt) {\n //Define what has to happen on mouse leave\n if (this.tool && this.inAction) {\n this.tool.mouseLeave(this.eventArgs);\n }\n if (this.diagram.selectedObject.helperObject) {\n this.updateContainerProperties();\n var isGroupAction = this.updateContainerBounds();\n if (isGroupAction) {\n this.diagram.endGroupAction();\n }\n }\n if (this.eventArgs && this.eventArgs.source) {\n this.diagram.updatePortVisibility(this.eventArgs.source, PortVisibility.Hover, true);\n this.hoverElement = null;\n }\n if (this.eventArgs && !this.eventArgs.source && this.hoverElement) {\n this.hoverElement = null;\n }\n if (this.tool instanceof ConnectTool && this.eventArgs && this.eventArgs.target && this.eventArgs.target instanceof Node) {\n this.diagram.updatePortVisibility(this.eventArgs.target, PortVisibility.Hover | PortVisibility.Connect, true);\n this.hoverElement = null;\n }\n var selector = this.diagram.selectedItems;\n if (selector && selector.wrapper) {\n if (!(selectionHasConnector(this.diagram, selector))) {\n this.diagram.renderSelector(true);\n }\n }\n if (this.diagram.diagramActions & DiagramAction.Interactions || this.diagram.diagramActions & DiagramAction.ToolAction) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.ToolAction;\n }\n this.isMouseDown = false;\n this.focus = false;\n this.touchStartList = null;\n this.touchMoveList = null;\n this.elementLeave();\n this.commandHandler.removeSnap();\n this.inAction = false;\n this.eventArgs = {};\n if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) {\n this.diagram.remove(this.diagram.selectedObject.helperObject);\n this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined };\n }\n this.tool = null;\n removeRulerMarkers();\n if (this.action === 'Rotate') {\n this.diagram.diagramCanvas.classList.remove('e-diagram-rotate');\n }\n evt.preventDefault();\n };\n /** @private */\n DiagramEventHandler.prototype.mouseWheel = function (evt) {\n this.diagram.blazorActions |= BlazorAction.interaction;\n // EJ2-64831 - Need to provide support to override the mousewheel event\n var arg = {\n event: evt,\n cancel: false\n };\n this.diagram.triggerEvent(DiagramEvent.mouseWheel, arg);\n if (!arg.cancel) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var up = (evt.wheelDelta > 0 || -40 * evt.detail > 0) ? true : false;\n var mousePosition = this.getMousePosition(evt);\n this.diagram.tooltipObject.close();\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey) {\n // SF-362356 - Command below line to implement smooth scroll in diagram.\n // this.diagram.zoom(up ? (1.2) : 1 / (1.2), mousePosition);\n // EJ2-59803 - Added the below code to get the zoom factor value from scroll settings and\n // set it to zoomFactor args in zoomTo method.\n var zoomFactor = this.diagram.scrollSettings.zoomFactor;\n if (up) {\n this.diagram.zoomTo({ type: 'ZoomIn', zoomFactor: zoomFactor, focusPoint: mousePosition });\n }\n else {\n this.diagram.zoomTo({ type: 'ZoomOut', zoomFactor: zoomFactor, focusPoint: mousePosition });\n }\n evt.preventDefault();\n }\n else {\n var horizontalOffset = this.diagram.scroller.horizontalOffset;\n var verticalOffset = this.diagram.scroller.verticalOffset;\n var change = up ? 10 : -10;\n if (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)) {\n this.eventArgs = {};\n this.getMouseEventArgs(mousePosition, this.eventArgs);\n this.eventArgs.position = mousePosition;\n this.tool.mouseWheel(this.eventArgs);\n }\n this.diagram.scrollActions |= ScrollActions.Interaction;\n var canMouseWheel = true;\n if (evt.isTrusted) {\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // Added the below condition to check whether the mouse wheel is from trackpad or not.\n var isTrackpadScroll = false;\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n if ((Math.abs(evt.deltaY) < 100 && Math.abs(evt.deltaX) === -0) ||\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n (Math.abs(evt.deltaX) < 100 && Math.abs(evt.deltaY) === -0)) {\n isTrackpadScroll = true;\n }\n //Bug 892441: Infinite scroll not working in vertical axis of diagram.\n //Due to the prevention of zoom method trigger in vertical scroll, the infinite scroll is not working in vertical axis.\n //So added the below condition to check macOS and allowed the zoom method trigger in vertical scroll for non-MacOs.\n var isMacOS = false;\n if (evt.deltaX !== 0 || evt.deltaY !== 0) {\n // Perform macOS detection\n isMacOS = navigator.userAgent.includes('Macintosh');\n }\n //898867: Diagram scrolling is not smooth while scrolling with Track Pad in Mac.\n if (isMacOS) {\n var isHorizontalScroll = Math.abs(evt.deltaX) > Math.abs(evt.deltaY);\n if (isHorizontalScroll) {\n // eslint-disable-next-line no-compare-neg-zero\n if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n }\n else {\n // eslint-disable-next-line no-compare-neg-zero\n if ((evt.deltaY && evt.deltaY !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n }\n }\n //Bug 837940: In mac, scrollbar flickers on horizontal and vertical scroll using trackpad.\n else {\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n // eslint-disable-next-line no-compare-neg-zero\n else if ((evt.deltaY && evt.deltaY !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n }\n }\n else {\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0)) {\n this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel);\n }\n else {\n this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel);\n }\n }\n this.diagram.scrollActions &= ~ScrollActions.Interaction;\n if (horizontalOffset !== this.diagram.scroller.horizontalOffset\n || verticalOffset !== this.diagram.scroller.verticalOffset) {\n evt.preventDefault();\n }\n }\n if (this.diagram.textEditing) {\n this.diagram.isTriggerEvent = true;\n if (this.diagram.activeLabel.parentId) {\n var node = this.diagram.getObject(this.diagram.activeLabel.parentId);\n this.diagram.startTextEdit(node, this.diagram.activeLabel.id);\n }\n this.diagram.isTriggerEvent = false;\n }\n this.diagram.blazorActions = this.diagram.blazorActions & ~BlazorAction.interaction;\n }\n };\n /** @private */\n DiagramEventHandler.prototype.keyDown = function (evt) {\n if (evt.fromMouseEvents) {\n if (evt.ctrlKey) {\n this.keyArgs.keyModifiers = 1;\n }\n if (evt.shiftKey) {\n this.keyArgs.keyModifiers = 4;\n }\n if (evt.shiftKey && evt.ctrlKey) {\n this.keyArgs.keyModifiers = 5;\n }\n }\n if (!(this.diagram.diagramActions & DiagramAction.TextEdit) &&\n !(this.checkEditBoxAsTarget(evt)) || (evt.key === 'Escape' || evt.keyCode === 27)) {\n var i = void 0;\n var inAction = 'inAction';\n var command = void 0;\n var keycode = evt.keyCode ? evt.keyCode : evt.which;\n var key = evt.key;\n if (key === 'ArrowDown' || key === 'ArrowUp' || key === 'ArrowLeft' || key === 'ArrowRight') {\n this.isNudgeKey = true;\n }\n var ctrlKey = this.isMetaKey(evt);\n if (this.diagram.commandManager && this.diagram.commands) {\n var commands = this.diagram.commands;\n for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) {\n var i_1 = _a[_i];\n command = this.diagram.commands[\"\" + i_1];\n if (command && (command.gesture.keyModifiers || command.gesture.key)) {\n //Added the split method to split the Number string from the enum while clicking the number keys\n if ((keycode === command.gesture.key || (Keys[command.gesture.key] && key === Keys[command.gesture.key] || key === Keys[command.gesture.key].split('Number')[1])\n || this.isDeleteKey(key, i_1))\n && (((!command.gesture.keyModifiers) && (!evt.altKey) && (!evt.shiftKey) && (!ctrlKey)) ||\n (command.gesture.keyModifiers && (ctrlKey || evt.altKey || evt.shiftKey) &&\n (this.altKeyPressed(command.gesture.keyModifiers) && evt.altKey) ||\n (this.shiftKeyPressed(command.gesture.keyModifiers) && evt.shiftKey) ||\n //added the comparision condition of keyargs to execute the condition onclicking the Ctrl + Shift key\n (this.ctrlKeyPressed(command.gesture.keyModifiers) && ctrlKey)\n && (this.keyArgs.keyModifiers === command.gesture.keyModifiers)))) {\n var canExecute = getFunction(command.canExecute);\n if (isBlazor() || (canExecute &&\n canExecute({\n 'keyDownEventArgs': KeyboardEvent,\n parameter: command.parameter\n }))) {\n evt.preventDefault();\n if (evt.key === 'Escape') {\n if (this.checkEditBoxAsTarget(evt)) {\n document.getElementById(this.diagram.diagramCanvas.id).focus();\n }\n else if (this.diagram.currentSymbol) {\n var selectedSymbols = 'selectedSymbols';\n var source = 'sourceElement';\n var intDestroy = 'intDestroy';\n this.diagram.removeFromAQuad(this.diagram.currentSymbol);\n this.diagram.removeObjectsFromLayer(this.diagram.nameTable[this.diagram.currentSymbol.id]);\n this.diagram.removeElements(this.diagram.currentSymbol);\n removeChildNodes(this.diagram.currentSymbol, this.diagram);\n delete this.diagram.nameTable[this.diagram.currentSymbol.id];\n var sourceElement = this.diagram.droppable[\"\" + source];\n sourceElement.draggable[\"\" + intDestroy]();\n var element_1 = this.diagram.droppable[\"\" + selectedSymbols];\n element_1.parentNode.removeChild(element_1);\n var diagramActions = this.diagram.diagramActions;\n this.diagram.diagramActions =\n this.diagram.addConstraints(diagramActions, DiagramAction.PreventClearSelection);\n this.tool.mouseUp(this.eventArgs);\n this.diagram.diagramRenderer.rendererActions = this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n if (this.diagram.previousSelectedObject) {\n this.diagram.select(this.diagram.previousSelectedObject);\n }\n this.action = 'Select';\n this.diagram.previousSelectedObject = null;\n this.diagram.currentSymbol = null;\n this.diagram.diagramActions =\n this.diagram.removeConstraints(diagramActions, DiagramAction.PreventClearSelection);\n this.isMouseDown = false;\n }\n else if (this.inAction && this.diagram.drawingObject && this.tool && this.tool[\"\" + inAction]) {\n this.tool.mouseUp(this.eventArgs);\n this.tool = null;\n this.isMouseDown = false;\n }\n }\n if (command.execute) {\n this.commandObj = command;\n if (this.diagram.tool !== DiagramTools.ZoomPan) {\n // if (i === 'nudgeUp' || i === 'nudgeRight' || i === 'nudgeDown' || i === 'nudgeLeft') {\n // command.execute()\n // } else {\n var execute = getFunction(command.execute);\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n if (this.isNudgeKey) {\n if (!this.isKeyUp) {\n this.keyArgs.oldValue = { offsetX: this.diagram.selectedItems.offsetX,\n offsetY: this.diagram.selectedItems.offsetY };\n this.keyCount++;\n if (this.keyCount > 4) {\n // 914747: Position change event not triggered for Keyboard nudge commands\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter, type: 'KEYDOWN' });\n this.keyCount = 0;\n this.keyArgs.newValue = { offsetX: this.diagram.selectedItems.offsetX,\n offsetY: this.diagram.selectedItems.offsetY };\n this.diagram.triggerEvent(DiagramEvent.positionChange, this.keyArgs);\n }\n }\n this.isKeyUp = false;\n }\n else {\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter });\n }\n }\n // }\n }\n //Removed isBlazor code\n break;\n }\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var selectedObject = (this.diagram.selectedItems.nodes.length) ?\n this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors;\n var element = cloneBlazorObject(this.diagram.selectedItems);\n this.keyArgs = {\n element: element,\n key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which\n };\n this.getKeyModifier(this.keyArgs, evt);\n if ((this.diagram.diagramActions & DiagramAction.TextEdit)) {\n this.getlabel(this.keyArgs, evt);\n }\n this.diagram.triggerEvent(DiagramEvent.keyDown, this.keyArgs);\n };\n DiagramEventHandler.prototype.getlabel = function (args, evt) {\n var label = this.diagram.activeLabel;\n args.target = this.diagram.element.id + '_editBox';\n var node = this.diagram.nameTable[label.parentId];\n if (document.getElementById(this.diagram.element.id + '_editBox')) {\n args.text = document.getElementById(this.diagram.element.id + '_editBox').value;\n for (var i = 0; i < node.annotations.length; i++) {\n if (node.annotations[parseInt(i.toString(), 10)].id === label.id) {\n args.label = node.annotations[parseInt(i.toString(), 10)];\n break;\n }\n }\n }\n };\n DiagramEventHandler.prototype.getKeyModifier = function (args, evt) {\n args.keyModifiers = KeyModifiers.None;\n if (evt.ctrlKey) {\n args.keyModifiers |= KeyModifiers.Control;\n }\n if (evt.shiftKey) {\n args.keyModifiers |= KeyModifiers.Shift;\n }\n if (evt.altKey) {\n args.keyModifiers |= KeyModifiers.Alt;\n }\n if (this.isMetaKey(evt)) {\n args.keyModifiers |= KeyModifiers.Meta;\n }\n };\n DiagramEventHandler.prototype.keyUp = function (evt) {\n var element = cloneBlazorObject(this.diagram.selectedItems);\n this.keyArgs = {\n element: element, key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which,\n oldValue: { offsetX: element.offsetX, offsetY: element.offsetY },\n newValue: { offsetX: element.offsetX, offsetY: element.offsetY }\n };\n var selectedObject = (this.diagram.selectedItems.nodes.length) ?\n this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors;\n this.getKeyModifier(this.keyArgs, evt);\n if ((this.diagram.diagramActions & DiagramAction.TextEdit)) {\n this.getlabel(this.keyArgs, evt);\n }\n this.diagram.triggerEvent(DiagramEvent.keyUp, this.keyArgs);\n // this.isKeyUp = true;\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n if (!this.isKeyUp && this.isNudgeKey) {\n //Bug 860080: Navigation not working in keyboard interaction SB sample.\n //To execute the command manager execute method below as we restricted keydown for arrow keys.\n var execute = getFunction(this.commandObj.execute);\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: this.commandObj.parameter, type: 'KEYUP' });\n // 914747: Position change event not triggered for Keyboard nudge commands\n this.keyArgs.newValue = { offsetX: this.diagram.selectedItems.offsetX, offsetY: this.diagram.selectedItems.offsetY };\n this.diagram.triggerEvent(DiagramEvent.positionChange, this.keyArgs);\n this.isNudgeKey = false;\n this.keyCount = 0;\n }\n };\n DiagramEventHandler.prototype.startAutoScroll = function (e) {\n var position = this.getMousePosition(e);\n position.x *= this.diagram.scroller.currentZoom;\n position.y *= this.diagram.scroller.currentZoom;\n var rulerSize = getRulerSize(this.diagram);\n var movingPosition;\n var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder;\n if (Browser.info.name === 'mozilla') {\n if (this.diagram.scroller.viewPortWidth === 0) {\n var bounds = document.getElementById(this.diagram.element.id).getBoundingClientRect();\n if (bounds.width !== this.diagram.scroller.viewPortWidth) {\n this.diagram.scroller.setViewPortSize(bounds.width, bounds.height);\n }\n }\n }\n if (this.diagram.scrollSettings.canAutoScroll) {\n if (position.x + this.diagram.scroller.horizontalOffset + autoScrollBorder.right + rulerSize.width >=\n this.diagram.scroller.viewPortWidth - 18) {\n movingPosition = 'right';\n }\n else if (position.x + this.diagram.scroller.horizontalOffset < autoScrollBorder.left) {\n movingPosition = 'left';\n }\n else if (position.y + this.diagram.scroller.verticalOffset + autoScrollBorder.bottom + rulerSize.height >\n this.diagram.scroller.viewPortHeight - 18) {\n movingPosition = 'bottom';\n }\n else if (position.y + this.diagram.scroller.verticalOffset < autoScrollBorder.top) {\n movingPosition = 'top';\n }\n }\n return movingPosition;\n };\n DiagramEventHandler.prototype.doAutoScroll = function (option, e, delay, autoScroll) {\n var position = option;\n var canAutoScroll = true;\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool\n || this.tool instanceof MoveTool || this.tool instanceof ResizeTool\n || this.tool instanceof SelectTool || this.tool instanceof ConnectTool) && this.inAction) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var diagram = this;\n var pos = this.getMousePosition(e);\n var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder;\n var newDelay = delay ? delay : 100;\n var left = 0;\n var top_1 = 0;\n var canUpdate = false;\n var corner = '';\n var point = { x: pos.x, y: pos.y };\n // EJ2-61979 - Added below code to check whether we resize the node around four corners\n if (this.tool instanceof ResizeTool && (this.tool.corner === 'ResizeSouthEast' || this.tool.corner === 'ResizeSouthWest' ||\n this.tool.corner === 'ResizeNorthWest' || this.tool.corner === 'ResizeNorthEast')) {\n canUpdate = true;\n corner = this.tool.corner;\n }\n switch (position) {\n case 'right':\n point.x = pos.x + 10;\n left = 10;\n // EJ2-61979 - If node gets resized on southeast or northeast corner means then update the y position along with x position\n if (canUpdate) {\n if (corner === 'ResizeSouthEast') {\n point.y = pos.y + 10;\n top_1 = 10;\n }\n else {\n point.y = pos.y - 10;\n top_1 = -10;\n }\n }\n break;\n case 'left':\n point.x = pos.x - 10;\n left = -10;\n // EJ2-61979 - If node gets resized on northwest or southwest corner means then update the y position along with x position\n if (canUpdate) {\n if (corner === 'ResizeNorthWest') {\n point.y = pos.y - 10;\n top_1 = -10;\n }\n else {\n point.y = pos.y + 10;\n top_1 = 10;\n }\n }\n break;\n case 'bottom':\n point.y = pos.y + 10;\n top_1 = 10;\n // EJ2-61979 - If node gets resized on southeast or southwest corner means then update the x position along with y position\n if (canUpdate) {\n if (corner === 'ResizeSouthEast') {\n point.x = pos.x + 10;\n left = 10;\n }\n else {\n point.x = pos.x - 10;\n left = -10;\n }\n }\n break;\n case 'top':\n point.y = pos.y - 10;\n top_1 = -10;\n // EJ2-61979 - If node gets resized on northeast or northwest corner means then update the x position along with y position\n if (canUpdate) {\n if (corner === 'ResizeNorthEast') {\n point.x = pos.x + 10;\n left = 10;\n }\n else {\n point.x = pos.x - 10;\n left = -10;\n }\n }\n break;\n }\n this.eventArgs.position = { x: point.x, y: point.y };\n this.currentPosition = this.eventArgs.position;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n this.eventArgs.target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n this.tool.mouseMove(this.eventArgs);\n this.diagram.scrollActions |= ScrollActions.Interaction;\n this.diagram.scroller.zoom(1, -left, -top_1, pos, canAutoScroll);\n this.diagram.scrollActions &= ~ScrollActions.Interaction;\n }\n };\n DiagramEventHandler.prototype.mouseEvents = function () {\n var target = this.diagram.findObjectsUnderMouse(this.currentPosition);\n for (var i = 0; i < target.length; i++) {\n if (this.eventArgs.actualObject === target[parseInt(i.toString(), 10)]) {\n target.splice(i, 1);\n }\n }\n var arg = {\n targets: {}\n };\n if (!isBlazor()) {\n arg = {\n targets: cloneBlazorObject(target),\n element: cloneBlazorObject((this.eventArgs.source === this.eventArgs.actualObject) ? undefined : this.eventArgs.source),\n actualObject: cloneBlazorObject(this.eventArgs.actualObject)\n };\n }\n //Removed isBlazor code\n if (this.lastObjectUnderMouse && this.diagram.mouseLeave\n && (!this.eventArgs.actualObject || (this.lastObjectUnderMouse !== this.eventArgs.actualObject))) {\n var arg_1 = {\n targets: undefined, element: cloneBlazorObject(this.lastObjectUnderMouse), actualObject: undefined\n };\n //Removed isBlazor code\n this.diagram.triggerEvent(DiagramEvent.mouseLeave, arg_1);\n this.lastObjectUnderMouse = null;\n }\n if (!this.lastObjectUnderMouse && this.eventArgs.source || (this.lastObjectUnderMouse !== this.eventArgs.actualObject)) {\n this.lastObjectUnderMouse = this.eventArgs.actualObject;\n if (this.eventArgs.actualObject !== undefined) {\n this.diagram.triggerEvent(DiagramEvent.mouseEnter, arg);\n }\n }\n if (this.eventArgs.actualObject) {\n this.diagram.triggerEvent(DiagramEvent.mouseOver, arg);\n }\n };\n DiagramEventHandler.prototype.elementEnter = function (mousePosition, elementOver) {\n if (!elementOver) {\n var isPrivateTooltip = ((this.hoverElement instanceof Node)\n && this.hoverElement.constraints & NodeConstraints.Tooltip)\n || ((this.hoverElement instanceof Connector)\n && this.hoverElement.constraints & ConnectorConstraints.Tooltip)\n || ((this.hoverElement instanceof PointPort || this.hoverElement instanceof PathPort)\n && this.hoverElement.constraints & PortConstraints.ToolTip)\n || ((this.hoverElement instanceof ShapeAnnotation || this.hoverElement instanceof PathAnnotation)\n && this.hoverElement.constraints & AnnotationConstraints.Tooltip);\n var content = this.getContent();\n var children = void 0;\n if (this.hoverElement && this.hoverElement.children && this.hoverElement.children.length > 0) {\n // EJ2-56981 - Below method is used to check if the mouse pointer position and group children node gets intersect or not\n children = this.findIntersectChild(this.hoverElement);\n }\n if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node.\n if (children) {\n updateTooltip(this.diagram, children);\n }\n else {\n updateTooltip(this.diagram, isPrivateTooltip ? this.hoverElement : undefined);\n }\n }\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Calculating offset position for relativeMode Mouse\n if (this.hoverElement.tooltip.content) {\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.setTooltipOffset(mousePosition);\n }\n else {\n this.diagram.tooltipObject.offsetX = 0;\n this.diagram.tooltipObject.offsetY = 0;\n }\n }\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n //848980 - Null exception occurs while hovering the ports\n if (obj !== null) {\n var targetEle = void 0;\n //840454 - support to provide isSticky property for tooltip in diagram control\n if (this.hoverElement.tooltip.isSticky) {\n this.diagram.tooltipObject.isSticky = true;\n }\n if (obj instanceof Node && obj.children && obj.children.length > 0) {\n // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node.\n obj = children ? children : obj;\n }\n //EJ2-62120 - check if the Node has Ports and hoverElement is Port as mousepointer hovered over Port\n if (obj.ports && (this.hoverElement instanceof PointPort || this.hoverElement instanceof PathPort)) {\n //executed to set target as port\n targetEle = document.getElementById(obj.id + '_' + this.hoverElement.id);\n }\n else if (obj.annotations\n && (this.hoverElement instanceof ShapeAnnotation || this.hoverElement instanceof PathAnnotation)) {\n //executed to set target as annotation\n targetEle = document.getElementById(obj.id + '_' + this.hoverElement.id);\n }\n else {\n //executed to set target as Node or Connector\n var idName = (obj.shape && ((obj.shape) instanceof Native)) ? '_content_native_element' : '_groupElement';\n targetEle = document.getElementById(obj.id + idName);\n }\n if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n this.diagram.tooltipObject.close();\n this.diagram.tooltipObject.openOn = this.hoverElement.tooltip.openOn;\n //Removed isBlazor code\n this.diagram.tooltipObject.dataBind();\n }\n if (canEnableToolTip(this.hoverElement, this.diagram) && this.hoverElement.tooltip.openOn === 'Auto') {\n this.diagram.tooltipObject.target = this.hoverElement.id;\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.diagram.tooltipObject.open(this.diagram.element);\n }\n else {\n this.diagram.tooltipObject.open(targetEle);\n }\n }\n }\n }\n };\n DiagramEventHandler.prototype.elementLeave = function () {\n if (this.diagram.tooltipObject && !this.diagram.tooltipObject.isSticky && this.diagram.tooltipObject.openOn !== 'Custom') {\n this.diagram.tooltipObject.close();\n }\n };\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Calculating offset position for relativeMode Mouse\n DiagramEventHandler.prototype.setTooltipOffset = function (mousePosition) {\n var offset = getTooltipOffset(this.diagram, mousePosition, this.hoverElement);\n this.diagram.tooltipObject.offsetX = offset.x;\n this.diagram.tooltipObject.offsetY = offset.y;\n };\n DiagramEventHandler.prototype.altKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Alt) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.ctrlKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Control) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.shiftKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Shift) {\n return true;\n }\n return false;\n };\n /** @private */\n DiagramEventHandler.prototype.scrolled = function (evt) {\n this.diagram.updateScrollOffset();\n //Removed isBlazor code\n };\n DiagramEventHandler.prototype.isMobileOrIPadDevice = function () {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\n // Check for iOS devices (iPhone, iPad, iPod)\n if (/iPhone|iPad|iPod/.test(userAgent) && !window.MSStream) {\n return 'iOS';\n }\n // Check for Android devices\n if (/android/i.test(userAgent)) {\n return 'Android';\n }\n // Check for other mobile devices (general fallback)\n if (/Mobile|Tablet/.test(userAgent)) {\n return 'Mobile';\n }\n return 'Desktop';\n };\n /** @private */\n DiagramEventHandler.prototype.doubleClick = function (evt) {\n if (canUserInteract(this.diagram)) {\n //Bug 916653: Issue with drawing Polyline in iPad.\n //Added below code to check for mobile and ipad device.\n var isMobileOrIPad = this.isMobileOrIPadDevice();\n var curTool = this.diagram.tool;\n if ((isMobileOrIPad !== 'Desktop') && (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool))) {\n this.diagram.tool = 0;\n }\n var annotation = void 0;\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n if (obj !== null && canUserInteract(this.diagram)) {\n var node = obj;\n annotation = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n if (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)) {\n var arg_2 = {\n source: cloneBlazorObject(obj),\n position: this.currentPosition, count: evt.detail\n };\n this.diagram.tool = curTool;\n this.tool.mouseUp(this.eventArgs);\n this.isMouseDown = false;\n this.eventArgs = {};\n this.tool = null;\n evt.preventDefault();\n }\n else {\n var layer = this.diagram.commandHandler.getObjectLayer(obj.id);\n if (layer && !layer.lock && layer.visible) {\n if (!(this.diagram.diagramActions & DiagramAction.TextEdit)) {\n var id = '';\n this.diagram.startTextEdit(obj, id || (annotation instanceof TextElement ?\n (annotation.id).split(obj.id + '_')[1] : undefined));\n }\n }\n }\n }\n var arg = {\n source: cloneBlazorObject(obj) || cloneBlazorObject(this.diagram),\n position: this.currentPosition, count: evt.detail\n };\n //Removed isBlazor code\n this.diagram.triggerEvent(DiagramEvent.doubleClick, arg);\n }\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.itemClick = function (actualTarget, diagram) {\n var obj = actualTarget;\n if (checkParentAsContainer(this.diagram, obj, true)) {\n return obj;\n }\n return null;\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.inputChange = function (evt) {\n var minWidth = 90;\n var maxWidth;\n var minHeight = 12;\n var fontsize;\n var textWrapper;\n var node;\n var height;\n var width;\n var textBounds;\n var textBoxWidth;\n var transforms;\n var scale;\n var editTextBox = document.getElementById(this.diagram.element.id + '_editBox');\n var editTextBoxDiv = document.getElementById(this.diagram.element.id + '_editTextBoxDiv');\n var text = (editTextBox.value);\n var line = text.split('\\n');\n node = (this.diagram.selectedItems.nodes[0]) ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0];\n if ((!node && this.tool instanceof TextDrawingTool) || (node && node.shape.type === 'SwimLane')) {\n node = this.diagram.nameTable[this.diagram.activeLabel.parentId];\n }\n if (node && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) {\n textWrapper = this.diagram.getWrapper(node.wrapper, this.diagram.activeLabel.id);\n maxWidth = node.wrapper.bounds.width < textWrapper.bounds.width ? node.wrapper.bounds.width : textWrapper.bounds.width;\n maxWidth = maxWidth > minWidth ? maxWidth : minWidth;\n textBounds = measureHtmlText(textWrapper.style, text, undefined, undefined, maxWidth);\n fontsize = Number((editTextBox.style.fontSize).split('px')[0]);\n if (line.length > 1 && line[line.length - 1] === '') {\n textBounds.height = textBounds.height + fontsize;\n }\n transforms = this.diagram.scroller.transform;\n scale = canZoomTextEdit(this.diagram) ? transforms.scale : 1;\n width = textBounds.width;\n width = ((minWidth > width) ? minWidth : width) * scale;\n height = ((minHeight > textBounds.height) ? minHeight : textBounds.height) * scale;\n editTextBoxDiv.style.left = ((((textWrapper.bounds.center.x + transforms.tx) * transforms.scale) - width / 2) - 2.5) + 'px';\n editTextBoxDiv.style.top = ((((textWrapper.bounds.center.y + transforms.ty) * transforms.scale) - height / 2) - 3) + 'px';\n editTextBoxDiv.style.width = width + 'px';\n editTextBoxDiv.style.height = height + 'px';\n editTextBox.style.minHeight = minHeight + 'px';\n editTextBox.style.minWidth = minWidth + 'px';\n editTextBox.style.width = width + 'px';\n editTextBox.style.height = height + 'px';\n }\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.isAddTextNode = function (node, focusOut) {\n if (this.tool instanceof TextDrawingTool || focusOut) {\n this.tool = null;\n if (node && (!(canContinuousDraw(this.diagram)))) {\n this.diagram.drawingObject = undefined;\n this.diagram.currentDrawingObject = undefined;\n }\n if (getObjectFromCollection(this.diagram.nodes, node.id) ||\n getObjectFromCollection(this.diagram.connectors, node.id)) {\n return false;\n }\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.checkEditBoxAsTarget = function (evt) {\n if ((evt.target && evt.target.id === this.diagram.element.id + '_editBox')) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.getMouseEventArgs = function (position, args, source, padding) {\n args.position = position;\n var obj;\n var objects;\n if (!source) {\n if (this.action === 'Drag' || this.action === 'ConnectorSourceEnd' || this.action === 'SegmentEnd' ||\n this.action === 'OrthoThumb' || this.action === 'BezierSourceThumb' || this.action === 'BezierTargetThumb' ||\n this.action === 'ConnectorTargetEnd' || this.action.indexOf('Rotate') !== -1 || this.action.indexOf('Resize') !== -1) {\n obj = this.diagram.selectedItems;\n if (!this.diagram.currentSymbol && this.action === 'Drag' && obj && this.diagram.selectedItems.nodes.length > 0 &&\n this.diagram.selectedItems.nodes[0].shape.type === 'SwimLane') {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n }\n else {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n }\n else {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition, source);\n obj = this.diagram.findTargetObjectUnderMouse(objects, this.action, this.inAction, args.position, source);\n }\n if (obj && obj.isHeader) {\n obj = this.diagram.nameTable[obj.parentId];\n this.eventArgs.actualObject = obj;\n }\n var wrapper;\n if (obj) {\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram, padding);\n var currentConnector = void 0;\n var nearNode = void 0;\n var i = void 0;\n if ((wrapper && obj.ports && obj.ports.length\n && !checkPort(obj, wrapper) || !wrapper || !obj) && objects && objects.length\n && (source instanceof Selector)) {\n currentConnector = source.connectors[0];\n for (i = objects.length - 1; i >= 0; i--) {\n nearNode = objects[parseInt(i.toString(), 10)];\n if ((nearNode instanceof Node || nearNode instanceof Connector) && currentConnector\n && currentConnector.connectionPadding) {\n obj = nearNode;\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram, padding);\n if (((currentConnector.constraints & ConnectorConstraints.ConnectToNearByPort) && obj &&\n obj.ports && obj.ports.length && checkPort(obj, wrapper))) {\n break;\n }\n if ((nearNode instanceof Node || nearNode instanceof Connector) && currentConnector\n && currentConnector.connectionPadding && nearNode.wrapper.outerBounds.containsPoint(this.currentPosition)\n && (currentConnector.constraints & ConnectorConstraints.ConnectToNearByNode)\n && !(currentConnector.constraints & ConnectorConstraints.ConnectToNearByPort)) {\n obj = nearNode;\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram, 0);\n break;\n }\n }\n }\n }\n }\n if (!source) {\n args.source = obj;\n args.sourceWrapper = wrapper;\n }\n else {\n args.target = obj;\n args.targetWrapper = wrapper;\n }\n args.actualObject = this.eventArgs.actualObject;\n if (args.source instanceof Selector && args.actualObject === undefined &&\n (args.source.nodes.length > 0 || args.source.connectors.length > 0)) {\n args.actualObject = args.source.nodes.length > 0 ? this.diagram.nameTable[args.source.nodes[0].id]\n : this.diagram.nameTable[args.source.connectors[0].id];\n }\n args.startTouches = this.touchStartList;\n args.moveTouches = this.touchMoveList;\n return args;\n };\n /** @private */\n DiagramEventHandler.prototype.resetTool = function () {\n this.action = 'Select';\n this.hoverElement = null;\n this.hoverNode = null;\n this.tool = this.diagram.getTool(this.action);\n this.updateCursor();\n };\n /** @private */\n DiagramEventHandler.prototype.updateTool = function () {\n // 912436: Update Tool at runtime\n if (!this.currentPosition || this.action === 'Pan') {\n this.action = 'Select';\n }\n else {\n this.action = 'Pan';\n }\n };\n /** @private */\n DiagramEventHandler.prototype.getTool = function (action) {\n switch (action) {\n case 'Select':\n return new SelectTool(this.commandHandler, true);\n case 'Drag':\n return new MoveTool(this.commandHandler);\n case 'Rotate':\n return new RotateTool(this.commandHandler);\n case 'LayoutAnimation':\n return new ExpandTool(this.commandHandler);\n case 'FixedUserHandle':\n return new FixedUserHandleTool(this.commandHandler, true);\n case 'Hyperlink':\n return new LabelTool(this.commandHandler);\n case 'ResizeSouthEast':\n case 'ResizeSouthWest':\n case 'ResizeNorthEast':\n case 'ResizeNorthWest':\n case 'ResizeSouth':\n case 'ResizeNorth':\n case 'ResizeWest':\n case 'ResizeEast':\n return new ResizeTool(this.commandHandler, action);\n case 'ConnectorSourceEnd':\n case 'ConnectorTargetEnd':\n case 'BezierSourceThumb':\n case 'BezierTargetThumb':\n return new ConnectTool(this.commandHandler, action);\n case 'SegmentEnd':\n case 'OrthoThumb':\n return new ConnectorEditing(this.commandHandler, action);\n case 'Draw':\n var shape = 'shape';\n var basicShape = 'basicShape';\n var type = findObjectType(this.diagram.drawingObject);\n if (type === 'Node' && this.diagram.drawingObject.shape.type === 'Text') {\n return new TextDrawingTool(this.commandHandler);\n }\n else if (type === 'Connector' && this.diagram.drawingObject.type === 'Freehand') {\n return new FreeHandTool(this.commandHandler);\n }\n else if (type === 'Node' && (this.diagram.drawingObject.shape[\"\" + shape] === 'Polygon') &&\n !(this.diagram.drawingObject.shape.points)) {\n return new PolygonDrawingTool(this.commandHandler);\n }\n else if (type === 'Node' ||\n (type === 'Node' && this.diagram.drawingObject.shape[\"\" + shape] === 'Polygon' &&\n (this.diagram.drawingObject.shape.points))) {\n return new NodeDrawingTool(this.commandHandler, this.diagram.drawingObject);\n }\n else if (type === 'Connector' && this.diagram.drawingObject.type === 'Polyline') {\n return new PolyLineDrawingTool(this.commandHandler);\n }\n else if (type === 'Connector') {\n return new ConnectorDrawingTool(this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject);\n }\n break;\n case 'Pan':\n return new ZoomPanTool(this.commandHandler, false);\n case 'PinchZoom':\n return new ZoomPanTool(this.commandHandler, true);\n case 'PortDrag':\n return new MoveTool(this.commandHandler, 'Port');\n case 'PortDraw':\n return new ConnectorDrawingTool(this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject);\n case 'LabelSelect':\n return new SelectTool(this.commandHandler, true, 'LabelSelect');\n case 'LabelDrag':\n return new LabelDragTool(this.commandHandler);\n case 'LabelResizeSouthEast':\n case 'LabelResizeSouthWest':\n case 'LabelResizeNorthEast':\n case 'LabelResizeNorthWest':\n case 'LabelResizeSouth':\n case 'LabelResizeNorth':\n case 'LabelResizeWest':\n case 'LabelResizeEast':\n return new LabelResizeTool(this.commandHandler, action);\n case 'LabelRotate':\n return new LabelRotateTool(this.commandHandler);\n //for coverage\n // case 'Custom':\n // return this.diagram.getTool(action);\n }\n return null;\n };\n /** @private */\n DiagramEventHandler.prototype.getCursor = function (action) {\n var object = (this.diagram.selectedItems.annotation) ?\n this.diagram.selectedItems.wrapper.children[0] : this.diagram.selectedItems;\n var rotateAngle = (this.diagram.selectedItems.annotation) ?\n (object.rotateAngle + object.parentTransform) : object.rotateAngle;\n return getCursor(action, rotateAngle);\n };\n //start region - interface betweend diagram and interaction\n /** @private */\n DiagramEventHandler.prototype.findElementUnderMouse = function (obj, position, diagram, padding) {\n return this.objectFinder.findElementUnderSelectedItem(obj, position, diagram, padding);\n };\n /** @private */\n DiagramEventHandler.prototype.findObjectsUnderMouse = function (position, source) {\n return this.objectFinder.findObjectsUnderMouse(position, this.diagram, this.eventArgs, source);\n };\n /** @private */\n DiagramEventHandler.prototype.findObjectUnderMouse = function (objects, action, inAction) {\n return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, this.currentPosition);\n };\n /** @private */\n DiagramEventHandler.prototype.findTargetUnderMouse = function (objects, action, inAction, position, source) {\n return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, position, source);\n };\n /** @private */\n DiagramEventHandler.prototype.findActionToBeDone = function (obj, wrapper, position, target) {\n return findToolToActivate(obj, wrapper, this.currentPosition, this.diagram, this.touchStartList, this.touchMoveList, target);\n };\n DiagramEventHandler.prototype.updateContainerBounds = function (isAfterMouseUp) {\n var isGroupAction = false;\n if (this.diagram.selectedObject.helperObject && this.diagram.selectedObject.actualObject) {\n var obj = this.diagram.selectedObject.actualObject;\n var nodes = this.diagram.selectedObject.actualObject instanceof Selector ? obj.nodes : [obj];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[parseInt(i.toString(), 10)];\n var boundsUpdate = (this.tool instanceof ResizeTool) ? true : false;\n var parentNode = this.diagram.nameTable[node.parentId];\n if (isAfterMouseUp) {\n removeChildInContainer(this.diagram, node, this.currentPosition, boundsUpdate);\n }\n else {\n if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) {\n this.diagram.updateDiagramObject(node);\n }\n isGroupAction = updateCanvasBounds(this.diagram, node, this.currentPosition, boundsUpdate);\n this.diagram.updateSelector();\n if (node.isLane || node.isPhase) {\n this.diagram.clearSelection();\n this.commandHandler.selectObjects([node]);\n }\n }\n }\n }\n return isGroupAction;\n };\n // tslint:disable-next-line:max-func-body-length\n DiagramEventHandler.prototype.updateContainerProperties = function () {\n var helperObject;\n var isChangeProperties = false;\n var hasStack;\n var connectors;\n var hasGroup = false;\n var obj;\n var history = { hasStack: false, isPreventHistory: false };\n if (this.diagram.selectedObject.helperObject) {\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n helperObject = this.diagram.selectedObject.helperObject;\n obj = this.diagram.selectedObject.actualObject;\n if (obj instanceof Node) {\n if (obj.shape.type === 'SwimLane') {\n connectors = getConnectors(this.diagram, obj.wrapper.children[0], 0, true);\n }\n if (obj.shape.type !== 'SwimLane' && obj.parentId &&\n this.diagram.getObject(obj.parentId).shape.type === 'SwimLane') {\n if (target instanceof Node && this.diagram.getObject(target.parentId) &&\n this.diagram.getObject(target.parentId).shape.type !== 'SwimLane') {\n target = this.diagram.getObject(target.parentId);\n }\n }\n if (this.currentAction === 'Drag' && obj.container && obj.container.type === 'Canvas' && obj.parentId &&\n this.diagram.getObject(obj.parentId).shape.type === 'SwimLane' && target && target !== obj &&\n target.container && target.container.type === 'Canvas' && target.isLane &&\n obj.isLane && target.parentId === obj.parentId) {\n laneInterChanged(this.diagram, obj, target, this.currentPosition);\n history.isPreventHistory = true;\n }\n else {\n var parentNode = this.diagram.nameTable[obj.parentId];\n if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) {\n if (parentNode && parentNode.isLane && (obj.constraints & NodeConstraints.AllowMovingOutsideLane)) {\n // 915151: Node Becomes Unmovable After Deleting the First Phase\n var swimlane = this.diagram.getObject(parentNode.parentId);\n var x = void 0;\n var y = void 0;\n if (swimlane.shape.orientation === 'Vertical') {\n x = swimlane.wrapper.bounds.x + swimlane.shape.phaseSize;\n y = swimlane.wrapper.bounds.y + swimlane.shape.header.height;\n }\n else {\n var header = swimlane.shape.header.height +\n swimlane.shape.phaseSize;\n x = swimlane.wrapper.bounds.x;\n y = swimlane.wrapper.bounds.y + header;\n }\n var width = swimlane.wrapper.bounds.bottomRight.x - x;\n var height = swimlane.wrapper.bounds.bottomRight.y - y;\n var swimlaneBounds = new Rect(x, y, width, height);\n if (swimlaneBounds.containsPoint(this.currentPosition)) {\n obj.offsetX = helperObject.offsetX;\n obj.offsetY = helperObject.offsetY;\n obj.width = helperObject.width;\n obj.height = helperObject.height;\n obj.rotateAngle = helperObject.rotateAngle;\n }\n }\n else {\n // 902192: Diagram node resized wrongly while dragging with multiple selection Inside a swimlane Issue Fix\n if (this.diagram.selectedItems.nodes.length === 1) {\n // Single node move with helper\n obj.offsetX = helperObject.offsetX;\n obj.offsetY = helperObject.offsetY;\n if (obj && obj.shape && obj.shape.type !== 'UmlClassifier') {\n obj.width = helperObject.width;\n obj.height = helperObject.height;\n }\n obj.rotateAngle = helperObject.rotateAngle;\n }\n else if (this.diagram.selectedItems.nodes.length > 1) {\n // Multi selected node move with helper\n var offsetX = (helperObject.offsetX - this.diagram.selectedItems.offsetX);\n var offsetY = (helperObject.offsetY - this.diagram.selectedItems.offsetY);\n var rotateAngle = (helperObject.rotateAngle - this.diagram.selectedItems.rotateAngle);\n for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) {\n this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX += offsetX;\n this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY += offsetY;\n this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].rotateAngle += rotateAngle;\n }\n }\n }\n }\n var undoElement = void 0;\n if (parentNode && parentNode.container && parentNode.container.type === 'Stack') {\n this.diagram.startGroupAction();\n hasGroup = true;\n }\n if (!target && parentNode && parentNode.container && parentNode.container.type === 'Stack' && this.action === 'Drag') {\n var index = parentNode.wrapper.children.indexOf(obj.wrapper);\n undoElement = { targetIndex: undefined, target: undefined, sourceIndex: index, source: clone(obj) };\n if (index > -1) {\n var children = parentNode.children;\n children.splice(children.indexOf(obj.id), 1);\n this.diagram.nameTable[obj.id].parentId = '';\n hasStack = true;\n parentNode.wrapper.children.splice(index, 1);\n }\n }\n moveChildInStack(obj, target, this.diagram, this.action);\n parentNode = checkParentAsContainer(this.diagram, obj) ? this.diagram.nameTable[obj.parentId] :\n (this.diagram.nameTable[obj.parentId] || obj);\n if (parentNode && parentNode.container && parentNode.container.type === 'Canvas') {\n parentNode.wrapper.maxWidth = parentNode.maxWidth = parentNode.wrapper.actualSize.width;\n parentNode.wrapper.maxHeight = parentNode.maxHeight = parentNode.wrapper.actualSize.height;\n isChangeProperties = true;\n }\n if (checkParentAsContainer(this.diagram, obj, true) && parentNode && parentNode.container.type === 'Canvas') {\n if (this.diagram.selectedItems.nodes.length > 1) {\n // 902192: Diagram node resized wrongly while dragging with multiple selection Inside a swimlane Issue Fix\n for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) {\n checkChildNodeInContainer(this.diagram, this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)]);\n }\n }\n else {\n checkChildNodeInContainer(this.diagram, obj);\n }\n }\n else {\n history = this.updateContainerPropertiesExtend(parentNode, obj, connectors, helperObject, history);\n }\n if ((this.diagram.lineRoutingModule && (this.diagram.constraints & DiagramConstraints.LineRouting))\n && (!checkParentAsContainer(this.diagram, obj, true))) {\n if (obj.children) {\n this.diagram.realActions |= RealAction.EnableGroupAction;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n width: obj.width, height: obj.height,\n offsetX: obj.offsetX, offsetY: obj.offsetY\n });\n if (obj.children) {\n this.diagram.realActions &= ~RealAction.EnableGroupAction;\n }\n }\n if (obj.shape.lanes) {\n this.updateLaneChildNode(obj);\n }\n if (isChangeProperties) {\n parentNode.maxWidth = parentNode.wrapper.maxWidth = undefined;\n parentNode.maxHeight = parentNode.wrapper.maxHeight = undefined;\n }\n if (hasStack) {\n this.diagram.nodePropertyChange(parentNode, {}, {\n offsetX: parentNode.offsetX, offsetY: parentNode.offsetY, width: parentNode.width, height: parentNode.height,\n rotateAngle: parentNode.rotateAngle\n });\n var entry = {\n redoObject: { sourceIndex: undefined, source: undoElement.source },\n type: 'StackChildPositionChanged', undoObject: undoElement, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.diagram.addHistoryEntry(entry);\n }\n }\n if (obj && obj.container && (obj.container.type === 'Stack' ||\n (obj.container.type === 'Canvas' && obj.parentId === ''))) {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle\n });\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = false;\n }\n }\n }\n updateConnectorsProperties(connectors, this.diagram);\n history.hasStack = hasGroup;\n }\n // Bug:914714 Drag Drop Multi selected nodes between lanes.\n else if (obj instanceof Selector) {\n var offsetX = (helperObject.offsetX - obj.offsetX);\n var offsetY = (helperObject.offsetY - obj.offsetY);\n var rotateAngle = (helperObject.rotateAngle - obj.rotateAngle);\n var width = (helperObject.width - obj.width);\n var height = (helperObject.height - obj.height);\n for (var i = 0; i < obj.nodes.length; i++) {\n var node = obj.nodes[parseInt(i.toString(), 10)];\n var parentNode = this.diagram.nameTable[node.parentId];\n if (parentNode && parentNode.shape.type !== 'SwimLane' && checkParentAsContainer(this.diagram, node, true)\n && parentNode.container.type === 'Canvas') {\n node.offsetX += offsetX;\n node.offsetY += offsetY;\n if (node && node.shape && node.shape.type !== 'UmlClassifier') {\n node.width += width;\n node.height += height;\n }\n node.rotateAngle += rotateAngle;\n checkChildNodeInContainer(this.diagram, node);\n }\n }\n }\n }\n if (obj && (obj.isPhase || obj.isLane ||\n (obj.shape && obj.shape.type === 'SwimLane'))) {\n this.diagram.updateDiagramElementQuad();\n }\n return history;\n };\n DiagramEventHandler.prototype.updateLaneChildNode = function (obj) {\n for (var i = 0; i < (obj.shape.lanes.length); i++) {\n if (obj.shape.lanes[parseInt(i.toString(), 10)].children\n && obj.shape.lanes[parseInt(i.toString(), 10)].children.length > 0) {\n for (var j = 0; j < obj.shape.lanes[parseInt(i.toString(), 10)].children.length; j++) {\n var id = obj.shape.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)].id;\n var childNode = this.diagram.nameTable[\"\" + id];\n //828489 - Exception occurs while dragging swimlane after adding shape & undo action is performed\n if (childNode) {\n childNode.offsetX = childNode.wrapper.offsetX;\n childNode.offsetY = childNode.wrapper.offsetY;\n }\n }\n }\n }\n };\n DiagramEventHandler.prototype.updateContainerPropertiesExtend = function (parentNode, obj, connectors, helperObject, history) {\n if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth' || obj.shape.type === 'SwimLane') {\n var undoObj = cloneObject(obj);\n var isUpdateRow = false;\n if (parentNode && parentNode.container && parentNode.container.type === 'Grid') {\n var shape = parentNode.shape.type === 'SwimLane' ? true : false;\n var container = (shape ? parentNode.wrapper.children[0] : parentNode.wrapper);\n var padding = shape ? parentNode.shape.padding : undefined;\n var x = parentNode.wrapper.bounds.x;\n var y = parentNode.wrapper.bounds.y;\n if (obj.columnIndex !== undefined && (parentNode.container.orientation === 'Horizontal' &&\n ((shape && obj.isPhase) || (!shape && obj.rowIndex === 1))) ||\n (parentNode.container.orientation === 'Vertical' &&\n ((!shape && obj.rowIndex > 0 && obj.columnIndex > 0) || (shape && obj.isLane)))) {\n if (parentNode.container.orientation === 'Horizontal' && obj.isPhase && obj.wrapper.width > obj.maxWidth) {\n obj.maxWidth = obj.wrapper.width;\n obj.wrapper.maxWidth = obj.wrapper.width;\n }\n // 910832 - Lane height updating to negative values wrongly during resizing\n container.updateColumnWidth(obj.columnIndex, helperObject.width, true, padding);\n updateSwimLaneObject(this.diagram, obj, parentNode, helperObject);\n if (obj.isPhase) {\n var id = parentNode.shape.phases[obj.columnIndex].header.id;\n var node = this.diagram.nameTable[\"\" + id];\n if (node.maxWidth < helperObject.width) {\n node.maxWidth = helperObject.width;\n node.wrapper.maxWidth = helperObject.width;\n }\n }\n if (parentNode.shape.type === 'SwimLane') {\n parentNode.width = (parentNode.width) ? container.width : parentNode.width;\n updateHeaderMaxWidth(this.diagram, parentNode);\n parentNode.wrapper.width = parentNode.width;\n connectors = getConnectors(this.diagram, container, obj.rowIndex, false);\n }\n }\n else if (obj.rowIndex !== undefined) {\n isUpdateRow = true;\n // 910832 - Lane height updating to negative values wrongly during resizing\n container.updateRowHeight(obj.rowIndex, helperObject.height, true, padding);\n updateSwimLaneObject(this.diagram, obj, parentNode, helperObject);\n if (parentNode.shape.type === 'SwimLane') {\n parentNode.height = (parentNode.height) ? container.height : parentNode.height;\n parentNode.wrapper.height = parentNode.height;\n connectors = getConnectors(this.diagram, container, obj.rowIndex, true);\n }\n }\n if (parentNode.shape.type === 'SwimLane') {\n history.isPreventHistory = true;\n }\n this.diagram.nodePropertyChange(parentNode, {}, {\n offsetX: parentNode.offsetX, offsetY: parentNode.offsetY,\n rotateAngle: parentNode.rotateAngle\n });\n this.diagram.drag(parentNode, x - parentNode.wrapper.bounds.x, y - parentNode.wrapper.bounds.y);\n }\n else {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle\n });\n obj.wrapper.measureChildren = false;\n }\n obj.wrapper.measure(new Size(obj.wrapper.width, obj.wrapper.height));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth') {\n var redoObject = cloneObject(obj);\n var entry = {\n category: 'Internal',\n type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged',\n undoObject: undoObj, redoObject: redoObject\n };\n this.diagram.addHistoryEntry(entry);\n }\n }\n updateConnectorsProperties(connectors, this.diagram);\n return history;\n };\n DiagramEventHandler.prototype.addUmlNode = function () {\n var node = this.diagram.selectedItems.nodes[0];\n var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x + 20, y: this.currentPosition.y });\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n var attribute;\n var method;\n if (!target) {\n objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y });\n target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n if (node && node.container && node.container.type === 'Stack' && target && target.parentId\n && target.parentId === node.id) {\n var innerNode = target;\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter');\n if (highlighter) {\n var index = node.wrapper.children.indexOf(target.wrapper) + 1;\n this.diagram.enableServerDataBinding(false);\n var temp = new Node(this.diagram, 'nodes', {\n style: {\n fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor\n },\n annotations: target.annotations, verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n temp.annotations[0].content = ' + Name : Type';\n var id = innerNode.id.split('_');\n temp.id = randomId() + temp.id;\n temp.parentId = node.id;\n temp.zIndex = -1;\n temp.umlIndex = index;\n this.diagram.startGroupAction();\n var child = { name: 'Name', type: 'Type' };\n //While dynamically adding nodes at runtime using the isSeparator highlighter, make sure to include the newly added nodes in the existing arrays of the UML node for the respective child types.\n if (node.shape.classifier === 'Class') {\n if (target.id.includes('_umlProperty') && node.shape.classShape.attributes.length > 0) {\n attribute = new UmlClassAttribute(node, '', child);\n node.shape.classShape.attributes.push(attribute);\n }\n else if (target.id.includes('_umlMethods') && node.shape.classShape.methods.length > 0) {\n method = new UmlClassMethod(node, '', child);\n node.shape.classShape.methods.push(method);\n }\n }\n if (node.shape.classifier === 'Interface') {\n if (target.id.includes('_umlProperty') && node.shape.interfaceShape.attributes.length > 0) {\n attribute = new UmlClassAttribute(node, '', child);\n node.shape.classShape.attributes.push(attribute);\n }\n else if (target.id.includes('_umlMethods') && node.shape.interfaceShape.methods.length > 0) {\n method = new UmlClassMethod(node, '', child);\n node.shape.interfaceShape.methods.push(method);\n }\n }\n if (node.shape.classifier === 'Enumeration') {\n if (target.id.includes('_umlMember') && node.shape.enumerationShape.members.length > 0) {\n var member = new UmlEnumerationMember(node, '', child);\n node.shape.enumerationShape.members.push(member);\n }\n }\n var redoElement = {\n sourceIndex: node.wrapper.children.indexOf(temp.wrapper), source: temp,\n target: undefined, targetIndex: undefined\n };\n this.diagram.enableServerDataBinding(true);\n this.diagram.add(temp);\n this.diagram.updateConnectorEdges(node);\n this.diagram.clearSelection();\n this.diagram.select([this.diagram.nameTable[temp.id]]);\n this.diagram.endGroupAction();\n this.diagram.startTextEdit();\n }\n }\n };\n return DiagramEventHandler;\n}());\nexport { DiagramEventHandler };\n/** @private */\nvar ObjectFinder = /** @class */ (function () {\n function ObjectFinder() {\n }\n /** @private */\n ObjectFinder.prototype.findObjectsUnderMouse = function (pt, diagram, eventArgs, source, actions) {\n // finds the collection of the object that is under the mouse;\n var actualTarget = [];\n if (source && source instanceof Selector) {\n if (source.nodes.length + source.connectors.length === 1) {\n source = (source.nodes[0] || source.connectors[0]);\n if (source.children && source.children.length === 0) {\n eventArgs.actualObject = source;\n }\n }\n }\n var container;\n var bounds;\n var child;\n var matrix;\n var endPadding = (source && (source instanceof Connector) &&\n ((source.constraints & ConnectorConstraints.ConnectToNearByNode) ||\n (source.constraints & ConnectorConstraints.ConnectToNearByPort)) && source.connectionPadding) || 0;\n var objArray = diagram.spatialSearch.findObjects(new Rect(pt.x - 50 - endPadding, pt.y - 50 - endPadding, 100 + endPadding, 100 + endPadding));\n var layerObjTable = {};\n var layerTarger;\n for (var _i = 0, objArray_1 = objArray; _i < objArray_1.length; _i++) {\n var obj = objArray_1[_i];\n var point = pt;\n bounds = obj.wrapper.outerBounds;\n var pointInBounds = (obj.rotateAngle) ? false : bounds.containsPoint(point, endPadding);\n if ((obj !== source || diagram.currentDrawingObject instanceof Connector) &&\n (obj instanceof Connector) ? obj !== diagram.currentDrawingObject : true && obj.wrapper.visible) {\n var layer = diagram.commandHandler.getObjectLayer(obj.id);\n if (layer && !layer.lock && layer.visible) {\n layerTarger = layerObjTable[layer.zIndex] = layerObjTable[layer.zIndex] || [];\n if (obj.rotateAngle) {\n container = obj.wrapper;\n bounds = cornersPointsBeforeRotation(container);\n for (var _a = 0, _b = container.children; _a < _b.length; _a++) {\n child = _b[_a];\n matrix = identityMatrix();\n rotateMatrix(matrix, -(child.rotateAngle + child.parentTransform), child.offsetX, child.offsetY);\n point = transformPointByMatrix(matrix, pt);\n if (cornersPointsBeforeRotation(child).containsPoint(point, endPadding)) {\n pointInBounds = true;\n }\n }\n }\n if (!source || (isSelected(diagram, obj) === false)) {\n if (canEnablePointerEvents(obj, diagram)) {\n if ((obj instanceof Connector) ? isPointOverConnector(obj, pt) : pointInBounds) {\n var padding = (obj instanceof Connector) ? obj.hitPadding || 0 : 0; //let element: DiagramElement;\n var element = this.findElementUnderMouse(obj, pt, diagram, endPadding || padding);\n if (element && obj.id !== 'helper') {\n insertObject(obj, 'zIndex', layerTarger);\n }\n }\n }\n }\n }\n }\n }\n for (var _c = 0, _d = diagram.layers; _c < _d.length; _c++) {\n var layer = _d[_c];\n actualTarget = actualTarget.concat(layerObjTable[layer.zIndex] || []);\n for (var _e = 0, actualTarget_1 = actualTarget; _e < actualTarget_1.length; _e++) {\n var obj = actualTarget_1[_e];\n var eventHandler = 'eventHandler';\n if (obj.shape.type === 'Bpmn' && obj.processId && (!(diagram[\"\" + eventHandler].tool instanceof MoveTool) ||\n (diagram[\"\" + eventHandler].tool instanceof MoveTool) && canAllowDrop(obj))) {\n var index = actualTarget.indexOf(diagram.nameTable[obj.processId]);\n if (index > -1) {\n actualTarget.splice(index, 1);\n }\n }\n if (obj.shape.type === 'UmlClassifier' && obj.container && obj.container.type === 'Stack') {\n var index = actualTarget.indexOf(diagram.nameTable[diagram.nameTable[obj.id].wrapper.children[0].id]);\n if (index > -1) {\n actualTarget.splice(index, 1);\n }\n }\n }\n }\n for (var i = 0; i < actualTarget.length; i++) {\n var parentObj = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId];\n if (parentObj) {\n var portElement = this.findElementUnderMouse(parentObj, pt, diagram);\n for (var j = 0; j < parentObj.ports.length; j++) {\n if (portElement && portElement.id.match('_' + parentObj.ports[parseInt(j.toString(), 10)].id + '$')) {\n var port = parentObj.ports[parseInt(j.toString(), 10)];\n if (canDrag(port, diagram) || canDraw(port, diagram)) {\n return actualTarget;\n }\n }\n }\n }\n while (parentObj) {\n var index = actualTarget.indexOf(parentObj);\n if (index !== -1) {\n actualTarget.splice(index, 1);\n }\n else {\n break;\n }\n parentObj = diagram.nameTable[parentObj.parentId];\n }\n }\n this.checkSwimlane(actualTarget, diagram);\n if (eventArgs && !eventArgs.source) {\n for (var i = 0; i < actualTarget.length; i++) {\n var parentNode = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId];\n if (parentNode && parentNode.shape.type === 'SwimLane') {\n for (var j = 0; j < actualTarget.length; j++) {\n var connector = actualTarget[parseInt(j.toString(), 10)];\n if (connector instanceof Connector) {\n actualTarget.splice(i, 1);\n }\n }\n }\n }\n }\n return actualTarget;\n };\n /** @private */\n ObjectFinder.prototype.checkSwimlane = function (actualTarget, diagram) {\n var isNode;\n for (var m = 0; m < actualTarget.length; m++) {\n var obj = actualTarget[parseInt(m.toString(), 10)];\n var parentNode = void 0;\n var node = void 0;\n if (obj instanceof Node) {\n parentNode = actualTarget[parseInt(m.toString(), 10)].parentId;\n node = obj;\n }\n if (parentNode === '') {\n if (node.shape.type !== 'SwimLane') {\n isNode = true;\n }\n else {\n isNode = false;\n }\n }\n var parent_2 = diagram.nameTable[\"\" + parentNode];\n if (parent_2 && parent_2.isLane && diagram.nameTable[parent_2.parentId].zIndex > obj.zIndex) {\n actualTarget[parseInt(m.toString(), 10)] = parent_2;\n }\n if (m > 0 && isNode && node && (node.isLane || node.isPhase || node.isHeader)) {\n if (actualTarget[parseInt(m.toString(), 10)].zIndex < actualTarget[m - 1].zIndex) {\n var swap = actualTarget[parseInt(m.toString(), 10)];\n actualTarget[parseInt(m.toString(), 10)] = actualTarget[m - 1];\n actualTarget[m - 1] = swap;\n }\n }\n }\n if (actualTarget.length >= 2) {\n var parent_3 = '';\n for (var i = actualTarget.length - 1; i >= 0; i--) {\n if (actualTarget[parseInt(i.toString(), 10)].parentId) {\n var parent1 = findParentInSwimlane(actualTarget[parseInt(i.toString(), 10)], diagram, parent_3);\n var parent2 = findParentInSwimlane(actualTarget[i - 1], diagram, parent_3);\n var parentNode1 = diagram.nameTable[\"\" + parent1];\n var parentNode2 = diagram.nameTable[\"\" + parent2];\n if (parentNode2 && parent1 !== parent2 && parentNode1.zIndex < parentNode2.zIndex) {\n actualTarget.splice(i, 1);\n }\n }\n }\n }\n };\n /** @private */\n ObjectFinder.prototype.isTarget = function (actualTarget, diagram, action) {\n var connector = diagram.selectedItems.connectors[0];\n var node;\n node = action === 'ConnectorSourceEnd' ? diagram.nameTable[connector.targetID] :\n node = diagram.nameTable[connector.sourceID];\n if (node && !(node.processId && !actualTarget.processId\n || node.processId !== actualTarget.processId)) {\n if (node.processId !== actualTarget.processId) {\n actualTarget = null;\n }\n if (actualTarget && actualTarget.parentId &&\n diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') {\n actualTarget = diagram.nameTable[actualTarget.parentId];\n }\n }\n if (action === 'ConnectorSourceEnd' && connector.targetID) {\n var targetNode = diagram.nameTable[connector.targetID];\n if (targetNode && targetNode.shape && (targetNode.shape.shape === 'TextAnnotation')) {\n var id = connector.id.split('_');\n if (((targetNode.shape.type === 'Bpmn') && actualTarget.shape.type !== 'Bpmn') || (id[0] === actualTarget.id) ||\n actualTarget.shape.shape === 'TextAnnotation') {\n actualTarget = null;\n }\n if (actualTarget && actualTarget.parentId &&\n diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') {\n actualTarget = diagram.nameTable[actualTarget.parentId];\n }\n }\n }\n return actualTarget;\n };\n /* tslint:disable */\n /** @private */\n ObjectFinder.prototype.findObjectUnderMouse = function (diagram, objects, action, inAction, eventArg, position, source) {\n //we will get the wrapper object here\n //we have to choose the object to be interacted with from the given wrapper\n //Find the object that is under mouse\n var eventHandler = 'eventHandler';\n var endPoint = 'endPoint';\n var inPort;\n var outPort;\n var actualTarget = null;\n if (objects.length !== 0) {\n if (source && source instanceof Selector) {\n if (source.nodes.length + source.connectors.length === 1) {\n source = (source.nodes[0] || source.connectors[0]);\n }\n }\n if ((action === 'ConnectorSourceEnd' && source || action === 'PortDraw') ||\n ((canDrawOnce(diagram) || canContinuousDraw(diagram)) && getObjectType(diagram.drawingObject) === Connector)) {\n var connector = diagram.selectedItems.connectors[0];\n for (var i = objects.length - 1; i >= 0; i--) {\n outPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], false);\n inPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], true);\n var tool = diagram[\"\" + eventHandler].tool;\n var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, diagram, undefined);\n if (action === 'Draw' && portElement && (objects[parseInt(i.toString(), 10)] instanceof Node || objects[parseInt(i.toString(), 10)] instanceof Connector) && !checkPort(objects[parseInt(i.toString(), 10)], portElement)) {\n if (((tool && tool[\"\" + endPoint] === 'ConnectorSourceEnd') && !canOutConnect(objects[parseInt(i.toString(), 10)])) ||\n ((tool && tool[\"\" + endPoint] === 'ConnectorTargetEnd') && !canInConnect(objects[parseInt(i.toString(), 10)]))) {\n return actualTarget;\n }\n }\n // eslint-disable-next-line max-len\n if ((objects[parseInt(i.toString(), 10)] instanceof Node) || (objects[parseInt(i.toString(), 10)] instanceof Connector) && ((canOutConnect(objects[parseInt(i.toString(), 10)]) || (canPortOutConnect(outPort)) || canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort))) ||\n (action === 'PortDraw' && (tool instanceof ConnectTool) && tool[\"\" + endPoint] === 'ConnectorTargetEnd' &&\n (canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort)))))) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n if (connector) {\n actualTarget = this.isTarget(actualTarget, diagram, action);\n }\n eventArg.actualObject = actualTarget;\n return actualTarget;\n }\n }\n }\n else if (action === 'ConnectorTargetEnd' && source) {\n for (var i = objects.length - 1; i >= 0; i--) {\n inPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], true);\n if ((objects[parseInt(i.toString(), 10)] instanceof Node || objects[parseInt(i.toString(), 10)] instanceof Connector)\n && (canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort)))) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n actualTarget = this.isTarget(actualTarget, diagram, action);\n eventArg.actualObject = actualTarget;\n return actualTarget;\n }\n }\n }\n else if (source && (action === 'Drag' || (diagram[\"\" + eventHandler].tool instanceof MoveTool))) {\n var index = 0;\n for (var i = 0; i < objects.length; i++) {\n var temp = objects[parseInt(i.toString(), 10)];\n if (source !== temp && (temp instanceof Connector ||\n !position || temp.wrapper.bounds.containsPoint(position))) {\n if (canAllowDrop(temp)) {\n if (!actualTarget) {\n actualTarget = temp;\n index = actualTarget.zIndex;\n }\n else {\n actualTarget = index >= temp.zIndex ? actualTarget : temp;\n index = Math.max(index, temp.zIndex);\n }\n }\n }\n }\n if (actualTarget && actualTarget.shape.type === 'Bpmn') {\n if (diagram.selectedItems.nodes.length > 0 && diagram.selectedItems.nodes[0].shape.type === 'Bpmn') {\n // eslint-disable-next-line no-self-assign\n actualTarget = actualTarget;\n }\n else {\n actualTarget = null;\n }\n }\n if (actualTarget) {\n eventArg.actualObject = actualTarget;\n }\n return actualTarget;\n }\n else if ((action === 'Select' || action === 'Pan') && diagram[\"\" + eventHandler].tool) {\n for (var i = objects.length - 1; i >= 0; i--) {\n if (objects[parseInt(i.toString(), 10)] instanceof Connector) {\n var objj1 = objects[i - 1];\n if (objects[i - 1] instanceof Node && objj1.ports) {\n var portElement = this.findTargetElement(objj1.wrapper, position, diagram, undefined);\n if ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$')))) {\n return objj1;\n }\n for (var j = 0; j < objj1.ports.length; j++) {\n if (portElement && portElement.id.match('_' + objj1.ports[parseInt(j.toString(), 10)].id + '$')) {\n if (canDraw(objj1.ports[parseInt(j.toString(), 10)], diagram)) {\n return objj1;\n }\n }\n }\n }\n }\n }\n actualTarget = objects[objects.length - 1];\n eventArg.actualObject = actualTarget;\n if (!diagram[\"\" + eventHandler].itemClick(actualTarget, true)) {\n if (actualTarget.parentId) {\n var obj = actualTarget;\n var selected = isSelected(diagram, obj);\n while (obj) {\n if (isSelected(diagram, obj) && !selected) {\n break;\n }\n actualTarget = obj;\n // 912178-Tooltip for node is not shown when grouped at runtime\n if (obj.tooltip.content !== '') {\n break;\n }\n obj = diagram.nameTable[obj.parentId];\n }\n }\n }\n }\n else if (action === 'Pan' || action === 'LayoutAnimation') {\n for (var i = objects.length - 1; i >= 0; i--) {\n if (objects[parseInt(i.toString(), 10)] instanceof Node || objects[parseInt(i.toString(), 10)] instanceof Connector) {\n var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, diagram, undefined);\n if ((action === 'Pan') || ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$'))))) {\n return objects[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n else {\n actualTarget = objects[objects.length - 1];\n if (eventArg && actualTarget) {\n eventArg.actualObject = actualTarget;\n }\n }\n }\n return actualTarget;\n };\n /* tslint:enable */\n /** @private */\n ObjectFinder.prototype.findElementUnderSelectedItem = function (obj, position, diagram, padding) {\n //rewrite this for multiple selection\n if (obj instanceof Selector) {\n if (obj.nodes.length === 1 && (!obj.connectors || !obj.connectors.length)) {\n return this.findElementUnderMouse(obj.nodes[0], position, diagram);\n }\n else if ((!obj.nodes || obj.nodes.length) && obj.connectors.length === 1) {\n return this.findElementUnderMouse(obj.connectors[0], position, diagram);\n }\n }\n else {\n return this.findElementUnderMouse(obj, position, diagram, padding);\n }\n return null;\n };\n ObjectFinder.prototype.findElementUnderMouse = function (obj, position, diagram, padding) {\n return this.findTargetElement(obj.wrapper, position, diagram, padding);\n };\n /** @private */\n ObjectFinder.prototype.findTargetElement = function (container, position, diagram, padding) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var element = container.children[parseInt(i.toString(), 10)];\n //Checking whether the annotation is visible or not\n if (element && element.outerBounds.containsPoint(position, padding || 0)) {\n if (element.visible) {\n if (element instanceof Container) {\n var target = this.findTargetElement(element, position, diagram);\n if (target) {\n return target;\n }\n }\n //EJ2-69047 - Node selection is improper while adding annotation for multiple nodes\n //Checked textOverflow property to avoid the selection of text element with clip and ellipsis;\n var textOverflow = (element.style.textOverflow === 'Clip' || element.style.textOverflow === 'Ellipsis');\n if (element.bounds.containsPoint(position, padding || 0) && !textOverflow) {\n return element;\n }\n else if (container.bounds.containsPoint(position, padding || 0) && textOverflow) {\n // 913240 - Tooltip for annotation not visible while text overflow sets to Clip or Ellipsis\n return element;\n }\n }\n //(EJ2-840331)Double click on node annotation will open the edit of invisible annotation\n else if (element instanceof PathElement && container && container.id) {\n var getNode = void 0;\n if (container.id.includes('group_container')) {\n var getId = container.id.slice(0, -15);\n getNode = diagram.getObject(getId);\n }\n else {\n getNode = diagram.getObject(container.id);\n }\n var port = findPort(getNode, element.id);\n // 913000: Connector not connected to port when visibility hidden\n if (port) {\n return element;\n }\n }\n }\n }\n if (container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n return container;\n }\n return null;\n };\n return ObjectFinder;\n}());\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar Layer = /** @class */ (function (_super) {\n __extends(Layer, _super);\n // tslint:disable-next-line:no-any\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Layer(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.objectZIndex = -1;\n /** @private */\n _this.zIndexTable = {};\n _this.objects = [];\n return _this;\n }\n __decorate([\n Property('')\n ], Layer.prototype, \"id\", void 0);\n __decorate([\n Property(true)\n ], Layer.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Layer.prototype, \"lock\", void 0);\n __decorate([\n Property()\n ], Layer.prototype, \"objects\", void 0);\n __decorate([\n Property()\n ], Layer.prototype, \"addInfo\", void 0);\n __decorate([\n Property(-1)\n ], Layer.prototype, \"zIndex\", void 0);\n return Layer;\n}(ChildProperty));\nexport { Layer };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Connector, getBezierPoints, isEmptyVector } from '../objects/connector';\nimport { Node, BpmnSubEvent, Native } from '../objects/node';\nimport { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { OrthogonalSegment } from '../objects/connector';\nimport { Rect } from '../primitives/rect';\nimport { Diagram } from '../../diagram/diagram';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix, scaleMatrix } from './../primitives/matrix';\nimport { cloneObject as clone, cloneObject, getBounds, getFunction } from './../utility/base-util';\nimport { completeRegion, sort, findObjectIndex, intersect3, getAnnotationPosition, findParentInSwimlane, findPortIndex } from './../utility/diagram-util';\nimport { updatePathElement, cloneBlazorObject, getUserHandlePosition, cloneSelectedObjects } from './../utility/diagram-util';\nimport { randomId, cornersPointsBeforeRotation } from './../utility/base-util';\nimport { Selector } from '../objects/node';\nimport { hasSelection, isSelected, hasSingleConnection, contains } from './actions';\nimport { DiagramEvent, ConnectorConstraints, BezierSmoothness } from '../enum/enum';\nimport { BlazorAction } from '../enum/enum';\nimport { canSelect, canMove, canRotate, canDragSourceEnd, canDragTargetEnd, canSingleSelect, canDrag } from './../utility/constraints-util';\nimport { canMultiSelect, canContinuousDraw, canInConnect, canOutConnect } from './../utility/constraints-util';\nimport { canPanX, canPanY, canPageEditable } from './../utility/constraints-util';\nimport { SnapConstraints, DiagramTools, DiagramAction, RealAction } from '../enum/enum';\nimport { getDiagramElement, getAdornerLayerSvg, getHTMLLayer, getAdornerLayer, getSelectorElement, setAttributeHtml } from '../utility/dom-util';\nimport { Point } from '../primitives/point';\nimport { Size } from '../primitives/size';\nimport { getObjectType, getPoint, intersect2, getOffsetOfConnector, canShowCorner } from './../utility/diagram-util';\nimport { selectionHasConnector } from './../utility/diagram-util';\nimport { Layer } from '../diagram/layer';\nimport { SelectorConstraints, DiagramConstraints } from '../enum/enum';\nimport { remove, isBlazor, isNullOrUndefined, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { getOppositeDirection, getPortDirection, findAngle } from './../utility/connector';\nimport { swapBounds, findPoint, orthoConnection2Segment, getIntersection } from './../utility/connector';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { Port } from '../objects/port';\nimport { renderContainerHelper } from './container-interaction';\nimport { checkChildNodeInContainer, checkParentAsContainer, addChildToContainer } from './container-interaction';\nimport { renderStackHighlighter } from './container-interaction';\nimport { getConnectors, updateConnectorsProperties, canLaneInterchange, findLane } from './../utility/swim-lane-util';\nimport { swimLaneSelection, pasteSwimLane, gridSelection } from '../utility/swim-lane-util';\n/**\n * Defines the behavior of commands\n */\nvar CommandHandler = /** @class */ (function () {\n function CommandHandler(diagram) {\n /** @private */\n this.clipboardData = {};\n // private newNodeObject: Object[] = [];\n // private newConnectorObject: Object[] = [];\n /** @private */\n this.diagramObject = {};\n /** @private */\n this.newSelectedObjects = {};\n /** @private */\n this.oldSelectedObjects = {};\n /** @private */\n this.changedNodeZIndexes = {};\n /** @private */\n this.connectorsTable = [];\n /** @private */\n this.PreventConnectorSplit = false;\n /** @private */\n this.processTable = {};\n /** @private */\n this.isContainer = false;\n /** @private */\n this.canUpdateTemplate = false;\n this.childTable = {};\n this.objectStore = [];\n this.parentTable = {};\n this.blazor = 'Blazor';\n this.blazorInterop = 'sfBlazor';\n this.cloneGroupChildCollection = [];\n this.moveSBObject = function (targetId) {\n if (targetId) {\n this.moveBackUndoNode(targetId);\n }\n };\n //The below method is for undo process for sendBackward command\n this.moveBackUndoNode = function (targetId) {\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var sortedNodeIds = Object.keys(originalZIndexTable).sort(function (a, b) { return originalZIndexTable[\"\" + a] - originalZIndexTable[\"\" + b]; });\n var currentIndex = sortedNodeIds.indexOf(targetId);\n //This method moves the node/connector based on their zindex\n if (currentIndex !== -1) {\n if (currentIndex === sortedNodeIds.length - 1) {\n var nextNodeId = sortedNodeIds[currentIndex - 1];\n this.swapDomOrder(nextNodeId, targetId);\n }\n else {\n var nextNodeId = sortedNodeIds[currentIndex + 1];\n var backNode = void 0;\n if (nextNodeId) {\n var node = this.diagram.getObject(targetId);\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(targetId, nextNodeId);\n }\n else {\n var diagramDiv = getDiagramElement(targetId + '_groupElement', this.diagram.element.id);\n backNode = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n var target = this.diagram.getObject(targetId);\n var newnode = this.diagram.getObject(nextNodeId);\n if (newnode.parentId && newnode.parentId !== target.parentId) {\n backNode = getDiagramElement(newnode.parentId + '_groupElement', this.diagram.element.id);\n }\n if (target.parentId !== newnode.id) {\n diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n }\n }\n }\n }\n }\n };\n this.moveFBObject = function (targetId) {\n if (targetId) {\n this.moveForwardUndoNode(targetId);\n }\n };\n //The below method is for undo process for moveForward command\n this.moveForwardUndoNode = function (targetID) {\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var sortedNodeIds = Object.keys(originalZIndexTable).sort(function (a, b) { return originalZIndexTable[\"\" + a] - originalZIndexTable[\"\" + b]; });\n var currentIndex = sortedNodeIds.indexOf(targetID);\n //This method moves the node/connector based on their zindex\n if (currentIndex !== -1) {\n if (currentIndex === sortedNodeIds.length - 1) {\n var nextNodeId = sortedNodeIds[currentIndex - 1];\n this.swapDomOrder(nextNodeId, targetID);\n }\n else {\n var nextNodeId = sortedNodeIds[currentIndex + 1];\n if (nextNodeId) {\n var node = this.diagram.getObject(targetID);\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(targetID, nextNodeId);\n }\n else {\n var diagramDiv = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n }\n }\n }\n }\n };\n this.diagram = diagram;\n }\n Object.defineProperty(CommandHandler.prototype, \"snappingModule\", {\n /** @private */\n get: function () {\n return this.diagram.snappingModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CommandHandler.prototype, \"layoutAnimateModule\", {\n /** @private */\n get: function () {\n return this.diagram.layoutAnimateModule;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * startTransaction method\\\n *\n * @returns { void } startTransaction method .\\\n * @param {boolean} protectChange - provide the options value.\n * @private\n */\n CommandHandler.prototype.startTransaction = function (protectChange) {\n this.state = { element: this.diagram.selectedItems, backup: null };\n if (protectChange) {\n this.diagram.protectPropertyChange(true);\n }\n getAdornerLayer(this.diagram.element.id).style.pointerEvents = 'none';\n };\n /**\n * endTransaction method\\\n *\n * @returns { void } endTransaction method .\\\n * @param {boolean} protectChange - provide the options value.\n * @private\n */\n CommandHandler.prototype.endTransaction = function (protectChange) {\n this.state = null;\n if (protectChange) {\n this.diagram.protectPropertyChange(false);\n }\n getAdornerLayer(this.diagram.element.id).style.pointerEvents = 'all';\n };\n /**\n * setFocus method\\\n *\n * @returns { void } setFocus method .\\\n * @private\n */\n CommandHandler.prototype.setFocus = function () {\n document.getElementById(this.diagram.element.id).focus();\n };\n /**\n * showTooltip method\\\n *\n * @returns { void } showTooltip method .\\\n * @param {IElement} node - provide the options value.\n * @param {PointModel} position - provide the position value.\n * @param {string | HTMLElement} content - provide the content value.\n * @param {string} toolName - provide the toolName value.\n * @param {boolean} isTooltipVisible - provide the isTooltipVisible value.\n * @private\n */\n CommandHandler.prototype.showTooltip = function (node, position, content, toolName, isTooltipVisible) {\n var _this = this;\n var targetId;\n var targetEle;\n var isNative = false;\n if (node instanceof Selector) {\n if ((node.nodes.length === 1) && node.connectors.length === 0) {\n targetId = node.nodes[0].id;\n if (node.nodes[0].shape && node.nodes[0].shape instanceof Native) {\n isNative = true;\n }\n }\n else if ((node.nodes.length === 0) && node.connectors.length === 1) {\n targetId = node.connectors[0].id;\n }\n else {\n targetEle = document.getElementById(this.diagram.element.id + '_SelectorElement');\n }\n }\n else if (node instanceof Node) {\n targetId = node.id;\n if (node.shape && (node.shape instanceof Native)) {\n isNative = true;\n }\n }\n else {\n targetId = node.id;\n }\n if (isNullOrUndefined(targetEle) && !isNullOrUndefined(targetId)) {\n var idName = isNative ? '_content_native_element' : '_groupElement';\n targetEle = document.getElementById(targetId + idName);\n }\n if (isTooltipVisible) {\n this.diagram.tooltipObject.position = 'BottomCenter';\n this.diagram.tooltipObject.animation = { open: { delay: 0, duration: 0 } };\n this.diagram.tooltipObject.openDelay = 0;\n this.diagram.tooltipObject.closeDelay = 0;\n }\n if (this.diagram.selectedItems.setTooltipTemplate) {\n var template = void 0;\n var setTooltipTemplate = getFunction(this.diagram.selectedItems.setTooltipTemplate);\n if (setTooltipTemplate) {\n template = setTooltipTemplate(node, this.diagram);\n }\n if (template instanceof HTMLElement) {\n content = template.cloneNode(true);\n }\n else {\n content = template ? template : content;\n }\n }\n //840454- support to provide isSticky property for tooltip in diagram control\n this.diagram.tooltipObject.isSticky = false;\n if (node.tooltip) {\n this.diagram.tooltipObject.openOn = node.tooltip.openOn;\n }\n // Task 834121: Content-Security-Policy support for diagram\n if (typeof content === 'string') {\n this.diagram.tooltipObject.content = initializeCSPTemplate(function () {\n return content;\n });\n }\n else {\n this.diagram.tooltipObject.content = content;\n }\n this.diagram.tooltipObject.offsetX = 0;\n this.diagram.tooltipObject.offsetY = 0;\n this.diagram.tooltipObject.refresh(targetEle);\n if (isTooltipVisible) {\n setTimeout(function () {\n _this.diagram.tooltipObject.open(targetEle);\n }, 1);\n }\n };\n /**\n * Split the connector, when the node is dropped onto it and establish connection with that dropped node.\n *\n * @returns { void } connectorSplit method .\\\n * @param {NodeModel} droppedObject - Provide the dropped node id\n * @param {ConnectorModel} targetConnector - Provide the connector id\n * @private\n */\n CommandHandler.prototype.connectorSplit = function (droppedObject, targetConnector) {\n var droppedNodeId = droppedObject.id;\n var existingConnector = cloneObject(targetConnector);\n var connectorIndex = this.diagram.connectors.indexOf(targetConnector);\n var nodeIndex = this.diagram.nodes.indexOf(droppedObject);\n var droppedNode = cloneObject(droppedObject);\n var connectorOldChanges = {};\n var nodeOldChanges = {};\n var nodeOldProperty = {\n offsetX: droppedNode.offsetX,\n offsetY: droppedNode.offsetY\n };\n var connectorOldProperty = {\n sourceID: existingConnector.sourceID,\n sourcePoint: existingConnector.sourcePoint,\n sourcePortID: existingConnector.sourcePortID,\n targetID: existingConnector.targetID,\n targetPoint: existingConnector.targetPoint,\n targetPortID: existingConnector.targetPortID\n };\n connectorOldChanges[parseInt(connectorIndex.toString(), 10)] = connectorOldProperty;\n nodeOldChanges[parseInt(nodeIndex.toString(), 10)] = nodeOldProperty;\n var connectorNewChanges = {};\n var nodeNewChanges = {};\n var nodeNewProperty = {};\n var connectorNewProperty = {};\n //Split the connector based on the dropped node\n if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') {\n connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId);\n }\n else if (existingConnector.sourceID !== '' && existingConnector.targetID === '') {\n this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.targetPoint);\n connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId);\n }\n else if ((existingConnector.sourceID === '' && existingConnector.targetID === '') || (existingConnector.sourceID === '' && existingConnector.targetID !== '')) {\n this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.sourcePoint);\n connectorNewProperty.sourceID = this.ConnectorSourceChange(targetConnector, droppedNodeId);\n }\n connectorNewChanges[parseInt(connectorIndex.toString(), 10)] = connectorNewProperty;\n nodeNewChanges[parseInt(nodeIndex.toString(), 10)] = nodeNewProperty;\n this.diagram.nodePropertyChange(droppedObject, nodeOldProperty, nodeNewProperty);\n this.diagram.updateSelector();\n this.diagram.connectorPropertyChange(targetConnector, connectorOldProperty, connectorNewProperty);\n //Check Whether the connector connects with the node\n if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') {\n var newConnector = {\n id: 'connector ' + droppedNodeId,\n constraints: ConnectorConstraints.Default | ConnectorConstraints.AllowDrop,\n sourceID: droppedNodeId\n };\n //Check whether the connector connects with the ports\n if (existingConnector.sourcePortID !== '' && existingConnector.targetPortID !== '') {\n newConnector.targetID = existingConnector.targetID;\n newConnector.targetPortID = existingConnector.targetPortID;\n }\n else {\n newConnector.targetID = existingConnector.targetID;\n }\n this.diagram.add(newConnector);\n }\n var entry = {\n type: 'PropertyChanged', redoObject: { nodes: nodeNewChanges }, undoObject: { nodes: nodeOldChanges },\n category: 'Internal'\n };\n this.diagram.addHistoryEntry(entry);\n var entry1 = {\n type: 'PropertyChanged', redoObject: { connectors: connectorNewChanges }, undoObject: { connectors: connectorOldChanges },\n category: 'Internal'\n };\n this.diagram.addHistoryEntry(entry1);\n };\n CommandHandler.prototype.nodeOffsetChange = function (propertyChangeArg, node, nodeNewOffset) {\n propertyChangeArg.offsetX = node.offsetX = nodeNewOffset.x;\n propertyChangeArg.offsetY = node.offsetY = nodeNewOffset.y;\n };\n CommandHandler.prototype.ConnectorTargetChange = function (connector, newTarget) {\n connector.targetID = newTarget;\n return newTarget;\n };\n CommandHandler.prototype.ConnectorSourceChange = function (connector, newTarget) {\n connector.sourceID = newTarget;\n return newTarget;\n };\n /**\n * closeTooltip method\\\n *\n * @returns { void } closeTooltip method .\\\n * @private\n */\n CommandHandler.prototype.closeTooltip = function () {\n this.diagram.tooltipObject.close();\n };\n /**\n * canEnableDefaultTooltip method\\\n *\n * @returns { boolean } canEnableDefaultTooltip method .\\\n * @private\n */\n CommandHandler.prototype.canEnableDefaultTooltip = function () {\n if (this.diagram.selectedItems.constraints & SelectorConstraints.ToolTip) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * updateSelector method\\\n *\n * @returns { void } updateSelector method .\\\n * @private\n */\n CommandHandler.prototype.updateSelector = function () {\n this.diagram.updateSelector();\n };\n // /**\n // * updateConnectorValue method\\\n // *\n // * @returns { void } updateConnectorValue method .\\\n // * @param {IBlazorConnectionChangeEventArgs} args - provide the options value.\n // * @private\n // */\n // public updateConnectorValue(args: IBlazorConnectionChangeEventArgs): void {\n // //remove Blazor code\n // }\n /**\n * triggerEvent method\\\n *\n * @returns { Promise } triggerEvent method .\\\n * @param {DiagramEvent} event - provide the options value.\n * @param {Object} args - provide the args value.\n * @private\n */\n CommandHandler.prototype.triggerEvent = function (event, args) {\n return __awaiter(this, void 0, void 0, function () {\n var temparg;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(event === DiagramEvent.drop || event === DiagramEvent.positionChange ||\n event === DiagramEvent.connectionChange)) return [3 /*break*/, 3];\n if (this.diagram.currentSymbol) {\n return [2 /*return*/];\n }\n if (event === DiagramEvent.drop) {\n args.source = cloneBlazorObject(this.diagram);\n }\n if (!(this.diagram.currentDrawingObject instanceof Connector && event !== DiagramEvent.positionChange)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.diagram.triggerEvent(event, args)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n if (this.diagram.currentDrawingObject && event !== DiagramEvent.positionChange) {\n return [2 /*return*/];\n }\n _a.label = 3;\n case 3: return [4 /*yield*/, this.diagram.triggerEvent(event, args)];\n case 4:\n temparg = _a.sent();\n return [2 /*return*/, temparg];\n }\n });\n });\n };\n /**\n * dragOverElement method\\\n *\n * @returns { void } dragOverElement method .\\\n * @param {MouseEventArgs} args - provide the options value.\n * @param {PointModel} currentPosition - provide the args value.\n * @private\n */\n CommandHandler.prototype.dragOverElement = function (args, currentPosition) {\n if (this.diagram.currentSymbol) {\n var dragOverArg = {\n element: cloneBlazorObject(args.source), target: cloneBlazorObject(args.target),\n mousePosition: cloneBlazorObject(currentPosition), diagram: cloneBlazorObject(this.diagram)\n };\n this.triggerEvent(DiagramEvent.dragOver, dragOverArg);\n }\n };\n /**\n * disConnect method\\\n *\n * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } disConnect method .\\\n * @param {IElement} obj - provide the obj value.\n * @param {string} endPoint - provide the endPoint value.\n * @param {boolean} canCancel - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.disConnect = function (obj, endPoint, canCancel) {\n var oldChanges = {};\n var newChanges = {};\n var returnargs;\n var selectorModel;\n var connector;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.connectors[0];\n }\n else if (obj instanceof Connector && this.diagram.currentDrawingObject) {\n connector = this.diagram.currentDrawingObject;\n }\n if (obj && connector && (hasSingleConnection(this.diagram) || this.diagram.currentDrawingObject)) {\n if (endPoint && (endPoint === 'ConnectorSourceEnd' || endPoint === 'ConnectorTargetEnd')) {\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (connector[\"\" + nodeEndId]) { //connector.sourceID || connector.targetID\n oldChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n connector[\"\" + nodeEndId] = '';\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n if (connector.sourcePortID || connector.targetPortID) {\n oldChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n connector[\"\" + portEndId] = '';\n newChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n }\n returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel);\n }\n }\n else if ((endPoint !== 'OrthoThumb' && endPoint !== 'SegmentEnd') && (connector.sourceID || connector.targetID)) {\n oldChanges = {\n sourceID: connector.sourceID, sourcePortID: connector.sourcePortID,\n targetID: connector.targetID, targetPortID: connector.targetPortID\n };\n connector.sourceID = '';\n connector.sourcePortID = '';\n connector.targetID = '';\n connector.targetPortID = '';\n newChanges = {\n sourceID: connector.sourceID, sourcePortID: connector.sourcePortID,\n targetID: connector.targetID, targetPortID: connector.targetPortID\n };\n var arg = {\n connector: cloneBlazorObject(connector), oldValue: oldChanges,\n newValue: newChanges, cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n if (arg.cancel) {\n connector.sourceID = oldChanges.sourceID;\n connector.sourcePortID = oldChanges.sourcePortID;\n connector.targetID = oldChanges.targetID;\n connector.targetPortID = oldChanges.targetPortID;\n }\n else {\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: connector, oldValue: oldChanges,\n newValue: newChanges, cancel: false, state: 'Changed', connectorEnd: endPoint\n };\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n }\n }\n return returnargs;\n };\n CommandHandler.prototype.connectionEventChange = function (connector, oldChanges, newChanges, endPoint, canCancel) {\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n var connectedNode;\n if (this.enableCloneObject) {\n connectedNode = this.diagram.nameTable[newChanges[\"\" + nodeEndId]];\n var nodeObject = cloneObject(connectedNode);\n this.diagram.insertValue(nodeObject, true);\n }\n var returnargs;\n var arg = {\n cancel: false, state: 'Changing', connectorEnd: endPoint,\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }\n };\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n if (arg.cancel) {\n connector[\"\" + nodeEndId] = oldChanges[\"\" + nodeEndId];\n connector[\"\" + portEndId] = oldChanges[\"\" + portEndId];\n newChanges = oldChanges;\n }\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] },\n newValue: {\n nodeId: newChanges[\"\" + nodeEndId],\n portId: newChanges[\"\" + portEndId]\n },\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (this.enableCloneObject) {\n if (connectedNode === undefined) {\n connectedNode = this.diagram.nameTable[oldChanges[\"\" + nodeEndId]];\n var nodeObject = cloneObject(connectedNode);\n this.diagram.insertValue(nodeObject, true);\n }\n }\n if (this.diagram.bpmnModule) {\n if (connector.isBpmnAnnotationConnector) {\n var textAnnotationNode = this.diagram.nameTable[connector.targetID];\n textAnnotationNode.shape.textAnnotation.textAnnotationTarget = connector.sourceID;\n }\n }\n return returnargs;\n };\n // /**\n // * insertBlazorObject method\\\n // *\n // * @returns { void } insertBlazorObject method .\\\n // * @param {IElement} object - provide the object value.\n // * @param {boolean} isNode - provide the isNode value.\n // * @private\n // */\n // public insertBlazorObject(object: SelectorModel | Node | Connector, isNode?: boolean): void {\n // }\n // /**\n // * updatePropertiesToBlazor method\\\n // *\n // * @returns { void } updatePropertiesToBlazor method .\\\n // * @param {MouseEventArgs} args - provide the args value.\n // * @param {PointModel} labelDrag - provide the labelDrag value.\n // * @private\n // */\n // public updatePropertiesToBlazor(args: MouseEventArgs, labelDrag: boolean): void {\n // this.enableCloneObject(false);\n // this.ismouseEvents(false);\n // // this.getBlazorOldValues(args, labelDrag);\n // // this.updateBlazorSelector();\n // }\n // /**\n // * insertSelectedObjects method\\\n // *\n // * @returns { void } insertSelectedObjects method .\\\n // * @private\n // */\n // public insertSelectedObjects(): void {\n // // this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n // }\n /**\n * findTarget method\\\n *\n * @returns { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel } findTarget method .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {IElement} argsTarget - provide the argsTarget value.\n * @param {boolean} source - provide the source value.\n * @param {boolean} connection - provide the connection value.\n * @private\n */\n CommandHandler.prototype.findTarget = function (element, argsTarget, source, connection) {\n var target;\n if (argsTarget instanceof Node) {\n if (element && element.id === argsTarget.id + '_content') {\n return argsTarget;\n }\n if (source && argsTarget.shape.type === 'Bpmn' && ((!isBlazor() && argsTarget.shape.shape === 'Activity'))) {\n if (argsTarget.shape.activity.subProcess.type === 'Transaction') {\n var transaction = argsTarget.shape.activity.subProcess.transaction;\n if (transaction.success.visible && element.id.indexOf(argsTarget.id + '_success') === 0) {\n return transaction.success;\n }\n if (transaction.cancel.visible && element.id.indexOf(argsTarget.id + '_cancel') === 0) {\n return transaction.cancel;\n }\n if (transaction.failure.visible && element.id.indexOf(argsTarget.id + '_failure') === 0) {\n return transaction.failure;\n }\n }\n }\n if (element instanceof PathElement) {\n for (var i = 0; i < argsTarget.ports.length; i++) {\n var port = argsTarget.ports[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + port.id) {\n return port;\n }\n }\n }\n }\n // Feature 826644: Support to add ports to the connector.\n // Added below condition to find the target connector port.\n if (argsTarget instanceof Connector) {\n if (element && element.id === argsTarget.id + '_content') {\n return argsTarget;\n }\n if (element instanceof PathElement) {\n for (var i = 0; i < argsTarget.ports.length; i++) {\n var port = argsTarget.ports[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + port.id) {\n return port;\n }\n }\n }\n }\n if (!connection) {\n var annotation = void 0;\n for (var i = 0; i < argsTarget.annotations.length; i++) {\n annotation = argsTarget.annotations[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + annotation.id) {\n return annotation;\n }\n }\n }\n return argsTarget;\n };\n /**\n * canDisconnect method\\\n *\n * @returns { boolean } canDisconnect method .\\\n * @param {string} endPoint - provide the endPoint value.\n * @param {MouseEventArgs} args - provide the args value.\n * @param {string} targetPortId - provide the targetPortId value.\n * @param {string} targetNodeId - provide the targetNodeId value.\n * @private\n */\n CommandHandler.prototype.canDisconnect = function (endPoint, args, targetPortId, targetNodeId) {\n var selector;\n var connect;\n if (args.source instanceof Selector) {\n selector = args.source;\n connect = selector.connectors[0];\n }\n else if (args.source instanceof Connector && this.diagram.currentDrawingObject) {\n connect = this.diagram.currentDrawingObject;\n }\n var targetObject = this.findTarget(args.targetWrapper, args.target, endPoint === 'ConnectorSourceEnd', true);\n var nodeEnd = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEnd = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (connect[\"\" + nodeEnd] !== targetNodeId || connect[\"\" + portEnd] !== targetPortId) {\n return true;\n }\n return false;\n };\n /* tslint:disable */\n /**\n * connect method\\\n *\n * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } connect method .\\\n * @param {string} endPoint - provide the endPoint value.\n * @param {MouseEventArgs} args - provide the args value.\n * @param {boolean} canCancel - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.connect = function (endPoint, args, canCancel) {\n var checkBlazor;\n var newChanges = {};\n var oldChanges = {};\n var oldNodeId;\n var oldPortId;\n var selectorModel;\n var connector;\n var returnargs;\n if (args.source instanceof Selector) {\n selectorModel = args.source;\n connector = selectorModel.connectors[0];\n }\n else if (args.source instanceof Connector && this.diagram.currentDrawingObject) {\n connector = this.diagram.currentDrawingObject;\n }\n var target = this.findTarget((args.targetWrapper || args.sourceWrapper), (args.target || args.actualObject), endPoint === 'ConnectorSourceEnd', true);\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (target instanceof Node) {\n oldChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n connector[\"\" + nodeEndId] = target.id;\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n oldChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel);\n }\n else if (target instanceof Port) {\n oldNodeId = connector[\"\" + nodeEndId];\n oldPortId = connector[\"\" + portEndId];\n connector[\"\" + portEndId] = target.id;\n connector[\"\" + nodeEndId] = (args.target && args.target.id || args.actualObject.id);\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n newChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n var arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] },\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (!checkBlazor) {\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n if (arg.cancel) {\n connector[\"\" + nodeEndId] = oldNodeId;\n connector[\"\" + portEndId] = oldPortId;\n newChanges[\"\" + nodeEndId] = oldNodeId;\n newChanges[\"\" + portEndId] = oldPortId;\n }\n else {\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }, cancel: false,\n state: 'Changing', connectorEnd: endPoint\n };\n }\n }\n this.renderHighlighter(args, undefined, endPoint === 'ConnectorSourceEnd');\n return returnargs;\n };\n /* tslint:enable */\n /** @private */\n /**\n * cut method\\\n *\n * @returns { void } cut method .\\\n * @private\n */\n CommandHandler.prototype.cut = function () {\n var index;\n this.clipboardData.pasteIndex = 0;\n if (this.diagram.undoRedoModule) {\n this.diagram.historyManager.startGroupAction();\n }\n this.clipboardData.clipObject = this.copyObjects();\n if (this.diagram.undoRedoModule) {\n this.diagram.historyManager.endGroupAction();\n }\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n };\n // private UpdateBlazorDiagramModelLayers(layer: Layer, isRemove: boolean): void {\n // comment blazor code\n // }\n /**\n * addLayer method\\\n *\n * @returns { void } addLayer method .\\\n * @param {LayerModel} layer - provide the endPoint value.\n * @param {Object[]} objects - provide the args value.\n * @param {boolean} isServerUpdate - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.addLayer = function (layer, objects, isServerUpdate) {\n if (isServerUpdate === void 0) { isServerUpdate = true; }\n layer.id = layer.id || randomId();\n layer.zIndex = this.diagram.layers.length;\n var isEnableServerDatabind = this.diagram.allowServerDataBinding;\n this.diagram.enableServerDataBinding(false);\n layer = new Layer(this.diagram, 'layers', layer, true);\n this.diagram.enableServerDataBinding(isEnableServerDatabind);\n layer.objectZIndex = -1;\n layer.zIndexTable = {};\n this.diagram.layers.push(layer);\n // if (isServerUpdate) {\n // this.UpdateBlazorDiagramModelLayers(layer as Layer, false);\n // }\n this.diagram.layerZIndexTable[layer.zIndex] = layer.id;\n this.diagram.activeLayer = layer;\n var layers = layer.objects;\n if (objects) {\n for (var i = 0; i < objects.length; i++) {\n this.diagram.add(objects[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * getObjectLayer method\\\n *\n * @returns { LayerModel } getObjectLayer method .\\\n * @param {string} objectName - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.getObjectLayer = function (objectName) {\n var layers = this.diagram.layers;\n if (layers.length > 1) {\n for (var i = 0; i < layers.length; i++) {\n var objIndex = layers[parseInt(i.toString(), 10)].objects.indexOf(objectName);\n if (objIndex > -1) {\n return layers[parseInt(i.toString(), 10)];\n }\n }\n }\n return this.diagram.activeLayer;\n };\n /**\n * getLayer method\\\n *\n * @returns { LayerModel } getLayer method .\\\n * @param {string} layerName - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.getLayer = function (layerName) {\n var layers = this.diagram.layers;\n for (var i = 0; i < layers.length; i++) {\n if (layers[parseInt(i.toString(), 10)].id === layerName) {\n return layers[parseInt(i.toString(), 10)];\n }\n }\n return undefined;\n };\n /**\n * removeLayer method\\\n *\n * @returns { void } removeLayer method .\\\n * @param {string} layerId - provide the endPoint value.\n * @param {boolean} isServerUpdate - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.removeLayer = function (layerId, isServerUpdate) {\n if (isServerUpdate === void 0) { isServerUpdate = true; }\n var layers = this.getLayer(layerId);\n if (layers) {\n var index = this.diagram.layers.indexOf(layers);\n var layerObject = layers.objects;\n for (var i = layerObject.length - 1; i >= 0; i--) {\n this.diagram.unSelect(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]);\n this.diagram.remove(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]);\n if (layers.id !== 'default_layer') {\n if (this.diagram.activeLayer.id === layerId) {\n this.diagram.activeLayer = this.diagram.layers[this.diagram.layers.length - 1];\n }\n }\n }\n // if (isServerUpdate) {\n // this.UpdateBlazorDiagramModelLayers(this.diagram.layers[parseInt(index.toString(), 10)] as Layer, true);\n // }\n delete this.diagram.layerZIndexTable[layers.zIndex];\n this.diagram.layers.splice(index, 1);\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * moveObjects method\\\n *\n * @returns { void } moveObjects method .\\\n * @param {string[]]} objects - provide the objects value.\n * @param {string} targetLayer - provide the targetLayer value.\n * @private\n */\n CommandHandler.prototype.moveObjects = function (objects, targetLayer) {\n this.diagram.startGroupAction();\n var connectorObjectsDetails = {};\n var childNodes = [];\n for (var i = 0; i < objects.length; i++) {\n var obj = this.diagram.nameTable[objects[parseInt(i.toString(), 10)]];\n if (obj instanceof Node) {\n var detail = { inEdges: obj.inEdges, outEdges: obj.outEdges };\n connectorObjectsDetails[\"\" + obj.id] = cloneObject(detail);\n }\n else if (obj instanceof Connector) {\n var detail = {\n sourceID: obj.sourceID, targetID: obj.targetID,\n sourcePortID: obj.sourcePortID, targetPortID: obj.targetPortID\n };\n connectorObjectsDetails[\"\" + obj.id] = cloneObject(detail);\n }\n }\n var layer = this.getLayer(targetLayer) || this.diagram.activeLayer;\n this.diagram.setActiveLayer(layer.id);\n var targerNodes;\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var i = objects_1[_i];\n var layer_1 = this.getObjectLayer(i);\n var index = layer_1.objects.indexOf(i);\n if (index > -1) {\n targerNodes = this.diagram.nameTable[\"\" + i];\n childNodes = [];\n if (targerNodes.children) {\n for (var _a = 0, _b = targerNodes.children; _a < _b.length; _a++) {\n var node = _b[_a];\n childNodes.push(this.diagram.nameTable[\"\" + node]);\n }\n }\n this.diagram.unSelect(targerNodes);\n //875087 - Restrict removing dependent connectors when moveing between layers\n this.diagram.deleteDependentConnector = false;\n this.diagram.remove(this.diagram.nameTable[\"\" + i]);\n this.diagram.deleteDependentConnector = true;\n if (childNodes.length > 0) {\n var addedObj = void 0;\n for (var _c = 0, childNodes_1 = childNodes; _c < childNodes_1.length; _c++) {\n var node = childNodes_1[_c];\n addedObj = this.diagram.add(node);\n this.setConnectorDetails(addedObj || node, connectorObjectsDetails);\n targerNodes.children.push(addedObj.id);\n }\n addedObj = this.diagram.add(targerNodes);\n this.setConnectorDetails(addedObj || targerNodes, connectorObjectsDetails);\n }\n else {\n var addedObj = this.diagram.add(targerNodes);\n this.setConnectorDetails(addedObj || targerNodes, connectorObjectsDetails);\n }\n if (targerNodes.parentId) {\n var parentId = targerNodes.parentId;\n var group = this.diagram.nameTable[\"\" + parentId];\n this.diagram.addChildToGroup(group, targerNodes.id);\n }\n }\n }\n this.diagram.endGroupAction();\n };\n CommandHandler.prototype.setConnectorDetails = function (obj, connectorObjectsDetails) {\n var details = connectorObjectsDetails[obj.id];\n if (obj instanceof Node) {\n if (details) {\n if (details.inEdges && details.inEdges.length > 0) {\n for (var i = 0; i < details.inEdges.length; i++) {\n var con = this.diagram.nameTable[details.inEdges[parseInt(i.toString(), 10)]];\n con.targetID = obj.id;\n }\n }\n if (details.outEdges && details.outEdges.length > 0) {\n for (var i = 0; i < details.outEdges.length; i++) {\n var con = this.diagram.nameTable[details.outEdges[parseInt(i.toString(), 10)]];\n con.sourceID = obj.id;\n }\n }\n }\n }\n else if (obj instanceof Connector) {\n if (details) {\n obj.sourceID = details.sourceID;\n obj.targetID = details.targetID;\n obj.sourcePortID = details.sourcePortID;\n obj.targetPortID = details.targetPortID;\n }\n }\n };\n /**\n * cloneLayer method\\\n *\n * @returns { void } cloneLayer method .\\\n * @param {string[]} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.cloneLayer = function (layerName) {\n var layers = this.diagram.layers;\n var layer = this.getLayer(layerName);\n if (layer) {\n var cloneObject_1 = [];\n var newlayer = {\n id: layerName + '_' + randomId(), objects: [], visible: true, lock: false\n };\n this.addLayer(newlayer, null, true);\n newlayer.zIndex = this.diagram.layers.length - 1;\n var multiSelect = cloneObject_1.length !== 1;\n for (var _i = 0, _a = layer.objects; _i < _a.length; _i++) {\n var obj = _a[_i];\n cloneObject_1.push(this.diagram.nameTable[\"\" + obj]);\n }\n this.paste(cloneObject_1);\n }\n };\n /**\n * copy method\\\n *\n * @returns { void } copy method .\\\n * @private\n */\n CommandHandler.prototype.copy = function () {\n this.clipboardData.pasteIndex = 1;\n this.clipboardData.clipObject = this.copyObjects();\n return this.clipboardData.clipObject;\n };\n /**\n * copyObjects method\\\n *\n * @returns { Object[] } copyObjects method .\\\n * @private\n */\n CommandHandler.prototype.copyObjects = function () {\n var selectedItems = [];\n var obj = [];\n this.clipboardData.childTable = {};\n if (this.diagram.selectedItems.connectors.length > 0) {\n //908602 - Issue in Cut connectors\n selectedItems = selectedItems.concat(this.diagram.selectedItems.connectors);\n for (var j = 0; j < selectedItems.length; j++) {\n var element = void 0;\n //To copy text annotation node while copying the text annotation connector.\n if (this.diagram.bpmnModule &&\n selectedItems[parseInt(j.toString(), 10)].isBpmnAnnotationConnector) {\n element = cloneObject((this.diagram.nameTable[selectedItems[parseInt(j.toString(), 10)].targetID]));\n }\n else {\n element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n }\n obj.push(element);\n }\n }\n if (this.diagram.selectedItems.nodes.length > 0) {\n selectedItems = selectedItems.concat(this.diagram.selectedItems.nodes);\n for (var j = 0; j < this.diagram.selectedItems.nodes.length; j++) {\n if (!this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)].isPhase) {\n var node = clone(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)]);\n if (!((node.isLane || node.isHeader) && this.checkSwimlaneInSelection(node, obj))) {\n if (node.wrapper && (node.offsetX !== node.wrapper.offsetX)) {\n node.offsetX = node.wrapper.offsetX;\n }\n if (node.wrapper && (node.offsetY !== node.wrapper.offsetY)) {\n node.offsetY = node.wrapper.offsetY;\n }\n var processTable = {};\n this.copyProcesses(node);\n obj.push(clone(node));\n var matrix = identityMatrix();\n rotateMatrix(matrix, -node.rotateAngle, node.offsetX, node.offsetY);\n if (node.children) {\n var childTable = this.clipboardData.childTable;\n var tempNode = void 0;\n var elements = [];\n var nodes = this.getAllDescendants(node, elements, true);\n for (var i = 0; i < nodes.length; i++) {\n tempNode = this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id];\n var clonedObject = childTable[tempNode.id] = clone(tempNode);\n var newOffset = transformPointByMatrix(matrix, { x: clonedObject.wrapper.offsetX, y: clonedObject.wrapper.offsetY });\n if (tempNode instanceof Node) {\n clonedObject.offsetX = newOffset.x;\n clonedObject.offsetY = newOffset.y;\n clonedObject.rotateAngle -= node.rotateAngle;\n }\n }\n this.clipboardData.childTable = childTable;\n }\n // Adding the clonned connectors of swim lane in child table\n if (node.shape.type === 'SwimLane') {\n var swimlane = this.diagram.getObject(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)].id);\n var childTable = this.clipboardData.childTable;\n var connectorsList = getConnectors(this.diagram, swimlane.wrapper.children[0], 0, true);\n for (var i = 0; i < connectorsList.length; i++) {\n var connector = this.diagram.getObject(connectorsList[parseInt(i.toString(), 10)]);\n childTable[connector.id] = clone(connector);\n }\n }\n // Adding the clonned LANE of swim lane in child table\n if (node && node.isLane) {\n var childTable = this.clipboardData.childTable;\n var swimlane = this.diagram.getObject(node.parentId);\n var lane = findLane(node, this.diagram);\n childTable[node.id] = cloneObject(lane);\n childTable[node.id].width = swimlane.wrapper.actualSize.width;\n }\n }\n }\n }\n }\n if (this.clipboardData.pasteIndex === 0) {\n this.startGroupAction();\n for (var _i = 0, selectedItems_1 = selectedItems; _i < selectedItems_1.length; _i++) {\n var item = selectedItems_1[_i];\n if (this.diagram.nameTable[item.id]) {\n this.diagram.remove(item);\n }\n }\n this.endGroupAction();\n }\n this.sortByZIndex(obj, 'zIndex');\n //892957: Remove duplicate elements while copy, paste the swimlane\n if (this.diagram.selectedItems.nodes.some(function (node) {\n return node.shape.type === 'SwimLane';\n })) {\n obj = this.removeDuplicateObjects(obj);\n }\n return obj;\n };\n //892957: To remove duplicate objects\n CommandHandler.prototype.removeDuplicateObjects = function (objects) {\n var uniqueObjects = {};\n for (var i = 0; i < objects.length; i++) {\n uniqueObjects[objects[parseInt(i.toString(), 10)].id] = objects[parseInt(i.toString(), 10)];\n }\n var result = [];\n //To remove objects with same id\n for (var key in uniqueObjects) {\n if (Object.prototype.hasOwnProperty.call(uniqueObjects, key)) {\n result.push(uniqueObjects[\"\" + key]);\n }\n }\n var _loop_1 = function (i) {\n if (result[parseInt(i.toString(), 10)].parentId) {\n var lane_1 = this_1.diagram.getObject(result[parseInt(i.toString(), 10)].parentId);\n if (lane_1 && lane_1.isLane && lane_1.parentId &&\n result.some(function (obj) { return obj.id === lane_1.parentId; })) {\n result.splice(i, 1);\n i--;\n }\n }\n out_i_1 = i;\n };\n var this_1 = this, out_i_1;\n //To remove the nodes which is child node of copied swimlane\n for (var i = 0; i < result.length; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n // Get the keys from childTable\n var childTableKeys = Object.keys(this.clipboardData.childTable);\n // Filter the array to remove objects with ids matching the keys in childTable except lane\n var filteredArray = result.filter(function (item) {\n return (childTableKeys.indexOf(item.id) === -1 || item.isLane);\n });\n return filteredArray;\n };\n //To check if the swimlane is selected along with its child lane\n CommandHandler.prototype.checkSwimlaneInSelection = function (node, obj) {\n return this.diagram.selectedItems.nodes.some(function (item) { return item.id === node.parentId; });\n };\n CommandHandler.prototype.copyProcesses = function (node) {\n if (node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length > 0) {\n var processes = node.shape.activity.subProcess.processes;\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var i = processes_1[_i];\n this.processTable[\"\" + i] = (clone(this.diagram.nameTable[\"\" + i]));\n if (this.processTable[\"\" + i].shape.activity.subProcess.processes &&\n this.processTable[\"\" + i].shape.activity.subProcess.processes.length > 0) {\n this.copyProcesses(this.processTable[\"\" + i]);\n }\n }\n this.clipboardData.processTable = this.processTable;\n }\n };\n /**\n * group method\\\n *\n * @returns { void } group method .\\\n * @private\n */\n CommandHandler.prototype.group = function () {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[\"\" + propName];\n this.diagram.protectPropertyChange(true);\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Group;\n var selectedItems = [];\n var obj = {};\n //let group: Node | Connector;\n obj.id = 'group' + randomId();\n obj = new Node(this.diagram, 'nodes', obj, true);\n obj.children = [];\n selectedItems = this.diagram.selectedItems.nodes;\n selectedItems = selectedItems.concat(this.diagram.selectedItems.connectors);\n var order = selectedItems.sort(function (a, b) {\n return a.zIndex - b.zIndex;\n });\n for (var i = 0; i < order.length; i++) {\n if (!order[parseInt(i.toString(), 10)].parentId) {\n obj.children.push(order[parseInt(i.toString(), 10)].id);\n }\n }\n //867606 - Exception throws while grouping the existing group nodes\n if (obj.children.length > 0) {\n var group = this.diagram.add(obj);\n if (group) {\n this.select(group);\n }\n var entry = { type: 'Group', undoObject: obj, redoObject: obj, category: 'Internal' };\n this.addHistoryEntry(entry);\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Group;\n this.diagram.protectPropertyChange(protectedChange);\n // this.updateBlazorSelector();\n }\n };\n /**\n * unGroup method\\\n *\n * @returns { void } unGroup method .\\\n * @param {NodeModel} obj - provide the angle value.\n * @private\n */\n CommandHandler.prototype.unGroup = function (obj) {\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[\"\" + propName];\n this.diagram.protectPropertyChange(true);\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Group;\n var selectedItems = [];\n if (obj) {\n selectedItems.push(obj);\n }\n else {\n selectedItems = this.diagram.selectedItems.nodes;\n }\n this.diagram.startGroupAction();\n for (var i = 0; i < selectedItems.length; i++) {\n var node = selectedItems[parseInt(i.toString(), 10)];\n var undoObject = cloneObject(node);\n var childCollection = [];\n for (var k = 0; k < node.children.length; k++) {\n childCollection.push(node.children[parseInt(k.toString(), 10)]);\n }\n if (node.children) {\n if (node.ports && node.ports.length > 0) {\n this.diagram.removePorts(node, node.ports);\n }\n if (node.annotations && node.annotations.length > 0 && (!isBlazor())) {\n this.diagram.removeLabels(node, node.annotations);\n }\n var parentNode = this.diagram.nameTable[node.parentId];\n for (var j = node.children.length - 1; j >= 0; j--) {\n (this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]]).parentId = '';\n this.diagram.deleteChild(this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]], node);\n if (node.parentId && node.children[parseInt(j.toString(), 10)]) {\n this.diagram.addChild(parentNode, node.children[parseInt(j.toString(), 10)]);\n }\n }\n this.resetDependentConnectors(node.inEdges, true);\n this.resetDependentConnectors(node.outEdges, false);\n var entry = {\n type: 'UnGroup', undoObject: undoObject,\n redoObject: undoObject, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n if (node.parentId) {\n this.diagram.deleteChild(node, parentNode);\n }\n }\n this.diagram.removeNode(node, childCollection);\n this.clearSelection();\n }\n this.diagram.endGroupAction();\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Group;\n this.diagram.protectPropertyChange(protectedChange);\n };\n CommandHandler.prototype.resetDependentConnectors = function (edges, isInEdges) {\n for (var i = 0; i < edges.length; i++) {\n var newConnector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]];\n var undoObject = cloneObject(newConnector);\n var newProp = void 0;\n if (isInEdges) {\n newConnector.targetID = '';\n newConnector.targetPortID = '';\n newProp = { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID };\n }\n else {\n newConnector.sourceID = '';\n newConnector.sourcePortID = '';\n newProp = { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID };\n }\n this.diagram.connectorPropertyChange(newConnector, {}, newProp);\n var entry = {\n type: 'ConnectionChanged', undoObject: { connectors: [undoObject], nodes: [] },\n redoObject: { connectors: [cloneObject(newConnector)], nodes: [] }, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n };\n /**\n * paste method\\\n *\n * @returns { void } paste method .\\\n * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.paste = function (obj) {\n if (obj || this.clipboardData.clipObject) {\n this.diagram.protectPropertyChange(true);\n var copiedItems = obj ? this.getNewObject(obj) :\n this.clipboardData.clipObject;\n if (copiedItems) {\n var multiSelect = copiedItems.length !== 1;\n var groupAction = false;\n var objectTable = {};\n var keyTable = {};\n if (this.clipboardData.pasteIndex !== 0) {\n this.clearSelection();\n }\n if (this.diagram.undoRedoModule) {\n groupAction = true;\n this.diagram.historyManager.startGroupAction();\n }\n for (var _i = 0, copiedItems_1 = copiedItems; _i < copiedItems_1.length; _i++) {\n var copy = copiedItems_1[_i];\n objectTable[copy.id] = copy;\n }\n var copiedObject = [];\n if (multiSelect) {\n // This bool is also consider to prevent selection change event is triggered after every object clone\n this.diagram.isServerUpdate = true;\n }\n for (var j = 0; j < copiedItems.length; j++) {\n var copy = copiedItems[parseInt(j.toString(), 10)];\n //EJ2-841227-Copy paste of child node from group node\n if (copy.parentId) {\n var parentObj = this.diagram.getObject(copy.parentId);\n if (parentObj.shape.type !== 'SwimLane' && copy.parentId) {\n copy.parentId = '';\n }\n }\n if (getObjectType(copy) === Connector) {\n var clonedObj = clone(copy);\n var nodeId = clonedObj.sourceID;\n clonedObj.sourceID = '';\n if (objectTable[\"\" + nodeId] && keyTable[\"\" + nodeId]) {\n clonedObj.sourceID = keyTable[\"\" + nodeId];\n }\n nodeId = clonedObj.targetID;\n clonedObj.targetID = '';\n if (objectTable[\"\" + nodeId] && keyTable[\"\" + nodeId]) {\n clonedObj.targetID = keyTable[\"\" + nodeId];\n }\n //To check if the connector is cloned already for text annotation node.\n var allowClone = true;\n if (clonedObj.targetID) {\n var targetNode = this.diagram.nameTable[clonedObj.targetID];\n if (targetNode.shape.shape === 'TextAnnotation' && targetNode.inEdges && targetNode.inEdges.length > 0) {\n allowClone = false;\n }\n }\n if (allowClone) {\n var newObj = this.cloneConnector(clonedObj, multiSelect);\n copiedObject.push(newObj);\n keyTable[copy.id] = newObj.id;\n }\n }\n else {\n var newNode = this.cloneNode(copy, multiSelect);\n copiedObject.push(newNode);\n //bpmn text annotations will not be pasted\n if (newNode) {\n keyTable[copy.id] = newNode.id;\n var edges = copy.inEdges;\n if (edges) {\n for (var _a = 0, edges_1 = edges; _a < edges_1.length; _a++) {\n var edge = edges_1[_a];\n if (objectTable[\"\" + edge] && keyTable[\"\" + edge]) {\n var newConnector = this.diagram.nameTable[keyTable[\"\" + edge]];\n newConnector.targetID = keyTable[copy.id];\n this.diagram.connectorPropertyChange(newConnector, { targetID: '', targetPortID: '' }, { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID });\n }\n }\n }\n edges = copy.outEdges;\n if (edges) {\n for (var _b = 0, edges_2 = edges; _b < edges_2.length; _b++) {\n var edge = edges_2[_b];\n if (objectTable[\"\" + edge] && keyTable[\"\" + edge]) {\n var newConnector = this.diagram.nameTable[keyTable[\"\" + edge]];\n newConnector.sourceID = keyTable[copy.id];\n this.diagram.connectorPropertyChange(newConnector, { sourceID: '', sourcePortID: '' }, { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID });\n }\n }\n }\n }\n }\n }\n if (multiSelect) {\n this.diagram.isServerUpdate = false;\n // this.diagram.UpdateBlazorDiagramModelCollection(copiedItems[0] as Node, copiedObject);\n // this.getBlazorOldValues();\n this.diagram.select(copiedObject, true);\n }\n if (groupAction === true) {\n this.diagram.historyManager.endGroupAction();\n groupAction = false;\n }\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n this.clipboardData.pasteIndex++;\n this.diagram.protectPropertyChange(false);\n }\n }\n };\n CommandHandler.prototype.getNewObject = function (obj) {\n var newObj;\n var newobjs = [];\n this.clipboardData.pasteIndex = 1;\n for (var i = 0; i < obj.length; i++) {\n newObj = cloneObject(obj[parseInt(i.toString(), 10)]);\n newobjs.push(newObj);\n }\n return newobjs;\n };\n CommandHandler.prototype.cloneConnector = function (connector, multiSelect) {\n //let newConnector: Node | Connector;\n var cloneObject = clone(connector);\n this.translateObject(cloneObject);\n cloneObject.zIndex = Number.MIN_VALUE;\n var newConnector = this.diagram.add(cloneObject);\n if (!this.diagram.isServerUpdate) {\n this.selectObjects([newConnector], multiSelect);\n }\n return newConnector;\n };\n CommandHandler.prototype.cloneNode = function (node, multiSelect, children, groupnodeID) {\n var newNode;\n var connectorsTable = {};\n var cloneObject = clone(node);\n var process;\n var temp = this.diagram.nameTable[node.parentId];\n if (node.shape && node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length) {\n process = cloneObject.shape.activity.subProcess.processes;\n cloneObject.zIndex = Number.MIN_VALUE;\n cloneObject.shape.activity.subProcess.processes = undefined;\n }\n if (node.shape && node.shape.type === 'SwimLane') {\n pasteSwimLane(node, this.diagram, this.clipboardData);\n }\n else if (temp && temp.shape.type === 'SwimLane') {\n pasteSwimLane(clone(temp), this.diagram, this.clipboardData, node, true);\n }\n else if (node.children && node.children.length && (!children || !children.length)) {\n newNode = this.cloneGroup(node, multiSelect);\n }\n else {\n this.translateObject(cloneObject, groupnodeID);\n cloneObject.zIndex = Number.MIN_VALUE;\n if (children) {\n cloneObject.children = children;\n }\n if (cloneObject.shape && cloneObject.shape.shape === 'TextAnnotation') {\n cloneObject.isTextAnnotationCopied = true;\n }\n newNode = this.diagram.add(cloneObject);\n }\n for (var _i = 0, _a = Object.keys(connectorsTable); _i < _a.length; _i++) {\n var i = _a[_i];\n this.diagram.add(connectorsTable[\"\" + i]);\n }\n if (process && process.length) {\n newNode.shape.activity.subProcess.processes = process;\n this.cloneSubProcesses(newNode);\n }\n if (newNode && !this.diagram.isServerUpdate) {\n this.selectObjects([newNode], multiSelect);\n }\n return newNode;\n };\n CommandHandler.prototype.cloneSubProcesses = function (node) {\n var connector = [];\n var temp = {};\n if (node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length) {\n var process = node.shape.activity.subProcess.processes;\n for (var g = 0; g < process.length; g++) {\n var child = this.diagram.nameTable[process[parseInt(g.toString(), 10)]]\n || this.clipboardData.processTable[process[parseInt(g.toString(), 10)]];\n for (var _i = 0, _a = child.outEdges; _i < _a.length; _i++) {\n var j = _a[_i];\n if (connector.indexOf(j) < 0) {\n connector.push(j);\n }\n }\n for (var _b = 0, _c = child.inEdges; _b < _c.length; _b++) {\n var j = _c[_b];\n if (connector.indexOf(j) < 0) {\n connector.push(j);\n }\n }\n var innerChild = cloneObject(this.clipboardData.processTable[process[parseInt(g.toString(), 10)]]);\n innerChild.processId = node.id;\n var newNode = this.cloneNode(innerChild, false);\n temp[process[parseInt(g.toString(), 10)]] = newNode.id;\n process[parseInt(g.toString(), 10)] = newNode.id;\n this.diagram.addProcess(newNode, node.id);\n for (var _d = 0, connector_1 = connector; _d < connector_1.length; _d++) {\n var i = connector_1[_d];\n var node_1 = this.diagram.nameTable[\"\" + i] || this.diagram.connectorTable[\"\" + i];\n var clonedNode = cloneObject(node_1);\n if (temp[clonedNode.sourceID] && temp[clonedNode.targetID]) {\n clonedNode.zIndex = -1;\n clonedNode.id += randomId();\n clonedNode.sourceID = temp[clonedNode.sourceID];\n clonedNode.targetID = temp[clonedNode.targetID];\n connector.splice(connector.indexOf(i), 1);\n this.diagram.add(clonedNode);\n }\n }\n }\n }\n };\n CommandHandler.prototype.cloneGroup = function (obj, multiSelect) {\n var value;\n var sourceId;\n var targetId;\n var newChildren = [];\n var children = [];\n var connectorObj = [];\n var newObj;\n var oldID = [];\n children = children.concat(obj.children);\n var id = randomId();\n var objectCollection = [];\n this.diagram.blazorActions |= BlazorAction.GroupClipboardInProcess;\n if (this.clipboardData.childTable || obj.children.length > 0) {\n for (var i = 0; i < children.length; i++) {\n var childObj = void 0;\n if (this.clipboardData.childTable) {\n childObj = this.clipboardData.childTable[children[parseInt(i.toString(), 10)]];\n // EJ2-905181 - Added to consider copy paste and clone the new group node.\n if (!childObj) {\n childObj = this.diagram.nameTable[children[parseInt(i.toString(), 10)]];\n }\n }\n else {\n childObj = this.diagram.nameTable[children[parseInt(i.toString(), 10)]];\n }\n childObj.parentId = '';\n if (childObj) {\n if (getObjectType(childObj) === Connector) {\n connectorObj.push(childObj);\n }\n else {\n newObj = this.cloneNode(childObj, multiSelect, undefined, id);\n oldID.push(childObj.id);\n newChildren.push(newObj.id);\n objectCollection.push(newObj);\n }\n }\n }\n }\n for (var k = 0; k < connectorObj.length; k++) {\n if (connectorObj[parseInt(k.toString(), 10)].sourceID || connectorObj[parseInt(k.toString(), 10)].targetID) {\n for (var j = 0; j < oldID.length; j++) {\n if (connectorObj[parseInt(k.toString(), 10)].sourceID === (oldID[parseInt(j.toString(), 10)])) {\n sourceId = connectorObj[parseInt(k.toString(), 10)].sourceID;\n connectorObj[parseInt(k.toString(), 10)].sourceID += id;\n }\n if (connectorObj[parseInt(k.toString(), 10)].targetID === (oldID[parseInt(j.toString(), 10)])) {\n targetId = connectorObj[parseInt(k.toString(), 10)].targetID;\n connectorObj[parseInt(k.toString(), 10)].targetID += id;\n }\n }\n }\n newObj = this.cloneConnector(connectorObj[parseInt(k.toString(), 10)], multiSelect);\n //EJ2-839982 - When we copy paste the group node multiple times, the connector is not rendered properly\n connectorObj[parseInt(k.toString(), 10)].sourceID = sourceId;\n connectorObj[parseInt(k.toString(), 10)].targetID = targetId;\n newChildren.push(newObj.id);\n objectCollection.push(newObj);\n }\n var parentObj = this.cloneNode(obj, multiSelect, newChildren);\n objectCollection.push(parentObj);\n if (parentObj && parentObj.container && parentObj.shape && parentObj.shape.type === 'UmlClassifier') {\n this.diagram.updateDiagramObject(parentObj);\n parentObj.wrapper.measure(new Size());\n }\n this.diagram.blazorActions &= ~BlazorAction.GroupClipboardInProcess;\n if (!this.diagram.isServerUpdate) {\n this.diagram.UpdateBlazorDiagramModelCollection(undefined, objectCollection, undefined, true);\n }\n else {\n this.cloneGroupChildCollection = objectCollection;\n }\n return parentObj;\n };\n /**\n * translateObject method\\\n *\n * @returns { Object[] } translateObject method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @param {string} groupnodeID - provide the objects value.\n * @private\n */\n CommandHandler.prototype.translateObject = function (obj, groupnodeID) {\n obj.id += groupnodeID || randomId();\n var diff = this.clipboardData.pasteIndex * 10;\n if (getObjectType(obj) === Connector) {\n obj.sourcePoint = {\n x: obj.sourcePoint.x + diff, y: obj.sourcePoint.y + diff\n };\n obj.targetPoint = {\n x: obj.targetPoint.x + diff, y: obj.targetPoint.y + diff\n };\n if (obj.type === 'Bezier') {\n var segments = obj.segments;\n for (var i = 0; i < segments.length; i++) {\n if (!Point.isEmptyPoint(segments[parseInt(i.toString(), 10)].point1)) {\n segments[parseInt(i.toString(), 10)].point1 = {\n x: segments[parseInt(i.toString(), 10)].point1.x + diff, y: segments[parseInt(i.toString(), 10)].point1.y + diff\n };\n }\n if (!Point.isEmptyPoint(segments[parseInt(i.toString(), 10)].point2)) {\n segments[parseInt(i.toString(), 10)].point2 = {\n x: segments[parseInt(i.toString(), 10)].point2.x + diff, y: segments[parseInt(i.toString(), 10)].point2.y + diff\n };\n }\n }\n }\n if (obj.type === 'Straight' || obj.type === 'Bezier') {\n if (obj.segments && obj.segments.length > 0) {\n var segments = obj.segments;\n for (var i = 0; i < segments.length - 1; i++) {\n segments[parseInt(i.toString(), 10)].point.x += diff;\n segments[parseInt(i.toString(), 10)].point.y += diff;\n }\n }\n }\n }\n else {\n obj.offsetX += diff;\n obj.offsetY += diff;\n }\n };\n /**\n * drawObject method\\\n *\n * @returns { Node | Connector } drawObject method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.drawObject = function (obj) {\n var newObj;\n //let cloneObject: Node | Connector;\n if (obj && obj.shape) {\n if (obj.shape.type === 'Text') {\n obj.width = this.diagram.drawingObject.width ? this.diagram.drawingObject.width : 50;\n obj.height = this.diagram.drawingObject.height ? this.diagram.drawingObject.height : 20;\n }\n }\n var cloneObject = clone(this.diagram.drawingObject);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n cloneObject[\"\" + prop] = obj[\"\" + prop];\n }\n if (getObjectType(this.diagram.drawingObject) === Node || (getObjectType(this.diagram.drawingObject) === Connector && this.diagram.drawingObject.type === 'Freehand' && obj.type !== 'Bezier')) {\n newObj = new Node(this.diagram, 'nodes', cloneObject, true);\n newObj.id = (this.diagram.drawingObject.id || 'node') + randomId();\n }\n else {\n newObj = new Connector(this.diagram, 'connectors', cloneObject, true);\n newObj.id = (this.diagram.drawingObject ? (this.diagram.drawingObject.id ? this.diagram.drawingObject.id : 'connector')\n : 'connector') + randomId();\n }\n this.diagram.initObject(newObj);\n this.diagram.updateDiagramObject(newObj);\n this.diagram.currentDrawingObject = newObj;\n return newObj;\n };\n /**\n * addObjectToDiagram method\\\n *\n * @returns { void } addObjectToDiagram method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.addObjectToDiagram = function (obj) {\n //let newObj: Node | Connector;\n this.diagram.removeFromAQuad(obj);\n this.diagram.removeObjectsFromLayer(this.diagram.nameTable[obj.id]);\n delete this.diagram.nameTable[obj.id];\n //EJ2-62652 - Added below code to empty the segment collection if connector type is bezier\n if (obj instanceof Connector && obj.type === 'Bezier' && obj.segments.length > 0\n && (this.diagram.drawingObject && this.diagram.drawingObject.type === 'Bezier')) {\n obj.segments = [];\n }\n var newObj = this.diagram.add(obj);\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n this.selectObjects([newObj]);\n if (obj && (!(canContinuousDraw(this.diagram)))) {\n this.diagram.tool &= ~DiagramTools.DrawOnce;\n this.diagram.currentDrawingObject = undefined;\n }\n };\n /**\n * addObjectToDiagram method\\\n *\n * @returns { void } addObjectToDiagram method .\\\n * @param {boolean} enable - provide the objects value.\n * @private\n */\n CommandHandler.prototype.enableServerDataBinding = function (enable) {\n this.diagram.enableServerDataBinding(enable);\n };\n /**\n * addText method\\\n *\n * @returns { void } addText method .\\\n * @param {boolean} obj - provide the objects value.\n * @param {PointModel} currentPosition - provide the objects value.\n * @private\n */\n CommandHandler.prototype.addText = function (obj, currentPosition) {\n var annotation = this.diagram.findElementUnderMouse(obj, currentPosition, this.diagram);\n this.diagram.startTextEdit(obj, annotation instanceof TextElement ? (annotation.id).split('_')[1] : undefined);\n };\n /**\n * isUserHandle method\\\n *\n * @returns { boolean } isUserHandle method .\\\n * @param {PointModel} position - provide the objects value.\n * @private\n */\n CommandHandler.prototype.isUserHandle = function (position) {\n var handle = this.diagram.selectedItems;\n if (handle.wrapper && canShowCorner(handle.constraints, 'UserHandle')) {\n for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) {\n var obj = _a[_i];\n if (obj.visible) {\n var paddedBounds = getUserHandlePosition(handle, obj, this.diagram.scroller.transform);\n if (contains(position, paddedBounds, obj.size / (2 * this.diagram.scroller.transform.scale))) {\n return true;\n }\n }\n }\n }\n return false;\n };\n /**\n * selectObjects method\\\n *\n * @returns { Promise } selectObjects method .\\\n * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value.\n * @param {boolean} multipleSelection - provide the objects value.\n * @param {(NodeModel | ConnectorModel)[]} oldValue - provide the objects value.\n * @private\n */\n CommandHandler.prototype.selectObjects = function (obj, multipleSelection, oldValue) {\n return __awaiter(this, void 0, void 0, function () {\n var arg, swimlaneNode, laneId, j, i, parentId, select, oldSelectedItems, canDoMultipleSelection, canDoSingleSelection, i, newObj, i_1, parentNode;\n return __generator(this, function (_a) {\n arg = {\n oldValue: oldValue ? oldValue : this.getSelectedObject(),\n newValue: obj, cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Addition', cancel: false\n };\n // EJ2-57157 - Added to consider the lane header at selection change when selecting a lane.\n if (obj.length > 0 && (obj[0] && obj[0].isLane)) {\n swimlaneNode = this.diagram.getObject(obj[0].parentId);\n obj[0].shape.header = [];\n laneId = '';\n for (j = 0; j < obj.length; j++) {\n for (i = 0; i < swimlaneNode.shape.lanes.length; i++) {\n parentId = obj[0].id.split(obj[0].parentId);\n laneId = parentId[1].slice(0, -1);\n if (laneId === swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].id) {\n obj[0].shape.header.push(swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].header);\n }\n }\n }\n }\n this.diagram.enableServerDataBinding(false);\n select = true;\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n else {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n }\n oldSelectedItems = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n canDoMultipleSelection = canMultiSelect(this.diagram);\n canDoSingleSelection = canSingleSelect(this.diagram);\n if (canDoSingleSelection || canDoMultipleSelection) {\n if (!canDoMultipleSelection && ((obj.length > 1) || (multipleSelection && obj.length === 1))) {\n if (obj.length === 1) {\n this.clearSelection();\n }\n else {\n return [2 /*return*/];\n }\n }\n if (!(canDoSingleSelection || canDoMultipleSelection) && obj.length === 1\n && (!multipleSelection || !hasSelection(this.diagram))) {\n this.clearSelection();\n return [2 /*return*/];\n }\n }\n if (!arg.cancel) {\n for (i = 0; i < obj.length; i++) {\n newObj = obj[parseInt(i.toString(), 10)];\n if (newObj) {\n select = true;\n if (!hasSelection(this.diagram)) {\n this.select(newObj, i > 0 || multipleSelection, true);\n }\n else {\n if ((i > 0 || multipleSelection) && newObj.children && !newObj.parentId) {\n for (i_1 = 0; i_1 < this.diagram.selectedItems.nodes.length; i_1++) {\n parentNode = this.diagram.nameTable[this.diagram.selectedItems.nodes[parseInt(i_1.toString(), 10)].parentId];\n if (parentNode) {\n parentNode = this.findParent(parentNode);\n if (parentNode) {\n if (newObj.id === parentNode.id) {\n this.selectGroup(newObj);\n }\n }\n }\n }\n }\n this.selectProcesses(newObj);\n select = this.selectBpmnSubProcesses(newObj);\n if (select) {\n this.select(newObj, i > 0 || multipleSelection, true);\n }\n }\n }\n }\n if (oldValue === undefined) {\n oldValue = oldSelectedItems;\n }\n arg = {\n oldValue: oldValue ? oldValue : [],\n newValue: this.getSelectedObject(),\n cause: this.diagram.diagramActions, state: 'Changed', type: 'Addition', cancel: false\n };\n this.diagram.renderSelector(multipleSelection || (obj && obj.length > 1));\n // this.updateBlazorSelectorModel(oldValue);\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n this.diagram.enableServerDataBinding(true);\n }\n return [2 /*return*/];\n });\n });\n };\n // /**\n // * updateBlazorSelector method\\\n // *\n // * @returns { void } updateBlazorSelector method .\\\n // * @private\n // */\n // public updateBlazorSelector(): void {\n // //remove blazor code\n // }\n /**\n * findParent method\\\n *\n * @returns { Node } findParent method .\\\n * @param {Node} node - provide the objects value.\n * @private\n */\n CommandHandler.prototype.findParent = function (node) {\n if (node.parentId) {\n node = this.diagram.nameTable[node.parentId];\n this.findParent(node);\n }\n return node;\n };\n CommandHandler.prototype.selectProcesses = function (newObj) {\n if (this.hasProcesses(newObj)) {\n var processes = (newObj).shape.activity.subProcess.processes;\n for (var i = 0; i < processes.length; i++) {\n var innerChild = this.diagram.nameTable[processes[parseInt(i.toString(), 10)]];\n if (this.hasProcesses(innerChild)) {\n this.selectObjects([innerChild], true);\n }\n this.unSelect(innerChild);\n }\n }\n };\n CommandHandler.prototype.selectGroup = function (newObj) {\n for (var j = 0; j < newObj.children.length; j++) {\n var innerChild = this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]];\n if (innerChild.children) {\n this.selectGroup(innerChild);\n }\n this.unSelect(this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]]);\n }\n };\n CommandHandler.prototype.selectBpmnSubProcesses = function (node) {\n var select = true;\n var parent;\n if (node.processId) {\n if (isSelected(this.diagram, this.diagram.nameTable[node.processId])) {\n select = false;\n }\n else {\n select = this.selectBpmnSubProcesses(this.diagram.nameTable[node.processId]);\n }\n }\n else if (node instanceof Connector) {\n if (node.sourceID && this.diagram.nameTable[node.sourceID] &&\n this.diagram.nameTable[node.sourceID].processId) {\n parent = this.diagram.nameTable[node.sourceID].processId;\n }\n if (node.targetID && this.diagram.nameTable[node.targetID] &&\n this.diagram.nameTable[node.targetID].processId) {\n parent = this.diagram.nameTable[node.targetID].processId;\n }\n if (parent) {\n if (isSelected(this.diagram, this.diagram.nameTable[\"\" + parent])) {\n return false;\n }\n else {\n select = this.selectBpmnSubProcesses(this.diagram.nameTable[\"\" + parent]);\n }\n }\n }\n else if (node.parentId && this.diagram.nameTable[node.parentId] &&\n this.diagram.nameTable[node.parentId].shape.type === 'UmlClassifier') {\n if (isSelected(this.diagram, this.diagram.nameTable[node.parentId])) {\n select = false;\n }\n }\n return select;\n };\n CommandHandler.prototype.hasProcesses = function (node) {\n if (node) {\n if ((node.shape.type === 'Bpmn') && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length > 0) {\n return true;\n }\n }\n return false;\n };\n /**\n * select method\\\n *\n * @returns { void } select method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @param {boolean} multipleSelection - provide the objects value.\n * @param {boolean} preventUpdate - provide the objects value.\n * @private\n */\n CommandHandler.prototype.select = function (obj, multipleSelection, preventUpdate) {\n var hasLayer = this.getObjectLayer(obj.id);\n if ((canSelect(obj) && !(obj instanceof Selector) && !isSelected(this.diagram, obj))\n && (hasLayer && !hasLayer.lock && hasLayer.visible) && obj.wrapper.visible) {\n multipleSelection = hasSelection(this.diagram) ? multipleSelection : false;\n if (!multipleSelection) {\n this.clearSelection();\n }\n this.diagram.enableServerDataBinding(false);\n var selectorModel = this.diagram.selectedItems;\n var convert = obj;\n if (convert instanceof Node) {\n if (obj.isHeader) {\n var node = this.diagram.nameTable[obj.parentId];\n selectorModel.nodes.push(node);\n }\n else {\n selectorModel.nodes.push(obj);\n }\n }\n else {\n selectorModel.connectors.push(obj);\n }\n // EJ2-56919 - Push the newly selected objects in selectedObjects collection\n selectorModel.selectedObjects.push(obj);\n if (!multipleSelection) {\n selectorModel.init(this.diagram);\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n var wrapper = gridSelection(this.diagram, selectorModel);\n if (wrapper) {\n selectorModel.wrapper.children[0] = wrapper;\n }\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot;\n }\n }\n else {\n selectorModel.wrapper.rotateAngle = selectorModel.rotateAngle = 0;\n selectorModel.wrapper.children.push(obj.wrapper);\n }\n if (!preventUpdate) {\n this.diagram.renderSelector(multipleSelection);\n }\n this.diagram.enableServerDataBinding(true);\n }\n };\n // private getObjectCollectionId(isNode: boolean, clearSelection?: boolean): string[] {\n // const id: string[] = [];\n // let i: number = 0;\n // const selectedObject: (NodeModel | ConnectorModel)[] = isNode ? this.diagram.selectedItems.nodes\n // : this.diagram.selectedItems.connectors;\n // while (!clearSelection && i < selectedObject.length) {\n // id[parseInt(i.toString(), 10)] = selectedObject[parseInt(i.toString(), 10)].id;\n // i++;\n // }\n // return id;\n // }\n // private updateBlazorSelectorModel(oldItemsCollection: (NodeModel | ConnectorModel)[], clearSelection?: boolean): void {\n // remove blazor code\n // }\n /**\n * labelSelect method\\\n *\n * @returns { void } labelSelect method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @param {DiagramElement} textWrapper - provide the objects value.\n * @private\n */\n CommandHandler.prototype.labelSelect = function (obj, textWrapper) {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n var selectorModel = (this.diagram.selectedItems);\n var isEnableServerDatabind = this.diagram.allowServerDataBinding;\n this.diagram.allowServerDataBinding = false;\n selectorModel.nodes = selectorModel.connectors = [];\n this.diagram.allowServerDataBinding = isEnableServerDatabind;\n if (obj instanceof Node) {\n selectorModel.nodes[0] = obj;\n }\n else {\n selectorModel.connectors[0] = obj;\n }\n selectorModel.annotation = (this.findTarget(textWrapper, obj));\n selectorModel.init(this.diagram);\n this.diagram.renderSelector(false);\n };\n /**\n * unSelect method\\\n *\n * @returns { void } unSelect method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.unSelect = function (obj) {\n var objArray = [];\n objArray.push(obj);\n var items = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n var selectedObjects = items.filter(function (items) {\n return items.id !== obj.id;\n });\n var arg = {\n oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Removal', cancel: false\n };\n if (!this.diagram.currentSymbol) {\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n if (isSelected(this.diagram, obj)) {\n var selectormodel = this.diagram.selectedItems;\n var index = void 0;\n if (obj instanceof Node) {\n index = selectormodel.nodes.indexOf(obj, 0);\n selectormodel.nodes.splice(index, 1);\n }\n else {\n index = selectormodel.connectors.indexOf(obj, 0);\n selectormodel.connectors.splice(index, 1);\n }\n index = selectormodel.selectedObjects.indexOf(obj, 0);\n selectormodel.selectedObjects.splice(index, 1);\n arg = {\n oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: false\n };\n // this.updateBlazorSelectorModel(objArray);\n arg = {\n oldValue: cloneBlazorObject(items), newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: arg.cancel\n };\n if (!arg.cancel) {\n index = selectormodel.wrapper.children.indexOf(obj.wrapper, 0);\n selectormodel.wrapper.children.splice(index, 1);\n this.diagram.updateSelector();\n if (!this.diagram.currentSymbol) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n }\n };\n /**\n * getChildElements method\\\n *\n * @returns { string[] } getChildElements method .\\\n * @param {DiagramElement[]} child - provide the objects value.\n * @private\n */\n // public getChildElements(child: DiagramElement[]): string[] {\n // const children: string[] = [];\n // for (let i: number = 0; i < child.length; i++) {\n // const childNode: DiagramElement = child[parseInt(i.toString(), 10)];\n // if ((childNode as Container).children && (childNode as Container).children.length > 0) {\n // // children.concat(this.getChildElements((childNode as Container).children));\n // } else {\n // children.push(childNode.id);\n // if (childNode instanceof TextElement) {\n // children.push(childNode.id + '_text');\n // }\n // }\n // }\n // return children;\n // }\n /**\n * moveSvgNode method\\\n *\n * @returns { void } moveSvgNode method .\\\n * @param {string} nodeId - provide the objects value.\n * @param {string} targetID - provide the objects value.\n * @private\n */\n CommandHandler.prototype.moveSvgNode = function (nodeId, targetID) {\n //Bug 921994: Z-index order changes are not reflected at the UI level with Undo Redo commands.\n var node = this.diagram.nameTable[\"\" + targetID];\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(nodeId, targetID);\n }\n else {\n var diagramDiv = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n }\n };\n CommandHandler.prototype.moveAfterSvgNode = function (nodeId, targetID) {\n //Bug 921994: Z-index order changes are not reflected at the UI level with Undo Redo commands.\n var node = this.diagram.nameTable[\"\" + targetID];\n if (node && (node.shape.type === 'HTML' || node.shape.type === 'Native')) {\n for (var i = 0; i < this.diagram.views.length; i++) {\n var id = node.shape.type === 'HTML' ? '_html_element' : '_content_groupElement';\n var backNode = getDiagramElement(nodeId + id, this.diagram.views[parseInt(i.toString(), 10)]);\n var diagramDiv = targetID ? getDiagramElement(targetID + id, this.diagram.views[parseInt(i.toString(), 10)])\n : backNode.parentElement.firstChild;\n if (backNode && diagramDiv) {\n if (backNode.parentNode.id === diagramDiv.parentNode.id) {\n diagramDiv.insertAdjacentElement('afterend', backNode);\n }\n }\n }\n }\n else {\n var diagramDiv = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.insertAdjacentElement('afterend', backNode);\n }\n };\n /**\n * sendLayerBackward method\\\n *\n * @returns { void } sendLayerBackward method .\\\n * @param {string} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.sendLayerBackward = function (layerName) {\n var layer = this.getLayer(layerName);\n if (layer && layer.zIndex !== 0) {\n var index = layer.zIndex;\n if (this.diagram.mode === 'SVG') {\n var currentLayerObject = layer.objects;\n var targetObject = this.getLayer(this.diagram.layerZIndexTable[index - 1]).objects[0];\n if (targetObject) {\n for (var _i = 0, currentLayerObject_1 = currentLayerObject; _i < currentLayerObject_1.length; _i++) {\n var obj = currentLayerObject_1[_i];\n this.moveSvgNode(obj, targetObject);\n }\n }\n }\n var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index - 1]);\n targetLayer.zIndex = targetLayer.zIndex + 1;\n layer.zIndex = layer.zIndex - 1;\n var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)];\n this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index - 1];\n this.diagram.layerZIndexTable[index - 1] = temp;\n if (this.diagram.mode === 'Canvas') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * bringLayerForward method\\\n *\n * @returns { void } bringLayerForward method .\\\n * @param {string} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.bringLayerForward = function (layerName) {\n var layer = this.getLayer(layerName);\n if (layer && layer.zIndex < this.diagram.layers.length - 1) {\n var index = layer.zIndex;\n var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index + 1]);\n if (this.diagram.mode === 'SVG') {\n var currentLayerObject = layer.objects[0];\n var targetLayerObjects = targetLayer.objects;\n for (var _i = 0, targetLayerObjects_1 = targetLayerObjects; _i < targetLayerObjects_1.length; _i++) {\n var obj = targetLayerObjects_1[_i];\n if (obj) {\n this.moveSvgNode(obj, currentLayerObject);\n }\n }\n }\n targetLayer.zIndex = targetLayer.zIndex - 1;\n layer.zIndex = layer.zIndex + 1;\n var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)];\n this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index + 1];\n this.diagram.layerZIndexTable[index + 1] = temp;\n if (this.diagram.mode === 'Canvas') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * sendToBack method\\\n *\n * @returns { void } sendToBack method .\\\n * @param {NodeModel | ConnectorModel} object - provide the objects value.\n * @private\n */\n CommandHandler.prototype.sendToBack = function (object) {\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || object) {\n // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and\n // perform send to back operation\n var selectedItems = this.diagram.selectedItems;\n var objects = [];\n if (object && object.id) {\n objects.push(object);\n }\n else {\n objects = objects.concat(selectedItems.nodes);\n objects = objects.concat(selectedItems.connectors);\n }\n var objectId = (object && object.id);\n for (var i = 0; i < objects.length; i++) {\n var clonedObject = cloneObject(objects[parseInt(i.toString(), 10)]);\n objectId = objects[parseInt(i.toString(), 10)].id;\n var index = this.diagram.nameTable[\"\" + objectId].zIndex;\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId));\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var minZindex = null;\n var targetId = '';\n for (var i_2 = 0; i_2 < layerObjects.length; i_2++) {\n var obj = this.diagram.nameTable[layerObjects[parseInt(i_2.toString(), 10)]];\n if (minZindex === null || obj.zIndex < minZindex) {\n minZindex = obj.zIndex;\n targetId = obj.id;\n }\n }\n var tempTable = JSON.parse(JSON.stringify(zIndexTable));\n var undoObject = cloneObject(this.diagram.selectedItems);\n var tempIndex = 0;\n //Checks whether the selected node is the only node in the node array.\n //Checks whether it is not a group and the nodes behind it are not it’s children.\n if (this.diagram.nodes.length !== 1 && (this.diagram.nameTable[\"\" + objectId].children === undefined ||\n this.checkObjectBehind(objectId, zIndexTable, index))) {\n var obj = this.diagram.nameTable[\"\" + objectId];\n if (obj.zIndex > minZindex && obj.shape.type !== 'SwimLane') {\n var clonedNode = cloneObject(obj);\n obj.zIndex = minZindex - ((objects.indexOf(obj) !== -1 ? objects.indexOf(obj) : 0) + 1);\n if (obj.children) {\n minZindex = this.findLowestZIndex(obj, layerObjects) || minZindex;\n }\n this.triggerOrderCommand(clonedNode, obj, obj);\n if (obj.children) {\n this.updateGroupZindex(obj, 'SendToBack', minZindex);\n }\n }\n else if (obj.shape.type === 'SwimLane') {\n tempIndex = this.swapZIndexObjects(index, zIndexTable, objectId, tempTable);\n }\n // for (let i: number = index; i > 0; i--) {\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // //When there are empty records in the zindex table\n // if (!zIndexTable[i - 1]) {\n // zIndexTable[i - 1] = zIndexTable[parseInt(i.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[i - 1]].zIndex = i;\n // delete zIndexTable[parseInt(i.toString(), 10)];\n // } else {\n // //bringing the objects forward\n // let clonedNode = cloneObject( this.diagram.nameTable[zIndexTable[parseInt((i-1).toString(), 10)]]);\n // zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[i - 1];\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // this.triggerOrderCommand(clonedNode, this.diagram.nameTable[zIndexTable[parseInt((i-1).toString(), 10)]], this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]]);\n // }\n // }\n // }\n // for (let i: number = index; i > 0; i--) {\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // }\n // }\n // if (obj.shape.type !== 'SwimLane') {\n // zIndexTable[0] = this.diagram.nameTable[`${objectId}`].id;\n // this.diagram.nameTable[`${objectId}`].zIndex = 0;\n // this.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]);\n // } else {\n // tempIndex = this.swapZIndexObjects(index, zIndexTable, objectId, tempTable);\n // }\n if (this.diagram.mode === 'SVG') {\n var obj_1 = this.diagram.nameTable[\"\" + objectId];\n var i_3 = obj_1.shape.type !== 'SwimLane' ? minZindex : tempIndex;\n // if (i !== tempIndex) {\n // i = (obj.children && obj.children.length > 0) ? index : 1;\n // }\n var target = zIndexTable[parseInt(i_3.toString(), 10)];\n // EJ2-49326 - (CR issue fix) An exception raised when send the swimlane back to the normal node.\n while (!target && i_3 < index) {\n target = zIndexTable[++i_3];\n }\n // EJ2-46656 - CR issue fix\n target = this.resetTargetNode(objectId, target, i_3, zIndexTable);\n //EJ2-69654 - Send to back command not working when there is single node in layer\n if (target) {\n target = this.diagram.nameTable[\"\" + target].parentId ? this.checkParentExist(target) : target;\n this.moveSvgNode(objectId, target);\n }\n this.updateNativeNodeIndex(objectId);\n this.updateLayerZindexTable(layerNum);\n }\n else {\n this.diagram.refreshCanvasLayers();\n this.updateLayerZindexTable(layerNum);\n }\n var redoObject = cloneObject(this.diagram.selectedItems);\n var entry = { type: 'SendToBack', category: 'Internal', undoObject: undoObject, redoObject: redoObject };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n CommandHandler.prototype.updateGroupZindex = function (parent, command, index) {\n if (command === 'SendToBack' || command === 'SendBackward') {\n var parentZindex = parent.zIndex;\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.children) {\n child.zIndex = parentZindex - (i + 1);\n this.updateGroupZindex(child, command, child.zIndex);\n }\n else {\n child.zIndex = parentZindex - (i + 1);\n }\n }\n }\n else if (command === 'BringToFront' || command === 'BringForward') {\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.children) {\n child.zIndex = index + (i + 1);\n this.updateGroupZindex(child, command, child.zIndex);\n }\n else {\n child.zIndex = index + (i + 1);\n }\n }\n }\n };\n CommandHandler.prototype.updateLayerZindexTable = function (layerIndex) {\n var layer = this.diagram.layers[parseInt(layerIndex.toString(), 10)];\n layer.zIndexTable = {};\n for (var i = 0; i < layer.objects.length; i++) {\n var obj = this.diagram.nameTable[layer.objects[parseInt(i.toString(), 10)]];\n layer.zIndexTable[obj.zIndex] = obj.id;\n }\n };\n CommandHandler.prototype.swapZIndexObjects = function (index, zIndexTable, objectId, tempTable) {\n var tempIndex = 0;\n var childCount = 0;\n var childIndex = -1;\n var j = 1;\n // Get the swimlane's Children count\n for (var i = 0; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)]\n && this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].parentId === objectId) {\n // Get the swimlane's first children position from z index table\n if (childIndex === -1) {\n childIndex = i;\n }\n childCount++;\n }\n }\n // Swap the swimlane children to the top of the z index table\n for (var i = 0; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)] && j <= childCount) {\n while (!zIndexTable[parseInt(childIndex.toString(), 10)]) {\n childIndex++;\n }\n zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[parseInt(childIndex.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n childIndex++;\n j++;\n }\n }\n var k = 0;\n // Get the Z index from ZindexTable in the child's count position. In that position we want to put the swimlane\n for (var i = 0; i < childCount; i++) {\n while (!zIndexTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n tempIndex = this.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex;\n k++;\n }\n tempIndex = tempIndex + 1;\n // Check if there is a object in the z index table or not\n while (!zIndexTable[parseInt(tempIndex.toString(), 10)]) {\n ++tempIndex;\n }\n k = 0;\n // Place the swimlane at the next position of the swimlane's last children.\n zIndexTable[parseInt(tempIndex.toString(), 10)] = this.diagram.nameTable[\"\" + objectId].id;\n this.diagram.nameTable[\"\" + objectId].zIndex = tempIndex;\n tempIndex = tempIndex + 1;\n // Now swap the intersect nodes at next position of the swimlane.\n for (var i = tempIndex; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)]) {\n while (!tempTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n zIndexTable[parseInt(i.toString(), 10)] = tempTable[parseInt(k.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n k++;\n }\n }\n return tempIndex;\n };\n CommandHandler.prototype.resetTargetNode = function (objectId, target, i, zIndexTable) {\n if (this.diagram.nameTable[\"\" + objectId].shape.type === 'SwimLane'\n && this.diagram.nameTable[\"\" + target].parentId !== undefined && this.diagram.nameTable[\"\" + target].parentId !== '' && this.diagram.nameTable[this.diagram.nameTable[\"\" + target].parentId].isLane) {\n i = i + 1;\n if (zIndexTable[parseInt(i.toString(), 10)]) {\n target = zIndexTable[parseInt(i.toString(), 10)];\n return target = this.resetTargetNode(objectId, target, i, zIndexTable);\n }\n else {\n return target;\n }\n }\n else {\n return target;\n }\n };\n // private getZIndexObjects(): void {\n // // const element: (NodeModel | ConnectorModel)[] = [];\n // // let i: number; let j: number;\n // // for (i = 0; i < this.diagram.nodes.length; i++) {\n // // element.push(this.diagram.nodes[parseInt(i.toString(), 10)]);\n // // }\n // // for (j = 0; j < this.diagram.connectors.length; j++) {\n // // element.push(this.diagram.connectors[parseInt(j.toString(), 10)]);\n // // }\n // // this.updateBlazorZIndex(element);\n // }\n // private updateBlazorZIndex(element: (NodeModel | ConnectorModel)[]): void {\n // // const blazorInterop: string = 'sfBlazor';\n // // const blazor: string = 'Blazor';\n // // let diagramobject: object = {};\n // // const nodeObject: NodeModel[] = [];\n // // const connectorObject: ConnectorModel[] = [];\n // // let k: number;\n // // if (element && element.length > 0) {\n // // for (k = 0; k < element.length; k++) {\n // // const elementObject: (NodeModel | ConnectorModel) = element[parseInt(k.toString(), 10)];\n // // if (elementObject instanceof Node) {\n // // nodeObject.push(this.getBlazorObject(elementObject));\n // // } else if (elementObject instanceof Connector) {\n // // connectorObject.push(this.getBlazorObject(elementObject));\n // // }\n // // }\n // // }\n // // diagramobject = {\n // // nodes: nodeObject,\n // // connectors: connectorObject\n // // };\n // // if (window && window[`${blazor}`]) {\n // // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramobject };\n // // window[`${blazorInterop}`].updateBlazorProperties(obj, this.diagram);\n // // }\n // }\n // private getBlazorObject(objectName: (NodeModel | ConnectorModel)): any {\n // // const object: object = {\n // // sfIndex: getIndex(this.diagram, objectName.id),\n // // zIndex: objectName.zIndex\n // // };\n // // return object;\n // }\n //Checks whether the target is a child node.\n CommandHandler.prototype.checkParentExist = function (target) {\n var objBehind = target;\n while (this.diagram.nameTable[\"\" + objBehind].parentId) {\n objBehind = this.diagram.nameTable[\"\" + objBehind].parentId;\n }\n return objBehind;\n };\n //Checks whether the selected node is not a parent of another node.\n CommandHandler.prototype.checkObjectBehind = function (objectId, zIndexTable, index) {\n // for (let i: number = 0; i < index; i++) {\n // const z: string = zIndexTable[parseInt(i.toString(), 10)];\n // if (this.diagram.nameTable[`${z}`] && objectId !== this.diagram.nameTable[`${z}`].parentId) {\n // return true;\n // }\n // }\n return true;\n };\n /**\n * bringToFront method\\\n *\n * @returns { void } bringToFront method .\\\n * @param {NodeModel | ConnectorModel } obj - Provide the nodeArray element .\n * @private\n */\n CommandHandler.prototype.bringToFront = function (obj) {\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and\n // perform bring to front operation\n var objectName = (obj && obj.id);\n var selectedItems = this.diagram.selectedItems;\n var objects = [];\n if (obj && obj.id) {\n objects.push(obj);\n }\n else {\n objects = objects.concat(selectedItems.nodes);\n objects = objects.concat(selectedItems.connectors);\n }\n for (var i = 0; i < objects.length; i++) {\n var clonedObject = cloneObject(objects[parseInt(i.toString(), 10)]);\n objectName = objects[parseInt(i.toString(), 10)].id;\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectName));\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n var undoObject = cloneObject(this.diagram.selectedItems);\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var maxZindex = null;\n for (var i_4 = 0; i_4 < layerObjects.length; i_4++) {\n var obj_2 = this.diagram.nameTable[layerObjects[parseInt(i_4.toString(), 10)]];\n if (maxZindex === null || obj_2.zIndex > maxZindex) {\n maxZindex = obj_2.zIndex;\n }\n }\n var tempTable = JSON.parse(JSON.stringify(zIndexTable));\n var tempIndex = 0;\n //find the maximum zIndex of the tabel\n var tabelLength = Number(Object.keys(zIndexTable).sort(function (a, b) { return Number(a) - Number(b); }).reverse()[0]);\n var index = this.diagram.nameTable[\"\" + objectName].zIndex;\n var oldzIndexTable = [];\n var length_1 = 0;\n for (var i_5 = 0; i_5 <= tabelLength; i_5++) {\n oldzIndexTable.push(zIndexTable[parseInt(i_5.toString(), 10)]);\n }\n var object = this.diagram.nameTable[\"\" + objectName];\n if (object.shape.type === 'SwimLane') {\n for (var i_6 = tabelLength; i_6 >= index; i_6--) {\n if (zIndexTable[parseInt(i_6.toString(), 10)]\n && !(this.diagram.nameTable[zIndexTable[parseInt(i_6.toString(), 10)]].parentId === objectName)) {\n length_1 = i_6;\n tabelLength = length_1;\n break;\n }\n }\n }\n var obj_3 = this.diagram.nameTable[\"\" + objectName];\n if (obj_3.zIndex < maxZindex && obj_3.shape.type !== 'SwimLane') {\n var clonedNode = cloneObject(obj_3);\n var parentZindex = 0;\n if (obj_3.children) {\n maxZindex = this.findGreatestZIndex(obj_3, layerObjects) || maxZindex;\n this.updateGroupZindex(obj_3, 'BringToFront', maxZindex);\n for (var i_7 = 0; i_7 < obj_3.children.length; i_7++) {\n var child = this.diagram.nameTable[obj_3.children[parseInt(i_7.toString(), 10)]];\n if (child.zIndex > parentZindex) {\n parentZindex = child.zIndex;\n }\n }\n }\n else {\n parentZindex = maxZindex;\n }\n obj_3.zIndex = parentZindex + ((objects.indexOf(obj_3) !== -1 ? objects.indexOf(obj_3) : 0) + 1);\n this.triggerOrderCommand(clonedNode, obj_3, obj_3);\n }\n // for (let i: number = index; i < tabelLength; i++) {\n // //When there are empty records in the zindex table\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // if (!zIndexTable[i + 1]) {\n // zIndexTable[i + 1] = zIndexTable[parseInt(i.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[i + 1]].zIndex = i;\n // delete zIndexTable[parseInt(i.toString(), 10)];\n // } else {\n // //bringing the objects backward\n // let clonedNode = cloneObject(this.diagram.nameTable[zIndexTable[parseInt((i+1).toString(), 10)]]);\n // zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[i + 1];\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // this.triggerOrderCommand(clonedNode, this.diagram.nameTable[zIndexTable[parseInt((i+1).toString(), 10)]], this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]]);\n // }\n // }\n // }\n // for (let i: number = index; i < tabelLength; i++) {\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // }\n // }\n // if (object.shape.type !== 'SwimLane') {\n // zIndexTable[parseInt(tabelLength.toString(), 10)] = this.diagram.nameTable[`${objectName}`].id;\n // this.diagram.nameTable[`${objectName}`].zIndex = tabelLength;\n // this.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]);\n // }\n else if (obj_3.shape.type === 'SwimLane') {\n var childCount = 0;\n var childIndex = -1;\n var tempIndex_1 = 0;\n var laneIndex = 0;\n var cloneTable = JSON.parse(JSON.stringify(zIndexTable));\n for (var i_8 = 0; i_8 <= index; i_8++) {\n if (zIndexTable[parseInt(i_8.toString(), 10)]\n && this.diagram.nameTable[zIndexTable[parseInt(i_8.toString(), 10)]].parentId === objectName) {\n if (childIndex === -1) {\n childIndex = i_8;\n tempIndex_1 = i_8;\n break;\n }\n }\n }\n for (var i_9 = 0; i_9 <= tabelLength; i_9++) {\n if (tempTable[parseInt(i_9.toString(), 10)] && tempTable[parseInt(i_9.toString(), 10)] !== objectName\n && this.diagram.nameTable[tempTable[parseInt(i_9.toString(), 10)]].parentId !== objectName) {\n var node = this.diagram.nameTable[tempTable[parseInt(i_9.toString(), 10)]];\n var swimlaneObject = this.diagram.nameTable[\"\" + objectName];\n if (node.zIndex >= swimlaneObject.zIndex) {\n childCount++;\n }\n }\n }\n var k = childIndex;\n for (var i_10 = 0; i_10 <= childCount; i_10++) {\n while (!zIndexTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n laneIndex = this.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex;\n k++;\n }\n for (var i_11 = laneIndex; i_11 <= tabelLength; i_11++) {\n while (!cloneTable[parseInt(childIndex.toString(), 10)]) {\n childIndex++;\n }\n while (!zIndexTable[parseInt(i_11.toString(), 10)]) {\n i_11++;\n }\n zIndexTable[parseInt(i_11.toString(), 10)] = cloneTable[parseInt(childIndex.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i_11.toString(), 10)]].zIndex = i_11;\n childIndex++;\n }\n zIndexTable[parseInt(tabelLength.toString(), 10)] = this.diagram.nameTable[\"\" + objectName].id;\n this.diagram.nameTable[\"\" + objectName].zIndex = tabelLength;\n k = index + 1;\n var j = tempIndex_1;\n for (var i_12 = 0; i_12 < childCount; i_12++) {\n while (!tempTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n while (this.diagram.nameTable[tempTable[parseInt(k.toString(), 10)]].parentId === objectName) {\n k++;\n }\n while (!zIndexTable[parseInt(j.toString(), 10)]) {\n j++;\n }\n zIndexTable[parseInt(j.toString(), 10)] = tempTable[parseInt(k.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n k++;\n j++;\n }\n }\n if (this.diagram.mode === 'SVG') {\n // const diagramLayer: SVGGElement = this.diagram.diagramLayer as SVGGElement;\n // //const child: string[] = this.getChildElements(this.diagram.nameTable[objectName].wrapper.children);\n // //const targerNodes: Object = [];\n // let element: HTMLElement = getDiagramElement(objectName + '_groupElement', this.diagram.element.id);\n // const nodes: NodeModel[] = this.diagram.selectedItems.nodes;\n // if (nodes.length > 0 && (nodes[0].shape.type === 'Native' || nodes[0].shape.type === 'HTML')) {\n // element.parentNode.removeChild(element);\n // for (let j: number = 0; j < this.diagram.views.length; j++) {\n // element = getDiagramElement(\n // objectName + (nodes[0].shape.type === 'HTML' ? '_html_element' : '_content_groupElement'),\n // this.diagram.views[parseInt(j.toString(), 10)]);\n // const lastChildNode: HTMLElement = element.parentNode.lastChild as HTMLElement;\n // lastChildNode.parentNode.insertBefore(element, lastChildNode.nextSibling);\n // }\n // const htmlLayer: HTMLElement = getHTMLLayer(this.diagram.element.id);\n // this.diagram.diagramRenderer.renderElement(this.diagram.nameTable[`${objectName}`].wrapper, diagramLayer, htmlLayer);\n // } else {\n // Object.keys(zIndexTable).forEach((key: string) => {\n // const zIndexValue: string = zIndexTable[`${key}`];\n // if ((zIndexValue !== objectName) && (this.diagram.nameTable[`${zIndexValue}`].parentId) !== objectName) {\n // //EJ2-42101 - SendToBack and BringToFront not working for connector with group node\n // //Added @Dheepshiva to restrict the objects with lower zIndex\n // if (zIndexValue !== undefined &&\n // (oldzIndexTable.indexOf(objectName) < oldzIndexTable.indexOf(zIndexValue))) {\n // const objectNode: Node | Connector = this.diagram.nameTable[`${objectName}`];\n // const zIndexNode: Node | Connector = this.diagram.nameTable[`${zIndexValue}`];\n // if (objectNode.parentId === '' && zIndexNode.parentId === '' && zIndexNode.parentId === undefined\n // && objectNode.parentId !== zIndexNode.id) {\n // this.moveSvgNode(zIndexValue, objectName);\n // this.updateNativeNodeIndex(objectName);\n // } else {\n // if (this.checkGroupNode(objectName, zIndexValue, this.diagram.nameTable)) {\n // this.moveSvgNode(zIndexValue, objectName);\n // this.updateNativeNodeIndex(objectName);\n // }\n // }\n // }\n // }\n // });\n // this.updateLayerZindexTable(layerNum);\n // }\n var obj_4 = this.diagram.nameTable[\"\" + objectName];\n var i_13 = obj_4.shape.type !== 'SwimLane' ? maxZindex : tempIndex;\n // if (i !== tempIndex) {\n // i = (obj.children && obj.children.length > 0) ? index : 1;\n // }\n var target = zIndexTable[parseInt(i_13.toString(), 10)];\n // EJ2-49326 - (CR issue fix) An exception raised when send the swimlane back to the normal node.\n // while (!target && i > index) {\n // target = zIndexTable[++i];\n // }\n // EJ2-46656 - CR issue fix\n target = this.resetTargetNode(objectName, target, i_13, zIndexTable);\n //EJ2-69654 - Send to back command not working when there is single node in layer\n if (target) {\n target = this.diagram.nameTable[\"\" + target].parentId ? this.checkParentExist(target) : target;\n this.moveAfterSvgNode(objectName, target);\n }\n var diagramLayer = this.diagram.diagramLayer;\n var element = getDiagramElement(objectName + '_groupElement', this.diagram.element.id);\n var nodes = this.diagram.selectedItems.nodes;\n if (nodes.length > 0 && (nodes[0].shape.type === 'Native' || nodes[0].shape.type === 'HTML')) {\n element.parentNode.removeChild(element);\n for (var j = 0; j < this.diagram.views.length; j++) {\n element = getDiagramElement(objectName + (nodes[0].shape.type === 'HTML' ? '_html_element' : '_content_groupElement'), this.diagram.views[parseInt(j.toString(), 10)]);\n var lastChildNode = element.parentNode.lastChild;\n lastChildNode.parentNode.insertBefore(element, lastChildNode.nextSibling);\n }\n var htmlLayer = getHTMLLayer(this.diagram.element.id);\n this.diagram.diagramRenderer.renderElement(this.diagram.nameTable[\"\" + objectName].wrapper, diagramLayer, htmlLayer);\n }\n this.updateLayerZindexTable(layerNum);\n }\n else {\n this.diagram.refreshCanvasLayers();\n this.updateLayerZindexTable(layerNum);\n }\n var redoObject = cloneObject(this.diagram.selectedItems);\n var entry = { type: 'BringToFront', category: 'Internal', undoObject: undoObject, redoObject: redoObject };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n CommandHandler.prototype.findGreatestZIndex = function (parent, layerObjects) {\n var layerObj = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n // Get zIndex values of nodes excluding children of the parent\n var zIndexes = layerObj.filter(function (node) { return node.parentId === '' && node.id !== parent.id; }).map(function (node) { return node.zIndex; });\n // Sort zIndexes in descending order\n zIndexes.sort(function (a, b) { return b - a; });\n // Find the greatest zIndex excluding children\n if (zIndexes.length > 0) {\n return zIndexes[0];\n }\n return null;\n };\n CommandHandler.prototype.findLowestZIndex = function (parent, layerObjects) {\n var layerObj = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n // Get zIndex values of nodes excluding children of the parent\n var zIndexes = layerObj.filter(function (node) { return node.parentId === '' && node.id !== parent.id; }).map(function (node) { return node.zIndex; });\n // Sort zIndexes in ascending order\n zIndexes.sort(function (a, b) { return a - b; });\n // Find the lowest zIndex excluding children\n if (zIndexes.length > 0) {\n return zIndexes[0];\n }\n return null;\n };\n CommandHandler.prototype.triggerOrderCommand = function (oldObj, newObj, obj) {\n var clonedObject = cloneObject(oldObj);\n // EJ2-61653 - Added below code to get only changed values (zIndex) and passed as an argument to property change event\n var oldValue = {\n zIndex: clonedObject.zIndex\n };\n var newValue = {\n zIndex: newObj.zIndex\n };\n var arg = {\n element: obj, cause: this.diagram.diagramActions, diagramAction: this.diagram.getDiagramAction(this.diagram.diagramActions),\n oldValue: oldValue, newValue: newValue\n };\n this.diagram.triggerEvent(DiagramEvent.propertyChange, arg);\n };\n CommandHandler.prototype.checkGroupNode = function (selectedNodeName, layerObject, nameTable) {\n return nameTable[\"\" + layerObject].parentId === nameTable[\"\" + selectedNodeName].parentId;\n };\n /**\n * sortByZIndex method\\\n *\n * @returns { Object[] } sortByZIndex method .\\\n * @param { Object[] } nodeArray - Provide the nodeArray element .\n * @param { string } sortID - Provide the sortID element .\n * @private\n */\n CommandHandler.prototype.sortByZIndex = function (nodeArray, sortID, command) {\n if (command === 'BringForward') {\n var id_1 = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n return b[\"\" + id_1] - a[\"\" + id_1];\n });\n }\n else {\n var id_2 = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n return a[\"\" + id_2] - b[\"\" + id_2];\n });\n }\n return nodeArray;\n };\n /**\n * orderCommands method\\\n *\n * @returns { void } orderCommands method .\\\n * @param { boolean } isRedo - Provide the previousObject element .\n * @param { Selector } selector - Provide the previousObject element .\n * @param { EntryType } action - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.orderCommands = function (isRedo, selector, action) {\n var _this = this;\n var selectedObject = selector.nodes;\n selectedObject = selectedObject.concat(selector.connectors);\n if (isRedo) {\n if (action === 'SendBackward') {\n for (var i = 0; i < selectedObject.length; i++) {\n this.sendBackward(selectedObject[parseInt(i.toString(), 10)]);\n }\n }\n else if (action === 'SendForward') {\n for (var i = 0; i < selectedObject.length; i++) {\n this.sendForward(selectedObject[parseInt(i.toString(), 10)]);\n }\n }\n else if (action === 'BringToFront') {\n this.bringToFront(selectedObject[0]);\n }\n else if (action === 'SendToBack') {\n this.sendToBack(selectedObject[0]);\n }\n }\n else {\n var startZIndex_1 = selectedObject[0].zIndex;\n var endZIndex = this.diagram.nameTable[selectedObject[0].id].zIndex;\n var undoObject = selectedObject[0];\n var layer = this.getObjectLayer(undoObject.id);\n var layerIndex = layer.zIndex;\n var zIndexTable = layer.zIndexTable;\n if (action === 'SendBackward' || action === 'SendForward') {\n for (var i = 0; i < selectedObject.length; i++) {\n var undoObject_1 = selectedObject[parseInt(i.toString(), 10)];\n var layer_2 = this.diagram.layers.indexOf(this.getObjectLayer(undoObject_1.id));\n var node = this.diagram.nameTable[selectedObject[parseInt(i.toString(), 10)].id];\n node.zIndex = undoObject_1.zIndex;\n this.diagram.layers[parseInt(layer_2.toString(), 10)].zIndexTable[undoObject_1.zIndex] = undoObject_1.id;\n }\n }\n else if (action === 'BringToFront') {\n if (selectedObject[0].shape.type === 'SwimLane') {\n this.sendToBack(selectedObject[0]);\n }\n // else {\n // const k: number = 1;\n // for (let j: number = endZIndex; j > startZIndex; j--) {\n // if (zIndexTable[parseInt(j.toString(), 10)]) {\n // if (!zIndexTable[j - k]) {\n // zIndexTable[j - k] = zIndexTable[parseInt(j.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[j - k]].zIndex = j;\n // delete zIndexTable[parseInt(j.toString(), 10)];\n // } else {\n // zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j - k];\n // this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n // }\n // }\n // }\n // }\n }\n else if (action === 'SendToBack') {\n if (selectedObject[0].shape.type === 'SwimLane') {\n this.bringToFront(selectedObject[0]);\n }\n // else {\n // for (let j: number = endZIndex; j < startZIndex; j++) {\n // if (zIndexTable[parseInt(j.toString(), 10)]) {\n // if (!zIndexTable[j + 1]) {\n // zIndexTable[j + 1] = zIndexTable[parseInt(j.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[j + 1]].zIndex = j;\n // delete zIndexTable[parseInt(j.toString(), 10)];\n // } else {\n // zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j + 1];\n // this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n // }\n // }\n // }\n // }\n }\n if (action === 'BringToFront' || action === 'SendToBack') {\n var node = this.diagram.nameTable[selectedObject[0].id];\n node.zIndex = undoObject.zIndex;\n this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable[undoObject.zIndex] = undoObject.id;\n this.updateLayerZindexTable(layer.zIndex);\n }\n if (this.diagram.mode === 'SVG') {\n if (action === 'SendBackward') {\n //To iterate all the elements in diagram to change the zindex\n for (var i = 0; i < selectedObject.length; i++) {\n this.moveSBObject(selectedObject[parseInt(i.toString(), 10)].id);\n }\n }\n else if (action === 'SendForward') {\n //To iterate all the elements in diagram to change the zindex\n for (var i = 0; i < selectedObject.length; i++) {\n this.moveFBObject(selectedObject[parseInt(i.toString(), 10)].id);\n }\n }\n // else if (action === 'BringToFront') {\n // if (selectedObject[0].shape.type !== 'SwimLane') {\n // this.moveObject(selectedObject[0].id, zIndexTable[selectedObject[0].zIndex + 1]);\n // }\n // }\n else if (action === 'SendToBack' || action === 'BringToFront') {\n if (selectedObject[0].shape.type !== 'SwimLane') {\n // const layer: LayerModel = this.getObjectLayer(selectedObject[0].id);\n // for (let i: number = 0; i <= selectedObject[0].zIndex; i++) {\n // if (layer.objects[parseInt(i.toString(), 10)] !== selectedObject[0].id) {\n // this.moveSvgNode(layer.objects[parseInt(i.toString(), 10)], selectedObject[0].id);\n // this.updateNativeNodeIndex(selectedObject[0].id);\n // }\n // }\n var zIndexArray = layer.objects.map(function (x) { return _this.diagram.nameTable[\"\" + x].zIndex; });\n var filteredZIndexArray = zIndexArray.filter(function (zIndex) { return zIndex > startZIndex_1; });\n var filteredZIndexArray2 = zIndexArray.filter(function (zIndex) { return zIndex < startZIndex_1; });\n var nextLowestZindex = filteredZIndexArray2.length > 0 ? Math.max.apply(Math, filteredZIndexArray2) : startZIndex_1;\n var nextGreatestZIndex = filteredZIndexArray.length > 0 ? Math.min.apply(Math, filteredZIndexArray) : startZIndex_1;\n if (startZIndex_1 !== nextGreatestZIndex) {\n var first = layer.zIndexTable[parseInt(nextGreatestZIndex.toString(), 10)];\n var second = layer.zIndexTable[parseInt(startZIndex_1.toString(), 10)];\n this.moveSvgNode(second, first);\n }\n else if (action === 'SendToBack') {\n var first = layer.zIndexTable[parseInt(startZIndex_1.toString(), 10)];\n var second = layer.zIndexTable[parseInt(nextLowestZindex.toString(), 10)];\n this.moveAfterSvgNode(first, second);\n }\n }\n }\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n }\n };\n CommandHandler.prototype.swapDomOrder = function (nextNodeId, targetId) {\n if (nextNodeId) {\n //Bug 921994: Z-index order changes are not reflected at the UI level with Undo Redo commands.\n var node = this.diagram.getObject(targetId);\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(targetId, nextNodeId);\n this.updateNativeNodeIndex(nextNodeId, targetId);\n }\n else {\n var diagramDiv = getDiagramElement(targetId + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n }\n }\n };\n // private moveObject(sourceId: string, targetId: string): void {\n // if (targetId) {\n // this.moveSvgNode(sourceId, targetId);\n // this.updateNativeNodeIndex(sourceId, targetId);\n // }\n // }\n /**\n * sendForward method\\\n *\n * @returns { void } sendForward method .\\\n * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.sendForward = function (obj) {\n var _this = this;\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n var elements = obj || (this.diagram.selectedItems.nodes.length\n ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0]);\n var clonedObjects = cloneObject(elements);\n var nodeId = (obj && obj.id);\n nodeId = nodeId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id\n : this.diagram.selectedItems.connectors[0].id);\n var layerIndex = this.diagram.layers.indexOf(this.getObjectLayer(nodeId));\n var originalNameTable_1 = cloneObject(this.diagram.nameTable);\n var zIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable;\n //const tabelLength: number = Object.keys(zIndexTable).length;\n var index = this.diagram.nameTable[\"\" + nodeId];\n var intersectArray = [];\n var temp = this.diagram.spatialSearch.findObjects(index.wrapper.bounds);\n if (temp.length > 2) {\n temp = this.sortByZIndex(temp, undefined, 'BringForward');\n }\n for (var _i = 0, temp_1 = temp; _i < temp_1.length; _i++) {\n var i = temp_1[_i];\n if (index.id !== i.id) {\n var currentLayer = this.getObjectLayer(i.id).zIndex;\n if (layerIndex === currentLayer && (Number(this.diagram.nameTable[\"\" + nodeId].zIndex) < Number(i.zIndex)) && i.parentId === '' &&\n index.wrapper.bounds.intersects(i.wrapper.bounds)) {\n intersectArray.push(i);\n }\n }\n }\n for (var i = intersectArray.length - 1; i >= 0; i--) {\n var child = this.diagram.nameTable[intersectArray[parseInt(i.toString(), 10)].id];\n if (child.parentId === nodeId) {\n intersectArray.splice(i, 1);\n }\n }\n if (intersectArray.length > 0) {\n var node = this.diagram.nameTable[intersectArray[intersectArray.length - 1].id];\n if (node.parentId) {\n var parentId = '';\n var parent_1 = findParentInSwimlane(node, this.diagram, parentId);\n var obj_5 = this.diagram.nameTable[\"\" + parent_1];\n if (obj_5.id !== nodeId) {\n intersectArray[0] = obj_5;\n }\n }\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values for nodes\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n // Store original zIndex values for connectors\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var overlapObject = intersectArray[0].zIndex;\n var temp_2 = zIndexTable[parseInt(overlapObject.toString(), 10)];\n var undoObject_2 = cloneObject(this.diagram.selectedItems);\n this.diagram.startGroupAction();\n //To store the zindex values as key value pair\n var zIndex_1 = {};\n intersectArray.forEach(function (item) {\n zIndex_1[item.id] = item.zIndex;\n });\n // To store the intersecting zindex value\n var greaterItems_1 = [];\n if (index) {\n var tempIndex_2 = index.zIndex;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-nochec\n if (Object.keys(zIndex_1).length > 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.values(zIndex_1).forEach(function (val) {\n if (val >= tempIndex_2) {\n greaterItems_1.push(val);\n }\n });\n if (greaterItems_1.length !== 0) {\n this.updateZIndexBySendForward(index, greaterItems_1, layerIndex);\n }\n }\n }\n var changedNodeZIndexesArray_1 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_1[\"\" + nodeId] ? originalNameTable_1[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in undo\n if (originalZIndex !== changedZIndex) {\n var node_2 = cloneObject(originalNameTable_1[\"\" + nodeId]);\n changedNodeZIndexesArray_1.push(node_2);\n }\n });\n this.updateLayerZindexTable(layerIndex);\n undoObject_2.nodes.splice(0, undoObject_2.nodes.length);\n changedNodeZIndexesArray_1.forEach(function (node) {\n var clonedNode = cloneObject(node);\n undoObject_2.nodes.push(clonedNode);\n });\n if (this.diagram.mode === 'SVG') {\n var nodeIdToUpdate = intersectArray[intersectArray.length - 1].id;\n var element = intersectArray[intersectArray.length - 1];\n if (element && !(element.shape.type === 'HTML'\n || element.shape.type === 'Native')) {\n // this.moveForwardSvgNode(nodeId);\n this.moveAfterSvgNode(nodeId, nodeIdToUpdate);\n }\n this.updateNativeNodeIndex(nodeIdToUpdate, nodeId);\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n var changeNodeZIndexesArray_1 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_1[\"\" + nodeId] ? originalNameTable_1[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in redo\n if (originalZIndex !== changedZIndex) {\n var node_3 = cloneObject(_this.diagram.nameTable[\"\" + nodeId]);\n changeNodeZIndexesArray_1.push(node_3);\n }\n });\n var redoObject_1 = cloneObject(this.diagram.selectedItems);\n redoObject_1.nodes.splice(0, redoObject_1.nodes.length);\n changeNodeZIndexesArray_1.forEach(function (node) {\n var clonedNode = cloneObject(node);\n redoObject_1.nodes.push(clonedNode);\n });\n var historyEntry = {\n type: 'SendForward', category: 'Internal',\n undoObject: undoObject_2, redoObject: redoObject_1\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(historyEntry);\n }\n this.diagram.endGroupAction();\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n //This method changes all the zindex values based on the selected node/connector\n CommandHandler.prototype.updateZIndexBySendForward = function (selectedNode, greaterItems, layerNum) {\n var clonedNode = cloneObject(selectedNode);\n selectedNode.zIndex = Math.min.apply(Math, greaterItems);\n var highChildIndex = Math.min.apply(Math, greaterItems);\n var index = Math.min.apply(Math, greaterItems);\n var highIndex;\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var objects = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n if (selectedNode.children) {\n this.updateGroupZindex(selectedNode, 'BringForward', selectedNode.zIndex);\n }\n var frontNode = objects.filter(function (x) { return x.zIndex === Math.min.apply(Math, greaterItems) && x.id !== selectedNode.id; });\n if (frontNode && frontNode.length > 0 && frontNode[0].children) {\n var frontNodeIndex = Math.min.apply(Math, greaterItems);\n for (var i = 0; i < frontNode[0].children.length; i++) {\n var frontNodeChild = this.diagram.nameTable[frontNode[0].children[parseInt(i.toString(), 10)]];\n frontNodeChild.zIndex = frontNodeIndex - (i + 1);\n highChildIndex = frontNodeIndex - (i + 1);\n }\n this.arrangeZIndexForLowerNodes(highChildIndex, frontNode[0], objects);\n }\n if (selectedNode.children) {\n highIndex = this.findGreatestChildZIndex(selectedNode);\n selectedNode.zIndex = highIndex + 1;\n highIndex = selectedNode.zIndex;\n }\n else {\n selectedNode.zIndex++;\n highIndex = selectedNode.zIndex;\n }\n this.triggerOrderCommand(clonedNode, selectedNode, selectedNode);\n var sortedObjects = objects.slice().sort(function (a, b) { return a.zIndex - b.zIndex; });\n for (var i = 0; i < sortedObjects.length; i++) {\n var node = sortedObjects[parseInt(i.toString(), 10)];\n if (node.zIndex > index && node !== selectedNode && node.parentId !== selectedNode.id &&\n frontNode && frontNode.length > 0 && node.parentId !== frontNode[0].id) {\n var clonedNode_1 = cloneObject(node);\n node.zIndex = highIndex + 1;\n highIndex++;\n // node.zIndex++;\n this.triggerOrderCommand(clonedNode_1, node, node);\n }\n var originalZIndex = node.zIndex;\n //changedNodeZIndexes store the zindex values with node id as key value pair\n // eslint-disable-next-line no-prototype-builtins\n if (this.changedNodeZIndexes.hasOwnProperty(node.id)) {\n this.changedNodeZIndexes[node.id] = originalZIndex;\n }\n else {\n this.changedNodeZIndexes[node.id] = originalZIndex;\n }\n }\n };\n CommandHandler.prototype.arrangeZIndexForLowerNodes = function (index, parent, objects) {\n var lesserIndexNodes = objects.filter(function (x) { return x.zIndex <= index && x.parentId !== parent.id; });\n lesserIndexNodes.sort(function (a, b) { return b.zIndex - a.zIndex; });\n for (var i = 0; i < lesserIndexNodes.length; i++) {\n lesserIndexNodes[parseInt(i.toString(), 10)].zIndex = index - (i + 1);\n }\n };\n CommandHandler.prototype.findGreatestChildZIndex = function (parent) {\n var highestZIndex = parent.zIndex;\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.zIndex > highestZIndex) {\n highestZIndex = child.zIndex;\n }\n }\n return highestZIndex;\n };\n // /**\n // * moveForwardSvgNode method\\\n // *\n // * @returns { void } moveForwardSvgNode method .\\\n // * @param {string} targetID - provide the objects value.\n // * @private\n // */\n // public moveForwardSvgNode(targetID: string): void {\n // const sortedNodeIds: string[] = Object.keys(this.changedNodeZIndexes).sort((a: string, b: string) => this.changedNodeZIndexes[`${a}`] - this.changedNodeZIndexes[`${b}`]);\n // const currentIndex: number = sortedNodeIds.indexOf(targetID);\n // if (currentIndex !== -1) {\n // //This logic moves the node/connector based on their zindex\n // if (currentIndex === sortedNodeIds.length - 1) {\n // const nextNodeId: string = sortedNodeIds[currentIndex - 1];\n // if (nextNodeId) {\n // const diagramDiv: HTMLElement = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n // const backNode: HTMLElement = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n // diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n // diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n // }\n // }\n // else {\n // const nextNodeId: string = sortedNodeIds[currentIndex + 1];\n // if (nextNodeId) {\n // const diagramDiv: HTMLElement = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n // const backNode: HTMLElement = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n // diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n // }\n // }\n // }\n // }\n /**\n * sendBackward method\\\n *\n * @returns { void } sendBackward method .\\\n * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.sendBackward = function (obj) {\n var _this = this;\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n var element = obj || (this.diagram.selectedItems.nodes.length\n ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0]);\n var clonedObject = cloneObject(element);\n var objectId = (obj && obj.id);\n objectId = objectId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id\n : this.diagram.selectedItems.connectors[0].id);\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId));\n var originalNameTable_2 = cloneObject(this.diagram.nameTable);\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n //const tabelLength: number = Object.keys(zIndexTable).length;\n var node = this.diagram.nameTable[\"\" + objectId];\n var intersectArray = [];\n var temp = this.diagram.spatialSearch.findObjects(node.wrapper.bounds);\n if (temp.length > 2) {\n temp = this.sortByZIndex(temp);\n }\n for (var _i = 0, temp_3 = temp; _i < temp_3.length; _i++) {\n var i = temp_3[_i];\n if (node.id !== i.id) {\n var currentLayer = this.getObjectLayer(i.id).zIndex;\n if (layerNum === currentLayer && (Number(this.diagram.nameTable[\"\" + objectId].zIndex) > Number(i.zIndex)) && i.parentId === '' &&\n node.wrapper.bounds.intersects(i.wrapper.bounds)) {\n intersectArray.push(i);\n }\n }\n }\n for (var i = intersectArray.length - 1; i >= 0; i--) {\n var child = this.diagram.nameTable[intersectArray[parseInt(i.toString(), 10)].id];\n if (child.parentId === objectId) {\n intersectArray.splice(i, 1);\n }\n }\n if (intersectArray.length > 0) {\n var child = this.diagram.nameTable[intersectArray[intersectArray.length - 1].id];\n if (child.parentId) {\n var parentId = '';\n var parent_2 = findParentInSwimlane(child, this.diagram, parentId);\n var obj_6 = this.diagram.nameTable[\"\" + parent_2];\n if (objectId !== obj_6.id) {\n intersectArray[intersectArray.length - 1] = obj_6;\n }\n }\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values for nodes\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n // Store original zIndex values for connectors\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var overlapObject = intersectArray[intersectArray.length - 1].zIndex;\n var temp_4 = zIndexTable[parseInt(overlapObject.toString(), 10)];\n var undoObject_3 = cloneObject(this.diagram.selectedItems);\n this.diagram.startGroupAction();\n var zIndex_2 = {};\n intersectArray.forEach(function (item) {\n zIndex_2[item.id] = item.zIndex;\n });\n var lesserItems_1 = [];\n if (node) {\n var tempIndex_3 = node.zIndex;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-nochec\n if (Object.keys(zIndex_2).length > 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.values(zIndex_2).forEach(function (val) {\n if (val <= tempIndex_3) {\n lesserItems_1.push(val);\n }\n });\n if (lesserItems_1.length !== 0) {\n this.updateZIndexBySendBackward(node, lesserItems_1, layerNum);\n }\n }\n }\n var changedNodeZIndexesArray_2 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_2[\"\" + nodeId] ? originalNameTable_2[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in undo\n if (originalZIndex !== changedZIndex) {\n var node_4 = cloneObject(originalNameTable_2[\"\" + nodeId]);\n changedNodeZIndexesArray_2.push(node_4);\n }\n });\n this.updateLayerZindexTable(layerNum);\n undoObject_3.nodes.splice(0, undoObject_3.nodes.length);\n changedNodeZIndexesArray_2.forEach(function (node) {\n var clonedNode = cloneObject(node);\n undoObject_3.nodes.push(clonedNode);\n });\n if (this.diagram.mode === 'SVG') {\n var nodeIdToUpdate = intersectArray[intersectArray.length - 1].id;\n var element_1 = intersectArray[intersectArray.length - 1];\n if (element_1 && !(element_1.shape.type === 'HTML'\n || element_1.shape.type === 'Native')) {\n // this.moveBackSvgNode(objectId);\n this.moveSvgNode(objectId, nodeIdToUpdate);\n }\n var node_5 = this.diagram.nameTable[\"\" + nodeIdToUpdate];\n if (node_5.children && node_5.children.length > 0) {\n this.updateNativeNodeIndex(objectId);\n }\n else {\n this.updateNativeNodeIndex(objectId, nodeIdToUpdate);\n }\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n var changeNodeZIndexesArray_2 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_2[\"\" + nodeId] ? originalNameTable_2[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in redo\n if (originalZIndex !== changedZIndex) {\n var node_6 = cloneObject(_this.diagram.nameTable[\"\" + nodeId]);\n changeNodeZIndexesArray_2.push(node_6);\n }\n });\n var redoObject_2 = cloneObject(this.diagram.selectedItems);\n redoObject_2.nodes.splice(0, redoObject_2.nodes.length);\n changeNodeZIndexesArray_2.forEach(function (node) {\n var clonedNode = cloneObject(node);\n redoObject_2.nodes.push(clonedNode);\n });\n var entry = { type: 'SendBackward', category: 'Internal', undoObject: undoObject_3, redoObject: redoObject_2 };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n this.diagram.endGroupAction();\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n //This method changes all the zindex values based on the selected node/connector\n CommandHandler.prototype.updateZIndexBySendBackward = function (selectedNode, lesserItems, layerNum) {\n var clonedNode = cloneObject(selectedNode);\n selectedNode.zIndex = Math.max.apply(Math, lesserItems);\n var index = selectedNode.zIndex;\n var lowChildIndex = Math.max.apply(Math, lesserItems);\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var objects = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n var backNode = objects.filter(function (x) { return x.zIndex === Math.max.apply(Math, lesserItems) && x.id !== selectedNode.id; });\n if (backNode && backNode.length > 0 && backNode[0].children) {\n // eslint-disable-next-line prefer-spread\n var backNodeIndex = Math.max.apply(Math, lesserItems);\n for (var i = 0; i < backNode[0].children.length; i++) {\n var backNodeChild = this.diagram.nameTable[backNode[0].children[parseInt(i.toString(), 10)]];\n backNodeChild.zIndex = backNodeIndex - (i + 1);\n lowChildIndex = backNodeIndex - (i + 1);\n }\n }\n selectedNode.zIndex = lowChildIndex - 1;\n var lowIndex;\n this.triggerOrderCommand(clonedNode, selectedNode, selectedNode);\n if (selectedNode.children) {\n this.updateGroupZindex(selectedNode, 'SendBackward', selectedNode.zIndex);\n lowIndex = this.findLowestChildZIndex(selectedNode);\n }\n else {\n lowIndex = selectedNode.zIndex;\n }\n var sortedObjects = objects.slice().sort(function (a, b) { return b.zIndex - a.zIndex; });\n for (var i = 0; i < sortedObjects.length; i++) {\n var node = sortedObjects[parseInt(i.toString(), 10)];\n if (node.zIndex < index && node !== selectedNode && node.parentId !== selectedNode.id &&\n backNode && backNode.length > 0 && node.parentId !== backNode[0].id) {\n var clonedNode_2 = cloneObject(node);\n node.zIndex = lowIndex - 1;\n lowIndex--;\n this.triggerOrderCommand(clonedNode_2, node, node);\n }\n var originalZIndex = node.zIndex;\n // eslint-disable-next-line no-prototype-builtins\n if (this.changedNodeZIndexes.hasOwnProperty(node.id)) {\n this.changedNodeZIndexes[\"\" + node.id] = originalZIndex;\n }\n else {\n this.changedNodeZIndexes[\"\" + node.id] = originalZIndex;\n }\n }\n };\n CommandHandler.prototype.findLowestChildZIndex = function (parent) {\n var lowestZIndex = parent.zIndex;\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.zIndex < lowestZIndex) {\n lowestZIndex = child.zIndex;\n }\n }\n return lowestZIndex;\n };\n // /**\n // * moveBackSvgNode method\\\n // *\n // * @returns { void } moveBackSvgNode method .\\\n // * @param {string} targetID - provide the objects value.\n // * @private\n // */\n // public moveBackSvgNode(targetID: string): void {\n // const sortedNodeIds: string[] = Object.keys(this.changedNodeZIndexes).sort((a: string, b: string) => this.changedNodeZIndexes[`${a}`] - this.changedNodeZIndexes[`${b}`]);\n // const currentIndex: number = sortedNodeIds.indexOf(targetID);\n // //This logic moves the node/connector based on their zindex\n // if (currentIndex !== -1) {\n // const nextNodeId: string = sortedNodeIds[currentIndex + 1];\n // if (nextNodeId) {\n // const diagramDiv: HTMLElement = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n // const backNode: HTMLElement = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n // diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n // }\n // }\n // }\n /**\n * updateNativeNodeIndex method\\\n *\n * @returns { void } updateNativeNodeIndex method .\\\n * @param { string } nodeId - Provide the previousObject element .\n * @param { string } targetID - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.updateNativeNodeIndex = function (nodeId, targetID) {\n var node = this.diagram.selectedItems.nodes[0] || this.diagram.getObject(targetID);\n for (var i = 0; i < this.diagram.views.length; i++) {\n if (node && (node.shape.type === 'HTML'\n || node.shape.type === 'Native')) {\n var id = node.shape.type === 'HTML' ? '_html_element' : '_content_groupElement';\n var backNode = getDiagramElement(nodeId + id, this.diagram.views[parseInt(i.toString(), 10)]);\n var diagramDiv = targetID ? getDiagramElement(targetID + id, this.diagram.views[parseInt(i.toString(), 10)])\n : backNode.parentElement.firstChild;\n if (backNode && diagramDiv) {\n if (backNode.parentNode.id === diagramDiv.parentNode.id) {\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n }\n }\n }\n }\n };\n /**\n * initSelectorWrapper method\\\n *\n * @returns { void } initSelectorWrapper method .\\\n * @private\n */\n CommandHandler.prototype.initSelectorWrapper = function () {\n var selectorModel = this.diagram.selectedItems;\n selectorModel.init(this.diagram);\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot;\n }\n };\n /**\n * doRubberBandSelection method\\\n *\n * @returns { void } doRubberBandSelection method .\\\n * @param { Rect } region - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.doRubberBandSelection = function (region) {\n this.clearSelectionRectangle();\n var selArray = [];\n var rubberArray = [];\n selArray = this.diagram.getNodesConnectors(selArray);\n if (this.diagram.selectedItems.rubberBandSelectionMode === 'CompleteIntersect') {\n rubberArray = completeRegion(region, selArray);\n }\n else {\n rubberArray = this.diagram.spatialSearch.findObjects(region);\n }\n if (rubberArray.length) {\n this.selectObjects(rubberArray, true);\n }\n };\n CommandHandler.prototype.clearSelectionRectangle = function () {\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var element = adornerSvg.getElementById(this.diagram.element.id + '_diagramAdorner_selected_region');\n if (element) {\n remove(element);\n }\n };\n /**\n * dragConnectorEnds method\\\n *\n * @returns { void } dragConnectorEnds method .\\\n * @param { string } endPoint - Provide the previousObject element .\n * @param { IElement } obj - Provide the previousObject element .\n * @param { PointModel } point - Provide the point element .\n * @param { BezierSegmentModel } segment - Provide the segment element .\n * @param { IElement } target - Provide the target element .\n * @param { string } targetPortId - Provide the targetPortId element .\n * @private\n */\n CommandHandler.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId) {\n var selectorModel;\n var connector; //let node: Node;\n var tx; //let segmentPoint: PointModel;\n var ty; //let index: number;\n var checkBezierThumb = false;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.connectors[0];\n }\n else if (obj instanceof Connector && this.diagram.currentDrawingObject) {\n this.clearSelection();\n connector = this.diagram.currentDrawingObject;\n }\n if (endPoint === 'BezierSourceThumb' || endPoint === 'BezierTargetThumb') {\n checkBezierThumb = true;\n connector.isBezierEditing = true;\n }\n if (endPoint === 'ConnectorSourceEnd' || endPoint === 'BezierSourceThumb') {\n tx = point.x - (checkBezierThumb ? segment.bezierPoint1.x : connector.sourcePoint.x);\n ty = point.y - (checkBezierThumb ? segment.bezierPoint1.y : connector.sourcePoint.y);\n return this.dragSourceEnd(connector, tx, ty, null, point, endPoint, undefined, target, targetPortId, undefined, segment);\n }\n else {\n tx = point.x - (checkBezierThumb ? segment.bezierPoint2.x : connector.targetPoint.x);\n ty = point.y - (checkBezierThumb ? segment.bezierPoint2.y : connector.targetPoint.y);\n return this.dragTargetEnd(connector, tx, ty, null, point, endPoint, undefined, segment);\n }\n };\n /**\n * getSelectedObject method\\\n *\n * @returns { void } getSelectedObject method .\\\n * @private\n */\n CommandHandler.prototype.getSelectedObject = function () {\n var selectormodel = this.diagram.selectedItems;\n return (selectormodel.nodes).concat(selectormodel.connectors);\n };\n // /**\n // * updateBlazorProperties method\\\n // *\n // * @returns { void } updateBlazorProperties method .\\\n // * @param { boolean } isObjectInteraction - Provide the previousObject element .\n // * @private\n // */\n // public updateBlazorProperties(isObjectInteraction?: boolean): void {\n // const blazorInterop: string = 'sfBlazor';\n // const blazor: string = 'Blazor';\n // if (!isObjectInteraction) {\n // if (window && window[`${blazor}`]) {\n // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.diagramObject };\n // // window[`${blazorInterop}`].updateBlazorProperties(obj, this.diagram);\n // }\n // } else {\n // if (window && window[`${blazor}`] && JSON.stringify(this.deepDiffer.diagramObject) !== '{}') {\n // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.deepDiffer.diagramObject };\n // if (!this.diagram.isLoading) {\n // // window[`${blazorInterop}`].updateBlazorProperties(obj, this.diagram);\n // }\n // }\n // }\n // //this.diagram.enableServerDataBinding(true);\n // this.deepDiffer.newNodeObject = [];\n // this.deepDiffer.newConnectorObject = [];\n // this.diagramObject = [];\n // this.diagram.oldNodeObjects = [];\n // this.diagram.oldConnectorObjects = [];\n // }\n // /**\n // * enableCloneObject method\\\n // *\n // * @returns { void } enableCloneObject method .\\\n // * @param { boolean } value - Provide the previousObject element .\n // * @private\n // */\n CommandHandler.prototype.enableCloneObject = function (value) {\n // if ((!this.diagram.lineRoutingModule || !(this.diagram.constraints & DiagramConstraints.LineRouting))) {\n // this.diagram.canEnableBlazorObject = value;\n // }\n };\n // /**\n // * ismouseEvents method\\\n // *\n // * @returns { void } ismouseEvents method .\\\n // * @param { boolean } value - Provide the previousObject element .\n // * @private\n // */\n // public ismouseEvents(value: boolean): void {\n // // if (value) {\n // // this.diagram.blazorActions = this.diagram.addConstraints(this.diagram.blazorActions, BlazorAction.interaction);\n // // } else {\n // // this.diagram.blazorActions = this.diagram.removeConstraints(this.diagram.blazorActions, BlazorAction.interaction);\n // // }\n // }\n // /**\n // * updateLayerObject method\\\n // *\n // * @returns { void } updateLayerObject method .\\\n // * @param { object } oldDiagram - Provide the previousObject element .\n // * @param { boolean } temp - Provide the temp element .\n // * @private\n // */\n // public updateLayerObject(oldDiagram: object, temp?: boolean): void {\n // comment blazor code\n // }\n // /* tslint:enable:no-string-literal */\n // /**\n // * getDiagramOldValues method\\\n // *\n // * @returns { void } getDiagramOldValues method .\\\n // * @param { object } oldDiagram - Provide the previousObject element .\n // * @param { string[] } attribute - Provide the previousObject element .\n // * @private\n // */\n // public getDiagramOldValues(oldDiagram: object, attribute: string[]): void {\n // const newDiagram: object = {};\n // for (let i: number = 0; i < attribute.length; i++) {\n // newDiagram[attribute[parseInt(i.toString(), 10)]] = cloneObject(this.diagram[attribute[parseInt(i.toString(), 10)]]);\n // }\n // const newObject: Object = cloneObject(newDiagram);\n // const result: object = this.deepDiffer.map(newObject, oldDiagram);\n // const diffValue: object = this.deepDiffer.frameObject({}, result);\n // let diff: object = this.deepDiffer.removeEmptyValues(diffValue);\n // diff = this.deepDiffer.changeSegments(diff, newObject);\n // this.diagramObject = diff;\n // if (!(this.diagram.blazorActions & BlazorAction.ClearObject)) {\n // // this.updateBlazorProperties();\n // }\n // }\n /* tslint:disable */\n /**\n * getBlazorOldValues method\\\n *\n * @returns { void } getBlazorOldValues method .\\\n * @param { MouseEventArgs } args - Provide the previousObject element .\n * @param { boolean } labelDrag - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.getBlazorOldValues = function (args, labelDrag) {\n //comment blazor code\n };\n // /**\n // * getObjectChanges method\\\n // *\n // * @returns { void } getObjectChanges method .\\\n // * @param { Object[] } previousObject - Provide the previousObject element .\n // * @param { Object[] } currentObject - Provide the previousObject element .\n // * @param { Object[] } previousObject - Provide the previousObject element .\n // * @private\n // */\n // public getObjectChanges(previousObject: Object[], currentObject: Object[], changedNodes: Object[]): void {\n // }\n /**\n * clearObjectSelection method\\\n *\n * @returns { void } clearObjectSelection method .\\\n * @param { (NodeModel | ConnectorModel) } mouseDownElement - Provide the triggerAction element .\n * @private\n */\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n CommandHandler.prototype.clearObjectSelection = function (mouseDownElement) {\n var selectedItems = this.diagram.selectedItems;\n var list = [];\n list = list.concat(selectedItems.nodes, selectedItems.connectors);\n if (list.indexOf(mouseDownElement) === -1) {\n this.clearSelection((list.length > 0) ? true : false);\n this.selectObjects([mouseDownElement], true);\n }\n };\n /**\n * clearSelection method\\\n *\n * @returns { void } clearSelection method .\\\n * @param { boolean } triggerAction - Provide the triggerAction element .\n * @param { boolean } isTriggered - Provide the isTriggered element .\n * @private\n */\n CommandHandler.prototype.clearSelection = function (triggerAction, isTriggered) {\n return __awaiter(this, void 0, void 0, function () {\n var enableServerDataBinding, selectormodel, arrayNodes, arg;\n return __generator(this, function (_a) {\n enableServerDataBinding = this.diagram.allowServerDataBinding;\n this.diagram.enableServerDataBinding(false);\n if (hasSelection(this.diagram)) {\n selectormodel = this.diagram.selectedItems;\n arrayNodes = this.getSelectedObject();\n if (this.diagram.currentSymbol) {\n this.diagram.previousSelectedObject = arrayNodes;\n }\n arg = {\n oldValue: arrayNodes, newValue: [], cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Removal', cancel: false\n };\n // this.updateBlazorSelectorModel(arrayNodes, true);\n if (triggerAction) {\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n if (!arg.cancel) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.nodes = [];\n selectormodel.connectors = [];\n selectormodel.wrapper = null;\n selectormodel.annotation = undefined;\n // EJ2-56919 - While clear selection empty the selectedObjects collection\n selectormodel.selectedObjects = [];\n this.diagram.clearSelectorLayer();\n if (triggerAction) {\n arg = {\n oldValue: cloneBlazorObject(arrayNodes), newValue: [], cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: false\n };\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n }\n // this.updateBlazorSelector();\n this.diagram.enableServerDataBinding(enableServerDataBinding);\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * clearSelectedItems method\\\n *\n * @returns { void } clearSelectedItems method .\\\n * @private\n */\n CommandHandler.prototype.clearSelectedItems = function () {\n var selectedNodes = this.diagram.selectedItems.nodes ? this.diagram.selectedItems.nodes.length : 0;\n var selectedConnectors = this.diagram.selectedItems.connectors ? this.diagram.selectedItems.connectors.length : 0;\n this.clearSelection((selectedNodes + selectedConnectors) > 0 ? true : false);\n };\n /**\n * removeStackHighlighter method\\\n *\n * @returns { void } removeStackHighlighter method .\\\n * @private\n */\n CommandHandler.prototype.removeStackHighlighter = function () {\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n };\n /**\n * @param {End} args - provide the args value.\n * @param {IElement} target - provide the target value.\n * @private\n */\n CommandHandler.prototype.renderStackHighlighter = function (args, target) {\n var source = this.diagram.selectedItems.nodes[0];\n var symbolDrag;\n var node;\n var selectorModel;\n if (!target) {\n var objects = this.diagram.findObjectsUnderMouse(args.position);\n target = this.diagram.findObjectUnderMouse(objects, 'Drag', true);\n if (target && !(target.isLane || target.isPhase || target.isHeader)) {\n for (var i = 0; i < objects.length; i++) {\n var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id];\n if (!laneNode.isLane || laneNode.isPhase || laneNode.isHeader) {\n target = laneNode;\n this.diagram.parentObject = target;\n }\n }\n }\n }\n if (source && target && target.isLane && source.shape && !source.shape.isPhase) {\n node = this.diagram.nameTable[target.parentId];\n if (this.diagram.currentSymbol && node.shape.type === 'SwimLane') {\n symbolDrag = true;\n }\n if ((source && !source.parentId && source.shape.type !== 'SwimLane') ||\n (source && source.parentId && this.diagram.nameTable[source.parentId] && this.diagram.nameTable[source.parentId].isLane &&\n (source.parentId !== target.parentId && source.parentId !== target.id))) {\n selectorModel = this.diagram.selectedItems;\n var canvas = gridSelection(this.diagram, selectorModel, target.id, true);\n //Bug 904547: Snapping of nodes inside the swimlane is not proper.\n //Instead of assigning the canvas to the selectorModel children, pass them to render selector to highlight the swimlane.\n this.diagram.renderSelector(false, true, canvas);\n selectorModel.wrapper.children[0] = selectorModel.nodes[0].wrapper;\n }\n }\n if (source && target && target.parentId && source.shape && source.shape.isPhase) {\n var node_7 = this.diagram.nameTable[target.parentId];\n if (node_7.shape.type === 'SwimLane') {\n //Bug 904547: Snapping of nodes inside the swimlane is not proper.\n //Instead of assigning the canvas to the selectorModel children, pass them to render selector to highlight the swimlane.\n var canvas = this.diagram.nameTable[target.parentId].wrapper;\n this.diagram.renderSelector(false, true, canvas);\n }\n }\n if ((symbolDrag && this.diagram.currentSymbol.shape.isLane) || (source && target &&\n source.parentId && target.parentId && !source.isPhase && (source.parentId === target.parentId)\n && (source.id !== target.id) && node &&\n (node.container && (node.container.type === 'Stack' || node.container.type === 'Grid')))) {\n var canvas = void 0;\n var value = node.container.orientation === 'Vertical';\n var isVertical = node.container === 'Stack' ? value : !value;\n if (node.container.type === 'Grid' && target.isLane &&\n (((node.shape.orientation === 'Horizontal' && target.rowIndex !== source.rowIndex) ||\n (node.shape.orientation === 'Vertical' && target.columnIndex !== source.columnIndex))\n || (this.diagram.currentSymbol &&\n this.diagram.currentSymbol.shape.orientation === node.container.orientation))) {\n selectorModel = this.diagram.selectedItems;\n if ((source.isLane && canLaneInterchange(source, this.diagram)) || !source.isLane) {\n canvas = gridSelection(this.diagram, selectorModel, target.id, symbolDrag);\n }\n }\n var wrapper = node.container.type === 'Stack' ? target.wrapper : canvas;\n if (wrapper) {\n renderStackHighlighter(wrapper, isVertical, args.position, this.diagram, false, true);\n }\n }\n };\n /** @private */\n CommandHandler.prototype.insertBlazorConnector = function (obj) {\n if (obj instanceof Selector) {\n for (var i = 0; i < obj.connectors.length; i++) {\n this.diagram.insertBlazorConnector(obj.connectors[parseInt(i.toString(), 10)]);\n }\n }\n else {\n this.diagram.insertBlazorConnector(obj);\n }\n };\n /** @private */\n CommandHandler.prototype.drag = function (obj, tx, ty) {\n var tempNode;\n var elements = [];\n // EJ2-846953: The below code is added to set current action to drag when we drag objects dynamically using method.\n // It is used to prevent the updateGroupSize method call for group node while dragging it.\n if (!this.diagram.rotateUsingButton && obj.shape && obj.shape.type !== 'SwimLane') {\n this.diagram.eventHandler.currentAction = 'Drag';\n }\n if (canMove(obj) && this.checkBoundaryConstraints(tx, ty, obj.wrapper.bounds) && canPageEditable(this.diagram)) {\n if (obj instanceof Node) {\n var oldValues = { offsetX: obj.offsetX, offsetY: obj.offsetY };\n obj.offsetX += tx;\n obj.offsetY += ty;\n if (obj.children && !(obj.container)) {\n if (!(checkParentAsContainer(this.diagram, obj, true))) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.isGroupDragging;\n }\n var nodes = this.getAllDescendants(obj, elements);\n for (var i = 0; i < nodes.length; i++) {\n tempNode = (this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id]);\n this.drag(tempNode, tx, ty);\n }\n this.updateInnerParentProperties(obj);\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.isGroupDragging;\n }\n if (checkParentAsContainer(this.diagram, obj, true)) {\n checkChildNodeInContainer(this.diagram, obj);\n }\n else {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, oldValues, { offsetX: obj.offsetX, offsetY: obj.offsetY }, undefined, undefined, false);\n obj.wrapper.measureChildren = false;\n }\n if (obj.shape.type === 'SwimLane' && !this.diagram.currentSymbol) {\n var grid = obj.wrapper.children[0];\n var connectors = getConnectors(this.diagram, grid, 0, true);\n updateConnectorsProperties(connectors, this.diagram);\n }\n }\n else {\n var connector = obj;\n var oldValues = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n var update = connector.type === 'Bezier' ? true : false;\n var hasEnds = false;\n if (!connector.sourceWrapper) {\n this.dragSourceEnd(connector, tx, ty, true, null, '', update);\n }\n else {\n hasEnds = true;\n }\n if (!connector.targetWrapper) {\n this.dragTargetEnd(connector, tx, ty, true, null, '', update);\n }\n else {\n hasEnds = true;\n }\n var canDragPoints = false;\n if (obj instanceof Connector) {\n canDragPoints = true;\n }\n if (!hasEnds || canDragPoints) {\n this.dragControlPoint(connector, tx, ty, true);\n var conn = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n this.diagram.connectorPropertyChange(connector, oldValues, conn);\n }\n }\n }\n };\n /** @private */\n CommandHandler.prototype.connectorSegmentChange = function (actualObject, existingInnerBounds, isRotate) {\n var tx;\n var ty;\n var segmentChange = true;\n if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) {\n if (actualObject.outEdges.length > 0) {\n for (var k = 0; k < actualObject.outEdges.length; k++) {\n var connector = this.diagram.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]];\n if (connector.targetID !== '') {\n segmentChange = this.isSelected(this.diagram.nameTable[connector.targetID]) ? false : true;\n }\n else {\n segmentChange = this.isSelected(this.diagram.nameTable[connector.id]) ? false : true;\n }\n if (connector.type === 'Orthogonal' && connector.segments && connector.segments.length > 1) {\n if (!isRotate) {\n if (segmentChange) {\n switch (connector.segments[0].direction) {\n case 'Bottom':\n tx = actualObject.wrapper.bounds.bottomCenter.x - existingInnerBounds.bottomCenter.x;\n ty = actualObject.wrapper.bounds.bottomCenter.y - existingInnerBounds.bottomCenter.y;\n break;\n case 'Top':\n tx = actualObject.wrapper.bounds.topCenter.x - existingInnerBounds.topCenter.x;\n ty = actualObject.wrapper.bounds.topCenter.y - existingInnerBounds.topCenter.y;\n break;\n case 'Left':\n tx = actualObject.wrapper.bounds.middleLeft.x - existingInnerBounds.middleLeft.x;\n ty = actualObject.wrapper.bounds.middleLeft.y - existingInnerBounds.middleLeft.y;\n break;\n case 'Right':\n tx = actualObject.wrapper.bounds.middleRight.x - existingInnerBounds.middleRight.x;\n ty = actualObject.wrapper.bounds.middleRight.y - existingInnerBounds.middleRight.y;\n break;\n }\n this.dragSourceEnd(connector, tx, ty, true, null, 'ConnectorSourceEnd', undefined, undefined, undefined, (actualObject.parentId &&\n (this.diagram.diagramActions & DiagramAction.isGroupDragging)) ? false : true);\n }\n }\n else {\n var firstSegment = connector.segments[0];\n var secondSegment = connector.segments[1];\n var cornerPoints = swapBounds(actualObject.wrapper, actualObject.wrapper.corners, actualObject.wrapper.bounds);\n var sourcePoint = findPoint(cornerPoints, firstSegment.direction);\n sourcePoint = getIntersection(connector, connector.sourceWrapper, sourcePoint, { x: connector.sourceWrapper.offsetX, y: connector.sourceWrapper.offsetY }, false);\n var source = {\n corners: undefined, point: sourcePoint, margin: undefined, direction: firstSegment.direction\n };\n var target = {\n corners: undefined, point: secondSegment.points[1], margin: undefined, direction: undefined\n };\n var intermediatePoints = orthoConnection2Segment(source, target);\n firstSegment.length = Point.distancePoints(intermediatePoints[0], intermediatePoints[1]);\n if (secondSegment.direction && secondSegment.length) {\n secondSegment.length = Point.distancePoints(intermediatePoints[1], intermediatePoints[2]);\n }\n }\n }\n }\n }\n }\n };\n /** @private */\n CommandHandler.prototype.updateEndPoint = function (connector, oldChanges) {\n var conn = {\n sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint,\n sourceID: connector.sourceID ? connector.sourceID : undefined,\n targetID: connector.targetID ? connector.targetID : undefined,\n sourcePortID: connector.sourcePortID ? connector.sourcePortID : undefined,\n targetPortID: connector.targetPortID ? connector.targetPortID : undefined,\n segments: connector.segments ? connector.segments : undefined\n };\n var newValue = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n if (connector.sourceID) {\n newValue.sourceID = connector.sourceID;\n }\n if (connector.targetID) {\n newValue.targetID = connector.targetID;\n }\n if (connector.sourcePortID) {\n newValue.sourcePortID = connector.sourcePortID;\n }\n if (connector.targetPortID) {\n newValue.targetPortID = connector.targetPortID;\n }\n if (connector.segments) {\n newValue.segments = connector.segments;\n }\n this.diagram.connectorPropertyChange(connector, oldChanges ? oldChanges : {}, newValue);\n // this.diagram.refreshDiagramLayer();\n this.diagram.updateSelector();\n };\n /**\n * @param obj\n * @param tx\n * @param ty\n * @param preventUpdate\n * @param point\n * @param endPoint\n * @param update\n * @param target\n * @param targetPortId\n * @param isDragSource\n * @param segment\n * @private\n */\n CommandHandler.prototype.dragSourceEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, target, targetPortId, isDragSource, segment) {\n var connector = this.diagram.nameTable[obj.id];\n var oldChanges = {};\n var checkBoundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds);\n if (canDragSourceEnd(connector) && checkBoundaryConstraints\n && (endPoint !== 'BezierSourceThumb') && canPageEditable(this.diagram)) {\n oldChanges = { sourcePoint: connector.sourcePoint };\n oldChanges = cloneObject(oldChanges);\n connector.sourcePoint.x += tx;\n connector.sourcePoint.y += ty;\n if (endPoint === 'ConnectorSourceEnd' && connector.type === 'Orthogonal') {\n this.changeSegmentLength(connector, target, targetPortId, isDragSource);\n }\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n }\n if (connector.type === 'Bezier') {\n oldChanges = { sourcePoint: connector.sourcePoint };\n if (segment) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, segment, point, !update);\n }\n else {\n for (var i = 0; i < obj.segments.length; i++) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update);\n }\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector, oldChanges);\n }\n if (!(this.diagram.realActions & RealAction.AnimationClick)) {\n this.diagram.refreshCanvasLayers();\n }\n return checkBoundaryConstraints;\n };\n /**\n * Update Path Element offset\n */\n CommandHandler.prototype.updatePathElementOffset = function (connector) {\n connector.wrapper.children.splice(3, 1);\n var pathElement = new PathElement();\n var anglePoints = connector.intermediatePoints;\n pathElement = updatePathElement(anglePoints, connector);\n connector.wrapper.children.splice(3, 0, pathElement);\n };\n /**\n * Upadte the connector segments when change the source node\n */\n CommandHandler.prototype.changeSegmentLength = function (connector, target, targetPortId, isDragSource) {\n // EJ2-65063 - Added below code to check condition if connector segment length can be changed or not.\n // If inconnect and outconnect removed from node constraints\n var canChangeSegment = target ? this.canConnect(connector, target) : true;\n if (connector.segments && connector.segments[0].direction !== null\n && ((!target && connector.sourceID === '') || isDragSource) && canChangeSegment) {\n var first = connector.segments[0];\n var second = connector.segments[1];\n var node = this.diagram.nameTable[connector.sourceID];\n var secPoint = void 0;\n first.points[0] = connector.sourcePoint;\n if (first.direction === 'Top' || first.direction === 'Bottom') {\n first.points[first.points.length - 1].x = connector.sourcePoint.x;\n second.points[0].y = first.points[first.points.length - 1].y;\n }\n else {\n first.points[first.points.length - 1].y = connector.sourcePoint.y;\n second.points[0].x = first.points[first.points.length - 1].x;\n }\n if (first.direction && (first.length || first.length === 0)) {\n first.length = Point.distancePoints(first.points[0], first.points[first.points.length - 1]);\n }\n if (second.direction && (second.length || second.length === 0)) {\n second.length = Point.distancePoints(first.points[first.points.length - 1], second.points[second.points.length - 1]);\n second.direction = Point.direction(first.points[first.points.length - 1], second.points[second.points.length - 1]);\n }\n if (connector.sourcePortID !== '' && first.length < 10) {\n if (connector.segments.length > 2) {\n var next = connector.segments[2];\n var nextDirection = Point.direction(next.points[0], next.points[1]);\n if (first.direction === getOppositeDirection(nextDirection)) {\n if (first.direction === 'Right') {\n next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleRight.x + 20;\n }\n else if (first.direction === 'Left') {\n next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleLeft.x - 20;\n }\n else if (first.direction === 'Top') {\n next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.topCenter.y - 20;\n }\n else {\n next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.bottomCenter.y + 20;\n }\n if (next.direction && next.length) {\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n }\n first.length = Point.distancePoints(first.points[0], first.points[first.points.length - 1]);\n }\n else if (first.direction === nextDirection && next.direction && next.length) {\n if (first.direction === 'Top' || first.direction === 'Bottom') {\n next.points[0] = first.points[0];\n next.points[next.points.length - 1].x = next.points[0].x;\n }\n else {\n next.points[0] = first.points[0];\n next.points[next.points.length - 1].y = next.points[0].y;\n }\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n connector.segments.splice(0, 2);\n }\n else {\n first.length = 20;\n }\n }\n else {\n first.length = 20;\n }\n }\n else if (first.length < 1) {\n if (connector.sourceID !== '') {\n if (second.direction === 'Right') {\n secPoint = node.wrapper.corners.middleRight;\n second.points[second.points.length - 1].y = secPoint.y;\n }\n else if (second.direction === 'Left') {\n secPoint = node.wrapper.corners.middleLeft;\n second.points[second.points.length - 1].y = secPoint.y;\n }\n else if (second.direction === 'Top') {\n secPoint = node.wrapper.corners.topCenter;\n second.points[second.points.length - 1].x = secPoint.x;\n }\n else {\n secPoint = node.wrapper.corners.bottomCenter;\n second.points[second.points.length - 1].x = secPoint.x;\n }\n second.length = Point.distancePoints(secPoint, second.points[second.points.length - 1]);\n if (connector.segments.length > 2) {\n var next = connector.segments[2];\n if (next.direction && next.length) {\n next.length = Point.distancePoints(second.points[second.points.length - 1], next.points[next.points.length - 1]);\n }\n }\n connector.segments.splice(0, 1);\n }\n else {\n connector.segments.splice(0, 1);\n }\n }\n }\n else {\n if (target && !targetPortId && connector.sourceID !== target.id &&\n connector.segments && connector.segments[0].direction !== null\n && target && target instanceof Node && canChangeSegment) {\n this.changeSourceEndToNode(connector, target);\n }\n if (target && targetPortId && connector.sourcePortID !== targetPortId &&\n connector.segments && connector.segments[0].direction !== null\n && target && target instanceof Node && canChangeSegment) {\n this.changeSourceEndToPort(connector, target, targetPortId);\n }\n }\n };\n // EJ2-65063 - Added below method to check if target has inConnect or outConnect. If it does not have inconnect and outconnect means then return false\n CommandHandler.prototype.canConnect = function (connector, target) {\n if (canInConnect(target) && canOutConnect(target)) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Change the connector endPoint to port\n */\n CommandHandler.prototype.changeSourceEndToPort = function (connector, target, targetPortId) {\n var port = this.diagram.getWrapper(target.wrapper, targetPortId);\n var point = { x: port.offsetX, y: port.offsetY };\n var direction = getPortDirection(point, cornersPointsBeforeRotation(target.wrapper), target.wrapper.bounds, false);\n var firstSegment = connector.segments[0];\n var secondSegment = connector.segments[1];\n if (firstSegment.direction !== direction) {\n var segments = [];\n var segValues = {};\n if (firstSegment.direction === getOppositeDirection(direction)) {\n segValues = {};\n var segValues1 = void 0;\n if (direction === 'Top' || direction === 'Bottom') {\n segValues1 = (direction === 'Top') ? {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(firstSegment.points[0].y - point.y)\n } :\n {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(point.y - firstSegment.points[0].y)\n };\n segValues = (firstSegment.points[0].x > point.x) ?\n { type: 'Orthogonal', isTerminal: true, direction: 'Right', length: (firstSegment.points[0].x - point.x) } :\n { type: 'Orthogonal', isTerminal: true, direction: 'Left', length: (point.x - firstSegment.points[0].x) };\n }\n else {\n segValues1 = (direction === 'Right') ? {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(firstSegment.points[0].x - point.x)\n } :\n {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(point.x - firstSegment.points[0].x)\n };\n segValues = (firstSegment.points[0].y > point.y) ?\n { type: 'Orthogonal', direction: 'Top', isTerminal: true, length: (firstSegment.points[0].y - point.y) } :\n { type: 'Orthogonal', direction: 'Bottom', isTerminal: true, length: (point.y - firstSegment.points[0].y) };\n }\n segments.push(new OrthogonalSegment(connector, 'segments', segValues1, true));\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n }\n else {\n segValues = { type: 'Orthogonal', direction: direction, length: 20, isTerminal: true };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n }\n if (firstSegment.direction !== getOppositeDirection(direction)) {\n if (direction === 'Top' || direction === 'Bottom') {\n firstSegment.points[0].x = point.x;\n firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = (direction === 'Top') ?\n point.y - 20 : point.y + 20;\n }\n else {\n firstSegment.points[0].y = point.y;\n firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = (direction === 'Right') ?\n point.x + 20 : point.x - 20;\n }\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n secondSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]);\n }\n connector.segments = segments.concat(connector.segments);\n }\n else {\n firstSegment.points[0] = point;\n if (direction === 'Top' || direction === 'Bottom') {\n firstSegment.points[firstSegment.points.length - 1].x = point.x;\n }\n else {\n firstSegment.points[firstSegment.points.length - 1].y = point.y;\n }\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n secondSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]);\n }\n };\n /**\n * @param connector\n * @param changeTerminal\n * @private\nRemove terinal segment in initial\n */\n CommandHandler.prototype.removeTerminalSegment = function (connector, changeTerminal) {\n for (var i = 0; i < connector.segments.length - 2; i++) {\n var segment = connector.segments[0];\n if (segment.isTerminal) {\n if (changeTerminal) {\n segment.isTerminal = false;\n }\n else {\n connector.segments.splice(i, 1);\n i--;\n }\n }\n }\n };\n /**\n * Change the connector endPoint from point to node\n */\n CommandHandler.prototype.changeSourceEndToNode = function (connector, target) {\n this.removeTerminalSegment(connector);\n var sourceWrapper = target.wrapper.children[0].corners;\n var sourcePoint;\n var sourcePoint2;\n var firstSegment = connector.segments[0];\n var nextSegment = connector.segments[1];\n var segments = [];\n if (firstSegment.direction === 'Right' || firstSegment.direction === 'Left') {\n sourcePoint = (firstSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight;\n if (firstSegment.length > sourceWrapper.width || ((firstSegment.direction === 'Left' &&\n sourcePoint.x >= firstSegment.points[0].x) || (firstSegment.direction === 'Right' &&\n sourcePoint.x <= firstSegment.points[0].x))) {\n firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = sourcePoint.y;\n firstSegment.points[0].x = sourcePoint.x;\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n nextSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]);\n }\n else {\n var direction = void 0;\n if (nextSegment.direction) {\n direction = nextSegment.direction;\n }\n else {\n direction = Point.direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]);\n }\n sourcePoint2 = (direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter;\n if (nextSegment.length && nextSegment.direction) {\n nextSegment.length =\n (direction === 'Top') ? firstSegment.points[firstSegment.points.length - 1].y - (sourcePoint2.y + 20) :\n (sourcePoint2.y + 20) - firstSegment.points[firstSegment.points.length - 1].y;\n }\n firstSegment.length = firstSegment.points[firstSegment.points.length - 1].x - sourcePoint2.x;\n firstSegment.direction = (firstSegment.length > 0) ? 'Right' : 'Left';\n var segValues = { type: 'Orthogonal', direction: direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n connector.segments = segments.concat(connector.segments);\n }\n }\n else {\n sourcePoint = (firstSegment.direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter;\n if (firstSegment.length > sourceWrapper.height || ((firstSegment.direction === 'Top' &&\n sourcePoint.y >= firstSegment.points[0].y) ||\n (firstSegment.direction === 'Bottom' && sourcePoint.y <= firstSegment.points[0].y))) {\n firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = sourcePoint.x;\n firstSegment.points[0].y = sourcePoint.y;\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n nextSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]);\n }\n else {\n sourcePoint2 = (nextSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight;\n var direction = void 0;\n if (nextSegment.direction) {\n direction = nextSegment.direction;\n }\n else {\n direction = Point.direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]);\n }\n if (nextSegment.length && nextSegment.direction) {\n nextSegment.length =\n (direction === 'Left') ? firstSegment.points[firstSegment.points.length - 1].x - (sourcePoint2.x + 20) :\n (sourcePoint2.x + 20) - firstSegment.points[firstSegment.points.length - 1].x;\n }\n firstSegment.length = firstSegment.points[firstSegment.points.length - 1].y - sourcePoint2.y;\n firstSegment.direction = (firstSegment.length > 0) ? 'Bottom' : 'Top';\n var segValues = { type: 'Orthogonal', direction: direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n connector.segments = segments.concat(connector.segments);\n }\n }\n };\n //Translate the bezier points during the interaction\n CommandHandler.prototype.translateBezierPoints = function (connector, value, tx, ty, seg, point, update) {\n var index = (connector.segments.indexOf(seg));\n var segment = connector.segments[parseInt(index.toString(), 10)];\n var prevSegment = index > 0 ? connector.segments[index - 1] : null;\n var startPoint = prevSegment !== null ? prevSegment.point : connector.sourcePoint;\n var endPoint = index === connector.segments.length - 1 ? connector.targetPoint : segment.point;\n if (segment) {\n if (value === 'BezierSourceThumb' && (segment.vector1.angle || segment.vector1.distance)) {\n var oldDistance = segment.vector1.distance;\n var oldAngle = segment.vector1.angle;\n segment.vector1 = {\n distance: connector.distance(startPoint, point),\n angle: Point.findAngle(startPoint, point)\n };\n var deltaLength = segment.vector1.distance - oldDistance;\n var deltaAngle = segment.vector1.angle - oldAngle;\n this.translateSubsequentSegment(connector, seg, true, deltaLength, deltaAngle);\n }\n else if (value === 'BezierTargetThumb' && (segment.vector2.angle || segment.vector2.distance)) {\n var oldDistance = segment.vector2.distance;\n var oldAngle = segment.vector2.angle;\n segment.vector2 = {\n distance: connector.distance(endPoint, point),\n angle: Point.findAngle(endPoint, point)\n };\n var deltaLength = segment.vector2.distance - oldDistance;\n var deltaAngle = segment.vector2.angle - oldAngle;\n this.translateSubsequentSegment(connector, seg, false, deltaLength, deltaAngle);\n }\n else if ((value === 'ConnectorSourceEnd' && !connector.sourceID || value === 'ConnectorTargetEnd' && !connector.targetID)\n && update && isEmptyVector(segment.vector1) && isEmptyVector(segment.vector2)) {\n if (Point.isEmptyPoint(segment.point1)) {\n segment.bezierPoint1 = getBezierPoints(connector.sourcePoint, connector.targetPoint);\n }\n if (Point.isEmptyPoint(segment.point2)) {\n segment.bezierPoint2 = getBezierPoints(connector.targetPoint, connector.sourcePoint);\n }\n }\n else if (value === 'BezierSourceThumb' || (value === 'ConnectorSourceEnd' && !update && isEmptyVector(segment.vector1))) {\n segment.bezierPoint1.x += tx;\n segment.bezierPoint1.y += ty;\n if ((!Point.isEmptyPoint(segment.point1)) || (update)) {\n segment.point1 = { x: segment.bezierPoint1.x, y: segment.bezierPoint1.y };\n }\n }\n else if (value === 'BezierTargetThumb' || (value === 'ConnectorTargetEnd' && !update && isEmptyVector(segment.vector2))) {\n segment.bezierPoint2.x += tx;\n segment.bezierPoint2.y += ty;\n if ((!Point.isEmptyPoint(segment.point2)) || (update)) {\n segment.point2 = { x: segment.bezierPoint2.x, y: segment.bezierPoint2.y };\n }\n }\n }\n };\n CommandHandler.prototype.translateSubsequentSegment = function (connector, seg, isSourceEnd, deltaLength, deltaAngle) {\n var index = (connector.segments.indexOf(seg));\n var segment = connector.segments[parseInt(index.toString(), 10)];\n if (!(connector.bezierSettings.smoothness & BezierSmoothness.SymmetricAngle)) {\n deltaAngle = null;\n }\n if (!(connector.bezierSettings.smoothness & BezierSmoothness.SymmetricDistance)) {\n deltaLength = null;\n }\n if (deltaLength == null && deltaAngle == null) {\n return;\n }\n if (isSourceEnd) {\n if (index !== 0) {\n this.updatePreviousBezierSegment(connector, index, deltaLength, deltaAngle);\n }\n }\n else {\n if (index !== connector.segments.length - 1) {\n this.updateNextBezierSegment(connector, index, deltaLength, deltaAngle);\n }\n }\n };\n CommandHandler.prototype.updatePreviousBezierSegment = function (connector, index, deltaLength, deltaAngle) {\n var segment = connector.segments[index - 1];\n var newDistance = segment.vector2.distance + deltaLength;\n var newAngle = (segment.vector2.angle + deltaAngle) % 360;\n if (newAngle < 0) {\n newAngle += 360;\n }\n segment.vector2 = { distance: newDistance, angle: newAngle };\n };\n CommandHandler.prototype.updateNextBezierSegment = function (connector, index, deltaLength, deltaAngle) {\n var segment = connector.segments[index + 1];\n var newDistance = segment.vector1.distance + deltaLength;\n var newAngle = (segment.vector1.angle + deltaAngle) % 360;\n if (newAngle < 0) {\n newAngle += 360;\n }\n segment.vector1 = { distance: newDistance, angle: newAngle };\n };\n /**\n * dragTargetEnd method \\\n *\n * @returns { void } dragTargetEnd method .\\\n * @param {ConnectorModel} obj - provide the obj value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the ty value.\n * @param {boolean} preventUpdate - provide the preventUpdate value.\n * @param {PointModel} point - provide the point value.\n * @param {string} endPoint - provide the endPoint value.\n * @param {boolean} update - provide the update value.\n * @param {OrthogonalSegmentModel | BezierSegmentModel | StraightSegmentModel} segment - provide the segment value.\n *\n * @private\n */\n CommandHandler.prototype.dragTargetEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, segment) {\n var connector = this.diagram.nameTable[obj.id];\n var oldChanges;\n var boundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds);\n if (canDragTargetEnd(connector) && endPoint !== 'BezierTargetThumb'\n && boundaryConstraints && canPageEditable(this.diagram)) {\n oldChanges = { targetPoint: connector.targetPoint };\n oldChanges = cloneObject(oldChanges);\n connector.targetPoint.x += tx;\n connector.targetPoint.y += ty;\n if (endPoint === 'ConnectorTargetEnd' && connector.type === 'Orthogonal' &&\n connector.segments && connector.segments.length > 0) {\n var prev = connector.segments[connector.segments.length - 2];\n if (prev && connector.segments[connector.segments.length - 1].points.length === 2) {\n if (prev.direction === 'Left' || prev.direction === 'Right') {\n prev.points[prev.points.length - 1].x = connector.targetPoint.x;\n }\n else {\n prev.points[prev.points.length - 1].y = connector.targetPoint.y;\n }\n prev.length = Point.distancePoints(prev.points[0], prev.points[prev.points.length - 1]);\n prev.direction = Point.direction(prev.points[0], prev.points[prev.points.length - 1]);\n }\n }\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n }\n if (connector.type === 'Bezier') {\n oldChanges = { targetPoint: connector.targetPoint };\n if (segment) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, segment, point, !update);\n }\n else {\n for (var i = 0; i < obj.segments.length; i++) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update);\n }\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector, oldChanges);\n }\n if (!(this.diagram.realActions & RealAction.AnimationClick)) {\n this.diagram.refreshCanvasLayers();\n }\n return boundaryConstraints;\n };\n /**\n * dragControlPoint method \\\n *\n * @returns { void } dragControlPoint method .\\\n * @param {ConnectorModel} obj - provide the obj value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the ty value.\n * @param {boolean} preventUpdate - provide the preventUpdate value.\n * @param {number} segmentNumber - provide the segmentNumber value.\n *\n * @private\n */\n CommandHandler.prototype.dragControlPoint = function (obj, tx, ty, preventUpdate, segmentNumber) {\n var connector = this.diagram.nameTable[obj.id];\n if ((connector.type === 'Straight' || connector.type === 'Bezier') && connector.segments.length > 0) {\n if (segmentNumber !== undefined && connector.segments[parseInt(segmentNumber.toString(), 10)]) {\n if (connector.type === 'Bezier') {\n var seg = connector.segments[parseInt(segmentNumber.toString(), 10)];\n var isInternalSegment = seg.isInternalSegment;\n if (!isInternalSegment || connector.bezierSettings === null || connector.bezierSettings.segmentEditOrientation === 'FreeForm') {\n seg.point.x += tx;\n seg.point.y += ty;\n }\n else {\n if (seg.orientation === 'Horizontal') {\n seg.point.x += tx;\n }\n else {\n seg.point.y += ty;\n }\n this.updateDirectionalBezierCurve(connector);\n }\n if (isInternalSegment) {\n connector.isBezierEditing = true;\n }\n }\n else {\n connector.segments[parseInt(segmentNumber.toString(), 10)].point.x += tx;\n connector.segments[parseInt(segmentNumber.toString(), 10)].point.y += ty;\n }\n }\n else {\n for (var i = 0; i < connector.segments.length - 1; i++) {\n connector.segments[parseInt(i.toString(), 10)].point.x += tx;\n connector.segments[parseInt(i.toString(), 10)].point.y += ty;\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector);\n }\n }\n return true;\n };\n CommandHandler.prototype.updateDirectionalBezierCurve = function (connector) {\n var pts = [];\n pts.push(connector.sourcePoint);\n for (var i = 0; i < connector.segments.length - 1; i++) {\n var seg = connector.segments[parseInt(i.toString(), 10)];\n if (seg.orientation === 'Horizontal') {\n pts.push({ x: seg.point.x, y: pts[pts.length - 1].y });\n }\n else {\n pts.push({ x: pts[pts.length - 1].x, y: seg.point.y });\n }\n if (i === connector.segments.length - 2) {\n if (seg.orientation === 'Horizontal') {\n pts.push({ x: seg.point.x, y: connector.targetPoint.y });\n }\n else {\n pts.push({ x: connector.targetPoint.x, y: seg.point.y });\n }\n }\n }\n pts.push(connector.targetPoint);\n var start = pts[0];\n var end = pts[pts.length - 1];\n if (connector.segments.length > 1) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var segment1 = connector.segments[0];\n segment1.vector1.angle = findAngle(start, mid1);\n segment1.vector1.distance = Point.findLength(start, mid1) * 0.5;\n segment1.vector2.angle = findAngle(center1, mid1);\n segment1.vector2.distance = Point.findLength(center1, mid1) * 0.5;\n segment1.point = center1;\n var segment2 = connector.segments[1];\n segment2.vector1.angle = findAngle(center1, mid2);\n segment2.vector1.distance = Point.findLength(center1, mid2) * 0.5;\n if (connector.segments.length > 2) {\n var mid3 = pts[3];\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n segment2.vector2.angle = findAngle(center2, mid2);\n segment2.vector2.distance = Point.findLength(center2, mid2) * 0.5;\n segment2.point = center2;\n var segment3 = connector.segments[2];\n segment3.vector1.angle = findAngle(center2, mid3);\n segment3.vector1.distance = Point.findLength(center2, mid3) * 0.5;\n if (connector.segments.length > 3) {\n var mid4 = pts[4];\n var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 };\n segment3.vector2.angle = findAngle(center3, mid3);\n segment3.vector2.distance = Point.findLength(center3, mid3) * 0.5;\n segment3.point = center3;\n var segment4 = connector.segments[3];\n segment4.vector1.angle = findAngle(center3, mid4);\n segment4.vector1.distance = Point.findLength(center3, mid4) * 0.5;\n segment4.vector2.angle = findAngle(end, mid4);\n segment4.vector2.distance = Point.findLength(end, mid4) * 0.5;\n }\n else {\n segment3.vector2.angle = findAngle(end, mid3);\n segment3.vector2.distance = Point.findLength(end, mid3) * 0.5;\n }\n }\n else {\n segment2.vector2.angle = findAngle(end, mid2);\n segment2.vector2.distance = Point.findLength(end, mid2) * 0.5;\n }\n }\n };\n // /**\n // * rotatePropertyChnage method \\\n // *\n // * @returns { void } rotatePropertyChnage method .\\\n // * @param {number} angle - provide the obj value.\n // *\n // * @private\n // */\n // public rotatePropertyChnage(angle: number): void {\n // const selectedItems: SelectorModel = this.diagram.selectedItems;\n // let objects: (NodeModel | ConnectorModel)[] = [];\n // objects = objects.concat(selectedItems.nodes);\n // objects = objects.concat(selectedItems.connectors);\n // const pivotValue: PointModel = { x: selectedItems.offsetX, y: selectedItems.offsetY };\n // this.rotateObjects(selectedItems, objects, angle - selectedItems.rotateAngle, pivotValue);\n // selectedItems.wrapper.rotateAngle = selectedItems.rotateAngle = angle;\n // this.diagram.updateSelector();\n // }\n /**\n * rotateObjects method \\\n *\n * @returns { void } rotateObjects method .\\\n * @param {NodeModel | SelectorModel} parent - provide the parent value.\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the objects value.\n * @param {number} angle - provide the angle value.\n * @param {PointModel} pivot - provide the pivot value.\n * @param {boolean} includeParent - provide the includeParent value.\n *\n * @private\n */\n CommandHandler.prototype.rotateObjects = function (parent, objects, angle, pivot, includeParent) {\n pivot = pivot || {};\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n var oldValues;\n for (var _i = 0, objects_2 = objects; _i < objects_2.length; _i++) {\n var obj = objects_2[_i];\n if (obj instanceof Node) {\n if (canRotate(obj) && canPageEditable(this.diagram)) {\n if (includeParent !== false || parent !== obj) {\n //918299 - Flip and rotation of the group node now work properly by calculating the wrapper offset instead of the individual offset\n oldValues = { offsetX: obj.wrapper.offsetX, offsetY: obj.wrapper.offsetY, rotateAngle: obj.rotateAngle };\n //909137 - Undo Operation Improper After Rotating Node Counterclockwise. Remove the below line and add the angle to same line.\n obj.rotateAngle = ((obj.rotateAngle + angle) + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n obj.offsetX = newOffset.x;\n obj.offsetY = newOffset.y;\n this.diagram.nodePropertyChange(obj, {}, { offsetX: obj.offsetX, offsetY: obj.offsetY, rotateAngle: obj.rotateAngle });\n }\n if (obj.processId) {\n var parent_3 = this.diagram.nameTable[obj.processId];\n var bound = this.diagram.bpmnModule.getChildrenBound(parent_3, obj.id, this.diagram);\n this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram);\n }\n if (obj.children && obj.children.length && !obj.container) {\n this.getChildren(obj, objects);\n }\n }\n }\n else {\n this.rotatePoints(obj, angle, pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n }\n this.diagram.updateDiagramObject(obj);\n }\n this.diagram.refreshCanvasLayers();\n this.diagram.updateSelector();\n };\n /**\n * snapConnectorEnd method \\\n *\n * @returns { PointModel } snapConnectorEnd method .\\\n * @param {PointModel} currentPosition - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.snapConnectorEnd = function (currentPosition) {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines)\n && this.snappingModule) {\n this.diagram.snappingModule.snapConnectorEnd(currentPosition);\n }\n return currentPosition;\n };\n /**\n * snapAngle method \\\n *\n * @returns { number } snapAngle method .\\\n * @param {number} angle - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.snapAngle = function (angle) {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines)\n && this.snappingModule) {\n return this.snappingModule.snapAngle(this.diagram, angle);\n }\n else {\n return 0;\n }\n };\n /**\n * rotatePoints method \\\n *\n * @returns { number } rotatePoints method .\\\n * @param {Connector} conn - provide the parent value.\n * @param {number} angle - provide the parent value.\n * @param {PointModel} pivot - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.rotatePoints = function (conn, angle, pivot) {\n if (!conn.sourceWrapper || !conn.targetWrapper) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n conn.sourcePoint = transformPointByMatrix(matrix, conn.sourcePoint);\n conn.targetPoint = transformPointByMatrix(matrix, conn.targetPoint);\n if (conn.shape.type === 'Bpmn' && conn.shape.sequence === 'Default' && conn.shape.flow === 'Sequence') {\n this.updatePathElementOffset(conn);\n }\n var newProp = { sourcePoint: conn.sourcePoint, targetPoint: conn.targetPoint };\n this.diagram.connectorPropertyChange(conn, {}, newProp);\n if (conn.segments && conn.segments.length > 0) {\n this.diagram.protectPropertyChange(true);\n var connector = conn;\n connector.segments = [];\n this.diagram.connectorPropertyChange(connector, {}, { segments: connector.segments });\n this.diagram.protectPropertyChange(false);\n }\n }\n };\n CommandHandler.prototype.updateInnerParentProperties = function (tempNode) {\n var elements = [];\n var protect = 'isProtectedOnChange';\n var protectChange = this.diagram[\"\" + protect];\n this.diagram.protectPropertyChange(true);\n var innerParents = this.getAllDescendants(tempNode, elements, false, true);\n for (var i = 0; i < innerParents.length; i++) {\n var obj = this.diagram.nameTable[innerParents[parseInt(i.toString(), 10)].id];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n obj.width = obj.wrapper.width;\n obj.height = obj.wrapper.height;\n }\n this.diagram.protectPropertyChange(protectChange);\n };\n /**\n * scale method \\\n *\n * @returns { boolean } scale method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the parent value.\n * @param {number} sw - provide the parent value.\n * @param {number} sh - provide the parent value.\n * @param {number} pivot - provide the parent value.\n * @param {number} refObject - provide the parent value.\n * @param {boolean} isOutsideBoundary - provide the parent value.\n *\n * @private\n */\n // eslint-disable-next-line max-len\n CommandHandler.prototype.scale = function (obj, sw, sh, pivot, refObject, isOutsideBoundary) {\n var node = this.diagram.nameTable[obj.id];\n var tempNode = node;\n var elements = [];\n var element = node.wrapper;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n var x = refWrapper.offsetX - refWrapper.actualSize.width * refWrapper.pivot.x;\n var y = refWrapper.offsetY - refWrapper.actualSize.height * refWrapper.pivot.y;\n var refPoint = getPoint(x, y, refWrapper.actualSize.width, refWrapper.actualSize.height, refWrapper.rotateAngle, refWrapper.offsetX, refWrapper.offsetY, pivot);\n if (element.actualSize.width !== undefined && element.actualSize.height !== undefined && canPageEditable(this.diagram)) {\n if (tempNode.children && !(tempNode.container)) {\n var nodes = this.getAllDescendants(tempNode, elements);\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var temp = nodes_1[_i];\n this.scaleObject(sw, sh, refPoint, temp, element, refObject);\n }\n obj.wrapper.measure(new Size());\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n this.diagram.updateGroupOffset(node);\n this.updateInnerParentProperties(tempNode);\n }\n else {\n this.scaleObject(sw, sh, refPoint, node, element, refObject);\n }\n var bounds = getBounds(obj.wrapper);\n var checkBoundaryConstraints = this.checkBoundaryConstraints(undefined, undefined, bounds);\n if (!checkBoundaryConstraints && isOutsideBoundary) {\n this.scale(obj, 1 / sw, 1 / sh, pivot, undefined, true);\n return false;\n }\n this.diagram.updateDiagramObject(obj);\n }\n return true;\n };\n /** @private */\n CommandHandler.prototype.getAllDescendants = function (node, nodes, includeParent, innerParent) {\n var temp = node;\n var parentNodes = [];\n for (var i = 0; i < temp.children.length; i++) {\n node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]);\n if (node) {\n if (!node.children) {\n nodes.push(node);\n }\n else {\n if (includeParent) {\n nodes.push(node);\n }\n if (innerParent) {\n parentNodes.push(node);\n }\n nodes = this.getAllDescendants(node, nodes);\n }\n }\n }\n return (innerParent) ? parentNodes : nodes;\n };\n /**\n * getChildren method \\\n *\n * @returns { (NodeModel | ConnectorModel)[]): (NodeModel | ConnectorModel)[] } getChildren method .\\\n * @param {NodeModel} node - provide the sw value.\n * @param {(NodeModel | ConnectorModel)[]} nodes - provide the sw value.\n *\n * @private\n */\n CommandHandler.prototype.getChildren = function (node, nodes) {\n var temp = node;\n if (node.children) {\n for (var i = 0; i < temp.children.length; i++) {\n node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]);\n nodes.push(node);\n }\n }\n return nodes;\n };\n /**\n * scaleObject method \\\n *\n * @returns { NodeModel } scaleObject method .\\\n * @param {string} id - provide the sw value.\n *\n * @private\n */\n CommandHandler.prototype.cloneChild = function (id) {\n var node = this.diagram.nameTable[\"\" + id];\n return node;\n };\n /**\n * scaleObject method \\\n *\n * @returns { void } scaleObject method .\\\n * @param {End} sw - provide the sw value.\n * @param {End} sh - provide the sh value.\n * @param {PointModel} pivot - provide the pivot value.\n * @param {IElement} obj - provide the pivot value.\n * @param {DiagramElement} element - provide the element value.\n * @param {IElement} refObject - provide the refObject value.\n *\n * @private\n */\n CommandHandler.prototype.scaleObject = function (sw, sh, pivot, obj, element, refObject, canUpdate) {\n sw = sw < 0 ? 1 : sw;\n sh = sh < 0 ? 1 : sh;\n var oldValues = {};\n if (sw !== 1 || sh !== 1) {\n var width = void 0;\n var height = void 0;\n if (obj instanceof Node) {\n var node = obj;\n var isResize = void 0;\n var bound = void 0;\n oldValues = {\n width: obj.wrapper.actualSize.width, height: obj.wrapper.actualSize.height,\n offsetX: obj.wrapper.offsetX, offsetY: obj.wrapper.offsetY,\n margin: { top: node.margin.top, left: node.margin.left }\n };\n if (node.shape.type === 'Bpmn' && node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length > 0) {\n bound = this.diagram.bpmnModule.getChildrenBound(node, node.id, this.diagram);\n isResize = node.wrapper.bounds.containsRect(bound);\n }\n width = node.wrapper.actualSize.width * sw;\n height = node.wrapper.actualSize.height * sh;\n if (node.maxWidth !== undefined && node.maxWidth !== 0) {\n width = Math.min(node.maxWidth, width);\n }\n if (node.minWidth !== undefined && node.minWidth !== 0) {\n width = Math.max(node.minWidth, width);\n }\n if (node.maxHeight !== undefined && node.maxHeight !== 0) {\n height = Math.min(node.maxHeight, height);\n }\n if (node.minHeight !== undefined && node.minHeight !== 0) {\n height = Math.max(node.minHeight, height);\n }\n if (isResize) {\n width = Math.max(width, (bound.right - node.wrapper.bounds.x));\n height = Math.max(height, (bound.bottom - node.wrapper.bounds.y));\n }\n sw = width / node.actualSize.width;\n sh = height / node.actualSize.height;\n }\n var matrix = identityMatrix(); // let refWrapper: DiagramElement;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n rotateMatrix(matrix, -refWrapper.rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, sw, sh, pivot.x, pivot.y);\n rotateMatrix(matrix, refWrapper.rotateAngle, pivot.x, pivot.y);\n if (obj instanceof Node) {\n var node = obj; //let left: number; let top: number;\n var newPosition = transformPointByMatrix(matrix, { x: node.wrapper.offsetX, y: node.wrapper.offsetY });\n var oldleft = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x;\n var oldtop = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y;\n if (width > 0) {\n if (node.processId) {\n var parent_4 = this.diagram.nameTable[node.processId];\n if (!parent_4.maxWidth || ((node.margin.left + width) < parent_4.maxWidth)) {\n node.width = width;\n node.offsetX = newPosition.x;\n }\n }\n else {\n node.width = width;\n node.offsetX = newPosition.x;\n }\n }\n if (height > 0) {\n if (node.processId) {\n var parent_5 = this.diagram.nameTable[node.processId];\n if (!parent_5.maxHeight || ((node.margin.top + height) < parent_5.maxHeight)) {\n node.height = height;\n node.offsetY = newPosition.y;\n }\n }\n else {\n node.height = height;\n node.offsetY = newPosition.y;\n }\n }\n var left = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x;\n var top_1 = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y;\n var parent_6 = this.diagram.nameTable[node.processId];\n if (parent_6 && ((node.margin.top + (top_1 - oldtop)) <= 0 ||\n (node.margin.left + (left - oldleft) <= 0))) {\n this.diagram.nodePropertyChange(obj, {}, {\n margin: { top: node.margin.top, left: node.margin.left }\n });\n }\n else {\n if (checkParentAsContainer(this.diagram, obj, true)) {\n checkChildNodeInContainer(this.diagram, obj);\n }\n else {\n if (!canUpdate) {\n this.diagram.nodePropertyChange(obj, oldValues, {\n width: node.width, height: node.height, offsetX: node.offsetX, offsetY: node.offsetY,\n margin: { top: node.margin.top + (top_1 - oldtop), left: node.margin.left + (left - oldleft) }\n });\n }\n }\n }\n }\n else {\n var connector = obj;\n var oldValues_1 = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n if (!connector.sourceWrapper || !connector.targetWrapper) {\n this.scaleConnector(connector, matrix, oldValues_1, sw, sh, pivot);\n }\n }\n var parentNode = this.diagram.nameTable[obj.processId];\n if (parentNode) {\n var parent_7 = parentNode.wrapper.bounds;\n var child = obj.wrapper.bounds;\n var bound = this.diagram.bpmnModule.getChildrenBound(parentNode, obj.id, this.diagram);\n this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram);\n }\n }\n };\n CommandHandler.prototype.scaleConnector = function (connector, matrix, oldValues, sw, sh, pivot) {\n connector.sourcePoint = transformPointByMatrix(matrix, connector.sourcePoint);\n connector.targetPoint = transformPointByMatrix(matrix, connector.targetPoint);\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n var newProp = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n this.diagram.connectorPropertyChange(connector, oldValues, newProp);\n var selector = this.diagram.selectedItems;\n if (selectionHasConnector(this.diagram, selector)) {\n var clonedSelectedItems = cloneObject(this.diagram.selectedItems);\n var nodeModel = {\n offsetX: clonedSelectedItems.offsetX, offsetY: clonedSelectedItems.offsetY,\n height: clonedSelectedItems.height, width: clonedSelectedItems.width,\n rotateAngle: clonedSelectedItems.rotateAngle\n };\n var obj = new Node(this.diagram, 'nodes', nodeModel, true);\n obj.wrapper = clonedSelectedItems.wrapper;\n obj.wrapper.rotateAngle = selector.rotateAngle;\n this.scaleObject(sw, sh, pivot, obj, obj.wrapper, obj, true);\n selector.wrapper.actualSize.width = obj.width;\n selector.wrapper.actualSize.height = obj.height;\n selector.wrapper.offsetX = obj.offsetX;\n selector.wrapper.offsetY = obj.offsetY;\n var child = this.diagram.selectedItems.connectors[0];\n if (child.id !== connector.id) {\n this.measureSelector(selector);\n }\n }\n };\n CommandHandler.prototype.measureSelector = function (selector) {\n var desiredBounds = undefined;\n //Measuring the children\n var clonedSelectedItems = cloneObject(this.diagram.selectedItems);\n var objects = [];\n var bounds;\n objects = clonedSelectedItems.connectors;\n var pivot = { x: this.diagram.selectedItems.offsetX, y: this.diagram.selectedItems.offsetY };\n for (var i = 0; i < objects.length; i++) {\n var matrix_1 = identityMatrix();\n rotateMatrix(matrix_1, -selector.rotateAngle, pivot.x, pivot.y);\n objects[parseInt(i.toString(), 10)].sourcePoint\n = transformPointByMatrix(matrix_1, objects[parseInt(i.toString(), 10)].sourcePoint);\n objects[parseInt(i.toString(), 10)].targetPoint\n = transformPointByMatrix(matrix_1, objects[parseInt(i.toString(), 10)].targetPoint);\n var p1 = {\n x: objects[parseInt(i.toString(), 10)].sourcePoint.x,\n y: objects[parseInt(i.toString(), 10)].sourcePoint.y\n };\n var p2 = {\n x: objects[parseInt(i.toString(), 10)].targetPoint.x,\n y: objects[parseInt(i.toString(), 10)].targetPoint.y\n };\n bounds = (this.calculateBounds(p1, p2));\n if (desiredBounds === undefined) {\n desiredBounds = bounds;\n }\n else {\n desiredBounds.uniteRect(bounds);\n }\n }\n var offsetPt = {};\n if (desiredBounds !== undefined) {\n offsetPt = {\n x: desiredBounds.x + desiredBounds.width * selector.wrapper.pivot.x,\n y: desiredBounds.y + desiredBounds.height * selector.wrapper.pivot.y\n };\n }\n var nodeModel = {\n offsetX: offsetPt.x, offsetY: offsetPt.y,\n height: desiredBounds.height, width: desiredBounds.width, rotateAngle: 0\n };\n var obj = new Node(this.diagram, 'nodes', nodeModel, true);\n var matrix = identityMatrix();\n rotateMatrix(matrix, selector.rotateAngle, pivot.x, pivot.y);\n obj.rotateAngle += selector.rotateAngle;\n obj.rotateAngle = (obj.rotateAngle + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.offsetX, y: obj.offsetY });\n obj.offsetX = newOffset.x;\n obj.offsetY = newOffset.y;\n selector.wrapper.actualSize.width = desiredBounds.width;\n selector.wrapper.actualSize.height = desiredBounds.height;\n selector.wrapper.offsetX = obj.offsetX;\n selector.wrapper.offsetY = obj.offsetY;\n var selectorEle = getSelectorElement(this.diagram.element.id);\n // EJ2-69511 - Added handleSize parameter to avoid exception when we perform multiselect of connectors, rotate and resize it.\n this.diagram.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.diagram.scroller.currentZoom, selector.constraints, this.diagram.scroller.transform, false, canMove(selector), null, null, selector.handleSize);\n };\n CommandHandler.prototype.calculateBounds = function (p1, p2) {\n var left = Math.min(p1.x, p2.x);\n var right = Math.max(p1.x, p2.x);\n var top = Math.min(p1.y, p2.y);\n var bottom = Math.max(p1.y, p2.y);\n var width = right - left;\n var height = bottom - top;\n var rect = new Rect(left, top, width, height);\n return rect;\n };\n /**\n * portDrag method \\\n *\n * @returns { void } portDrag method .\\\n * @param { NodeModel | ConnectorModel} obj - provide the obj value.\n * @param {DiagramElement} portElement - provide the portElement value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the tx value.\n *\n * @private\n */\n CommandHandler.prototype.portDrag = function (obj, portElement, tx, ty) {\n var oldValues;\n var changedvalues;\n var port = this.findTarget(portElement, obj);\n var bounds = getBounds(obj.wrapper);\n if (port && canDrag(port, this.diagram)) {\n // Feature 826644: Support to add ports to the connector. Added below condition to check connector port.\n if (obj instanceof Node) {\n oldValues = this.getPortChanges(obj, port);\n port.offset.x += (tx / bounds.width);\n port.offset.y += (ty / bounds.height);\n changedvalues = this.getPortChanges(obj, port);\n this.diagram.nodePropertyChange(obj, oldValues, changedvalues);\n }\n else {\n oldValues = this.getConnectorPortChanges(obj, port);\n this.updatePortOffset(obj, port, tx, ty);\n port.alignment = 'Center';\n changedvalues = this.getConnectorPortChanges(obj, port);\n this.diagram.connectorPropertyChange(obj, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(obj);\n }\n };\n /** @private */\n CommandHandler.prototype.labelDrag = function (obj, textElement, tx, ty) {\n //let changedvalues: Object;\n //let label: ShapeAnnotationModel | PathAnnotationModel;\n // eslint-disable-next-line max-len\n var label = this.findTarget(textElement, obj);\n var bounds = cornersPointsBeforeRotation(obj.wrapper);\n var oldValues = this.getAnnotationChanges(obj, label);\n if (label instanceof ShapeAnnotation) {\n label.offset.x += (tx / bounds.width);\n label.offset.y += (ty / bounds.height);\n }\n else {\n this.updatePathAnnotationOffset(obj, label, tx, ty);\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n }\n var changedvalues = this.getAnnotationChanges(obj, label);\n if (obj instanceof Node) {\n this.diagram.nodePropertyChange(obj, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(obj, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(obj);\n if (!isSelected(this.diagram, label, false, textElement)) {\n this.labelSelect(obj, textElement);\n }\n };\n CommandHandler.prototype.updatePathAnnotationOffset = function (object, label, tx, ty, newPosition, size) {\n var textWrapper = this.diagram.getWrapper(object.wrapper, label.id);\n var offsetX = textWrapper.offsetX;\n var offsetY = textWrapper.offsetY;\n var offset;\n var intermediatePoints = object.intermediatePoints;\n var prev;\n var pointLength = 0;\n var totalLength = 0;\n var intersectingOffset;\n var currentPosition;\n switch (label.verticalAlignment) {\n case 'Center':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n break;\n case 'Top':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n case 'Bottom':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n }\n var intersetingPts = this.getInterceptWithSegment(currentPosition, intermediatePoints);\n var newOffset = intermediatePoints[intermediatePoints.length - 1];\n totalLength = Point.getLengthFromListOfPoints(intermediatePoints);\n if (intersetingPts.length > 0) {\n label.dragLimit = label.dragLimit ? label.dragLimit : {};\n if (label.dragLimit.top || label.dragLimit.bottom || label.dragLimit.left || label.dragLimit.right) {\n var minDistance = { minDistance: null };\n newOffset = this.getRelativeOffset(currentPosition, intermediatePoints, minDistance);\n var distance = { minDistance: null };\n intersectingOffset = this.getRelativeOffset(currentPosition, intersetingPts, distance);\n if (minDistance != null && distance.minDistance < minDistance.minDistance) {\n newOffset = intersectingOffset;\n }\n else {\n var connectorOffset = getOffsetOfConnector(object.intermediatePoints, label);\n newOffset = connectorOffset.point;\n }\n }\n else {\n intersectingOffset = intersetingPts[intersetingPts.length - 1];\n newOffset = intersectingOffset;\n }\n if (newOffset) {\n var p = void 0;\n var bounds = void 0;\n for (p = 0; p < intermediatePoints.length; p++) {\n if (prev != null) {\n bounds = Rect.toBounds([prev, intermediatePoints[parseInt(p.toString(), 10)]]);\n if (bounds.containsPoint(newOffset)) {\n pointLength += Point.findLength(prev, newOffset);\n break;\n }\n else {\n pointLength += Point.findLength(prev, intermediatePoints[parseInt(p.toString(), 10)]);\n }\n }\n prev = intermediatePoints[parseInt(p.toString(), 10)];\n }\n offset = { x: pointLength / totalLength, y: 0 };\n }\n this.updateLabelMargin(object, label, offset, currentPosition, size, tx, ty);\n }\n else {\n this.updateLabelMargin(object, label, null, currentPosition, size, tx, ty);\n }\n };\n // Feature 826644: Support to add ports to the connector.\n // Added below method to update the port offset when we drag the port.\n CommandHandler.prototype.updatePortOffset = function (object, port, tx, ty, newPosition, size) {\n var textWrapper = this.diagram.getWrapper(object.wrapper, port.id);\n var offsetX = textWrapper.offsetX;\n var offsetY = textWrapper.offsetY;\n var offset;\n var intermediatePoints = object.intermediatePoints;\n var prev;\n var pointLength = 0;\n var totalLength = 0;\n var intersectingOffset;\n var currentPosition;\n switch (port.verticalAlignment) {\n case 'Center':\n if (port.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + ty };\n }\n else if (port.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n else if (port.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n break;\n case 'Top':\n if (port.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n case 'Bottom':\n if (port.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n }\n var intersectingPoints = this.getInterceptWithSegment(currentPosition, intermediatePoints);\n var newOffset = intermediatePoints[intermediatePoints.length - 1];\n totalLength = Point.getLengthFromListOfPoints(intermediatePoints);\n if (intersectingPoints.length > 0) {\n intersectingOffset = intersectingPoints[intersectingPoints.length - 1];\n newOffset = intersectingOffset;\n if (newOffset) {\n var p = void 0;\n var bounds = void 0;\n for (p = 0; p < intermediatePoints.length; p++) {\n if (prev != null) {\n bounds = Rect.toBounds([prev, intermediatePoints[parseInt(p.toString(), 10)]]);\n if (bounds.containsPoint(newOffset)) {\n pointLength += Point.findLength(prev, newOffset);\n break;\n }\n else {\n pointLength += Point.findLength(prev, intermediatePoints[parseInt(p.toString(), 10)]);\n }\n }\n prev = intermediatePoints[parseInt(p.toString(), 10)];\n }\n offset = { x: pointLength / totalLength, y: 0 };\n }\n this.updateLabelMargin(object, port, offset, currentPosition, size, tx, ty);\n }\n else {\n this.updateLabelMargin(object, port, null, currentPosition, size, tx, ty);\n }\n };\n CommandHandler.prototype.getRelativeOffset = function (currentPosition, points, minDistance) {\n var newOffset;\n var distance;\n var pt;\n var i;\n for (i = 0; i < points.length; i++) {\n pt = points[parseInt(i.toString(), 10)];\n distance = Math.round(Math.sqrt(Math.pow((currentPosition.x - pt.x), 2) +\n Math.pow((currentPosition.y - pt.y), 2)));\n if (minDistance.minDistance === null ||\n Math.min(Math.abs(minDistance.minDistance), Math.abs(distance)) === Math.abs(distance)) {\n newOffset = pt;\n minDistance.minDistance = distance;\n }\n }\n return newOffset;\n };\n CommandHandler.prototype.dragLimitValue = function (label, point, tempPt, contentDimension) {\n var x = false;\n var y = false;\n if ((tempPt.x >= (point.x - label.dragLimit.left - (contentDimension.width / 2))) &&\n (tempPt.x <= point.x + label.dragLimit.right + (contentDimension.width / 2))) {\n x = true;\n }\n if ((tempPt.y >= (point.y - label.dragLimit.top - (contentDimension.height / 2))) &&\n (tempPt.y <= point.y + label.dragLimit.bottom + (contentDimension.height / 2))) {\n y = true;\n }\n return { x: x, y: y };\n };\n /* eslint-disable */\n CommandHandler.prototype.updateLabelMargin = function (node, label, offset, tempPt, size, tx, ty) {\n offset = offset ? offset : { x: label.offset, y: 0 };\n if (label && offset && offset.x > 0 && offset.x < 1) {\n //let point: PointModel;\n var length_2 = Point.getLengthFromListOfPoints(node.intermediatePoints);\n var point = this.getPointAtLength(length_2 * offset.x, node.intermediatePoints, 0);\n var curZoomfactor = this.diagram.scrollSettings.currentZoom;\n var dragLimit = label.dragLimit ? label.dragLimit : { left: 0, right: 0, top: 0, bottom: 0 };\n if (dragLimit.top || dragLimit.bottom || dragLimit.left || dragLimit.right) {\n var labelBounds = this.diagram.getWrapper(node.wrapper, label.id);\n var contentDimension = new Rect(0, 0, 0, 0);\n var annotationWrtapper = this.diagram.getWrapper(node.wrapper, label.id);\n contentDimension.x = ((annotationWrtapper).offsetX / curZoomfactor) + tx;\n contentDimension.y = (annotationWrtapper.offsetY / curZoomfactor) + ty;\n contentDimension.width = annotationWrtapper.bounds.width / curZoomfactor;\n contentDimension.height = annotationWrtapper.bounds.height / curZoomfactor;\n var draggableBounds = new Rect(point.x - (dragLimit.left || 0) - contentDimension.width / 2, point.y - (dragLimit.top || 0) - contentDimension.height / 2, (dragLimit.left || 0) + (dragLimit.right || 0) + contentDimension.width, (dragLimit.top || 0) + (dragLimit.bottom || 0) + contentDimension.height);\n if (draggableBounds.containsPoint(tempPt)) {\n tempPt = tempPt;\n }\n else {\n var lineIntersects = void 0;\n var line1 = [point, tempPt];\n lineIntersects = this.boundsInterSects(line1, draggableBounds, false);\n for (var _i = 0, lineIntersects_1 = lineIntersects; _i < lineIntersects_1.length; _i++) {\n var i = lineIntersects_1[_i];\n var ptt = i;\n tempPt = ptt;\n }\n }\n var cursorLimit = this.dragLimitValue(label, point, tempPt, contentDimension);\n label.margin = {\n left: cursorLimit.x ? tempPt.x - point.x : label.margin.left,\n top: cursorLimit.y ? tempPt.y - point.y : label.margin.top, right: 0, bottom: 0\n };\n }\n else {\n label.margin = { left: tempPt.x - point.x, top: tempPt.y - point.y, right: 0, bottom: 0 };\n }\n label.offset = offset.x;\n if (size) {\n label.width = size.width;\n label.height = size.height;\n }\n }\n };\n CommandHandler.prototype.boundsInterSects = function (polyLine, bounds, self) {\n var intersects;\n if (bounds) {\n var polyLine2 = [\n { x: bounds.x, y: bounds.y },\n { x: bounds.x + bounds.width, y: bounds.y },\n { x: bounds.x + bounds.width, y: bounds.y + bounds.height },\n { x: bounds.x, y: bounds.y + bounds.height },\n { x: bounds.x, y: bounds.y }\n ];\n intersects = this.intersect(polyLine, polyLine2, self);\n }\n return intersects;\n };\n /** @private */\n CommandHandler.prototype.intersect = function (polyLine1, polyLine2, self) {\n var intersect = [];\n for (var i = 0; i < polyLine1.length - 1; i++) {\n for (var j = 0; j < polyLine2.length - 1; j++) {\n var p = intersect2(polyLine1[i], polyLine1[i + 1], polyLine2[j], polyLine2[j + 1]);\n if (p.x !== 0 && p.y !== 0) {\n intersect.push(p);\n }\n }\n }\n return intersect;\n };\n /**\n * @private\n */\n CommandHandler.prototype.getPointAtLength = function (length, points, angle) {\n angle = 0;\n var run = 0;\n var pre;\n var found = { x: 0, y: 0 };\n var pt;\n for (var i = 0; i < points.length; i++) {\n pt = points[i];\n if (!pre) {\n pre = pt;\n continue;\n }\n else {\n var l = Point.findLength(pre, pt);\n var r = void 0;\n var deg = void 0;\n var x = void 0;\n var y = void 0;\n if (run + l >= length) {\n r = length - run;\n deg = Point.findAngle(pre, pt);\n x = r * Math.cos(deg * Math.PI / 180);\n y = r * Math.sin(deg * Math.PI / 180);\n found = { x: pre.x + x, y: pre.y + y };\n angle = deg;\n break;\n }\n else {\n run += l;\n }\n }\n pre = pt;\n }\n return found;\n };\n CommandHandler.prototype.getInterceptWithSegment = function (currentPosition, conPoints) {\n var intercepts = [];\n var imgLine = [];\n var segemnt = [];\n var tarAngle;\n var srcAngle; //let maxLength: number;\n var maxLength = Point.findLength({ x: 0, y: 0 }, { x: this.diagram.scroller.viewPortWidth, y: this.diagram.scroller.viewPortHeight });\n for (var i = 1; i < conPoints.length; i++) {\n segemnt = [conPoints[i - 1], conPoints[i]];\n imgLine = [];\n srcAngle = Math.round(Point.findAngle(segemnt[0], segemnt[1]) % 360);\n tarAngle = Math.round(Point.findAngle(segemnt[1], segemnt[0]) % 360);\n var angleAdd = (srcAngle > 0 && srcAngle <= 90) || (srcAngle > 180 && srcAngle <= 270) ? 90 : -90;\n imgLine.push(Point.transform(currentPosition, srcAngle + angleAdd, maxLength));\n imgLine.push(Point.transform(currentPosition, tarAngle + angleAdd, maxLength));\n var lineUtil1 = { x1: segemnt[0].x, y1: segemnt[0].y, x2: segemnt[1].x, y2: segemnt[1].y };\n var lineUtil2 = { x1: imgLine[0].x, y1: imgLine[0].y, x2: imgLine[1].x, y2: imgLine[1].y };\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n intercepts.push(line3.intersectPt);\n }\n }\n return intercepts;\n };\n /** @private */\n CommandHandler.prototype.getAnnotationChanges = function (object, label) {\n var index = findObjectIndex(object, label.id, true);\n var annotations = {};\n annotations[index] = {\n width: label.width, height: label.height, offset: (object instanceof Node) ? ({\n x: label.offset.x,\n y: label.offset.y\n }) : label.offset,\n rotateAngle: label.rotateAngle,\n margin: { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom },\n horizontalAlignment: label.horizontalAlignment, verticalAlignment: label.verticalAlignment,\n alignment: ((object instanceof Connector) ? label.alignment : undefined)\n };\n return { annotations: annotations };\n };\n // Feature 826644: Support to add ports to the connector. Added below method to get port values before and after drag.\n /** @private */\n CommandHandler.prototype.getConnectorPortChanges = function (object, label) {\n var index = findPortIndex(object, label.id, true);\n var ports = {};\n ports[index] = {\n width: label.width, height: label.height, offset: label.offset,\n margin: { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom },\n horizontalAlignment: label.horizontalAlignment, verticalAlignment: label.verticalAlignment,\n alignment: ((object instanceof Connector) ? label.alignment : undefined)\n };\n return { ports: ports };\n };\n /** @private */\n CommandHandler.prototype.getPortChanges = function (object, port) {\n var index = findObjectIndex(object, port.id, false);\n var ports = {};\n ports[index] = { offset: port.offset };\n return { ports: ports };\n };\n /** @private */\n CommandHandler.prototype.labelRotate = function (object, label, currentPosition, selector) {\n var oldValues;\n var changedvalues;\n oldValues = this.getAnnotationChanges(object, label);\n var matrix = identityMatrix();\n var rotateAngle = label.rotateAngle;\n var labelWrapper = this.diagram.getWrapper(object.wrapper, label.id);\n var angle = findAngle({ x: labelWrapper.offsetX, y: labelWrapper.offsetY }, currentPosition) + 90;\n var snapAngle = this.snapAngle(angle);\n angle = snapAngle !== 0 ? snapAngle : angle;\n if (label instanceof PathAnnotation && label.segmentAngle) {\n var getPointloop = getAnnotationPosition(object.intermediatePoints, label, object.wrapper.bounds);\n angle -= getPointloop.angle;\n }\n angle = (angle + 360) % 360;\n label.rotateAngle += angle - (label.rotateAngle + labelWrapper.parentTransform);\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n selector.wrapper.rotateAngle = selector.rotateAngle = label.rotateAngle;\n changedvalues = this.getAnnotationChanges(object, label);\n if (object instanceof Node) {\n this.diagram.nodePropertyChange(object, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(object, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(object);\n };\n /** @private */\n CommandHandler.prototype.labelResize = function (node, label, deltaWidth, deltaHeight, pivot, selector) {\n var oldValues;\n var changedvalues;\n var rotateAngle;\n oldValues = this.getAnnotationChanges(node, label);\n var textElement = selector.wrapper.children[0];\n if ((deltaWidth && deltaWidth !== 1) || (deltaHeight && deltaHeight !== 1)) {\n var newMat = identityMatrix();\n var matrix = identityMatrix();\n rotateMatrix(newMat, -node.rotateAngle, node.offsetX, node.offsetY);\n rotateAngle = ((textElement.rotateAngle + ((node instanceof Node) ? node.rotateAngle : 0)) + 360) % 360;\n rotateMatrix(matrix, -rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, deltaWidth, deltaHeight, pivot.x, pivot.y);\n rotateMatrix(matrix, rotateAngle, pivot.x, pivot.y);\n var newPosition = transformPointByMatrix(matrix, { x: textElement.offsetX, y: textElement.offsetY });\n var height = textElement.actualSize.height * deltaHeight;\n var width = textElement.actualSize.width * deltaWidth;\n var shape = this.findTarget(textElement, node);\n if (shape instanceof PathAnnotation) {\n newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0);\n newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0);\n }\n if (shape instanceof PathAnnotation) {\n this.updatePathAnnotationOffset(node, label, 0, 0, newPosition, new Size(width, height));\n }\n else {\n var bounds = cornersPointsBeforeRotation(node.wrapper);\n newPosition = transformPointByMatrix(newMat, newPosition);\n newPosition.x = newPosition.x - textElement.margin.left + textElement.margin.right;\n newPosition.y = newPosition.y - textElement.margin.top + textElement.margin.bottom;\n newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0);\n newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0);\n var offsetx = bounds.width / (newPosition.x - bounds.x);\n var offsety = bounds.height / (newPosition.y - bounds.y);\n if (width > 1) {\n shape.width = width;\n shape.offset.x = 1 / offsetx;\n }\n if (height > 1) {\n shape.height = height;\n shape.offset.y = 1 / offsety;\n }\n }\n }\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n changedvalues = this.getAnnotationChanges(node, label);\n if (node instanceof Node) {\n this.diagram.nodePropertyChange(node, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(node, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(node);\n };\n /** @private */\n CommandHandler.prototype.getSubProcess = function (source) {\n var selector = { nodes: [], connectors: [] };\n var process;\n if (source instanceof Node) {\n process = source.processId;\n }\n else if (source && source.nodes && (source.nodes.length)\n && source.nodes[0].processId) {\n process = source.nodes[0].processId;\n }\n if (process) {\n selector.nodes.push(clone(this.diagram.nameTable[process]));\n return selector;\n }\n return selector;\n };\n /** @private */\n CommandHandler.prototype.checkBoundaryConstraints = function (tx, ty, nodeBounds, isInitialRendering) {\n var pageSettings = this.diagram.pageSettings;\n var boundaryConstraints = this.diagram.pageSettings.boundaryConstraints;\n var scroller = this.diagram.scroller;\n if (boundaryConstraints === 'Page' || boundaryConstraints === 'Diagram') {\n var selectorBounds = !nodeBounds ? this.diagram.selectedItems.wrapper.bounds : undefined;\n var width = boundaryConstraints === 'Page' ? pageSettings.width : scroller.viewPortWidth;\n var height = boundaryConstraints === 'Page' ? pageSettings.height : scroller.viewPortHeight;\n var bounds = nodeBounds;\n var right = (nodeBounds ? bounds.right : selectorBounds.right) + (tx || 0);\n var left = (nodeBounds ? bounds.left : selectorBounds.left) + (tx || 0);\n var top_2 = (nodeBounds ? bounds.top : selectorBounds.top) + (ty || 0);\n var bottom = (nodeBounds ? bounds.bottom : selectorBounds.bottom) + (ty || 0);\n //Bug 906963: Layout is not rendered when boundaryConstraints set to \"Page/Diagram\"\n if (right <= width && left >= 0\n && bottom <= height && top_2 >= 0 || (this.diagram.layout.type !== 'None' && isInitialRendering)) {\n return true;\n }\n return false;\n }\n return true;\n };\n //interfaces\n /** @private */\n CommandHandler.prototype.dragSelectedObjects = function (tx, ty) {\n var _this = this;\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.offsetX = obj.offsetX;\n this.state.backup.offsetY = obj.offsetY;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n //Bug 905527: Multiselecting and dragging Swimlane updates incorrectly\n //Added below condition to check if swimlane is selected and not the symbol symbol from the symbol palette\n //Also check if the selected swimlane is not the only object selected\n var swimLaneInSelection = this.diagram.selectedItems.nodes.filter(function (node) { return node.shape.type === 'SwimLane'; });\n if (swimLaneInSelection.length > 0 && !this.diagram.currentSymbol) {\n if (this.diagram.selectedItems.nodes.length > 1) {\n var filterObjects = this.diagram.selectedItems.nodes.filter(function (node) { return (node.parentId === '' || _this.diagram.nameTable[node.parentId].shape.type !== 'SwimLane'); });\n if (filterObjects.length > 0) {\n for (var i = 0; i < filterObjects.length; i++) {\n if ((this.diagram.nameTable[filterObjects[parseInt(i.toString(), 10)].parentId] &&\n this.diagram.nameTable[filterObjects[parseInt(i.toString(), 10)].parentId].isLane)\n || filterObjects[parseInt(i.toString(), 10)].shape.type === 'SwimLane') {\n filterObjects.splice(i, 1);\n i--;\n }\n }\n //\"obj\" - The current object being processed in the array.\n //\"index\" - The index of the current object in the array.\n //\"self\" - The reference to the entire array being processed by the filter function.\n var uniqueSwimlane = swimLaneInSelection.filter(function (obj, index, self) {\n return index === self.findIndex(function (item) { return item.id === obj.id; });\n });\n if (filterObjects.length > 0 || uniqueSwimlane.length > 1) {\n filterObjects = filterObjects.concat(uniqueSwimlane);\n // Clear the nodes array without losing the reference\n this.diagram.selectedItems.nodes.splice(0, this.diagram.selectedItems.nodes.length);\n // Push objects from filterObjects into the nodes array\n filterObjects.forEach(function (node) {\n _this.diagram.selectedItems.nodes.push(node);\n });\n obj = this.diagram.selectedItems;\n this.diagram.selectedObject.helperObject = undefined;\n }\n }\n }\n }\n if (this.checkBoundaryConstraints(tx, ty)) {\n this.diagram.diagramActions = this.diagram.diagramActions | (DiagramAction.PreventZIndexOnDragging | DiagramAction.DragUsingMouse);\n var actualObject = this.diagram.selectedObject.actualObject;\n if ((actualObject && actualObject instanceof Node && actualObject.isLane &&\n canLaneInterchange(actualObject, this.diagram)) || (!actualObject || !actualObject.isLane)) {\n this.diagram.drag(obj, tx, ty);\n }\n this.diagram.diagramActions = this.diagram.diagramActions & ~(DiagramAction.PreventZIndexOnDragging | DiagramAction.DragUsingMouse);\n this.diagram.refreshCanvasLayers();\n //Bug 872140: Dragging HTML nodes in a diagram leaves shadows on the overview\n this.checkHtmlObjectDrag(obj);\n return true;\n }\n return false;\n };\n // Checks if any HTML object is being dragged and reset the canvas to clear the shadow of the HTML node border.\n CommandHandler.prototype.checkHtmlObjectDrag = function (obj) {\n var isHtmlObjDragged = false;\n if (this.diagram.views && this.diagram.views.length > 1) {\n if (obj instanceof Selector) {\n isHtmlObjDragged = obj.nodes.some(function (node) { return node.shape && node.shape.type === 'HTML'; });\n }\n else if (obj.shape && obj.shape.type === 'HTML') {\n isHtmlObjDragged = true;\n }\n if (isHtmlObjDragged) {\n this.resetOverviewCanvas();\n }\n }\n };\n //Resetting Overview canvas \n CommandHandler.prototype.resetOverviewCanvas = function () {\n for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.diagram.views[temp];\n if (!(view instanceof Diagram)) {\n var rect = document.getElementById(view.canvas.id + 'overviewrect');\n var x = Number(rect.getAttribute('x'));\n var y = Number(rect.getAttribute('y'));\n var width = Number(rect.getAttribute('width'));\n var height = Number(rect.getAttribute('height'));\n var attr = { x: x, y: y, width: Math.max(1, width), height: Math.max(1, height) };\n setAttributeHtml(rect, attr);\n }\n }\n };\n /** @private */\n CommandHandler.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.offsetX = obj.offsetX;\n this.state.backup.offsetY = obj.offsetY;\n this.state.backup.width = obj.width;\n this.state.backup.height = obj.height;\n this.state.backup.pivot = pivot;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n return this.diagram.scale(obj, sx, sy, pivot);\n };\n /** @private */\n CommandHandler.prototype.rotateSelectedItems = function (angle) {\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.angle = obj.rotateAngle;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n return this.diagram.rotate(obj, angle, undefined, true);\n };\n /** @private */\n CommandHandler.prototype.hasSelection = function () {\n return hasSelection(this.diagram);\n };\n /** @private */\n CommandHandler.prototype.isSelected = function (element) {\n return isSelected(this.diagram, element);\n };\n /**\n * initExpand is used for layout expand and collapse interaction\n */\n CommandHandler.prototype.initExpand = function (args) {\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[propName];\n this.diagram.protectPropertyChange(true);\n var node = (args.target || args.source);\n var oldValues = { isExpanded: node.isExpanded };\n node.isExpanded = !node.isExpanded;\n this.diagram.preventNodesUpdate = true;\n this.diagram.diagramActions |= DiagramAction.PreventIconsUpdate;\n this.diagram.nodePropertyChange(node, oldValues, { isExpanded: node.isExpanded });\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventIconsUpdate;\n this.diagram.preventNodesUpdate = false;\n for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.diagram.views[temp];\n if (!(view instanceof Diagram)) {\n this.diagram.refreshCanvasDiagramLayer(view);\n }\n }\n this.diagram.protectPropertyChange(protectedChange);\n };\n /** @private */\n CommandHandler.prototype.expandNode = function (node, diagram, canLayout) {\n var animation;\n //let objects: ILayout;\n var preventNodesUpdate = this.diagram.preventNodesUpdate;\n var expand = node.isExpanded;\n this.diagram.preventNodesUpdate = true;\n //Bug 883244: After expand and collapse the compex hierarchical layout, the connector are not rendered properly.\n // Removed the preventConnectorsUpdate property to update the connector properly while performing expand and collapse.\n // this.diagram.preventConnectorsUpdate = true;\n this.expandCollapse(node, expand, this.diagram);\n node.isExpanded = expand;\n var fixedNode = this.diagram.layout.fixedNode;\n this.diagram.layout.fixedNode = node.id;\n if ((this.diagram.diagramActions != DiagramAction.Render) && this.diagram.layoutAnimateModule && this.diagram.layout.enableAnimation && this.diagram.organizationalChartModule) {\n this.diagram.organizationalChartModule.isAnimation = true;\n }\n this.diagram.blazorActions |= BlazorAction.expandNode;\n var objects = {};\n if (!canLayout) {\n if (this.layoutAnimateModule && this.layoutAnimateModule.setIntervalObject.length > 0) {\n this.layoutAnimateModule.stopCurrentAnimation(this.objectStore[0], diagram, node);\n this.objectStore = [];\n }\n objects = this.diagram.doLayout();\n this.objectStore.push(objects);\n }\n this.canUpdateTemplate = false;\n this.diagram.blazorActions &= ~BlazorAction.expandNode;\n this.diagram.preventNodesUpdate = preventNodesUpdate;\n // this.diagram.preventConnectorsUpdate = false;\n if (this.diagram.layoutAnimateModule && this.diagram.organizationalChartModule && !canLayout) {\n this.diagram.allowServerDataBinding = false;\n this.layoutAnimateModule.expand(this.diagram.layout.enableAnimation, objects, node, this.diagram);\n }\n else {\n var arg = {\n element: cloneBlazorObject(clone(node)), state: (node.isExpanded) ? true : false\n };\n this.triggerEvent(DiagramEvent.expandStateChange, arg);\n //Bug 873119: Diagram throws error when setting isExpanded property as false with LineRouting injected.\n if (this.diagram.lineRoutingModule && this.diagram.constraints & DiagramConstraints.LineRouting && this.diagram.layout.type !== 'ComplexHierarchicalTree') {\n this.diagram.resetSegments();\n }\n }\n this.diagram.layout.fixedNode = fixedNode === '' ? '' : this.diagram.layout.fixedNode;\n return objects;\n };\n CommandHandler.prototype.getparentexpand = function (target, diagram, visibility, connector) {\n var boolean;\n for (var i = 0; i < target.inEdges.length; i++) {\n var newConnector = diagram.nameTable[target.inEdges[i]];\n var previousNode = diagram.nameTable[newConnector.sourceID];\n if (previousNode.isExpanded && !visibility && previousNode.id !== connector.sourceID && newConnector.visible) {\n return false;\n }\n else {\n boolean = true;\n }\n }\n return boolean;\n };\n /**\n * Setinterval and Clear interval for layout animation\n */\n /** @private */\n CommandHandler.prototype.expandCollapse = function (source, visibility, diagram) {\n for (var i = 0; i < source.outEdges.length; i++) {\n var connector = diagram.nameTable[source.outEdges[i]];\n var target = diagram.nameTable[connector.targetID];\n var value = this.getparentexpand(target, diagram, visibility, connector);\n connector.visible = visibility;\n var oldValues = {\n visible: target.visible,\n style: { opacity: target.wrapper.style.opacity }\n };\n var newValues = {\n visible: target.visible,\n style: { opacity: target.wrapper.style.opacity }\n };\n if (value) {\n if (target.isExpanded) {\n this.expandCollapse(target, visibility, diagram);\n }\n target.visible = visibility;\n target.style.opacity = (this.diagram.layoutAnimateModule &&\n this.diagram.layout.enableAnimation && visibility) ? 0.1 : target.style.opacity;\n diagram.nodePropertyChange(target, oldValues, newValues);\n }\n diagram.connectorPropertyChange(connector, oldValues, newValues);\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateNodeDimension = function (obj, rect) {\n if (obj instanceof Node) {\n obj.offsetX = rect.x + rect.width / 2;\n obj.offsetY = rect.y + rect.height / 2;\n obj.width = rect.width;\n obj.height = rect.height;\n obj.wrapper.children[0].canMeasurePath = true;\n this.diagram.nodePropertyChange(obj, {}, {\n width: rect.width, height: rect.height, offsetX: obj.offsetX,\n offsetY: obj.offsetY\n });\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateConnectorPoints = function (obj, rect) {\n if (obj instanceof Connector && obj.type !== 'Bezier') {\n this.diagram.connectorPropertyChange(obj, {}, {\n targetPoint: obj.targetPoint\n });\n this.diagram.updateDiagramObject(obj);\n }\n else {\n this.diagram.connectorPropertyChange(obj, {}, { segments: obj.segments });\n this.diagram.updateDiagramObject(obj);\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateSelectedNodeProperties = function (object) {\n if (this.diagram.lineRoutingModule && (this.diagram.constraints & DiagramConstraints.LineRouting)) {\n var previousNodeObject = [];\n var previousConnectorObject = [];\n var updateNodeObject = [];\n var updateConnectorObject = [];\n var changeNodes = [];\n var changeConnectors = [];\n this.diagram.protectPropertyChange(true);\n var objects = [];\n var connectors = [];\n var actualObject = this.diagram.selectedObject.actualObject;\n var helperObject = this.diagram.selectedObject.helperObject;\n if (helperObject && actualObject) {\n var offsetX = (helperObject.offsetX - actualObject.offsetX);\n var offsetY = (helperObject.offsetY - actualObject.offsetY);\n var width = (helperObject.width - actualObject.width);\n var height = (helperObject.height - actualObject.height);\n var rotateAngle = (helperObject.rotateAngle - actualObject.rotateAngle);\n if (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length > 0) {\n this.diagram.selectedItems.wrapper.rotateAngle = this.diagram.selectedItems.rotateAngle = helperObject.rotateAngle;\n }\n if (actualObject instanceof Node &&\n actualObject.shape.type !== 'SwimLane' && !actualObject.isLane && !actualObject.isPhase && !actualObject.isHeader &&\n !checkParentAsContainer(this.diagram, actualObject)) {\n if (actualObject.offsetX !== actualObject.wrapper.offsetX || actualObject.offsetY !== actualObject.wrapper.offsetY ||\n actualObject.width !== actualObject.wrapper.width || actualObject.height !== actualObject.wrapper.height ||\n actualObject.rotateAngle !== actualObject.wrapper.rotateAngle) {\n actualObject.offsetX += offsetX;\n actualObject.offsetY += offsetY;\n actualObject.width += width;\n actualObject.height += height;\n actualObject.rotateAngle += rotateAngle;\n this.diagram.nodePropertyChange(actualObject, {}, {\n offsetX: actualObject.offsetX, offsetY: actualObject.offsetY,\n width: actualObject.width, height: actualObject.height, rotateAngle: actualObject.rotateAngle\n });\n }\n objects = this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds);\n }\n else if (actualObject instanceof Selector) {\n for (var i = 0; i < actualObject.nodes.length; i++) {\n var node = actualObject.nodes[i];\n if (node instanceof Node && node.shape.type !== 'SwimLane' &&\n !checkParentAsContainer(this.diagram, node)\n && !node.isLane\n && !node.isPhase && !node.isHeader) {\n node.offsetX += offsetX;\n node.offsetY += offsetY;\n node.width += width;\n node.height += height;\n node.rotateAngle += rotateAngle;\n this.diagram.nodePropertyChange(node, {}, {\n offsetX: node.offsetX, offsetY: node.offsetY,\n width: node.width, height: node.height, rotateAngle: node.rotateAngle\n });\n objects = objects.concat(this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds));\n }\n }\n }\n }\n else {\n if (object instanceof Connector) {\n objects.push(object);\n }\n else if (object instanceof Selector && object.connectors.length) {\n objects = objects.concat(object.connectors);\n }\n }\n for (var i = 0; i < objects.length; i++) {\n if (objects[i] instanceof Connector && connectors.indexOf(objects[i].id) === -1) {\n connectors.push(objects[i].id);\n }\n }\n this.diagram.lineRoutingModule.renderVirtualRegion(this.diagram, true);\n for (var i = 0; i < connectors.length; i++) {\n var connector = this.diagram.nameTable[connectors[i]];\n if (connector instanceof Connector && connector.type === 'Orthogonal') {\n // EJ2-65876 - Exception occurs on line routing injection module\n //Bug 850195: Exception occurs due to line routing constraints enabled\n if (connector.sourceID && connector.targetID && connector.sourceID != connector.targetID && this.diagram.layout.type !== 'ComplexHierarchicalTree') {\n //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module \n var sourceNode = this.diagram.getObject(connector.sourceID);\n var targetNode = this.diagram.getObject(connector.targetID);\n var Connectorlength1 = targetNode.wrapper.outerBounds.middleLeft.x - sourceNode.wrapper.outerBounds.middleRight.x;\n var Connectorlength2 = targetNode.wrapper.outerBounds.topCenter.y - sourceNode.wrapper.outerBounds.bottomCenter.y;\n if (Connectorlength1 > 30 || Connectorlength2 > 30) {\n this.diagram.lineRoutingModule.refreshConnectorSegments(this.diagram, connector, true);\n }\n }\n }\n }\n this.updateSelector();\n this.diagram.protectPropertyChange(false);\n }\n };\n /** @private */\n CommandHandler.prototype.drawSelectionRectangle = function (x, y, width, height) {\n this.diagram.drawSelectionRectangle(x, y, width, height);\n };\n /** @private */\n CommandHandler.prototype.startGroupAction = function () {\n this.diagram.startGroupAction();\n };\n /** @private */\n CommandHandler.prototype.endGroupAction = function () {\n this.diagram.endGroupAction();\n };\n /** @private */\n CommandHandler.prototype.removeChildFromBPmn = function (child, newTarget, oldTarget) {\n var obj = this.diagram.nameTable[child.id] || child.nodes[0];\n if (oldTarget) {\n if ((obj) && obj.processId && obj.processId === oldTarget.wrapper.id) {\n var node = clone(obj);\n node.processId = obj.processId;\n this.diagram.startGroupAction();\n // 908136: Node goes behind the subprocess and the connector connected to it is destroyed Issue Fix by commenting these lines\n // let edges: string[] = [];\n // edges = edges.concat((obj as Node).outEdges, (obj as Node).inEdges);\n // for (let i: number = edges.length - 1; i >= 0; i--) {\n // const connector: ConnectorModel = this.diagram.nameTable[edges[i]];\n // if (connector) {\n // this.diagram.remove(connector);\n // }\n // }\n var nodeCollection = (this.diagram.nameTable[obj.processId].shape.activity.subProcess.processes) || [];\n nodeCollection.splice(nodeCollection.indexOf((obj).id), 1);\n this.diagram.bpmnModule.removeChildFromBPMN(this.diagram.nameTable[obj.processId].wrapper, (obj).id, this.diagram);\n this.diagram.nameTable[(obj).id].processId = '';\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n var undoElement = clone(obj);\n var entry = {\n type: 'PositionChanged', redoObject: { nodes: [undoElement] }, undoObject: { nodes: [node] }, category: 'Internal'\n };\n this.addHistoryEntry(entry);\n this.diagram.endGroupAction();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.isDroppable = function (source, targetNodes) {\n var node = this.diagram.nameTable[source.id] || source.nodes[0];\n if (node instanceof Node) {\n if ((!isBlazor() && node.shape.shape === 'TextAnnotation')\n // ||(isBlazor() && (node.shape as DiagramShape).bpmnShape === 'TextAnnotation')\n ) {\n return true;\n }\n //848061 - Enabling BPMN Group Nodes to Function Like Subprocess Nodes\n if (targetNodes.shape.shape === 'Group') {\n targetNodes.shape.activity.subProcess.collapsed = false;\n }\n if (node && node.shape.type === 'Bpmn') {\n //905238 - Exception thrown while dropping BPMN shapes over a BPMN connector\n if ((node.processId === targetNodes.id) || (node.id === targetNodes.processId) ||\n targetNodes.shape.type === 'Bpmn' && !(targetNodes instanceof Connector)\n && targetNodes.shape.activity && targetNodes.shape.activity.subProcess\n && targetNodes.shape.activity.subProcess.collapsed) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n /**\n * @private\n */\n CommandHandler.prototype.renderHighlighter = function (args, connectHighlighter, source) {\n var bounds = new Rect();\n if ((args.target instanceof Node || args.target instanceof Connector) || (connectHighlighter && (args.source instanceof Node || args.source instanceof Connector))) {\n var tgt = connectHighlighter ? args.source : args.target;\n var tgtWrap = connectHighlighter ? args.sourceWrapper : args.targetWrapper;\n var target = this.findTarget(tgtWrap, tgt, source, true);\n var element = void 0;\n if (target instanceof BpmnSubEvent) {\n var portId = target.id;\n var node = args.target;\n var parent_8 = node.wrapper.children[0].children[0].children[2];\n for (var _i = 0, _a = parent_8.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.id === node.id + '_' + portId) {\n element = child.children[0];\n break;\n }\n }\n }\n else {\n element = (target instanceof Node) ?\n target.wrapper : connectHighlighter ? args.sourceWrapper : args.targetWrapper;\n }\n if (element && !(target instanceof Connector)) {\n this.diagram.renderHighlighter(element);\n }\n }\n };\n //additional events\n /** @private */\n CommandHandler.prototype.mouseOver = function (source, target, position) {\n //mouse over\n //returns whether the source can move over the target or not\n return true;\n };\n /**\n * @private\n */\n CommandHandler.prototype.snapPoint = function (startPoint, endPoint, tx, ty) {\n var obj = this.diagram.selectedItems;\n var point;\n var towardsLeft = endPoint.x < startPoint.x;\n var towardsTop = endPoint.y < startPoint.y;\n point = { x: tx, y: ty };\n var snappedPoint = point;\n if (this.snappingModule) {\n snappedPoint = this.diagram.snappingModule.snapPoint(this.diagram, obj, towardsLeft, towardsTop, point, startPoint, endPoint);\n }\n return snappedPoint;\n };\n /**\n * @private\n */\n CommandHandler.prototype.removeSnap = function () {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) && this.snappingModule) {\n this.snappingModule.removeGuidelines(this.diagram);\n }\n };\n /** @private */\n /**Bug(EJ2-62725): Exception occurs when drag and drop the connector inside the swimlane */\n CommandHandler.prototype.dropAnnotation = function (source, target) {\n if (source instanceof Node || source instanceof Selector) {\n var node = (source instanceof Node) ? source : source.nodes[0];\n if (this.diagram.bpmnModule && target.shape.type === 'Bpmn'\n && ((!isBlazor() && node.shape.shape === 'TextAnnotation')\n // ||(isBlazor() && (node.shape as DiagramShape).bpmnShape === 'TextAnnotation')\n )) {\n var hasTarget = 'hasTarget';\n node[hasTarget] = target.id;\n node.shape.annotation.nodeId = target.id;\n if (!this.diagram.currentSymbol) {\n this.diagram.addTextAnnotation(node.shape.annotation, target);\n node.shape.annotation.nodeId = '';\n this.diagram.remove(node);\n }\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.drop = function (source, target, position) {\n //drop\n if (this.diagram.bpmnModule) {\n var sourcenode = (source instanceof Node) ? source : source.nodes[0];\n //905238 - Exception thrown while dropping BPMN shapes over a BPMN connector\n if (sourcenode && sourcenode.shape.type === 'Bpmn' && target.shape.type === 'Bpmn'\n && !(target instanceof Connector)) {\n this.diagram.bpmnModule.dropBPMNchild(target, (source instanceof Node) ? source : source.nodes[0], this.diagram);\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.addHistoryEntry = function (entry) {\n this.diagram.addHistoryEntry(entry);\n };\n /** @private */\n CommandHandler.prototype.align = function (objects, option, type) {\n if (objects.length > 0) {\n var i = 0;\n objects[0] = this.diagram.nameTable[objects[0].id] || objects[0];\n var bounds = (type === 'Object') ? getBounds(objects[0].wrapper) : this.diagram.selectedItems.wrapper.bounds;\n var undoObj = { nodes: [], connectors: [] };\n var redoObj = { nodes: [], connectors: [] };\n for (i = ((type === 'Object') ? (i + 1) : i); i < objects.length; i++) {\n var tx = 0;\n var ty = 0;\n objects[i] = this.diagram.nameTable[objects[i].id] || objects[i];\n var objectBounds = getBounds(objects[i].wrapper);\n if (option === 'Left') {\n tx = bounds.left + objectBounds.width / 2 - objectBounds.center.x;\n }\n else if (option === 'Right') {\n tx = bounds.right - objectBounds.width / 2 - objectBounds.center.x;\n }\n else if (option === 'Top') {\n ty = bounds.top + objectBounds.height / 2 - objectBounds.center.y;\n }\n else if (option === 'Bottom') {\n ty = bounds.bottom - objectBounds.height / 2 - objectBounds.center.y;\n }\n else if (option === 'Center') {\n tx = bounds.center.x - objectBounds.center.x;\n }\n else if (option === 'Middle') {\n ty = bounds.center.y - objectBounds.center.y;\n }\n undoObj = this.storeObject(undoObj, objects[i]);\n this.drag(objects[i], tx, ty);\n this.diagram.updateSelector();\n redoObj = this.storeObject(redoObj, objects[i]);\n }\n undoObj = clone(undoObj);\n redoObj = clone(redoObj);\n var entry = {\n type: 'Align', category: 'Internal',\n undoObject: cloneObject(undoObj), redoObject: cloneObject(redoObj)\n };\n this.addHistoryEntry(entry);\n }\n };\n /**\n * distribute method \\\n *\n * @returns { void } distribute method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value.\n * @param {SizingOptions} option - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.distribute = function (objects, option) {\n if (objects.length > 0) {\n var i = 0;\n //const j: number = 0;\n //const rect: Rect = new Rect();\n //const b: Rect[] = [];\n //let temp: NodeModel | ConnectorModel;\n var right = 0;\n var left = 0;\n var top_3 = 0;\n var bottom = 0;\n var center = 0;\n var middle = 0;\n var btt = 0;\n //const sum: number = 0;\n var undoSelectorObj = { nodes: [], connectors: [] };\n var redoSelectorObj = { nodes: [], connectors: [] };\n for (i = 0; i < objects.length; i++) {\n objects[i] = this.diagram.nameTable[objects[i].id] || objects[i];\n }\n objects = sort(objects, option);\n for (i = 1; i < objects.length; i++) {\n right = right + objects[i].wrapper.bounds.topRight.x - objects[i - 1].wrapper.bounds.topRight.x;\n left = left + objects[i].wrapper.bounds.topLeft.x - objects[i - 1].wrapper.bounds.topLeft.x;\n top_3 = top_3 + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.topRight.y;\n bottom = bottom + objects[i].wrapper.bounds.bottomRight.y - objects[i - 1].wrapper.bounds.bottomRight.y;\n center = center + objects[i].wrapper.bounds.center.x - objects[i - 1].wrapper.bounds.center.x;\n middle = middle + objects[i].wrapper.bounds.center.y - objects[i - 1].wrapper.bounds.center.y;\n btt = btt + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.bottomRight.y;\n }\n for (i = 1; i < objects.length - 1; i++) {\n var tx = 0;\n var ty = 0;\n var prev = getBounds(objects[i - 1].wrapper);\n var current = getBounds(objects[i].wrapper);\n if (option === 'RightToLeft' || option === 'Center') {\n tx = prev.center.x - current.center.x + (center / (objects.length - 1));\n }\n else if (option === 'Right') {\n tx = prev.topRight.x - current.topRight.x + (right / (objects.length - 1));\n }\n else if (option === 'Left') {\n tx = prev.topLeft.x - current.topLeft.x + (left / (objects.length - 1));\n }\n else if (option === 'Middle') {\n ty = prev.center.y - current.center.y + (middle / (objects.length - 1));\n }\n else if (option === 'Top') {\n ty = prev.topRight.y - current.topRight.y + (top_3 / (objects.length - 1));\n }\n else if (option === 'Bottom') {\n ty = prev.bottomRight.y - current.bottomRight.y + (bottom / (objects.length - 1));\n }\n else if (option === 'BottomToTop') {\n ty = prev.bottomRight.y - current.topRight.y + (btt / (objects.length - 1));\n }\n undoSelectorObj = this.storeObject(undoSelectorObj, objects[i]);\n this.drag(objects[i], tx, ty);\n this.diagram.updateSelector();\n redoSelectorObj = this.storeObject(redoSelectorObj, objects[i]);\n }\n undoSelectorObj = clone(undoSelectorObj);\n redoSelectorObj = clone(redoSelectorObj);\n var entry = {\n type: 'Distribute', category: 'Internal',\n undoObject: cloneObject(undoSelectorObj), redoObject: cloneObject(redoSelectorObj)\n };\n this.addHistoryEntry(entry);\n }\n };\n /* eslint-enable */\n /**\n * sameSize method \\\n *\n * @returns { void } sameSize method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value.\n * @param {SizingOptions} option - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.sameSize = function (objects, option) {\n if (objects.length > 0) {\n var i = 0;\n //let pivot: PointModel;\n var pivot = { x: 0.5, y: 0.5 };\n objects[0] = this.diagram.nameTable[objects[0].id] || objects[0];\n var bounds = getBounds(objects[0].wrapper);\n var undoObject = { nodes: [], connectors: [] };\n var redoObject = { nodes: [], connectors: [] };\n for (i = 1; i < objects.length; i++) {\n objects[parseInt(i.toString(), 10)] = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id] || objects[0];\n var rect = getBounds(objects[parseInt(i.toString(), 10)].wrapper);\n var sw = 1;\n var sh = 1;\n if (option === 'Width') {\n sw = bounds.width / rect.width;\n }\n else if (option === 'Height') {\n sh = bounds.height / rect.height;\n }\n else if (option === 'Size') {\n sw = bounds.width / rect.width;\n sh = bounds.height / rect.height;\n }\n undoObject = this.storeObject(undoObject, objects[parseInt(i.toString(), 10)]);\n this.scale(objects[parseInt(i.toString(), 10)], sw, sh, pivot);\n redoObject = this.storeObject(redoObject, objects[parseInt(i.toString(), 10)]);\n }\n this.diagram.updateSelector();\n undoObject = clone(undoObject);\n redoObject = clone(redoObject);\n var entry = {\n type: 'Sizing', category: 'Internal',\n undoObject: cloneObject(undoObject), redoObject: cloneObject(redoObject)\n };\n this.addHistoryEntry(entry);\n }\n };\n CommandHandler.prototype.storeObject = function (selectorObject, obj) {\n if (obj instanceof Node) {\n selectorObject.nodes.push(clone(obj));\n }\n else {\n selectorObject.connectors.push(clone(obj));\n }\n return selectorObject;\n };\n /**\n * updatePanState method \\\n *\n * @returns { any } updatePanState method .\\\n * @param {number} eventCheck - provide the eventCheck value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n CommandHandler.prototype.updatePanState = function (eventCheck) {\n if (eventCheck) {\n this.diagram.realActions = this.diagram.realActions | RealAction.PanInProgress;\n }\n else {\n this.diagram.dataBind();\n var diagramScrollSettings = this.diagram.scrollSettings;\n this.diagram.realActions = this.diagram.realActions & ~RealAction.PanInProgress;\n var Values = {\n VerticalOffset: diagramScrollSettings.verticalOffset, HorizontalOffset: diagramScrollSettings.horizontalOffset,\n ViewportHeight: diagramScrollSettings.viewPortHeight, ViewportWidth: diagramScrollSettings.viewPortWidth,\n CurrentZoom: diagramScrollSettings.currentZoom\n };\n var arg = {\n oldValue: Values,\n newValue: Values, source: this.diagram, panState: 'Completed'\n };\n this.triggerEvent(DiagramEvent.scrollChange, arg);\n }\n };\n /**\n * dataBinding method \\\n *\n * @returns { void } dataBinding method .\\\n *\n * @private\n */\n CommandHandler.prototype.dataBinding = function () {\n this.diagram.dataBind();\n };\n CommandHandler.prototype.setBlazorDiagramProps = function (arg) {\n this.diagram.setBlazorDiagramProps(arg);\n };\n /**\n * scroll method \\\n *\n * @returns { void } scroll method .\\\n * @param {number} scrollX - provide the source value.\n * @param {number} scrollY - provide the target value.\n * @param {PointModel} focusPoint - provide the layoutOrientation value.\n *\n * @private\n */\n CommandHandler.prototype.scroll = function (scrollX, scrollY, focusPoint) {\n var panx = canPanX(this.diagram);\n var pany = canPanY(this.diagram);\n var canPan = true;\n this.diagram.pan((scrollX = panx ? scrollX : 0) * this.diagram.scroller.currentZoom, (scrollY = pany ? scrollY : 0) * this.diagram.scroller.currentZoom, focusPoint, canPan);\n };\n /**\n * drawHighlighter method \\\n *\n * @returns { NodeModel | ConnectorModel } drawHighlighter method .\\\n * @param {IElement} element - provide the element value.\n *\n * @private\n */\n CommandHandler.prototype.drawHighlighter = function (element) {\n this.diagram.renderHighlighter(element.wrapper);\n };\n /**\n * removeHighlighter method \\\n *\n * @returns { void } removeHighlighter method .\\\n *\n * @private\n */\n CommandHandler.prototype.removeHighlighter = function () {\n this.diagram.clearHighlighter();\n };\n /**\n * renderContainerHelper method \\\n *\n * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\\\n * @param {NodeModel | SelectorModel | ConnectorModel} node - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.renderContainerHelper = function (node) {\n return renderContainerHelper(this.diagram, node);\n };\n /**\n * isParentAsContainer method \\\n *\n * @returns { boolean } isParentAsContainer method .\\\n * @param {NodeModel} node - provide the parent value.\n * @param {boolean} isChild - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.isParentAsContainer = function (node, isChild) {\n return checkParentAsContainer(this.diagram, node, isChild);\n };\n /**\n * @returns { boolean } isParentAsContainer method .\\\n * @param {NodeModel} node - provide the target Node value.\n * @private\n */\n CommandHandler.prototype.isTargetSubProcess = function (node) {\n if (node && node.shape && node.shape.type === 'Bpmn' && node.shape.activity && node.shape.activity.activity === 'SubProcess') {\n return true;\n }\n return false;\n };\n /**\n * dropChildToContainer method \\\n *\n * @returns { void } dropChildToContainer method .\\\n * @param {NodeModel} parent - provide the parent value.\n * @param {NodeModel} node - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.dropChildToContainer = function (parent, node) {\n if (!(this.diagram.diagramActions & DiagramAction.PreventLaneContainerUpdate)) {\n addChildToContainer(this.diagram, parent, node);\n if (node.hasTextAnnotation) {\n for (var i = 0; i < node.outEdges.length; i++) {\n var con = this.diagram.nameTable[node.outEdges[parseInt(i.toString(), 10)]];\n if (con.isBpmnAnnotationConnector) {\n var annotationNode = this.diagram.nameTable[con.targetID];\n addChildToContainer(this.diagram, parent, annotationNode);\n }\n }\n }\n }\n };\n /**\n * @returns { void } updateLaneChildrenZindex method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {IElement} target - provide the target value.\n * @private\n */\n CommandHandler.prototype.updateLaneChildrenZindex = function (node, target) {\n var lowerIndexobject = this.findLeastIndexObject(node, target);\n var swimlane = this.diagram.nameTable[target.parentId];\n if (swimlane && swimlane.zIndex > lowerIndexobject.zIndex) {\n var layerIndex = this.diagram.layers.indexOf(this.diagram.getActiveLayer());\n var layerZIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable;\n var tempTable = JSON.parse(JSON.stringify(layerZIndexTable));\n var startIndex = lowerIndexobject.zIndex;\n var endIndex = swimlane.zIndex;\n for (var i = endIndex; i >= startIndex; i--) {\n if (startIndex !== i) {\n if (!layerZIndexTable[i - 1]) {\n layerZIndexTable[i - 1] = layerZIndexTable[parseInt(i.toString(), 10)];\n this.diagram.nameTable[layerZIndexTable[i - 1]].zIndex = i;\n delete layerZIndexTable[parseInt(i.toString(), 10)];\n }\n else {\n //bringing the objects forward\n layerZIndexTable[parseInt(i.toString(), 10)] = layerZIndexTable[i - 1];\n this.diagram.nameTable[layerZIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n }\n }\n else {\n var tempIndex = this.swapZIndexObjects(endIndex, layerZIndexTable, swimlane.id, tempTable);\n }\n }\n if (this.diagram.mode === 'SVG') {\n this.moveSvgNode(target.parentId, lowerIndexobject.id);\n this.updateNativeNodeIndex(target.parentId, lowerIndexobject.id);\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n }\n };\n CommandHandler.prototype.findLeastIndexConnector = function (edges, target, index) {\n for (var i = 0; i < edges.length; i++) {\n var connector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]];\n if (index.zIndex > connector.zIndex) {\n index = connector;\n }\n }\n return index;\n };\n CommandHandler.prototype.findLeastIndexObject = function (node, target) {\n var lowerIndexobject = node;\n if (node instanceof Node) {\n lowerIndexobject = this.findLeastIndexConnector(node.inEdges, target, lowerIndexobject);\n lowerIndexobject = this.findLeastIndexConnector(node.outEdges, target, lowerIndexobject);\n }\n return lowerIndexobject;\n };\n /**\n * checkSelection method \\\n *\n * @returns { void } checkSelection method .\\\n * @param {SelectorModel} selector - provide the source value.\n * @param {string} corner - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.checkSelection = function (selector, corner) {\n var node; // let wrapper: GridPanel; let child: Container; let index: number; let shape: SwimLaneModel;\n if (selector.nodes.length === 1 && selector.connectors.length === 0) {\n if (checkParentAsContainer(this.diagram, selector.nodes[0], true)) {\n node = (selector.nodes[0].shape === 'SwimLane') ? selector.nodes[0] :\n this.diagram.nameTable[selector.nodes[0].parentId];\n var child = selector.nodes[0];\n if (node.shape.type === 'SwimLane') {\n var orientation_1 = (node.shape.orientation === 'Horizontal') ? true : false;\n if ((child.isPhase && ((orientation_1 && corner === 'ResizeSouth') || (!orientation_1 && corner === 'ResizeEast'))) ||\n (child.isLane && ((orientation_1 && corner === 'ResizeEast') || (!orientation_1 && corner === 'ResizeSouth')))) {\n swimLaneSelection(this.diagram, node, corner);\n }\n }\n else if (node.container.type === 'Grid') {\n if (((node.container.orientation === 'Horizontal' && child.rowIndex === 1) ||\n (node.container.orientation === 'Vertical' && child.rowIndex > 0 && child.columnIndex > 0))) {\n if (corner === 'ResizeSouth') {\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var obj = this.diagram.nodes[parseInt(i.toString(), 10)];\n if (obj.rowIndex === node.rows.length - 1 && obj.columnIndex === 0) {\n this.select(obj);\n break;\n }\n }\n }\n }\n else {\n if (corner === 'ResizeEast') {\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var obj = this.diagram.nodes[parseInt(i.toString(), 10)];\n if (obj.rowIndex === 1 && obj.columnIndex === node.columns.length - 1) {\n this.select(obj);\n break;\n }\n }\n }\n }\n }\n }\n else {\n swimLaneSelection(this.diagram, selector.nodes[0], corner);\n }\n }\n };\n /**\n * zoom method \\\n *\n * @returns { void } zoom method .\\\n * @param {number} scale - provide the source value.\n * @param {number} scrollX - provide the target value.\n * @param {number} scrollY - provide the layoutOrientation value.\n * @param {PointModel} focusPoint - provide the layoutOrientation value.\n *\n * @private\n */\n CommandHandler.prototype.zoom = function (scale, scrollX, scrollY, focusPoint) {\n this.diagram.scroller.zoom(scale, scrollX * this.diagram.scroller.currentZoom, scrollY * this.diagram.scroller.currentZoom, focusPoint);\n };\n return CommandHandler;\n}());\nexport { CommandHandler };\n","import { Rect } from '../primitives/rect';\nimport { RealAction, ScrollActions } from '../enum/enum';\nimport { identityMatrix, scaleMatrix, translateMatrix, transformPointByMatrix, multiplyMatrix } from '../primitives/matrix';\nimport { updateRuler } from '../ruler/ruler';\nimport { canZoom, canPan, canVitualize } from './../utility/constraints-util';\n/**\n */\nvar DiagramScroller = /** @class */ (function () {\n function DiagramScroller(diagram) {\n /** @private */\n this.transform = { tx: 0, ty: 0, scale: 1 };\n /** @private */\n this.oldCollectionObjects = [];\n /** @private */\n this.removeCollection = [];\n this.vPortWidth = 0;\n this.vPortHeight = 0;\n this.currentZoomFActor = 1;\n this.hOffset = 0;\n this.vOffset = 0;\n this.scrolled = false;\n this.hScrollSize = 0;\n this.vScrollSize = 0;\n this.diagram = diagram;\n this.objects = [];\n this.transform = diagram.scroller ? diagram.scroller.transform : { tx: 0, ty: 0, scale: 1 };\n this.vPortWidth = diagram.scrollSettings.viewPortWidth;\n this.vPortHeight = diagram.scrollSettings.viewPortHeight;\n this.currentZoomFActor = diagram.scrollSettings.currentZoom;\n this.hOffset = diagram.scrollSettings.horizontalOffset;\n this.vOffset = diagram.scrollSettings.verticalOffset;\n }\n Object.defineProperty(DiagramScroller.prototype, \"viewPortHeight\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vPortHeight;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vPortHeight = offset;\n this.diagram.scrollSettings.viewPortHeight = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"currentZoom\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.currentZoomFActor;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.currentZoomFActor = offset;\n this.diagram.scrollSettings.currentZoom = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"viewPortWidth\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vPortWidth;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vPortWidth = offset;\n this.diagram.scrollSettings.viewPortWidth = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"horizontalOffset\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.hOffset;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.hOffset = offset;\n if (Math.abs(this.hOffset - this.diagram.scrollSettings.horizontalOffset) > 1) {\n this.diagram.realActions = this.diagram.realActions | RealAction.hScrollbarMoved;\n this.scrolled = true;\n }\n this.diagram.scrollSettings.horizontalOffset = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"verticalOffset\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vOffset;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vOffset = offset;\n if (Math.abs(this.vOffset - this.diagram.scrollSettings.verticalOffset) > 1) {\n this.diagram.realActions = this.diagram.realActions | RealAction.vScrollbarMoved;\n this.scrolled = true;\n }\n this.diagram.scrollSettings.verticalOffset = offset;\n },\n enumerable: true,\n configurable: true\n });\n // Method added to get bounds value if diagram is loaded from negative axis.\n // SF-359118 implemented for this ticket requirement.\n DiagramScroller.prototype.getBounds = function () {\n var pageBounds;\n var postion = this.diagram.spatialSearch.getPageBounds(0, 0);\n if ((postion.x < 0 || postion.y < 0) && !this.diagram.pageSettings.multiplePage) {\n pageBounds = this.getPageBounds(undefined, undefined, true, true);\n }\n else {\n pageBounds = this.getPageBounds(undefined, undefined, true);\n }\n return pageBounds;\n };\n /**\n * updateScrollOffsets method \\\n *\n * @returns { void } updateScrollOffsets method .\\\n * @param {number} hOffset - provide the hOffset value.\n * @param {number} vOffset - provide the vOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.updateScrollOffsets = function (hOffset, vOffset) {\n var offsetX = 0;\n var offsetY = 0;\n var pageBounds = this.getBounds();\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n offsetX = Math.max(0, hOffset - pageBounds.left);\n offsetY = Math.max(0, vOffset - pageBounds.top);\n if (hOffset !== undefined && vOffset !== undefined) {\n this.horizontalOffset = offsetX;\n this.verticalOffset = offsetY;\n this.diagram.setOffset(offsetX, offsetY);\n }\n else {\n this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y);\n }\n this.transform = {\n tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n };\n /**\n * setScrollOffset method \\\n *\n * @returns { void } setScrollOffset method .\\\n * @param {number} hOffset - provide the hOffset value.\n * @param {number} vOffset - provide the vOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.setScrollOffset = function (hOffset, vOffset) {\n this.scrolled = false;\n var pageBounds = this.getBounds();\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n var x = -pageBounds.left;\n var y = -pageBounds.top;\n var set = false;\n var viewWidth = this.viewPortWidth * this.currentZoom;\n var viewHeight = this.viewPortHeight * this.currentZoom;\n var newX = x - hOffset;\n if (newX !== this.horizontalOffset) {\n if (x < this.horizontalOffset) {\n if (this.horizontalOffset > newX) {\n this.horizontalOffset -= hOffset;\n }\n else {\n this.horizontalOffset = newX;\n }\n set = true;\n }\n var right = Math.max(pageBounds.right + this.vScrollSize, viewWidth);\n if (!set && right < -newX + this.viewPortWidth) {\n var actualRight = -newX + viewWidth - this.vScrollSize;\n var currentRight = -this.horizontalOffset + viewWidth - this.vScrollSize;\n if (actualRight < currentRight) {\n //define\n this.horizontalOffset = newX;\n }\n else {\n if (actualRight - pageBounds.right > actualRight - currentRight) {\n this.horizontalOffset = newX;\n }\n else {\n this.horizontalOffset = -(pageBounds.right + this.vScrollSize - viewWidth);\n }\n }\n set = true;\n }\n if (!set) {\n this.horizontalOffset = x - hOffset;\n }\n }\n set = false;\n //vertical offset\n var newY = y - vOffset;\n if (newY !== this.verticalOffset) {\n if (y < this.verticalOffset) {\n if (this.verticalOffset > newY) {\n this.verticalOffset -= vOffset;\n }\n else {\n this.verticalOffset = newY;\n }\n set = true;\n }\n var bottom = Math.max(pageBounds.bottom + this.hScrollSize, viewHeight);\n if (!set && bottom < -newY + viewHeight) {\n var actualBottom = -newY + viewHeight - this.hScrollSize;\n var currentBottom = -this.verticalOffset + viewHeight - this.hScrollSize;\n if (actualBottom < currentBottom) {\n //define\n this.verticalOffset = newY;\n }\n else {\n if (actualBottom - pageBounds.bottom > actualBottom - currentBottom) {\n this.verticalOffset = newY;\n }\n else {\n this.verticalOffset = -(pageBounds.bottom + this.hScrollSize - viewHeight);\n }\n }\n set = true;\n }\n if (!set) {\n this.verticalOffset = y - vOffset;\n }\n }\n this.transform = {\n tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n this.setSize();\n };\n /**\n * getObjects \\\n *\n * @returns { string[] } To get page pageBounds.\\\n * @param {string[]} coll1 - provide the source value.\n * @param {string[]} coll2 - provide the source value.\n * @private\n */\n DiagramScroller.prototype.getObjects = function (coll1, coll2) {\n var objects = [];\n for (var i = 0; i < coll1.length; i++) {\n var isExist = false;\n for (var j = 0; j < coll2.length; j++) {\n if (coll1[parseInt(i.toString(), 10)] === coll2[parseInt(j.toString(), 10)]) {\n isExist = true;\n break;\n }\n }\n if (!isExist) {\n objects.push(coll1[parseInt(i.toString(), 10)]);\n }\n }\n return objects;\n };\n /**\n * virtualizeElements \\\n *\n * @returns { void } To get page pageBounds.\\\n *\n * @private\n */\n DiagramScroller.prototype.virtualizeElements = function () {\n var viewWidth = this.viewPortWidth / this.currentZoom;\n var viewHeight = this.viewPortHeight / this.currentZoom;\n var oObjects = this.diagram.spatialSearch.findObjects(new Rect(-this.horizontalOffset / this.currentZoom, -this.verticalOffset / this.currentZoom, viewWidth, viewHeight));\n var oObjectsID = [];\n var renderOrder = [];\n for (var j = 0; j < oObjects.length; j++) {\n var bpmnShape = oObjects[parseInt(j.toString(), 10)].shape;\n if (bpmnShape.type === 'Bpmn' && bpmnShape && bpmnShape.activity && bpmnShape.activity.subProcess && bpmnShape.activity.subProcess.processes && bpmnShape.activity.subProcess.processes.length > 0) {\n for (var k = 0; k < bpmnShape.activity.subProcess.processes.length; k++) {\n renderOrder.push(bpmnShape.activity.subProcess.processes[parseInt(k.toString(), 10)]);\n }\n renderOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) {\n renderOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n }\n oObjectsID = renderOrder;\n var zindexOrder = [];\n for (var j = 0; j < oObjects.length; j++) {\n var items = oObjects[parseInt(j.toString(), 10)].shape;\n if (items.type === 'Bpmn' && items && items.activity && items.activity.subProcess && items.activity.subProcess.processes && items.activity.subProcess.processes.length > 0) {\n zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n for (var t = 0; t < items.activity.subProcess.processes.length; t++) {\n zindexOrder.push(items.activity.subProcess.processes[parseInt(t.toString(), 10)]);\n }\n }\n else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) {\n zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n }\n for (var j = 0; j < oObjects.length; j++) {\n for (var k = 0; k < zindexOrder.length; k++) {\n if (oObjects[parseInt(j.toString(), 10)].id === zindexOrder[parseInt(k.toString(), 10)]) {\n oObjects[parseInt(j.toString(), 10)].zIndex = k;\n break;\n }\n }\n }\n var newObjects = this.getObjects(oObjectsID, this.oldCollectionObjects);\n if (this.oldCollectionObjects.length === 0) {\n this.oldCollectionObjects = oObjectsID;\n }\n var removeObjects = this.getObjects(this.oldCollectionObjects, oObjectsID);\n this.diagram.updateVirtualObjects(newObjects, false, removeObjects);\n this.oldCollectionObjects = oObjectsID;\n };\n /**\n * setSize \\\n *\n * @returns { void } To get page pageBounds.\\\n * @param {PointModel} newOffset - provide the newOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.setSize = function (newOffset) {\n var pageBounds = this.getPageBounds(undefined, undefined, true);\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n var x = Math.min(pageBounds.x, -this.horizontalOffset);\n var y = Math.min(pageBounds.y, -this.verticalOffset);\n var difX = -this.horizontalOffset + this.viewPortWidth - pageBounds.right;\n var difY = -this.verticalOffset + this.viewPortHeight - pageBounds.bottom;\n var hScrollSize = this.scrollerWidth;\n var vScrollSize = this.scrollerWidth;\n if (-this.verticalOffset <= pageBounds.y && -this.verticalOffset + this.viewPortHeight >= pageBounds.bottom) {\n vScrollSize = 0;\n }\n if (-this.horizontalOffset <= pageBounds.x && -this.horizontalOffset + this.viewPortWidth >= pageBounds.right) {\n hScrollSize = 0;\n }\n this.hScrollSize = hScrollSize;\n this.vScrollSize = vScrollSize;\n var oldWidth = this.diagramWidth;\n var oldHeight = this.diagramHeight;\n this.diagramWidth = Math.max(pageBounds.right, -this.horizontalOffset + this.viewPortWidth - vScrollSize) - x;\n this.diagramHeight = Math.max(pageBounds.bottom, -this.verticalOffset + this.viewPortHeight - hScrollSize) - y;\n if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight) && this.diagram.scrollSettings.scrollLimit !== 'Diagram') {\n this.diagram.setSize(this.diagramWidth, this.diagramHeight);\n }\n if (this.diagram.scrollSettings.scrollLimit === 'Diagram') {\n if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight || this.currentZoom !== 1)\n && ((!this.diagram.diagramActions || !newOffset) || (this.diagram.diagramActions && newOffset &&\n ((this.verticalOffset !== 0 || this.verticalOffset === newOffset.y) &&\n (this.horizontalOffset !== 0 || this.horizontalOffset === newOffset.x))))) {\n if ((this.diagram.scrollActions & ScrollActions.Interaction) && newOffset) {\n this.transform = {\n tx: Math.max(newOffset.x, -(pageBounds.left / this.currentZoom)) / this.currentZoom,\n ty: Math.max(newOffset.y, -(pageBounds.top / this.currentZoom)) / this.currentZoom,\n scale: this.currentZoom\n };\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n }\n this.diagram.setSize(this.diagramWidth, this.diagramHeight);\n if ((!(this.diagram.scrollActions & ScrollActions.PropertyChange)) && newOffset) {\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n }\n }\n else if (newOffset && oldWidth === this.diagramWidth && oldHeight === this.diagramHeight &&\n ((this.diagram.diagramCanvas.scrollHeight > this.viewPortHeight &&\n newOffset.y < 0 && this.horizontalOffset === newOffset.x && this.verticalOffset === 0) ||\n (this.diagram.diagramCanvas.scrollWidth > this.viewPortWidth &&\n newOffset.x < 0 && this.verticalOffset === newOffset.y && this.horizontalOffset === 0))) {\n this.verticalOffset = newOffset.y;\n this.horizontalOffset = newOffset.x;\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n }\n }\n this.diagram.transformLayers();\n this.diagram.element.style.overflow = 'hidden';\n };\n /**\n * setViewPortSize \\\n *\n * @returns { void } To get page pageBounds.\\\n * @param {number} width - provide the factor value.\n * @param {number} height - provide the factor value.\n *\n * @private\n */\n DiagramScroller.prototype.setViewPortSize = function (width, height) {\n this.viewPortWidth = width;\n this.viewPortHeight = height;\n };\n /**\n * To get page pageBounds \\\n *\n * @returns { Rect } To get page pageBounds.\\\n * @param {boolean} boundingRect - provide the factor value.\n * @param {DiagramRegions} region - provide the factor value.\n * @param {boolean} hasPadding - provide the factor value.\n * @param {boolean} isnegativeRegion - provide the isnegativeRegion value.\n *\n * @private\n */\n DiagramScroller.prototype.getPageBounds = function (boundingRect, region, hasPadding, isnegativeRegion) {\n var rect = new Rect();\n var temp = 0;\n var pageBounds;\n if (region !== 'Content' && !isnegativeRegion && this.diagram.pageSettings.width !== null && this.diagram.pageSettings.height !== null) {\n var width = this.diagram.pageSettings.width;\n var height = this.diagram.pageSettings.height;\n var negwidth = 0;\n var negheight = 0;\n if (this.diagram.pageSettings.multiplePage) {\n rect = this.diagram.spatialSearch.getPageBounds(0, 0);\n if (rect.right > width) {\n var x = Math.ceil(rect.right / width);\n width = width * x;\n }\n if (rect.bottom > height) {\n var x = Math.ceil(rect.bottom / height);\n height = height * x;\n }\n if (rect.left < 0 && Math.abs(rect.left) > negwidth) {\n var x = Math.ceil(Math.abs(rect.left) / this.diagram.pageSettings.width);\n negwidth = this.diagram.pageSettings.width * x;\n }\n if (rect.top < 0 && Math.abs(rect.top) > negheight) {\n var x = Math.ceil(Math.abs(rect.top) / this.diagram.pageSettings.height);\n negheight = this.diagram.pageSettings.height * x;\n }\n }\n pageBounds = new Rect((-negwidth), (-negheight), width + negwidth, height + negheight);\n }\n else {\n var origin_1 = boundingRect ? undefined : 0;\n pageBounds = this.diagram.spatialSearch.getPageBounds(origin_1, origin_1);\n }\n if (hasPadding) {\n var scrollpadding = this.diagram.scrollSettings.padding;\n pageBounds.x -= scrollpadding.left;\n pageBounds.y -= scrollpadding.top;\n pageBounds.width += (scrollpadding.left + scrollpadding.right);\n pageBounds.height += (scrollpadding.top + scrollpadding.bottom);\n }\n return pageBounds;\n };\n /**\n * To get page break when PageBreak is set as true \\\n *\n * @returns { Segment[] } To get page break when PageBreak is set as true.\\\n * @param {Rect} pageBounds - provide the factor value.\n *\n * @private\n */\n DiagramScroller.prototype.getPageBreak = function (pageBounds) {\n var i = 0;\n var j = 0;\n var v = -1;\n var collection = [];\n var x1 = 0;\n var x2 = 0;\n var y1 = 0;\n var y2 = 0;\n var left = this.diagram.pageSettings.margin.left;\n var right = this.diagram.pageSettings.margin.right;\n var top = this.diagram.pageSettings.margin.top;\n var bottom = this.diagram.pageSettings.margin.bottom;\n var widthCount = 1;\n var heightCount = 1;\n var segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n while (pageBounds.width > i) {\n i = i + (this.diagram.pageSettings.width ? this.diagram.pageSettings.width : pageBounds.width);\n if (i === this.diagram.pageSettings.width) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.top + top,\n x2: pageBounds.left + left, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n if (i < pageBounds.width) {\n x1 = pageBounds.topLeft.x + this.diagram.pageSettings.width * widthCount;\n y1 = pageBounds.topLeft.y + top;\n x2 = pageBounds.bottomLeft.x + this.diagram.pageSettings.width * widthCount;\n y2 = pageBounds.bottomLeft.y - bottom;\n segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n collection[++v] = segment;\n widthCount++;\n }\n if (pageBounds.width === i) {\n segment = {\n x1: pageBounds.right - right, y1: pageBounds.top + top,\n x2: pageBounds.right - right, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n }\n while (pageBounds.height > j) {\n j = j + (this.diagram.pageSettings.height ? this.diagram.pageSettings.height : pageBounds.height);\n if (j === this.diagram.pageSettings.height) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.top + top,\n x2: pageBounds.right - right, y2: pageBounds.top + top\n };\n collection[++v] = segment;\n }\n if (j < pageBounds.height) {\n x1 = pageBounds.topLeft.x + left;\n y1 = pageBounds.topLeft.y + this.diagram.pageSettings.height * heightCount;\n x2 = pageBounds.topRight.x - right;\n y2 = pageBounds.topRight.y + this.diagram.pageSettings.height * heightCount;\n segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n collection[++v] = segment;\n heightCount++;\n }\n if (pageBounds.height === j) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.bottom - bottom,\n x2: pageBounds.right - right, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n }\n return collection;\n };\n /**\n * zoom method \\\n *\n * @returns { void } zoom method .\\\n * @param {number} factor - provide the factor value.\n * @param {number} deltaX - provide the bounds value.\n * @param {number} deltaY - provide the bounds value.\n * @param {PointModel} focusPoint - provide the bounds value.\n * @param {boolean} isInteractiveZoomPan - provide the isInteractiveZoomPan value.\n * @param {boolean} isBringIntoView - provide the isBringIntoView value.\n * @param {boolean} isTrackpadScroll - provide the isTrackpadScroll value.\n * @param {boolean} canZoomOut - provide the canZoomOut value.\n *\n * @private\n */\n DiagramScroller.prototype.zoom = function (factor, deltaX, deltaY, focusPoint, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll, canZoomOut) {\n if (canZoom(this.diagram) && factor !== 1 || (canPan(this.diagram) && factor === 1)) {\n var matrix = identityMatrix();\n scaleMatrix(matrix, this.currentZoom, this.currentZoom);\n translateMatrix(matrix, this.horizontalOffset, this.verticalOffset);\n focusPoint = focusPoint || {\n x: (this.viewPortWidth / 2 - this.horizontalOffset) / this.currentZoom,\n y: (this.viewPortHeight / 2 - this.verticalOffset) / this.currentZoom\n };\n focusPoint = transformPointByMatrix(matrix, focusPoint);\n //Bug 853566: Fit to page is not working when zoom value less than minZoom.\n // Removed minZoom calculation to call fitToPage even if currentZoom less than minZoom.\n if ((this.currentZoom * factor) <= this.diagram.scrollSettings.maxZoom &&\n ((this.currentZoom * factor) >= this.diagram.scrollSettings.minZoom || (canZoomOut || factor >= 1))) {\n this.currentZoom *= factor;\n var pageBounds = this.getPageBounds(undefined, undefined, true);\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n //target Matrix\n var targetMatrix = identityMatrix();\n scaleMatrix(targetMatrix, factor, factor, focusPoint.x, focusPoint.y);\n translateMatrix(targetMatrix, deltaX || 0, deltaY || 0);\n multiplyMatrix(matrix, targetMatrix);\n var newOffset = transformPointByMatrix(matrix, { x: 0, y: 0 });\n if (factor === 1) {\n // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset\n newOffset = this.applyScrollLimit(newOffset.x, newOffset.y, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll);\n }\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // The below condition is used to avoid the flickering of the scroll bar on scrolling the diagram using trackpad.\n isTrackpadScroll = (-(pageBounds.y) >= newOffset.y && -(pageBounds.x) >= newOffset.x && isTrackpadScroll);\n if ((this.diagram.scrollActions & ScrollActions.PropertyChange ||\n !(this.diagram.scrollActions & ScrollActions.Interaction)) ||\n this.diagram.scrollSettings.scrollLimit !== 'Diagram' || isTrackpadScroll) {\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n }\n this.setSize(newOffset);\n if (this.diagram.mode !== 'SVG' && canVitualize(this.diagram)) {\n this.diagram.scroller.virtualizeElements();\n }\n if (this.diagram.mode !== 'SVG' && !canVitualize(this.diagram)) {\n this.diagram.refreshDiagramLayer();\n }\n this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y);\n updateRuler(this.diagram);\n //Bug 863516: Overview is not synced with diagram content while zoom-out the diagram.\n //Updating overview after the page scrolled or zoomed.\n if (this.diagram.views && this.diagram.views.overview) {\n var overview = this.diagram.views.overview;\n var bounds = overview.scrollOverviewRect(overview.parent.scroller.horizontalOffset, overview.parent.scroller.verticalOffset, overview.parent.scroller.currentZoom, true);\n overview.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height);\n overview.updateView(overview);\n }\n }\n }\n };\n /**\n * fitToPage method \\\n *\n * @returns { void } fitToPage method .\\\n * @param {IFitOptions} options - provide the bounds value.\n *\n * @private\n */\n DiagramScroller.prototype.fitToPage = function (options) {\n options = options || {};\n var mode = options.mode;\n var region = options.region;\n var margin = options.margin || {};\n var canZoomIn = options.canZoomIn;\n var customBounds = options.customBounds;\n // Allows fitToPage when the currentZoom less than minZoom.\n var canZoomOut = options.canZoomOut;\n margin.bottom = margin.bottom || 25;\n margin.top = margin.top || 25;\n margin.left = margin.left || 25;\n margin.right = margin.right || 25;\n var bounds = customBounds;\n var factor;\n var deltaX = -this.horizontalOffset;\n var deltaY = -this.verticalOffset;\n region = region ? region : 'PageSettings';\n //fit mode\n if ((region === 'PageSettings' && this.diagram.pageSettings.width && this.diagram.pageSettings.height)\n || (this.diagram.nodes.length > 0 || this.diagram.connectors.length > 0)) {\n mode = mode ? mode : 'Page';\n if (region !== 'CustomBounds') {\n bounds = this.getPageBounds(true, region, true);\n }\n var scale = { x: 0, y: 0 };\n //Bug 853566: Fit to page is not working when zoom value less than minZoom.\n // Resetting margin value if the margin value is greater than the viewport size to avoid scale value in negative.\n if ((margin.left + margin.right) > this.viewPortWidth) {\n if (this.viewPortWidth <= 100) {\n margin.left = 5;\n margin.right = 5;\n }\n else {\n margin.left = 25;\n margin.right = 25;\n }\n }\n if ((margin.top + margin.bottom) > this.viewPortHeight) {\n if (this.viewPortHeight <= 100) {\n margin.top = 5;\n margin.bottom = 5;\n }\n else {\n margin.top = 25;\n margin.bottom = 25;\n }\n }\n scale.x = (this.viewPortWidth - (margin.left + margin.right)) / (bounds.width);\n scale.y = (this.viewPortHeight - (margin.top + margin.bottom)) / (bounds.height);\n if (!canZoomIn && (((bounds.width - this.horizontalOffset) < this.viewPortWidth) &&\n (bounds.height - this.verticalOffset) < this.viewPortHeight)) {\n scale.x = Math.min(this.currentZoom, scale.x);\n scale.y = Math.min(this.currentZoom, scale.y);\n }\n var zoomFactor = void 0;\n var centerX = void 0;\n var centerY = void 0;\n switch (mode) {\n case 'Width':\n zoomFactor = scale.x;\n factor = zoomFactor / this.currentZoom;\n centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY -= -this.verticalOffset * factor;\n deltaY = region !== 'CustomBounds' ? deltaY : deltaY - this.verticalOffset * factor;\n break;\n case 'Height':\n zoomFactor = scale.y;\n factor = (zoomFactor / this.currentZoom);\n centerX = ((this.viewPortWidth - (bounds.width) * zoomFactor) / 2) - bounds.x * zoomFactor;\n centerY = ((this.viewPortHeight - (bounds.height) * zoomFactor) / 2) - bounds.y * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor;\n break;\n case 'Page':\n zoomFactor = Math.min(scale.x, scale.y);\n factor = (zoomFactor / this.currentZoom);\n centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor;\n centerY = (this.viewPortHeight - (bounds.height) * zoomFactor) / 2 - bounds.y * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor;\n break;\n }\n /**\n * EJ2-62912 - fit to page is not working properly when call it multiple times.\n */\n this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true, undefined, undefined, canZoomOut);\n }\n else {\n factor = 1 / this.currentZoom;\n this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true, undefined, undefined, canZoomOut);\n }\n };\n /**\n * bringIntoView method \\\n *\n * @returns { void } bringIntoView method .\\\n * @param {Rect} rect - provide the bounds value.\n * @param {boolean} isBringIntoView - provide the isBringIntoView value.\n *\n * @private\n */\n DiagramScroller.prototype.bringIntoView = function (rect, isBringIntoView) {\n // EJ2-68130-Bringintoview shows the object outside the viewport\n var x = 0;\n var y = 0;\n var scale = this.currentZoom;\n var bounds = rect;\n var hoffset = -this.horizontalOffset;\n var voffset = -this.verticalOffset;\n bounds = new Rect(bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale);\n var view = new Rect(hoffset, voffset, this.viewPortWidth, this.viewPortHeight);\n //To prevent nodes from being cut off in the horizontal and vertical scrollbars when calling the \"bring into view\" function, a padding value is added.\n var nodePadding = 20;\n if (!(view.containsRect(bounds))) {\n if (bounds.right > (-hoffset + this.viewPortWidth)) {\n x = bounds.right - this.viewPortWidth;\n x += nodePadding;\n }\n if (bounds.x < -hoffset) {\n x = bounds.x;\n }\n if (bounds.bottom > (-voffset + this.viewPortHeight)) {\n y = bounds.bottom - this.viewPortHeight;\n y += nodePadding;\n }\n if (bounds.y < -voffset) {\n y = bounds.y;\n }\n this.zoom(1, -this.horizontalOffset - x, -this.verticalOffset - y, null, undefined, isBringIntoView);\n }\n };\n /**\n * bringToCenter method \\\n *\n * @returns { void } bringToCenter method .\\\n * @param {Rect} bounds - provide the bounds value.\n *\n * @private\n */\n DiagramScroller.prototype.bringToCenter = function (bounds) {\n var scale = this.currentZoom;\n var actualbounds = new Rect(bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale);\n var hoffset = actualbounds.x + actualbounds.width / 2 - this.viewPortWidth / 2;\n var voffset = actualbounds.y + actualbounds.height / 2 - this.viewPortHeight / 2;\n /**\n * In applyScrollLimit method the sign of deltaX and deltaY\n * will be changed ,so here we change the sign.\n * similarly for bringIntoView.\n */\n hoffset *= -1;\n voffset *= -1;\n this.zoom(1, -this.horizontalOffset - hoffset, -this.verticalOffset - voffset, null);\n };\n DiagramScroller.prototype.applyScrollLimit = function (hOffset, vOffset, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll) {\n /**\n * EJ2-60980- ScrollOffset is not updated properly in runtime.\n * EJ2-62524 - panning is not working properly in diagram.\n * isInteractiveZoomPan is undefined while setting scrollOffset at runtime.\n */\n if (this.diagram.scrollSettings.scrollLimit === 'Infinity') {\n if (isInteractiveZoomPan === undefined && !isBringIntoView) {\n hOffset = -hOffset;\n vOffset = -vOffset;\n }\n }\n if (this.diagram.scrollSettings.scrollLimit !== 'Infinity') {\n var bounds = void 0;\n if (this.diagram.scrollSettings.scrollLimit === 'Limited') {\n var scrollableBounds = this.diagram.scrollSettings.scrollableArea;\n bounds = new Rect(scrollableBounds.x, scrollableBounds.y, scrollableBounds.width, scrollableBounds.height);\n }\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // Added below code to get the page bounds based on the scroll.\n bounds = bounds || (isTrackpadScroll ? this.getPageBounds() : this.getPageBounds(true));\n bounds.x *= this.currentZoom;\n bounds.y *= this.currentZoom;\n bounds.width *= this.currentZoom;\n bounds.height *= this.currentZoom;\n if (isInteractiveZoomPan !== undefined) {\n hOffset *= -1;\n vOffset *= -1;\n }\n // EJ2-69238 - Added below code to multiple the horizontal and vertical offset to bring the node in viewport\n if (isBringIntoView) {\n hOffset *= -1;\n vOffset *= -1;\n }\n var allowedRight = Math.max(bounds.right, this.viewPortWidth);\n if (!isBringIntoView && !(hOffset <= bounds.x && (hOffset + this.viewPortWidth >= bounds.right ||\n hOffset >= bounds.right - this.viewPortWidth)\n || hOffset >= bounds.x && (hOffset + this.viewPortWidth <= allowedRight))) {\n //not allowed case\n if (hOffset >= bounds.x) {\n hOffset = Math.max(bounds.x, Math.min(hOffset, hOffset - (hOffset + this.viewPortWidth - this.vScrollSize - allowedRight)));\n }\n else {\n var allowed = bounds.right - this.viewPortWidth;\n hOffset = Math.min(allowed, bounds.x);\n }\n }\n var allowedBottom = Math.max(bounds.bottom, this.viewPortHeight);\n // EJ2-69238 - Added below code to restrict the min value calculation for vertical offset in bringIntoview scenarion.\n if (!isBringIntoView && !(vOffset <= bounds.y && vOffset + this.viewPortHeight >= bounds.bottom\n || vOffset >= bounds.y && vOffset + this.viewPortHeight <= allowedBottom)) {\n //not allowed case\n if (vOffset >= bounds.y) {\n vOffset = Math.max(bounds.y, Math.min(vOffset, vOffset - (vOffset + this.viewPortHeight - this.hScrollSize - allowedBottom)));\n }\n else {\n var allowed = bounds.bottom - this.viewPortHeight;\n vOffset = Math.min(bounds.y, allowed);\n }\n }\n hOffset *= -1;\n vOffset *= -1;\n }\n return { x: hOffset, y: vOffset };\n };\n return DiagramScroller;\n}());\nexport { DiagramScroller };\n","/**\n * Quad helps to maintain a set of objects that are contained within the particular region\n */\n/** @private */\nvar Quad = /** @class */ (function () {\n /**\n * Constructor for creating the Quad class\n *\n * @param {number} left The symbol palette model.\n * @param {number} top The symbol palette element.\n * @param {number} width The symbol palette element.\n * @param {number} height The symbol palette element.\n * @param {SpatialSearch} spatialSearching The symbol palette element.\n * @private\n */\n function Quad(left, top, width, height, spatialSearching) {\n this.objects = [];\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n this.spatialSearch = spatialSearching;\n }\n /**\n * findQuads method\\\n *\n * @returns { void} findQuads method .\\\n * @param {Rect} currentViewPort - provide the options value.\n * @param {Quad[]} quads - provide the options value.\n * @private\n */\n Quad.prototype.findQuads = function (currentViewPort, quads) {\n if (this.first != null && this.first.isIntersect(currentViewPort)) {\n this.first.findQuads(currentViewPort, quads);\n }\n if (this.second != null && this.second.isIntersect(currentViewPort)) {\n this.second.findQuads(currentViewPort, quads);\n }\n if (this.third != null && this.third.isIntersect(currentViewPort)) {\n this.third.findQuads(currentViewPort, quads);\n }\n if (this.fourth != null && this.fourth.isIntersect(currentViewPort)) {\n this.fourth.findQuads(currentViewPort, quads);\n }\n if (this.objects.length > 0) {\n quads.push(this);\n }\n };\n Quad.prototype.isIntersect = function (t) {\n if (this.left + this.width < t.left || this.top + this.height < t.top || this.left > t.right || this.top > t.bottom) {\n return false;\n }\n return true;\n };\n /**\n * selectQuad method\\\n *\n * @returns { Quad } selectQuad method .\\\n * @private\n */\n Quad.prototype.selectQuad = function () {\n var target = null;\n // eslint-disable-next-line\n var current = this;\n var quadSet;\n while (current != null) {\n quadSet = current.getQuad(target);\n current = quadSet.source;\n target = quadSet.target || target;\n }\n return target;\n };\n Quad.prototype.getQuad = function (target) {\n target = null;\n var halfWidth = this.width / 2;\n var halfHeight = this.height / 2;\n if (halfWidth >= 1000 && halfHeight >= 1000) {\n var xCenter = this.left + halfWidth;\n var yCenter = this.top + halfHeight;\n if (this.spatialSearch.childRight <= xCenter) {\n if (this.spatialSearch.childBottom <= yCenter) {\n if (!this.first) {\n var newQuad = new Quad(this.left, this.top, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.first = newQuad;\n }\n return { source: this.first };\n }\n if (this.spatialSearch.childTop >= yCenter) {\n if (!this.third) {\n var newQuad = new Quad(this.left, yCenter, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.third = newQuad;\n }\n return { source: this.third };\n }\n }\n else if (this.spatialSearch.childLeft >= xCenter) {\n if (this.spatialSearch.childBottom <= yCenter) {\n if (!this.second) {\n var newQuad = new Quad(xCenter, this.top, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.second = newQuad;\n }\n return { source: this.second };\n }\n if (this.spatialSearch.childTop >= yCenter) {\n if (!this.fourth) {\n var newQuad = new Quad(xCenter, yCenter, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.fourth = newQuad;\n }\n return { source: this.fourth };\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n target = this;\n this.objects.push(this.spatialSearch.childNode);\n return { target: this };\n };\n /**\n * isContained method\\\n *\n * @returns { boolean } isContained method .\\\n * @private\n */\n Quad.prototype.isContained = function () {\n if (this.spatialSearch.childLeft >= this.left && this.spatialSearch.childRight <= this.left + this.width &&\n this.spatialSearch.childTop >= this.top && this.spatialSearch.childBottom <= this.top + this.height) {\n return true;\n }\n return false;\n };\n /**\n * addIntoAQuad method\\\n *\n * @returns { Quad } addIntoAQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n Quad.prototype.addIntoAQuad = function (node) {\n var quadAddition = {};\n this.spatialSearch.setCurrentNode(node);\n var quad = null;\n while (!quadAddition.isAdded) {\n quadAddition = this.spatialSearch.parentQuad.add(quad);\n quad = quadAddition.quad;\n }\n return quad;\n };\n Quad.prototype.add = function (quad) {\n quad = null;\n if (this.isContained()) {\n quad = this.selectQuad();\n return { isAdded: true, quad: quad };\n }\n else {\n var newParent = void 0;\n var isempty = this.objects.length === 0 && !this.first && !this.second && !this.third &&\n !this.fourth;\n var newWidth = this.width * 2;\n var newHeight = this.height * 2;\n if (this.spatialSearch.childLeft < this.left) {\n if (this.spatialSearch.childTop < this.top) {\n newParent = new Quad(this.left - this.width, this.top - this.height, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.fourth = this;\n }\n }\n else {\n newParent = new Quad(this.left - this.width, this.top, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.second = this;\n }\n }\n }\n else if (this.spatialSearch.childTop < this.top) {\n newParent = new Quad(this.left, this.top - this.height, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.third = this;\n }\n }\n else {\n newParent = new Quad(this.left, this.top, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.first = this;\n }\n }\n this.parent = newParent;\n this.spatialSearch.parentQuad = newParent;\n return { isAdded: false, quad: quad };\n //newParent.AddIntoaQuad(node);\n }\n };\n return Quad;\n}());\nexport { Quad };\n","import { Rect } from '../../primitives/rect';\nimport { Quad } from './quad';\n/**\n * Spatial search module helps to effectively find the objects over diagram\n */\nvar SpatialSearch = /** @class */ (function () {\n /**\n * Constructor for creating the spatial search\n *\n * @param {number} objectTable The objectTable.\n * @private\n */\n function SpatialSearch(objectTable) {\n this.quadSize = 500;\n this.objectTable = objectTable;\n this.parentQuad = new Quad(0, 0, this.quadSize * 2, this.quadSize * 2, this);\n this.pageLeft = Number.MAX_VALUE;\n this.pageRight = -Number.MAX_VALUE;\n this.pageTop = Number.MAX_VALUE;\n this.pageBottom = -Number.MAX_VALUE;\n this.quadTable = {};\n }\n /**\n * removeFromAQuad method\\\n *\n * @returns {void} removeFromAQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.removeFromAQuad = function (node) {\n if (this.quadTable[node.id]) {\n var quad = this.quadTable[node.id];\n var index = this.objectIndex(quad.objects, node);\n if (index !== -1) {\n quad.objects.splice(index, 1);\n this.update(quad);\n delete this.quadTable[node.id];\n }\n }\n };\n SpatialSearch.prototype.update = function (quad) {\n //EJ2-841966-Nodes disappears while enabling virtualization constrai\n if (quad.parent && quad.objects.length === 0 && quad.first == null && quad.second == null\n && quad.third == null && quad.fourth == null) {\n var parent_1 = quad.parent;\n if (parent_1.first === quad) {\n parent_1.first = null;\n }\n else if (parent_1.second === quad) {\n parent_1.second = null;\n }\n else if (parent_1.third === quad) {\n parent_1.third = null;\n }\n else if (parent_1.fourth === quad) {\n parent_1.fourth = null;\n }\n this.update(quad.parent);\n }\n else {\n if (quad === this.parentQuad && !quad.first && !quad.second && !quad.third && !quad.fourth) {\n quad.left = 0;\n quad.width = 1000;\n quad.top = 0;\n quad.height = 1000;\n }\n return;\n }\n };\n SpatialSearch.prototype.addIntoAQuad = function (node) {\n var quad = this.parentQuad.addIntoAQuad(node);\n this.quadTable[node.id] = quad;\n };\n SpatialSearch.prototype.objectIndex = function (objects, node) {\n for (var i = 0; i < objects.length; i++) {\n if ((objects[parseInt(i.toString(), 10)]).id === node.id) {\n return i;\n }\n }\n return -1;\n };\n SpatialSearch.prototype.updateQuad = function (node) {\n this.setCurrentNode(node);\n var nodBounds = node.outerBounds;\n if (!(!isNaN(nodBounds.x) && !isNaN(nodBounds.y) &&\n !isNaN(nodBounds.width) && !isNaN(nodBounds.height))) {\n return false;\n }\n //nodBounds = new Rect(nodBounds.X.Valid(), nodBounds.Y.Valid(), nodBounds.Width.Valid(), nodBounds.Height.Valid());\n if (this.quadTable[node.id]) {\n var quad = this.quadTable[node.id];\n if (!quad.isContained()) {\n this.removeFromAQuad(node);\n this.addIntoAQuad(node);\n }\n }\n else {\n this.addIntoAQuad(node);\n }\n if (this.isWithinPageBounds(nodBounds) &&\n this.leftElement !== node &&\n this.topElement !== node &&\n this.rightElement !== node &&\n this.bottomElement !== node) {\n //contained - no change\n }\n else {\n var modified = false;\n if (this.pageLeft !== this.childLeft || node !== this.leftElement) {\n if (this.pageLeft >= this.childLeft) {\n this.pageLeft = this.childLeft;\n this.leftElement = node;\n modified = true;\n }\n else if (node === this.leftElement) {\n this.pageLeft = Number.MAX_VALUE;\n this.findLeft(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageTop !== this.childTop || node !== this.topElement) {\n if (this.pageTop >= this.childTop) {\n this.pageTop = this.childTop;\n this.topElement = node;\n modified = true;\n }\n else if (node === this.topElement) {\n this.pageTop = Number.MAX_VALUE;\n this.findTop(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageBottom !== this.childBottom || node !== this.bottomElement) {\n if (this.pageBottom <= this.childBottom) {\n modified = true;\n this.pageBottom = this.childBottom;\n this.bottomElement = node;\n }\n else if (node === this.bottomElement) {\n this.pageBottom = -Number.MAX_VALUE;\n this.findBottom(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageRight !== this.childRight || node !== this.rightElement) {\n if (this.pageRight <= this.childRight) {\n this.pageRight = this.childRight;\n this.rightElement = node;\n modified = true;\n }\n else if (node === this.rightElement) {\n this.pageRight = -Number.MAX_VALUE;\n this.findRight(this.parentQuad);\n modified = true;\n }\n }\n return modified;\n }\n this.setCurrentNode(null);\n return false;\n };\n SpatialSearch.prototype.isWithinPageBounds = function (node) {\n if (node.left >= this.pageLeft && node.right <= this.pageRight && node.top >= this.pageTop\n && node.bottom <= this.pageBottom) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * findQuads method\\\n *\n * @returns { Quad[] } findQuads method .\\\n * @param {Rect} region - provide the options value.\n * @private\n */\n SpatialSearch.prototype.findQuads = function (region) {\n var quads = [];\n this.parentQuad.findQuads(region, quads);\n return quads;\n };\n /**\n * findObjects method\\\n *\n * @returns { IGroupable[] } findObjects method .\\\n * @param {Rect} region - provide the options value.\n * @private\n */\n SpatialSearch.prototype.findObjects = function (region) {\n var quads = this.findQuads(region);\n var objects = [];\n for (var _i = 0, quads_1 = quads; _i < quads_1.length; _i++) {\n var quad = quads_1[_i];\n for (var _a = 0, _b = quad.objects; _a < _b.length; _a++) {\n var obj = _b[_a];\n if (obj.outerBounds.intersects(region)) {\n objects.push(this.objectTable[obj.id]);\n }\n }\n }\n return objects;\n };\n /**\n * updateBounds method\\\n *\n * @returns { boolean } updateBounds method .\\\n * @param {IGroupable} node - provide the options value.\n * @param {boolean} isSwimLane - provide boolean if its swimlane container\n * @private\n */\n SpatialSearch.prototype.updateBounds = function (node, isSwimLane) {\n var modified = false;\n //879088: Swimalane exception when drag and dropped from palette\n if (isSwimLane) {\n if (this.topElement && node.id === this.topElement.id) {\n modified = this.updateTop();\n }\n if (this.leftElement && node.id === this.leftElement.id) {\n modified = this.updateLeft();\n }\n if (this.rightElement && node.id === this.rightElement.id) {\n modified = this.updateRight();\n }\n if (this.bottomElement && node.id === this.bottomElement.id) {\n modified = this.updateBottom();\n }\n }\n else {\n if (node === this.topElement) {\n modified = this.updateTop();\n }\n if (node === this.leftElement) {\n modified = this.updateLeft();\n }\n if (node === this.rightElement) {\n modified = this.updateRight();\n }\n if (node === this.bottomElement) {\n modified = this.updateBottom();\n }\n }\n return modified;\n };\n SpatialSearch.prototype.updateTop = function () {\n this.pageTop = Number.MAX_VALUE;\n this.topElement = null;\n this.findTop(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.updateBottom = function () {\n this.pageBottom = -Number.MAX_VALUE;\n this.bottomElement = null;\n this.findBottom(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.updateLeft = function () {\n this.pageLeft = Number.MAX_VALUE;\n this.leftElement = null;\n this.findLeft(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.updateRight = function () {\n this.pageRight = -Number.MAX_VALUE;\n this.rightElement = null;\n this.findRight(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.findBottom = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.third || quad.fourth) {\n if (quad.third) {\n this.findBottom(quad.third);\n }\n if (quad.fourth) {\n this.findBottom(quad.fourth);\n }\n }\n else {\n if (quad.second) {\n this.findBottom(quad.second);\n }\n if (quad.first) {\n this.findBottom(quad.first);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageBottom <= node.outerBounds.bottom) {\n this.pageBottom = node.outerBounds.bottom;\n this.bottomElement = node;\n }\n }\n };\n SpatialSearch.prototype.findRight = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.second || quad.fourth) {\n if (quad.second) {\n this.findRight(quad.second);\n }\n if (quad.fourth) {\n this.findRight(quad.fourth);\n }\n }\n // EJ2-65880 - Exception occurs on dragging outside the canvas\n {\n if (quad.first) {\n this.findRight(quad.first);\n }\n if (quad.third) {\n this.findRight(quad.third);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageRight <= node.outerBounds.right) {\n this.pageRight = node.outerBounds.right;\n this.rightElement = node;\n }\n }\n };\n SpatialSearch.prototype.findLeft = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.first || quad.third) {\n if (quad.first) {\n this.findLeft(quad.first);\n }\n if (quad.third) {\n this.findLeft(quad.third);\n }\n }\n else {\n if (quad.second) {\n this.findLeft(quad.second);\n }\n if (quad.fourth) {\n this.findLeft(quad.fourth);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageLeft >= node.outerBounds.left) {\n this.pageLeft = node.outerBounds.left;\n this.leftElement = node;\n }\n }\n };\n SpatialSearch.prototype.findTop = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.first || quad.second) {\n if (quad.first) {\n this.findTop(quad.first);\n }\n if (quad.second) {\n this.findTop(quad.second);\n }\n }\n else {\n if (quad.third) {\n this.findTop(quad.third);\n }\n if (quad.fourth) {\n this.findTop(quad.fourth);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageTop >= node.outerBounds.top) {\n this.pageTop = node.outerBounds.top;\n this.topElement = node;\n }\n }\n };\n /**\n * setCurrentNode method\\\n *\n * @returns { void } setCurrentNode method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.setCurrentNode = function (node) {\n this.childNode = node;\n if (node) {\n var r = node.outerBounds;\n this.childLeft = Number(r.left);\n this.childTop = Number(r.top);\n this.childRight = Number(r.right);\n this.childBottom = Number(r.bottom);\n }\n else {\n this.childLeft = Number.MAX_VALUE;\n this.childTop = Number.MAX_VALUE;\n this.childRight = -Number.MAX_VALUE;\n this.childBottom = -Number.MAX_VALUE;\n }\n };\n /**\n * getPageBounds method\\\n *\n * @returns { Rect } getPageBounds method .\\\n * @param {number} originX - provide the options value.\n * @param {number} originY - provide the options value.\n * @private\n */\n SpatialSearch.prototype.getPageBounds = function (originX, originY) {\n if (this.pageLeft === Number.MAX_VALUE) {\n return new Rect(0, 0, 0, 0);\n }\n var left = originX !== undefined ? Math.min(this.pageLeft, 0) : this.pageLeft;\n var top = originY !== undefined ? Math.min(this.pageTop, 0) : this.pageTop;\n return new Rect(Math.round(left), Math.round(top), Math.round(this.pageRight - left), Math.round(this.pageBottom - top));\n };\n /**\n * getQuad method\\\n *\n * @returns { Quad } getQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.getQuad = function (node) {\n return this.quadTable[node.id];\n };\n return SpatialSearch;\n}());\nexport { SpatialSearch };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Defines the serialization settings of diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * serializationSettings: { preventDefaults: true },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar SerializationSettings = /** @class */ (function (_super) {\n __extends(SerializationSettings, _super);\n function SerializationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], SerializationSettings.prototype, \"preventDefaults\", void 0);\n return SerializationSettings;\n}(ChildProperty));\nexport { SerializationSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar CustomCursorAction = /** @class */ (function (_super) {\n __extends(CustomCursorAction, _super);\n function CustomCursorAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CustomCursorAction.prototype, \"action\", void 0);\n __decorate([\n Property('')\n ], CustomCursorAction.prototype, \"cursor\", void 0);\n return CustomCursorAction;\n}(ChildProperty));\nexport { CustomCursorAction };\n","import { Rect } from '../primitives/rect';\nimport { findPoint, getIntersection, getOppositeDirection, getPortDirection } from '../utility/connector';\nimport { canEnableRouting } from '../utility/constraints-util';\n/**\n * Line Routing\n */\nvar LineRouting = /** @class */ (function () {\n /**\n * Constructor for the line routing module\n *\n * @private\n */\n function LineRouting() {\n this.size = 20;\n this.intermediatePoints = [];\n this.gridCollection = [];\n this.startArray = [];\n this.targetGridCollection = [];\n this.sourceGridCollection = [];\n this.considerWalkable = [];\n //constructs the line routing module\n }\n /**\n * lineRouting method \\\n *\n * @returns { void } lineRouting method .\\\n * @param {Diagram} diagram - provide the source value.\n *\n * @private\n */\n LineRouting.prototype.lineRouting = function (diagram) {\n var length = diagram.connectors.length;\n this.renderVirtualRegion(diagram);\n if (length > 0) {\n for (var k = 0; k < length; k++) {\n var connector = diagram.connectors[parseInt(k.toString(), 10)];\n if (connector.type === 'Orthogonal' && connector.visible) {\n this.refreshConnectorSegments(diagram, connector, true);\n }\n }\n }\n };\n /** @private */\n /**\n * renderVirtualRegion method \\\n *\n * @returns { void } renderVirtualRegion method .\\\n * @param {Diagram} diagram - provide the source value.\n * @param {boolean} isUpdate - provide the target value.\n *\n * @private\n */\n LineRouting.prototype.renderVirtualRegion = function (diagram, isUpdate) {\n /* tslint:disable */\n var extraBounds = this.size;\n if (diagram.spatialSearch['pageTop'] < 0 || diagram.spatialSearch['pageLeft'] < 0) {\n extraBounds = this.size + (this.size / 2);\n }\n var right = diagram.spatialSearch['pageRight'] + extraBounds;\n var bottom = diagram.spatialSearch['pageBottom'] + extraBounds;\n var left = diagram.spatialSearch['pageLeft'] - extraBounds;\n var top = diagram.spatialSearch['pageTop'] - extraBounds;\n left = left < 0 ? left - 20 : 0;\n top = top < 0 ? top - 20 : 0;\n /* tslint:enable */\n if ((isUpdate && (this.width !== (right - left) || this.height !== (bottom - top) ||\n this.diagramStartX !== left || this.diagramStartY !== top)) || isUpdate === undefined) {\n this.width = right - left;\n this.height = bottom - top;\n this.diagramStartX = left;\n this.diagramStartY = top;\n this.gridCollection = [];\n this.noOfRows = this.width / this.size;\n this.noOfCols = this.height / this.size;\n var size = this.size;\n var x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n var y = this.diagramStartY < 0 ? this.diagramStartY : 0;\n for (var i = 0; i < this.noOfCols; i++) {\n for (var j = 0; j < this.noOfRows; j++) {\n if (i === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.gridCollection.push([0]);\n }\n var grid = {\n x: x, y: y, width: size, height: size, gridX: j,\n gridY: i, walkable: true, tested: undefined, nodeId: []\n };\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)] = grid;\n x += size;\n }\n x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n y += size;\n }\n }\n var nodes = this.findNodes(diagram.nodes);\n this.updateNodesInVirtualRegion(nodes);\n };\n LineRouting.prototype.findNodes = function (nodes) {\n var objects = [];\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (node.shape.type !== 'SwimLane' && !node.isLane && !node.isPhase && !node.isHeader && node.visible) {\n objects.push(node);\n }\n }\n return objects;\n };\n LineRouting.prototype.updateNodesInVirtualRegion = function (diagramNodes) {\n var size = this.size;\n var x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n var y = this.diagramStartY < 0 ? this.diagramStartY : 0;\n for (var i = 0; i < this.noOfCols; i++) {\n for (var j = 0; j < this.noOfRows; j++) {\n var grid = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)];\n var rectangle = new Rect(x, y, this.size, this.size);\n var isContains = void 0;\n var k = void 0;\n grid.walkable = true;\n grid.tested = undefined;\n grid.nodeId = [];\n for (k = 0; k < diagramNodes.length; k++) {\n if (diagramNodes[parseInt(k.toString(), 10)].wrapper.bounds) {\n isContains = this.intersectRect(rectangle, diagramNodes[parseInt(k.toString(), 10)].wrapper.bounds);\n }\n if (isContains) {\n grid.nodeId.push(diagramNodes[parseInt(k.toString(), 10)].id);\n grid.walkable = false;\n if (diagramNodes[parseInt(k.toString(), 10)].parentId !== '') {\n grid.parentNodeId = diagramNodes[parseInt(k.toString(), 10)].parentId;\n }\n }\n }\n x += size;\n }\n x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n y += size;\n }\n };\n LineRouting.prototype.intersectRect = function (r1, r2) {\n return !(r2.left >= r1.right || r2.right <= r1.left ||\n r2.top >= r1.bottom || r2.bottom <= r1.top);\n };\n LineRouting.prototype.findEndPoint = function (connector, isSource, isPortBounds) {\n var endPoint;\n var portDirection;\n // EJ2-65876 - Exception occurs on line routing injection module\n if ((isSource && connector.sourcePortID !== '' && connector.sourcePortWrapper) || (!isSource && connector.targetPortID !== '' && connector.targetPortWrapper)) {\n endPoint = (isSource) ? { x: connector.sourcePortWrapper.offsetX, y: connector.sourcePortWrapper.offsetY } :\n { x: connector.targetPortWrapper.offsetX, y: connector.targetPortWrapper.offsetY };\n portDirection = getPortDirection(endPoint, undefined, (isSource) ? connector.sourceWrapper.bounds : connector.targetWrapper.bounds, false);\n var bounds = (isSource) ? connector.sourcePortWrapper.bounds : connector.targetPortWrapper.bounds;\n if (isPortBounds) {\n if (portDirection === 'Top') {\n endPoint = { x: bounds.topCenter.x, y: bounds.topCenter.y };\n }\n else if (portDirection === 'Left') {\n endPoint = { x: bounds.middleLeft.x, y: bounds.middleLeft.y };\n }\n else if (portDirection === 'Right') {\n endPoint = { x: bounds.middleRight.x, y: bounds.middleRight.y };\n }\n else {\n endPoint = { x: bounds.bottomCenter.x, y: bounds.bottomCenter.y };\n }\n }\n else {\n endPoint = { x: bounds.center.x, y: bounds.center.y };\n }\n }\n else {\n if ((isSource && this.startNode) || (!isSource && this.targetNode)) {\n endPoint = (isSource) ? { x: this.startNode.wrapper.offsetX, y: this.startNode.wrapper.offsetY } :\n { x: this.targetNode.wrapper.offsetX, y: this.targetNode.wrapper.offsetY };\n }\n else {\n endPoint = (isSource) ? { x: connector.sourcePoint.x, y: connector.sourcePoint.y } :\n { x: connector.targetPoint.x, y: connector.targetPoint.y };\n }\n }\n return endPoint;\n };\n /**\n * refreshConnectorSegments method \\\n *\n * @returns { void } refreshConnectorSegments method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Connector} connector - provide the connector value.\n * @param {boolean} isUpdate - provide the diagram value.\n * @param {boolean} isEnableRouting - provide enableRouting value.\n *\n * @private\n */\n LineRouting.prototype.refreshConnectorSegments = function (diagram, connector, isUpdate, isEnableRouting) {\n var sourceId = connector.sourceID;\n var targetId = connector.targetID;\n var sourcePortID = connector.sourcePortID;\n var targetPortID = connector.targetPortID;\n var startPoint;\n var targetPoint;\n var sourcePortDirection;\n var targetPortDirection;\n var grid;\n var sourceTop;\n var sourceBottom;\n var isBreak;\n var sourceLeft;\n var sourceRight;\n var targetRight;\n var targetTop;\n var targetBottom;\n var targetLeft;\n if (canEnableRouting(connector, diagram) || isEnableRouting) {\n this.startNode = diagram.nameTable[\"\" + sourceId];\n this.targetNode = diagram.nameTable[\"\" + targetId];\n this.intermediatePoints = [];\n this.startArray = [];\n this.targetGridCollection = [];\n this.sourceGridCollection = [];\n this.startGrid = undefined;\n this.targetGrid = undefined;\n for (var i = 0; i < this.noOfCols; i++) {\n for (var j = 0; j < this.noOfRows; j++) {\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].tested\n = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].parent = undefined;\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].previousDistance\n = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].afterDistance = undefined;\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].totalDistance = undefined;\n }\n }\n // Set the source point and target point\n startPoint = this.findEndPoint(connector, true);\n targetPoint = this.findEndPoint(connector, false);\n // Find the start grid and target grid\n for (var i = 0; i < this.noOfRows; i++) {\n for (var j = 0; j < this.noOfCols; j++) {\n grid = this.gridCollection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)];\n var rectangle = new Rect(grid.x, grid.y, grid.width, grid.height);\n if (rectangle.containsPoint(startPoint) && !this.startGrid &&\n (grid.nodeId.indexOf(sourceId) !== -1 || sourceId === '')) {\n this.startGrid = (sourcePortID && this.startGrid &&\n (sourcePortDirection === 'Left' || sourcePortDirection === 'Top')) ? this.startGrid : grid;\n }\n if (rectangle.containsPoint(targetPoint) && !this.targetGrid &&\n (grid.nodeId.indexOf(targetId) !== -1 || targetId === '')) {\n this.targetGrid = (targetPortID && this.targetGrid &&\n (targetPortDirection === 'Left' || targetPortDirection === 'Top')) ? this.targetGrid : grid;\n }\n if (!sourcePortID && this.startNode) {\n var bounds = this.startNode.wrapper.bounds;\n if (rectangle.containsPoint(bounds.topCenter) && !sourceTop) {\n sourceTop = grid;\n }\n if (rectangle.containsPoint(bounds.middleLeft) && !sourceLeft) {\n sourceLeft = grid;\n }\n if (rectangle.containsPoint(bounds.middleRight) && !sourceRight) {\n sourceRight = grid;\n }\n if (rectangle.containsPoint(bounds.bottomCenter) && !sourceBottom) {\n sourceBottom = grid;\n }\n }\n if (!targetPortID && this.targetNode) {\n var bounds = this.targetNode.wrapper.bounds;\n if (rectangle.containsPoint(bounds.topCenter) && !targetTop) {\n targetTop = grid;\n }\n if (rectangle.containsPoint(bounds.middleLeft) && !targetLeft) {\n targetLeft = grid;\n }\n if (rectangle.containsPoint(bounds.middleRight) && !targetRight) {\n targetRight = grid;\n }\n if (rectangle.containsPoint({ x: bounds.bottomCenter.x, y: bounds.bottomCenter.y }) && !targetBottom) {\n targetBottom = grid;\n }\n }\n }\n }\n this.findEdgeBoundary(sourcePortID, sourceLeft, sourceRight, sourceTop, sourceBottom, true);\n this.findEdgeBoundary(targetPortID, targetLeft, targetRight, targetTop, targetBottom, false);\n this.startGrid.totalDistance = 0;\n this.startGrid.previousDistance = 0;\n this.intermediatePoints.push({ x: this.startGrid.gridX, y: this.startGrid.gridY });\n this.startArray.push(this.startGrid);\n if (connector && targetLeft && targetRight && targetTop && targetBottom) {\n this.checkObstacles(connector, diagram, targetLeft, targetRight, targetTop, targetBottom);\n }\n // eslint-disable-next-line no-labels\n renderPathElement: while (this.startArray.length > 0) {\n var startGridNode = this.startArray.pop();\n //890444:Exception thrown while drag and drop shapes on top of each other repeatedly with Line Routing\n if (startGridNode) {\n for (var i = 0; i < this.targetGridCollection.length; i++) {\n var target = this.targetGridCollection[parseInt(i.toString(), 10)];\n if (startGridNode) {\n if (startGridNode.gridX === target.gridX && startGridNode.gridY === target.gridY) {\n this.getIntermediatePoints(startGridNode);\n this.optimizeIntermediatePoints();\n if (startGridNode.nodeId && startGridNode.nodeId.length > 1) {\n connector.segments = [];\n }\n isBreak = this.updateConnectorSegments(diagram, this.intermediatePoints, this.gridCollection, connector, isUpdate);\n if (!isBreak) {\n this.targetGridCollection.splice(this.targetGridCollection.indexOf(target), 1);\n startGridNode = this.startArray.pop();\n }\n else {\n this.considerWalkable = [];\n // eslint-disable-next-line no-labels\n break renderPathElement;\n }\n }\n }\n }\n if (startGridNode) {\n this.findPath(startGridNode);\n }\n }\n }\n }\n };\n LineRouting.prototype.checkChildNodes = function (grid, isSource) {\n var check = false;\n var reject = false;\n if (grid.nodeId.length >= 1 && !isSource) {\n for (var i = 0; i < grid.nodeId.length; i++) {\n var id = grid.nodeId[parseInt(i.toString(), 10)];\n for (var j = 0; j < grid.nodeId.length; j++) {\n if (this.targetNode.parentId === grid.nodeId[parseInt(j.toString(), 10)]) {\n reject = true;\n }\n }\n if (!reject && this.targetNode.id === id) {\n check = true;\n }\n else {\n check = false;\n }\n }\n }\n else {\n if (grid.nodeId.length === 1) {\n check = true;\n }\n }\n return check;\n };\n LineRouting.prototype.findEdgeBoundary = function (portID, left, right, top, bottom, isSource) {\n var grid;\n var collection = (isSource) ? this.sourceGridCollection : this.targetGridCollection;\n if (!portID && ((isSource) ? this.startNode : this.targetNode)) {\n for (var i = left.gridX; i <= right.gridX; i++) {\n grid = this.gridCollection[parseInt(i.toString(), 10)][left.gridY];\n if ((this.checkChildNodes(grid, isSource) && (i === left.gridX || i === right.gridX)) ||\n (i !== left.gridX && i !== right.gridX)) {\n collection.push(grid);\n }\n }\n for (var i = top.gridY; i <= bottom.gridY; i++) {\n grid = this.gridCollection[top.gridX][parseInt(i.toString(), 10)];\n if (((this.checkChildNodes(grid, isSource) && (i === top.gridY || i === bottom.gridY)) ||\n (i !== top.gridY && i !== bottom.gridY)) && collection.indexOf(grid) === -1) {\n collection.push(grid);\n }\n }\n }\n else {\n collection.push((isSource) ? this.startGrid : this.targetGrid);\n }\n };\n LineRouting.prototype.checkObstacles = function (connector, diagram, targetLeft, targetRight, targetTop, targetBottom) {\n var neigbours = this.findNearestNeigbours(this.startGrid, this.gridCollection, true);\n if (neigbours.length === 0) {\n if (connector.sourcePortID !== '') {\n var endPoint = { x: connector.sourcePortWrapper.offsetX, y: connector.sourcePortWrapper.offsetY };\n var portDirection = getPortDirection(endPoint, undefined, connector.sourceWrapper.bounds, false);\n if (portDirection === 'Top') {\n this.resetGridColl(this.startGrid, 'top', true);\n }\n else if (portDirection === 'Right') {\n this.resetGridColl(this.startGrid, 'right', true);\n }\n else if (portDirection === 'Bottom') {\n this.resetGridColl(this.startGrid, 'bottom', true);\n }\n else {\n this.resetGridColl(this.startGrid, 'left', true);\n }\n }\n else {\n this.resetGridColl(this.startGrid, 'top', true);\n this.resetGridColl(this.startGrid, 'right', true);\n this.resetGridColl(this.startGrid, 'bottom', true);\n this.resetGridColl(this.startGrid, 'left', true);\n }\n }\n neigbours = this.findNearestNeigbours(this.targetGrid, this.gridCollection, false);\n if (neigbours.length === 0) {\n if (connector.targetPortID !== '') {\n var endPoint = { x: connector.targetPortWrapper.offsetX, y: connector.targetPortWrapper.offsetY };\n var portDirection = getPortDirection(endPoint, undefined, connector.targetWrapper.bounds, false);\n if (portDirection === 'Top') {\n this.resetGridColl(this.targetGrid, 'top', true);\n }\n else if (portDirection === 'Right') {\n this.resetGridColl(this.targetGrid, 'right', true);\n }\n else if (portDirection === 'Bottom') {\n this.resetGridColl(this.targetGrid, 'bottom', true);\n }\n else {\n this.resetGridColl(this.targetGrid, 'left', true);\n }\n }\n else {\n this.resetGridColl(this.targetGrid, 'top', false);\n this.resetGridColl(this.targetGrid, 'right', false);\n this.resetGridColl(this.targetGrid, 'bottom', false);\n this.resetGridColl(this.targetGrid, 'left', false);\n }\n }\n if (this.targetGridCollection.length > 1 && this.targetGridCollection[0].nodeId.length > 1) {\n for (var i = 0; i <= 1; i++) {\n var gridX = this.targetGridCollection[parseInt(i.toString(), 10)].gridX;\n var gridY = this.targetGridCollection[parseInt(i.toString(), 10)].gridY;\n var gridNodes = this.targetGridCollection[parseInt(i.toString(), 10)].nodeId;\n var targetNode = void 0;\n for (var k = 0; k < gridNodes.length; k++) {\n if (this.targetNode.id !== gridNodes[parseInt(k.toString(), 10)]) {\n targetNode = gridNodes[parseInt(k.toString(), 10)];\n break;\n }\n }\n var targetNodewrapper = void 0;\n var overLapNode = void 0;\n var contains = void 0;\n if (diagram.nameTable[this.targetNode.id]) {\n targetNodewrapper = diagram.nameTable[this.targetNode.id].wrapper;\n }\n if (diagram.nameTable[\"\" + targetNode]) {\n overLapNode = diagram.nameTable[\"\" + targetNode].wrapper;\n }\n if (targetNodewrapper && overLapNode) {\n contains = this.contains(overLapNode.bounds, targetNodewrapper.bounds);\n }\n var reject = void 0;\n for (var j = 0; j < gridNodes.length; j++) {\n if (this.targetNode.parentId === gridNodes[parseInt(j.toString(), 10)]) {\n reject = true;\n }\n }\n if (!this.gridCollection[parseInt(gridX.toString(), 10)][parseInt(gridY.toString(), 10)].walkable && contains && !reject) {\n var grid = void 0;\n var diff = void 0;\n grid = this.getEndvalue(targetLeft, 'left');\n diff = targetLeft.gridX - grid.gridX;\n this.changeValue(targetLeft, diff, 'left');\n grid = this.getEndvalue(targetRight, 'right');\n diff = grid.gridX - targetRight.gridX;\n this.changeValue(targetRight, diff, 'right');\n grid = this.getEndvalue(targetTop, 'top');\n diff = targetTop.gridY - grid.gridY;\n this.changeValue(targetTop, diff, 'top');\n grid = this.getEndvalue(targetBottom, 'bottom');\n diff = targetBottom.gridY - grid.gridY;\n this.changeValue(targetBottom, diff, 'top');\n }\n }\n }\n };\n LineRouting.prototype.contains = function (rect1, rect2) {\n return rect1.left <= rect2.left && rect1.right >= rect2.right && rect1.top <= rect2.top && rect1.bottom >= rect2.bottom;\n };\n LineRouting.prototype.getEndvalue = function (target, direction) {\n if (!this.gridCollection[target.gridX][target.gridY].walkable) {\n if (direction === 'left') {\n return this.getEndvalue(this.gridCollection[target.gridX - 1][target.gridY], direction);\n }\n if (direction === 'right') {\n return this.getEndvalue(this.gridCollection[target.gridX + 1][target.gridY], direction);\n }\n if (direction === 'top') {\n return this.getEndvalue(this.gridCollection[target.gridX][target.gridY - 1], direction);\n }\n if (direction === 'bottom') {\n return this.getEndvalue(this.gridCollection[target.gridX][target.gridY + 1], direction);\n }\n }\n else {\n return target;\n }\n return target;\n };\n LineRouting.prototype.changeValue = function (targetLeft, diff, direction) {\n if (!targetLeft.walkable) {\n this.considerWalkable.push(targetLeft);\n }\n var grid;\n for (var i = 0; i <= diff; i++) {\n if (direction === 'left') {\n grid = this.gridCollection[targetLeft.gridX - i][targetLeft.gridY];\n }\n else if (direction === 'right') {\n grid = this.gridCollection[targetLeft.gridX + i][targetLeft.gridY];\n }\n else if (direction === 'top') {\n grid = this.gridCollection[targetLeft.gridX][targetLeft.gridY - i];\n }\n else if (direction === 'bottom') {\n grid = this.gridCollection[targetLeft.gridX][targetLeft.gridY + i];\n }\n if (!grid.walkable) {\n this.considerWalkable.push(grid);\n }\n }\n };\n // Get all the intermediated points from target grid\n LineRouting.prototype.getIntermediatePoints = function (target) {\n var distance;\n this.intermediatePoints = [];\n while (target) {\n this.intermediatePoints.push({ x: target.gridX, y: target.gridY });\n target = target.parent;\n }\n this.intermediatePoints.reverse();\n //890444: Exception thrown while drag and drop shapes on top of each other repeatedly with Line Routing\n if (this.intermediatePoints.length >= 1 && this.intermediatePoints[0] !== undefined\n && this.intermediatePoints[1] !== undefined) {\n if (this.intermediatePoints[0].x === this.intermediatePoints[1].x) {\n if (this.intermediatePoints[0].y < this.intermediatePoints[1].y) {\n distance = this.neigbour(this.startGrid, 'bottom', undefined, true);\n this.intermediatePoints[0].y += distance - 1;\n }\n else {\n distance = this.neigbour(this.startGrid, 'top', undefined, true);\n this.intermediatePoints[0].y -= distance - 1;\n }\n }\n else {\n if (this.intermediatePoints[0].x < this.intermediatePoints[1].x) {\n distance = this.neigbour(this.startGrid, 'right', undefined, true);\n this.intermediatePoints[0].x += distance - 1;\n }\n else {\n distance = this.neigbour(this.startGrid, 'left', undefined, true);\n this.intermediatePoints[0].x -= distance - 1;\n }\n }\n }\n };\n LineRouting.prototype.optimizeIntermediatePoints = function () {\n this.intermediatePoints = this.removePointsInSameLine(this.intermediatePoints);\n this.intermediatePoints = this.getValidPoints(this.intermediatePoints);\n };\n LineRouting.prototype.removePointsInSameLine = function (points) {\n if (points.length < 3) {\n return points;\n }\n var result = [points[0]];\n for (var i = 1; i < points.length - 1; i++) {\n var prevPoint = result[result.length - 1];\n var currentPoint = points[parseInt(i.toString(), 10)];\n var nextPoint = points[i + 1];\n if (!this.arePointsInSameLine(prevPoint, currentPoint, nextPoint)) {\n result.push(currentPoint);\n }\n }\n result.push(points[points.length - 1]);\n return result;\n };\n LineRouting.prototype.arePointsInSameLine = function (point1, point2, point3) {\n return (point2.x - point1.x) * (point3.y - point1.y) === (point3.x - point1.x) * (point2.y - point1.y);\n };\n LineRouting.prototype.getValidPoints = function (points) {\n if (points.length < 4) {\n return points;\n }\n var i = 1;\n while (i < points.length - 3) {\n var lineStart1 = points[parseInt(i.toString(), 10)];\n var lineEnd1 = points[i + 1];\n var lineStart2 = points[i + 2];\n var lineEnd2 = points[i + 3];\n if (lineStart1.x === lineEnd1.x) {\n if ((lineEnd1.y < lineStart1.y && lineEnd2.y < lineStart2.y)\n || (lineEnd1.y > lineStart1.y && lineEnd2.y > lineStart2.y)) {\n var dx = lineStart1.x < lineStart2.x ? 1 : -1;\n var dy = lineEnd1.y < lineStart1.y ? -1 : 1;\n var neigbourGridX = lineStart1.x + dx;\n var neigbourGridY = lineStart1.y;\n var isValid = false;\n while (neigbourGridX !== lineEnd2.x || neigbourGridY !== lineEnd2.y) {\n if (!this.isWalkable(neigbourGridX, neigbourGridY)) {\n isValid = false;\n break;\n }\n else {\n isValid = true;\n }\n if (neigbourGridX !== lineStart2.x) {\n neigbourGridX += dx;\n }\n else {\n neigbourGridY += dy;\n }\n }\n if (isValid) {\n lineStart1.x = lineStart2.x;\n points.splice(i + 1, 2);\n continue;\n }\n }\n }\n else if (lineStart1.y === lineEnd1.y) {\n if ((lineEnd1.x < lineStart1.x && lineEnd2.x < lineStart2.x)\n || (lineEnd1.x > lineStart1.x && lineEnd2.x > lineStart2.x)) {\n var dy1 = lineStart1.y < lineStart2.y ? 1 : -1;\n var dx1 = lineEnd1.x < lineStart1.x ? -1 : 1;\n var neigbourGridY1 = lineStart1.y + dy1;\n var neigbourGridX1 = lineStart1.x;\n var isValid1 = false;\n while (neigbourGridX1 !== lineEnd2.x || neigbourGridY1 !== lineEnd2.y) {\n if (!this.isWalkable(neigbourGridX1, neigbourGridY1)) {\n isValid1 = false;\n break;\n }\n else {\n isValid1 = true;\n }\n if (neigbourGridY1 !== lineStart2.y) {\n neigbourGridY1 += dy1;\n }\n else {\n neigbourGridX1 += dx1;\n }\n }\n if (isValid1) {\n lineStart1.y = lineStart2.y;\n points.splice(i + 1, 2);\n continue;\n }\n }\n }\n i++;\n }\n return points;\n };\n // Connector rendering\n /* tslint:disable */\n LineRouting.prototype.updateConnectorSegments = function (diagram, intermediatePoints, gridCollection, connector, isUpdate) {\n var segments = [];\n var seg;\n var targetPoint;\n var pointX;\n var pointY;\n var node;\n var points = [];\n var direction;\n var length;\n var currentdirection;\n var prevDirection;\n var targetWrapper = connector.targetWrapper;\n var sourceWrapper = connector.sourceWrapper;\n var sourcePoint = this.findEndPoint(connector, true);\n if (connector.targetPortID !== '' || !connector.targetWrapper) {\n targetPoint = this.findEndPoint(connector, false, true);\n }\n for (var i = 0; i < intermediatePoints.length; i++) {\n node = gridCollection[intermediatePoints[parseInt(i.toString(), 10)].x][intermediatePoints[parseInt(i.toString(), 10)].y];\n if (node) {\n pointX = node.x + node.width / 2;\n pointY = node.y + node.height / 2;\n points.push({ x: pointX, y: pointY });\n if (i >= 1 && points.length > 1) {\n if (points[points.length - 2].x !== points[points.length - 1].x) {\n currentdirection = (points[points.length - 2].x > points[points.length - 1].x) ? 'Left' : 'Right';\n }\n else {\n currentdirection = (points[points.length - 2].y > points[points.length - 1].y) ? 'Top' : 'Bottom';\n }\n }\n if (i >= 2 && prevDirection === currentdirection && points.length > 1) {\n points.splice(points.length - 2, 1);\n }\n prevDirection = currentdirection;\n }\n }\n if (points && points.length > 1) {\n for (var j = 0; j < points.length - 1; j++) {\n var currentPoint = points[parseInt(j.toString(), 10)];\n var nextPoint = points[j + 1];\n if (currentPoint.x !== nextPoint.x) {\n if (j === 0 && connector.sourcePortID === '' && sourceWrapper) {\n sourcePoint = (currentPoint.x > nextPoint.x)\n ? sourceWrapper.bounds.middleLeft : sourceWrapper.bounds.middleRight;\n }\n if (j === points.length - 2 && connector.targetPortID === '' && targetWrapper) {\n targetPoint = (currentPoint.x > nextPoint.x)\n ? targetWrapper.bounds.middleRight : targetWrapper.bounds.middleLeft;\n }\n if (j === 0 && sourcePoint) {\n currentPoint.x = sourcePoint.x;\n currentPoint.y = nextPoint.y = sourcePoint.y;\n var newDirection = currentPoint.x > nextPoint.x ? 'Left' : 'Right';\n var refPoint = findPoint(sourceWrapper.bounds, getOppositeDirection(newDirection));\n sourcePoint = getIntersection(connector, sourceWrapper, sourcePoint, refPoint, false);\n currentPoint.x = sourcePoint.x;\n }\n if (j === points.length - 2 && targetPoint) {\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.x - nextPoint.x) < 0) &&\n (Math.abs(targetPoint.x - currentPoint.x) < connector.targetDecorator.width + 1)) {\n currentPoint.x = points[j - 1].x -= this.size / 2;\n }\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.x - nextPoint.x) > 0) &&\n (Math.abs(targetPoint.x - currentPoint.x) < connector.targetDecorator.width + 1)) {\n currentPoint.x = points[j - 1].x += this.size / 2;\n }\n nextPoint.x = targetPoint.x;\n currentPoint.y = nextPoint.y = targetPoint.y;\n }\n }\n else {\n //EJ2-855805 - Connector target decorator is not proper in complexhierarchical layout when we call doLayout with line-routing\n if (j === 0 && connector.sourcePortID === '' && sourceWrapper) {\n sourcePoint = (currentPoint.y > nextPoint.y)\n ? sourceWrapper.bounds.topCenter : sourceWrapper.bounds.bottomCenter;\n }\n if (j === points.length - 2 && connector.targetPortID === '' && targetWrapper) {\n targetPoint = (currentPoint.y > nextPoint.y)\n ? targetWrapper.bounds.bottomCenter : targetWrapper.bounds.topCenter;\n }\n if (j === 0 && sourcePoint) {\n currentPoint.y = sourcePoint.y;\n currentPoint.x = nextPoint.x = sourcePoint.x;\n var newDirection1 = currentPoint.y > nextPoint.y ? 'Top' : 'Bottom';\n var refPoint = findPoint(sourceWrapper.bounds, getOppositeDirection(newDirection1));\n sourcePoint = getIntersection(connector, sourceWrapper, sourcePoint, refPoint, false);\n currentPoint.y = sourcePoint.y;\n }\n if (j === points.length - 2 && targetPoint) {\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.y - nextPoint.y) < 0) &&\n (Math.abs(targetPoint.y - currentPoint.y) < connector.targetDecorator.height + 1)) {\n currentPoint.y = points[j - 1].y -= this.size / 2;\n }\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.y - nextPoint.y) > 0) &&\n (Math.abs(targetPoint.y - currentPoint.y) < connector.targetDecorator.height + 1)) {\n currentPoint.y = points[j - 1].y += this.size / 2;\n }\n nextPoint.y = targetPoint.y;\n currentPoint.x = nextPoint.x = targetPoint.x;\n }\n }\n }\n for (var j = 0; j < points.length - 1; j++) {\n var currentPoint = points[parseInt(j.toString(), 10)];\n var nextPoint = points[j + 1];\n if (currentPoint.x !== nextPoint.x) {\n if (currentPoint.x > nextPoint.x) {\n direction = 'Left';\n length = currentPoint.x - nextPoint.x;\n }\n else {\n direction = 'Right';\n length = nextPoint.x - currentPoint.x;\n }\n }\n else {\n if (currentPoint.y > nextPoint.y) {\n direction = 'Top';\n length = currentPoint.y - nextPoint.y;\n }\n else {\n direction = 'Bottom';\n length = nextPoint.y - currentPoint.y;\n }\n }\n seg = { type: 'Orthogonal', length: length, direction: direction };\n segments.push(seg);\n }\n }\n if (segments && segments.length > 0) {\n var lastSeg = segments[segments.length - 1];\n if (segments.length === 1) {\n lastSeg.length -= 20;\n }\n if (lastSeg.length < 10 && segments.length === 2) {\n segments.pop();\n if (segments.length > 0) {\n segments[0].length -= 20;\n lastSeg = segments[0];\n }\n }\n if (connector.targetDecorator &&\n ((lastSeg.direction === 'Top' || lastSeg.direction === 'Bottom') && lastSeg.length > connector.targetDecorator.height + 1) ||\n ((lastSeg.direction === 'Right' || lastSeg.direction === 'Left') && lastSeg.length > connector.targetDecorator.width + 1)) {\n connector.segments = segments;\n if (isUpdate) {\n diagram.connectorPropertyChange(connector, {}, { type: 'Orthogonal', segments: segments });\n }\n return true;\n }\n }\n return false;\n };\n /* tslint:enable */\n // Shortest path\n LineRouting.prototype.findPath = function (startGrid) {\n var intermediatePoint;\n var collection = [];\n var neigbours = this.findNearestNeigbours(startGrid, this.gridCollection, true);\n for (var i = 0; i < neigbours.length; i++) {\n intermediatePoint = this.findIntermediatePoints(neigbours[parseInt(i.toString(), 10)].gridX, neigbours[parseInt(i.toString(), 10)].gridY, startGrid.gridX, startGrid.gridY, this.targetGrid.gridX, this.targetGrid.gridY);\n if (intermediatePoint !== null) {\n var grid = this.gridCollection[intermediatePoint.x][intermediatePoint.y];\n var h = this.octile(Math.abs(intermediatePoint.x - startGrid.gridX), Math.abs(intermediatePoint.y - startGrid.gridY));\n if (startGrid.parent && startGrid.parent.parent) {\n if (grid.gridX !== startGrid.parent.gridX && grid.gridY !== startGrid.parent.gridY) {\n h += 0.1;\n }\n }\n var l = startGrid.previousDistance + h;\n if ((!grid.previousDistance || grid.previousDistance > l) &&\n (!(intermediatePoint.x === startGrid.gridX && intermediatePoint.y === startGrid.gridY))) {\n collection.push(intermediatePoint);\n grid.previousDistance = l;\n grid.afterDistance = grid.afterDistance || this.manhattan(Math.abs(intermediatePoint.x - this.targetGrid.gridX), Math.abs(intermediatePoint.y - this.targetGrid.gridY));\n grid.totalDistance = grid.previousDistance + grid.afterDistance;\n grid.parent = startGrid;\n }\n }\n }\n if (collection.length > 0) {\n for (var i = 0; i < collection.length; i++) {\n var grid = this.gridCollection[collection[parseInt(i.toString(), 10)].x][collection[parseInt(i.toString(), 10)].y];\n if (this.startArray.indexOf(grid) === -1) {\n this.startArray.push(grid);\n }\n }\n }\n this.sorting(this.startArray);\n };\n // sorting the array based on total distance between source and target node\n LineRouting.prototype.sorting = function (array) {\n var done = false;\n while (!done) {\n done = true;\n for (var i = 1; i < array.length; i += 1) {\n if (array[i - 1].totalDistance < array[parseInt(i.toString(), 10)].totalDistance) {\n done = false;\n var tmp = array[i - 1];\n array[i - 1] = array[parseInt(i.toString(), 10)];\n array[parseInt(i.toString(), 10)] = tmp;\n }\n }\n }\n return array;\n };\n LineRouting.prototype.octile = function (t, e) {\n var r = Math.SQRT2 - 1;\n return e > t ? r * t + e : r * e + t;\n };\n LineRouting.prototype.manhattan = function (t, e) {\n return t + e;\n };\n // Find the nearest neigbour from the current boundaries, the neigbour is use to find next intermdiate point.\n LineRouting.prototype.findNearestNeigbours = function (startGrid, gridCollection, isSource) {\n var neigbours = [];\n var parent = startGrid.parent;\n if (parent) {\n var dx = (startGrid.gridX - parent.gridX) / Math.max(Math.abs(startGrid.gridX - parent.gridX), 1);\n var dy = (startGrid.gridY - parent.gridY) / Math.max(Math.abs(startGrid.gridY - parent.gridY), 1);\n if (dx !== 0) {\n if (this.isWalkable(startGrid.gridX, startGrid.gridY - 1, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY - 1]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY - 1]);\n }\n if (this.isWalkable(startGrid.gridX, startGrid.gridY + 1, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY + 1])) {\n neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY + 1]);\n }\n if (this.isWalkable(startGrid.gridX + dx, startGrid.gridY, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX + dx][startGrid.gridY]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX + dx][startGrid.gridY]);\n }\n }\n else if (dy !== 0) {\n if (this.isWalkable(startGrid.gridX - 1, startGrid.gridY, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX - 1][startGrid.gridY]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX - 1][startGrid.gridY]);\n }\n if (this.isWalkable(startGrid.gridX + 1, startGrid.gridY, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX + 1][startGrid.gridY]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX + 1][startGrid.gridY]);\n }\n if (this.isWalkable(startGrid.gridX, startGrid.gridY + dy, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY + dy]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY + dy]);\n }\n }\n }\n else {\n this.neigbour(startGrid, 'top', neigbours, isSource);\n this.neigbour(startGrid, 'right', neigbours, isSource);\n this.neigbour(startGrid, 'bottom', neigbours, isSource);\n this.neigbour(startGrid, 'left', neigbours, isSource);\n }\n return neigbours;\n };\n LineRouting.prototype.neigbour = function (startGrid, direction, neigbours, isSource) {\n var i = 1;\n var nearGrid;\n while (i > 0) {\n var x = (direction === 'top' || direction === 'bottom') ?\n (startGrid.gridX) : ((direction === 'left') ? startGrid.gridX - i : startGrid.gridX + i);\n var y = (direction === 'right' || direction === 'left') ?\n (startGrid.gridY) : ((direction === 'top') ? startGrid.gridY - i : startGrid.gridY + i);\n nearGrid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n if (nearGrid && ((isSource && this.sourceGridCollection.indexOf(nearGrid) === -1)\n || (!isSource && this.targetGridCollection.indexOf(nearGrid) === -1))) {\n if (neigbours && this.isWalkable(x, y)) {\n neigbours.push(nearGrid);\n }\n return i;\n }\n if (x > 0 && y > 0) {\n i++;\n }\n else {\n break;\n }\n }\n return null;\n };\n LineRouting.prototype.resetGridColl = function (grid, direction, isSource) {\n var i = 1;\n var nearGrid;\n while (i > 0) {\n var x = (direction === 'top' || direction === 'bottom') ?\n (grid.gridX) : ((direction === 'left') ? grid.gridX - i : grid.gridX + i);\n var y = (direction === 'right' || direction === 'left') ?\n (grid.gridY) : ((direction === 'top') ? grid.gridY - i : grid.gridY + i);\n nearGrid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n if (nearGrid && ((isSource && this.sourceGridCollection.indexOf(nearGrid) === -1) ||\n (!isSource && this.targetGridCollection.indexOf(nearGrid) === -1))) {\n if (this.isWalkable(x, y)) {\n break;\n }\n else {\n var grid_1 = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n this.considerWalkable.push(grid_1);\n }\n }\n if (x > 0 && y > 0) {\n if (direction === 'top' || direction === 'left') {\n i--;\n }\n else {\n i++;\n }\n }\n else {\n break;\n }\n }\n return null;\n };\n LineRouting.prototype.isWalkable = function (x, y, isparent) {\n if (x >= 0 && x < this.noOfRows && y >= 0 && y < this.noOfCols) {\n var grid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n if (grid && (grid.walkable || ((grid.nodeId.length === 1 || (grid.nodeId.length === 2 && grid.parentNodeId\n || (this.considerWalkable.indexOf(grid) !== -1))) &&\n (this.sourceGridCollection.indexOf(grid) !== -1 || this.targetGridCollection.indexOf(grid) !== -1 ||\n this.considerWalkable.indexOf(grid) !== -1)))) {\n if ((isparent && !grid.parent) || !isparent) {\n return true;\n }\n }\n }\n return false;\n };\n LineRouting.prototype.findIntermediatePoints = function (neigbourGridX, neigbourGridY, startGridX, startGridY, endGridX, endGridY) {\n var dx = neigbourGridX - startGridX;\n var dy = neigbourGridY - startGridY;\n var gridX = neigbourGridX;\n var gridY = neigbourGridY;\n for (var i = 0; i < this.targetGridCollection.length; i++) {\n if (neigbourGridX === this.targetGridCollection[parseInt(i.toString(), 10)].gridX\n && neigbourGridY === this.targetGridCollection[parseInt(i.toString(), 10)].gridY) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n }\n if (!this.isWalkable(neigbourGridX, neigbourGridY)) {\n return null;\n }\n var neigbourGrid = this.gridCollection[parseInt(neigbourGridX.toString(), 10)][parseInt(neigbourGridY.toString(), 10)];\n if (neigbourGrid.tested) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n neigbourGrid.tested = true;\n if (dx !== 0) {\n dx = (dx > 0) ? 1 : -1;\n if ((this.isWalkable(gridX, gridY - 1) && !this.isWalkable(gridX - dx, gridY - 1)) ||\n (this.isWalkable(gridX, gridY + 1) && !this.isWalkable(gridX - dx, gridY + 1))) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n }\n if (dy !== 0) {\n dy = (dy > 0) ? 1 : -1;\n if ((this.isWalkable(gridX - 1, gridY) && !this.isWalkable(gridX - 1, gridY - dy)) ||\n (this.isWalkable(gridX + 1, gridY) && !this.isWalkable(gridX + 1, gridY - dy))) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n if (this.findIntermediatePoints(gridX + 1, gridY, gridX, gridY, endGridX, endGridY) ||\n this.findIntermediatePoints(gridX - 1, gridY, gridX, gridY, endGridX, endGridY)) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n }\n return this.findIntermediatePoints(gridX + dx, gridY + dy, gridX, gridY, endGridX, endGridY);\n };\n /**\n *To destroy the line routing\n *\n * @returns {void} To destroy the line routing\n */\n LineRouting.prototype.destroy = function () {\n /**\n * Destroys the line routing module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n LineRouting.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LineRouting';\n };\n return LineRouting;\n}());\nexport { LineRouting };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Represents the diagram settings\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * diagramSettings: { inversedAlignment: true },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar DiagramSettings = /** @class */ (function (_super) {\n __extends(DiagramSettings, _super);\n function DiagramSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], DiagramSettings.prototype, \"inversedAlignment\", void 0);\n return DiagramSettings;\n}(ChildProperty));\nexport { DiagramSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable prefer-spread */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\nimport { Component, Property, Complex, Collection, EventHandler, L10n, Droppable, remove, isBlazor, Fetch } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Browser, Event } from '@syncfusion/ej2-base';\nimport { CanvasRenderer } from './rendering/canvas-renderer';\nimport { SvgRenderer } from './rendering/svg-renderer';\nimport { DiagramRenderer } from './rendering/renderer';\nimport { PageSettings, ScrollSettings } from './diagram/page-settings';\nimport { ServiceLocator } from './objects/service';\nimport { Container } from './core/containers/container';\nimport { Node, BpmnShape, SwimLane, UmlClassMethod, UmlEnumerationMember, UmlClassAttribute, Lane } from './objects/node';\nimport { cloneBlazorObject, cloneSelectedObjects, findObjectIndex, getConnectorArrowType, selectionHasConnector } from './utility/diagram-util';\nimport { checkBrowserInfo } from './utility/diagram-util';\nimport { updateDefaultValues } from './utility/diagram-util';\nimport { flipConnector, updatePortEdges, alignElement, setConnectorDefaults, getPreviewSize } from './utility/diagram-util';\nimport { Connector } from './objects/connector';\nimport { SnapSettings } from './diagram/grid-lines';\nimport { RulerSettings } from './diagram/ruler-settings';\nimport { removeRulerElements, updateRuler, getRulerSize } from './ruler/ruler';\nimport { renderRuler, renderOverlapElement } from './ruler/ruler';\nimport { Size } from './primitives/size';\nimport { Keys, KeyModifiers, DiagramTools, AnnotationConstraints, NodeConstraints, ScrollActions, ConnectorConstraints } from './enum/enum';\nimport { RendererAction } from './enum/enum';\nimport { BlazorAction } from './enum/enum';\nimport { DiagramConstraints, SelectorConstraints, PortVisibility, DiagramEvent } from './enum/enum';\nimport { DiagramAction, ThumbsConstraints } from './enum/enum';\nimport { RealAction, ElementAction, PortConstraints } from './enum/enum';\nimport { PathElement } from './core/elements/path-element';\nimport { TextElement } from './core/elements/text-element';\nimport { updateStyle, removeItem, updateConnector, updateShape, setUMLActivityDefaults, findNodeByName } from './utility/diagram-util';\nimport { setSwimLaneDefaults } from './utility/diagram-util';\nimport { checkPortRestriction, serialize, deserialize, updateHyperlink, getObjectType, removeGradient, getChild } from './utility/diagram-util';\nimport { Rect } from './primitives/rect';\nimport { getPortShape } from './objects/dictionary/common';\nimport { ShapeAnnotation, PathAnnotation } from './objects/annotation';\nimport { Canvas } from './core/containers/canvas';\nimport { GridPanel, ColumnDefinition } from './core/containers/grid';\nimport { DataSource } from './diagram/data-source';\nimport { Layout } from './layout/layout-base';\nimport { Selector, Text } from './objects/node';\nimport { DiagramEventHandler } from './interaction/event-handlers';\nimport { CommandHandler } from './interaction/command-manager';\nimport { DiagramScroller } from './interaction/scroller';\nimport { contains, isSelected } from './interaction/actions';\nimport { SpatialSearch } from './interaction/spatial-search/spatial-search';\nimport { setAttributeSvg, setAttributeHtml, measureHtmlText, removeElement, createMeasureElements, getDomIndex } from './utility/dom-util';\nimport { getDiagramElement, getScrollerWidth, getHTMLLayer, createUserHandleTemplates } from './utility/dom-util';\nimport { getBackgroundLayer, createHtmlElement, createSvgElement, getNativeLayerSvg, getUserHandleLayer } from './utility/dom-util';\nimport { getPortLayerSvg, getDiagramLayerSvg, applyStyleAgainstCsp } from './utility/dom-util';\nimport { getAdornerLayerSvg, getSelectorElement, getGridLayerSvg, getBackgroundLayerSvg } from './utility/dom-util';\nimport { CommandManager, ContextMenuSettings } from './diagram/keyboard-commands';\nimport { canDelete, canInConnect, canOutConnect, canRotate, canVitualize, canDrawThumbs } from './utility/constraints-util';\nimport { canPortInConnect, canPortOutConnect } from './utility/constraints-util';\nimport { canResize, canSingleSelect, canZoomPan, canZoomTextEdit, canMultiSelect } from './utility/constraints-util';\nimport { canDragSourceEnd, canDragTargetEnd, canDragSegmentThumb, enableReadOnly, canMove } from './utility/constraints-util';\nimport { findAnnotation, arrangeChild, getInOutConnectPorts, removeChildNodes, canMeasureDecoratorPath } from './utility/diagram-util';\nimport { randomId, cloneObject, extendObject, getFunction, getBounds } from './utility/base-util';\nimport { DiagramTooltip, initTooltip } from './objects/tooltip';\nimport { PointPort, PathPort } from './objects/port';\nimport { canShadow } from './utility/constraints-util';\nimport { Layer } from './diagram/layer';\nimport { DiagramNativeElement } from './core/elements/native-element';\nimport { DiagramHtmlElement } from './core/elements/html-element';\nimport { canAllowDrop } from './utility/constraints-util';\nimport { checkParentAsContainer, addChildToContainer, updateLaneBoundsAfterAddChild } from './interaction/container-interaction';\nimport { getConnectors, updateConnectorsProperties, phaseDefine } from './utility/swim-lane-util';\nimport { swimLaneMeasureAndArrange } from './utility/swim-lane-util';\nimport { arrangeChildNodesInSwimLane, updateHeaderMaxWidth, updatePhaseMaxWidth } from './utility/swim-lane-util';\nimport { addLane, addPhase } from './utility/swim-lane-util';\nimport { SerializationSettings } from './diagram/serialization-settings';\nimport { removeSwimLane, removeLane, removePhase, removeLaneChildNode } from './utility/swim-lane-util';\nimport { RowDefinition } from './core/containers/grid';\nimport { CustomCursorAction } from './diagram/custom-cursor';\nimport { LineRouting } from './interaction/line-routing';\nimport { DiagramSettings } from '../diagram/diagram-settings';\nimport { StackPanel } from './core/containers/stack-panel';\nimport { ConnectorFixedUserHandle, NodeFixedUserHandle } from './objects/fixed-user-handle';\nimport { Point } from './primitives/point';\nimport { getClassAttributesChild, getClassMembersChild, getClassNodesChild } from './utility/uml-util';\nimport { getIntersectionPoints, getPortDirection } from './utility/connector';\n/**\n * Represents the Diagram control\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * width:'1000px', height:'500px' });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Diagram = /** @class */ (function (_super) {\n __extends(Diagram, _super);\n /**\n * Constructor for creating the widget\n */\n function Diagram(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.version = 17.1;\n /** @private */\n _this.checkMenu = false;\n /** @private */\n _this.isServerUpdate = false;\n /** @private */\n _this.oldNodeObjects = [];\n /** @private */\n _this.oldDiagramObject = {};\n /** @private */\n _this.oldConnectorObjects = [];\n /** @private */\n _this.canEnableBlazorObject = false;\n /** @private */\n _this.connectorTable = {};\n /** @private */\n _this.groupTable = {};\n /** @private */\n _this.scrollActions = ScrollActions.None;\n /** @private */\n _this.blazorActions = BlazorAction.Default;\n /** @private */\n _this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined };\n /** @private */\n _this.textEditing = false;\n /** @private */\n _this.isTriggerEvent = false;\n /** @private */\n _this.preventNodesUpdate = false;\n /** @private */\n _this.preventConnectorsUpdate = false;\n /** @private */\n _this.callBlazorModel = true;\n /** @private */\n _this.selectionConnectorsList = [];\n /** @private */\n _this.deleteVirtualObject = false;\n _this.canLayout = true;\n _this.isRefreshed = false;\n /** @private */\n _this.swimlaneChildTable = {};\n /** @private */\n _this.swimlaneZIndexTable = {};\n /** @private */\n _this.canExpand = false;\n _this.changedConnectorCollection = [];\n _this.changedNodesCollection = [];\n _this.previousNodeCollection = [];\n _this.previousConnectorCollection = [];\n _this.crudDeleteNodes = [];\n _this.previousSelectedObjects = [];\n // Group update to server when BlazorAction is isGroupAction;\n _this.blazorAddorRemoveCollection = [];\n _this.blazorRemoveIndexCollection = [];\n _this.diagramid = 88123;\n _this.portCenterPoint = [];\n /** @private */\n _this.selectedObject = { helperObject: undefined, actualObject: undefined };\n /** @private */\n _this.deleteDependentConnector = true;\n _this.mermaidNodeBaseCollection = [];\n _this.bangShape = 'M0 0 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,-3.7200001525878905 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,3.7200001525878905 a15.470625686645507,15.470625686645507 1 0,0 15.470625686645507,12.276000503540038 a12.376500549316406,12.376500549316406 1 0,0 0,12.648000518798828 a15.470625686645507,15.470625686645507 1 0,0 -15.470625686645507,12.276000503540038 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,5.580000228881835 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,-5.580000228881835 a15.470625686645507,15.470625686645507 1 0,0 -10.313750457763673,-12.276000503540038 a12.376500549316406,12.376500549316406 1 0,0 0,-12.648000518798828 a15.470625686645507,15.470625686645507 1 0,0 10.313750457763673,-12.276000503540038 H0 V0 Z';\n _this.cloudShape = 'M0 0 a16.18875045776367,16.18875045776367 0 0,1 26.981250762939453,-10.792500305175782 a37.77375106811523,37.77375106811523 1 0,1 43.17000122070313,-10.792500305175782 a26.981250762939453,26.981250762939453 1 0,1 37.77375106811523,21.585000610351564 a16.18875045776367,16.18875045776367 1 0,1 16.18875045776367,13.020000534057615 a21.585000610351564,21.585000610351564 1 0,1 -16.18875045776367,24.180000991821288 a26.981250762939453,16.18875045776367 1 0,1 -26.981250762939453,16.18875045776367 a37.77375106811523,37.77375106811523 1 0,1 -53.962501525878906,0 a16.18875045776367,16.18875045776367 1 0,1 -26.981250762939453,-16.18875045776367 a16.18875045776367,16.18875045776367 1 0,1 -10.792500305175782,-13.020000534057615 a21.585000610351564,21.585000610351564 1 0,1 10.792500305175782,-24.180000991821288 H0 V0 Z';\n _this.renderTimer = null;\n var child;\n var node;\n //Removed isBlazor code\n _this.ignoreCollectionWatch = true;\n for (var i = 0; options && options.nodes && i < options.nodes.length; i++) {\n child = options.nodes[parseInt(i.toString(), 10)];\n node = _this.nodes[parseInt(i.toString(), 10)];\n if (child.children && child.children.length > 0) {\n if (!child.style || !child.style.fill) {\n node.style.fill = 'transparent';\n }\n if (!child.style || !child.style.strokeColor) {\n node.style.strokeColor = 'transparent';\n }\n }\n if (child.shape && child.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(child, node);\n }\n if (child.shape && child.shape.type === 'SwimLane') {\n setSwimLaneDefaults(child, node);\n }\n // Removed isBlazor code\n if (_this.nodeDefaults) {\n updateDefaultValues(node, child, _this.nodeDefaults);\n }\n _this.updateAnnotationText(node.annotations);\n }\n if (options && options.connectors) {\n for (var i = 0; options && options.connectors && i < options.connectors.length; i++) {\n child = options.connectors[parseInt(i.toString(), 10)];\n node = _this.connectors[parseInt(i.toString(), 10)];\n //Removed isBlazor code\n if (_this.connectorDefaults) {\n updateDefaultValues(node, child, _this.connectorDefaults);\n }\n _this.updateAnnotationText(node.annotations);\n }\n }\n for (var i = 0; options && options.connectors && i < options.connectors.length; i++) {\n var defaultConnector = options.connectors[parseInt(i.toString(), 10)];\n var connector = _this.connectors[parseInt(i.toString(), 10)];\n if (defaultConnector.shape && defaultConnector.shape.type !== 'None') {\n setConnectorDefaults(defaultConnector, connector);\n }\n //Removed isBlazor code\n }\n return _this;\n }\n Diagram.prototype.updateAnnotationText = function (annotations) {\n //Removed isBlazor code\n };\n Diagram.prototype.clearCollection = function (isConnector) {\n var collection = [];\n var obj;\n for (var _i = 0, _a = Object.keys(this.nameTable); _i < _a.length; _i++) {\n var key = _a[_i];\n obj = this.nameTable[\"\" + key];\n if (obj && ((isConnector && obj instanceof Connector) || (!isConnector && obj instanceof Node))) {\n collection.push(obj);\n }\n }\n this.clearObjects(collection);\n };\n /**\n * Updates the diagram control when the objects are changed by comparing new and old property values.\n *\n * @param {DiagramModel} newProp - A object that lists the new values of the changed properties.\n * @param {DiagramModel} oldProp - A object that lists the old values of the changed properties.\n */\n /* tslint:disable */\n Diagram.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n // Model Changed\n // Bug 842506: After multiple group node rotations, the undo functionality is not working.\n // Below condition is used to restrict onPropertyChange when we rotate group node using button at runtime.\n if (!this.rotateUsingButton) {\n var newValue = void 0;\n var oldValue = void 0;\n var isPropertyChanged = true;\n var refreshLayout = false;\n var refereshColelction = false;\n if (this.diagramActions & DiagramAction.Render) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n case 'height':\n this.element.style.width = this.getSizeValue(this.width);\n this.element.style.height = this.getSizeValue(this.height);\n this.eventHandler.updateViewPortSize(this.element);\n for (var _b = 0, _c = this.views; _b < _c.length; _b++) {\n var view = _c[_b];\n var temp = this.views[\"\" + view];\n if (!(temp instanceof Diagram)) {\n temp.updateView(temp);\n }\n }\n break;\n case 'nodes':\n if (newProp.nodes.length > 0 && oldProp.nodes.length === 0) {\n this.clearCollection();\n refereshColelction = true;\n }\n else {\n for (var _d = 0, _e = Object.keys(newProp.nodes); _d < _e.length; _d++) {\n var key = _e[_d];\n var index = Number(key);\n var actualObject = this.nodes[parseInt(index.toString(), 10)];\n var changedProp = newProp.nodes[parseInt(index.toString(), 10)];\n if (newProp.nodes[parseInt(index.toString(), 10)].style\n && newProp.nodes[parseInt(index.toString(), 10)].style.gradient) {\n this.updateGradient(newProp.nodes[parseInt(index.toString(), 10)], oldProp.nodes[parseInt(index.toString(), 10)], this.nodes[parseInt(index.toString(), 10)]);\n this.nodes[parseInt(index.toString(), 10)].oldGradientValue\n = cloneObject(newProp.nodes[parseInt(index.toString(), 10)].style.gradient);\n }\n refreshLayout = refreshLayout || changedProp.excludeFromLayout !== undefined;\n this.nodePropertyChange(actualObject, oldProp.nodes[parseInt(index.toString(), 10)], changedProp, undefined, true, true);\n var args = {\n element: cloneBlazorObject(actualObject), cause: this.diagramActions,\n diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp.nodes[parseInt(index.toString(), 10)]),\n newValue: cloneBlazorObject(newProp.nodes[parseInt(index.toString(), 10)])\n };\n // Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n if (isPropertyChanged) {\n isPropertyChanged = false;\n }\n }\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n }\n break;\n case 'connectors':\n // eslint-disable-next-line no-case-declarations\n var oldObject = void 0;\n if (newProp.connectors.length > 0 && oldProp.connectors.length === 0) {\n this.clearCollection(true);\n refereshColelction = true;\n }\n else {\n for (var _f = 0, _g = Object.keys(newProp.connectors); _f < _g.length; _f++) {\n var key = _g[_f];\n var index = Number(key);\n var actualObject = this.connectors[parseInt(index.toString(), 10)];\n var changedProp = newProp.connectors[parseInt(index.toString(), 10)];\n if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) {\n this.diagramActions |= DiagramAction.DecoratorPropertyChange;\n }\n this.connectorPropertyChange(actualObject, oldProp.connectors[parseInt(index.toString(), 10)], changedProp, true, true);\n if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) {\n this.diagramActions = this.diagramActions & ~DiagramAction.DecoratorPropertyChange;\n }\n var args = {\n element: cloneBlazorObject(actualObject), cause: this.diagramActions,\n diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp.connectors[parseInt(index.toString(), 10)]),\n newValue: cloneBlazorObject(newProp.connectors[parseInt(index.toString(), 10)])\n };\n // Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n if (actualObject && actualObject.parentId && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier') {\n this.updateConnectorEdges(this.nameTable[actualObject.parentId] || actualObject);\n }\n if (isPropertyChanged) {\n isPropertyChanged = false;\n }\n }\n this.updateBridging();\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n }\n break;\n case 'bridgeDirection':\n this.updateBridging();\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n break;\n case 'backgroundColor':\n this.intOffPageBackground();\n break;\n case 'pageSettings':\n this.validatePageSize();\n this.updatePage();\n break;\n case 'selectedItems':\n if (newProp.selectedItems.userHandles && this.selectedItems.wrapper && this.selectedItems.userHandles) {\n if (this.selectedItems.userHandles.length > 0) {\n this.renderSelector(true);\n break;\n }\n }\n if (newProp.selectedItems.constraints) {\n this.renderSelector(true);\n break;\n }\n break;\n case 'snapSettings':\n this.updateSnapSettings(newProp);\n break;\n case 'commandManager':\n this.initCommands();\n break;\n case 'layout':\n refreshLayout = true;\n break;\n case 'segmentThumbShape':\n this.updateSelector();\n break;\n case 'dataSourceSettings':\n this.clear();\n if (this.layout.type === 'None') {\n refereshColelction = true;\n }\n else {\n //EJ2-837322- Duplicate nodes and connectors are created after reset for layout type 'None'\n this.initObjects();\n refreshLayout = true;\n }\n break;\n case 'tooltip':\n initTooltip(this);\n break;\n case 'rulerSettings':\n this.updateRulerSettings(newProp);\n break;\n case 'layers':\n this.updateLayer(newProp);\n break;\n case 'scrollSettings':\n this.scrollActions |= ScrollActions.PropertyChange;\n this.updateScrollSettings(newProp);\n this.scrollActions &= ~ScrollActions.PropertyChange;\n this.scrollSettings.horizontalOffset = -this.scroller.horizontalOffset || 0;\n this.scrollSettings.verticalOffset = -this.scroller.verticalOffset || 0;\n break;\n case 'locale':\n if (newProp.locale !== oldProp.locale) {\n this.realActions |= RealAction.PreventDataInit;\n _super.prototype.refresh.call(this);\n this.realActions &= ~RealAction.PreventDataInit;\n }\n break;\n case 'contextMenuSettings':\n if (newProp.contextMenuSettings.showCustomMenuOnly !== undefined) {\n this.contextMenuSettings.showCustomMenuOnly = newProp.contextMenuSettings.showCustomMenuOnly;\n }\n if (newProp.contextMenuSettings.show !== undefined) {\n this.contextMenuSettings.show = newProp.contextMenuSettings.show;\n }\n if (newProp.contextMenuSettings.items) {\n var items = newProp.contextMenuSettings.items;\n for (var _h = 0, _j = Object.keys(items); _h < _j.length; _h++) {\n var key = _j[_h];\n var index = Number(key);\n this.contextMenuSettings.items[parseInt(index.toString(), 10)] = items[parseInt(index.toString(), 10)];\n }\n if (this.contextMenuModule) {\n this.contextMenuModule.refreshItems();\n }\n else {\n console.warn('[WARNING] :: Module \"DiagramContextMenu\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n }\n break;\n case 'serializationSettings':\n if (newProp.serializationSettings.preventDefaults !== undefined) {\n this.serializationSettings.preventDefaults = newProp.serializationSettings.preventDefaults;\n }\n break;\n case 'tool':\n // 912436: Mouse cursor flickers when entering the diagram canvas after the tool is changed at runtime\n if (((newProp.tool === DiagramTools.ZoomPan) && (oldProp.tool === DiagramTools.Default)) ||\n ((oldProp.tool === DiagramTools.ZoomPan) && (newProp.tool === DiagramTools.Default))) {\n this.eventHandler.updateTool();\n }\n break;\n }\n }\n if (refreshLayout && !refereshColelction) {\n if (oldProp.layout && oldProp.layout.connectionPointOrigin === 'DifferentPoint' && newProp.layout.connectionPointOrigin === 'SamePoint'\n || (oldProp.layout && newProp.layout && !newProp.layout.enableRouting && oldProp.layout.enableRouting)) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n if ((node.ports && node.ports.length > 0)) {\n var ports = [];\n for (var j = node.ports.length - 1; j >= 0; j--) {\n if (node.ports[parseInt(j.toString(), 10)].id.split('_')[1] === 'LineDistribution') {\n ports.push(node.ports[parseInt(j.toString(), 10)]);\n }\n }\n this.removePorts(node, ports);\n }\n }\n for (var j = 0; j < this.connectors.length; j++) {\n var connector = this.connectors[parseInt(j.toString(), 10)];\n var sourcePortid = connector.sourcePortID;\n var targetPortId = connector.targetPortID;\n //const oldSegment: OrthogonalSegmentModel = (connector.segments as OrthogonalSegmentModel);\n connector.sourcePortID = '';\n connector.targetPortID = '';\n connector.sourcePortWrapper = undefined;\n connector.targetPortWrapper = undefined;\n connector.segments = [];\n this.connectorPropertyChange(connector, {\n sourcePortID: sourcePortid, targetPortID: targetPortId\n }, { sourcePortID: '', targetPortID: '' });\n }\n }\n this.doLayout();\n this.renderReactTemplates();\n }\n if (isPropertyChanged && this.propertyChange) {\n var args = {\n element: cloneBlazorObject(this), cause: this.diagramActions,\n diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp), newValue: cloneBlazorObject(newProp)\n };\n // Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/\n if (!refereshColelction && (this.canLogChange()) && (this.modelChanged(newProp, oldProp))) {\n var propertyObjects = [];\n var nodeObjects = [];\n var connObjects = [];\n if (newProp.nodes && Object.keys(newProp.nodes).length > 0) {\n for (var _k = 0, _l = Object.keys(newProp.nodes); _k < _l.length; _k++) {\n var key = _l[_k];\n var nodeIndex = parseInt(key, 10);\n nodeObjects.push(this.nodes[parseInt(nodeIndex.toString(), 10)].id);\n }\n }\n if (newProp.connectors && Object.keys(newProp.connectors).length > 0) {\n for (var _m = 0, _o = Object.keys(newProp.connectors); _m < _o.length; _m++) {\n var key = _o[_m];\n var connIndex = parseInt(key, 10);\n connObjects.push(this.connectors[parseInt(connIndex.toString(), 10)].id);\n }\n }\n propertyObjects = nodeObjects.concat(connObjects);\n //To prevent history entry for text annotation connector while dragging node.\n var textCon = connObjects.filter(function (id) { return _this.nameTable[\"\" + id].isBpmnAnnotationConnector; });\n if (textCon.length === 0) {\n var entry = { type: 'PropertyChanged', undoObject: oldProp, redoObject: newProp, category: 'Internal' };\n if (this.historyManager) {\n this.addHistoryEntry(entry, propertyObjects);\n }\n }\n }\n this.resetDiagramActions();\n if (refereshColelction) {\n this.initObjects(true);\n this.refreshDiagramLayer();\n if (refreshLayout) {\n this.doLayout();\n }\n }\n var scrollAlone = ((Object.keys(newProp).length === 1) && newProp.scrollSettings !== undefined);\n if (!refereshColelction) {\n for (var _p = 0, _q = this.views; _p < _q.length; _p++) {\n var temp = _q[_p];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n if (newProp.scrollSettings && newProp.scrollSettings.currentZoom !== oldProp.scrollSettings.currentZoom) {\n //view.updateHtmlLayer(view);\n }\n if (!scrollAlone) {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n }\n }\n }\n }\n else {\n this.rotateUsingButton = false;\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateSnapSettings = function (newProp) {\n if (newProp.snapSettings.constraints !== undefined || newProp.snapSettings.horizontalGridlines ||\n newProp.snapSettings.verticalGridlines || newProp.snapSettings.gridType) {\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n }\n };\n // This private method has been specially provided to update only the node old gradient value in oldProperty.\n // This issue belong to core team but we fixed in our end.\n // https://syncfusion.atlassian.net/browse/EJ2-49232\n Diagram.prototype.updateGradient = function (newProp, oldProp, nodeObj) {\n if (nodeObj.oldGradientValue) {\n var linearNode = nodeObj;\n var radialNode = nodeObj;\n var linearProp = oldProp.style.gradient;\n var radialProp = oldProp.style.gradient;\n for (var _i = 0, _a = Object.keys(newProp.style.gradient); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'type':\n if (linearNode.type) {\n linearProp.type = linearNode.type;\n }\n break;\n case 'x1':\n if (linearNode.x1) {\n linearProp.x1 = linearNode.x1;\n }\n break;\n case 'x2':\n if (linearNode.x2) {\n linearProp.x2 = linearNode.x2;\n }\n break;\n case 'y1':\n if (linearNode.y1) {\n linearProp.y1 = linearNode.y1;\n }\n break;\n case 'y2':\n if (linearNode.y2) {\n linearProp.y2 = linearNode.y2;\n }\n break;\n case 'cx':\n if (radialNode.cx) {\n radialProp.cx = radialNode.cx;\n }\n break;\n case 'cy':\n if (radialNode.cy) {\n radialProp.cy = radialNode.cy;\n }\n break;\n case 'fx':\n if (radialNode.fx) {\n radialProp.fx = radialNode.fx;\n }\n break;\n case 'fy':\n if (radialNode.fy) {\n radialProp.fy = radialNode.fy;\n }\n break;\n case 'r':\n if (radialNode.r) {\n radialProp.r = radialNode.r;\n }\n break;\n case 'stops':\n if (nodeObj.oldGradientValue.stops) {\n var stops = (Object.values(cloneObject(nodeObj.oldGradientValue.stops)));\n stops.pop();\n oldProp.style.gradient.stops = stops;\n }\n break;\n }\n }\n }\n };\n Diagram.prototype.updateRulerSettings = function (newProp) {\n if (newProp.rulerSettings.dynamicGrid !== undefined) {\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n }\n if (newProp.rulerSettings.showRulers !== undefined) {\n this.intOffPageBackground();\n this.scroller.setSize();\n this.renderRulers();\n }\n else if (newProp.rulerSettings.horizontalRuler !== undefined ||\n newProp.rulerSettings.verticalRuler !== undefined) {\n if (newProp.rulerSettings.horizontalRuler.thickness !== undefined ||\n newProp.rulerSettings.verticalRuler.thickness !== undefined) {\n removeRulerElements(this);\n this.intOffPageBackground();\n this.scroller.setSize();\n this.renderRulers();\n }\n else {\n updateRuler(this);\n }\n }\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string}\n */\n Diagram.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initialize nodes, connectors and renderer\n */\n Diagram.prototype.preRender = function () {\n this.initializePrivateVariables();\n this.isProtectedOnChange = true;\n this.serviceLocator = new ServiceLocator;\n this.initializeServices();\n this.setCulture();\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n }\n this.initDiagram();\n this.initViews();\n this.unWireEvents();\n this.wireEvents();\n this.element.classList.add('e-diagram');\n };\n Diagram.prototype.initializePrivateVariables = function () {\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-diagram').length;\n this.element.id = 'diagram_' + this.diagramid + '_' + collection;\n }\n this.defaultLocale = {\n Copy: 'Copy',\n Cut: 'Cut',\n Paste: 'Paste',\n Undo: 'Undo',\n Redo: 'Redo',\n SelectAll: 'Select All',\n Grouping: 'Grouping',\n Group: 'Group',\n UnGroup: 'Un Group',\n Order: 'Order',\n BringToFront: 'Bring To Front',\n MoveForward: 'Move Forward',\n SendToBack: 'Send To Back',\n SendBackward: 'Send Backward'\n };\n this.layerZIndex = -1;\n this.layerZIndexTable = {};\n //878837 : initialize parameter for passing container as a parameter\n if (this.swimlaneChildTable === undefined && this.swimlaneZIndexTable === undefined) {\n this.swimlaneChildTable = {};\n this.swimlaneZIndexTable = {};\n }\n this.nameTable = {};\n this.pathTable = {};\n this.groupTable = {};\n this.commands = {};\n if (!this.isLoading) {\n this.views = [];\n }\n this.commandHandler = new CommandHandler(this);\n this.eventHandler = new DiagramEventHandler(this, this.commandHandler);\n this.spatialSearch = new SpatialSearch(this.nameTable);\n this.scroller = new DiagramScroller(this);\n };\n Diagram.prototype.initializeServices = function () {\n this.serviceLocator.register('localization', this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale));\n };\n /**\n * Method to set culture for chart\n */\n Diagram.prototype.setCulture = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n };\n /* tslint:disable */\n /**\n * Renders the diagram control with nodes and connectors\n */\n Diagram.prototype.render = function () {\n if (this.refreshing && this.dataSourceSettings.dataSource && !this.isLoading) {\n this.nodes = [];\n this.connectors = [];\n }\n //830544-Support to add load event to notify before rendering of diagram\n if (!this.refreshing) {\n var loadEventData = {\n diagram: this, name: 'load'\n };\n this.trigger('load', loadEventData);\n }\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n this.isRefreshed = false;\n this.ignoreCollectionWatch = true;\n var domTable = 'domTable';\n window[\"\" + domTable] = {};\n var collapsedNode = [];\n //Removed isBlazor code.\n if (this.dataSourceSettings.crudAction.read) {\n this.renderInitialCrud();\n }\n this.initHistory();\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), this.mode === 'SVG');\n this.initLayers();\n this.initializeDiagramLayers();\n this.diagramRenderer.setLayers();\n this.initObjects(true);\n var isLayout = false;\n // Removed isBlazor code.\n var nodes = this.nodes;\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].isExpanded) {\n collapsedNode.push(nodes[parseInt(i.toString(), 10)]);\n }\n }\n if (collapsedNode.length) {\n for (var i = collapsedNode.length - 1; i >= 0; i--) {\n if (i === 0) {\n this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, false);\n }\n else {\n this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, true);\n }\n }\n }\n if (this.canLayout) {\n this.doLayout();\n }\n if (isLayout) {\n this.commandHandler.getBlazorOldValues();\n }\n if (this.lineRoutingModule) {\n var previousConnectorObject = [];\n var updateConnectorObject = [];\n var changeConnectors = [];\n //Removed isBlazor code.\n // EJ2-65876 - Exception occurs on line routing injection module\n if (this.connectors.sourceID !== this.connectors.targetID) {\n this.lineRoutingModule.lineRouting(this);\n }\n // Removed isBlazor code.\n }\n else if (this.constraints & DiagramConstraints.LineRouting) {\n console.warn('[WARNING] :: Module \"LineRouting\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.validatePageSize();\n this.renderPageBreaks();\n this.diagramRenderer.renderSvgGridlines(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n this.commandHandler.initSelectorWrapper();\n /**\n * Used to render context menu\n */\n this.notify('initial-load', {});\n /**\n * Used to load context menu\n */\n this.trigger('load');\n this.scroller.setSize();\n this.scroller.updateScrollOffsets();\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n // If diagram not refreshed, then we will refresh the diagram.\n if (!this.isRefreshed) {\n this.refreshDiagramLayer();\n }\n //Bug 855677: After Serialization, Subprocess Node Dragging Faces Problems After Removing Child Node.\n //Removed refreshDiagramLayer() method in this line as it causes the subprocess child node to be rendered twice in wrapper which causes the issue.\n if (this.scrollSettings.verticalOffset > 0 || this.scrollSettings.horizontalOffset > 0) {\n this.updateScrollOffset();\n }\n /**\n * Used to end the context menu rendering\n */\n if (Browser.isDevice) {\n this.tool = DiagramTools.ZoomPan | DiagramTools.SingleSelect;\n }\n this.notify('initial-end', {});\n this.isProtectedOnChange = false;\n this.tooltipObject = initTooltip(this);\n this.diagramActions = DiagramAction.Render;\n this.initCommands();\n var hiddenUserHandleTemplate = document.getElementsByClassName(this.element.id + '_hiddenUserHandleTemplate');\n createUserHandleTemplates(this.userHandleTemplate, hiddenUserHandleTemplate, this.selectedItems, this.element.id);\n //Removed isBlazor code.\n this.isLoading = false;\n this.refreshRoutingConnectors();\n this.renderComplete();\n this.updateFitToPage();\n if (this.refreshing) {\n this.renderReactTemplates();\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateFitToPage = function () {\n if (this.pageSettings && this.pageSettings.fitOptions && this.pageSettings.fitOptions.canFit) {\n this.fitToPage(this.pageSettings.fitOptions);\n }\n };\n Diagram.prototype.updateTemplate = function () {\n //Removed blazor code\n };\n //Call back function to the node template\n // private measureNode(node: NodeModel): void {\n // if (node.shape.type === 'Native' && isBlazor()) {\n // node.wrapper.measure(new Size(node.width, node.height));\n // node.wrapper.arrange(node.wrapper.desiredSize);\n // }\n // }\n Diagram.prototype.renderInitialCrud = function () {\n /* eslint-disable */\n var tempObj = this;\n /* eslint-enable */\n if (tempObj.dataSourceSettings.crudAction.read) {\n var callback = new Fetch(tempObj.dataSourceSettings.crudAction.read, 'GET');\n callback.onSuccess = function (data) {\n if (tempObj.dataSourceSettings.dataManager) {\n tempObj.dataSourceSettings.dataManager = JSON.parse(data);\n }\n else {\n tempObj.dataSourceSettings.dataSource = JSON.parse(data);\n }\n tempObj.dataBind();\n };\n callback.send().then();\n }\n if (tempObj.dataSourceSettings.connectionDataSource.crudAction.read) {\n var callback = new Fetch(tempObj.dataSourceSettings.connectionDataSource.crudAction.read, 'GET');\n callback.onSuccess = function (data) {\n tempObj.dataSourceSettings.connectionDataSource.dataManager = JSON.parse(data);\n tempObj.dataBind();\n };\n callback.send().then();\n }\n };\n /**\n * Retrieves the module name associated with the diagram.\n *\n * @returns {string} Retrieves the module name associated with the diagram.\n */\n Diagram.prototype.getModuleName = function () {\n return 'diagram';\n };\n /**\n *\n * Returns the name of class Diagram\n * @returns {string} Returns the module name of the diagram\n * @private\n */\n Diagram.prototype.getClassName = function () {\n return 'Diagram';\n };\n /* tslint:disable */\n /**\n * To provide the array of modules needed for control rendering\n *\n * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\\\n * @private\n */\n Diagram.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'Bpmn',\n args: []\n });\n modules.push({\n member: 'Bridging',\n args: []\n });\n modules.push({\n member: 'ConnectorEditingTool',\n args: []\n });\n //Removed isBlazor code\n if (this.constraints & DiagramConstraints.UndoRedo) {\n modules.push({\n member: 'UndoRedo',\n args: []\n });\n }\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' ||\n this.layout.enableAnimation) {\n modules.push({\n member: 'LayoutAnimate',\n args: []\n });\n }\n if (this.snapSettings.constraints) {\n modules.push({\n member: 'Snapping',\n args: [this]\n });\n }\n modules.push({\n member: 'Ej1Serialization',\n args: [this]\n });\n modules.push({\n member: 'PrintandExport',\n args: [this]\n });\n if (this.contextMenuSettings.show) {\n modules.push({\n member: 'contextMenu',\n args: [this, this.serviceLocator]\n });\n }\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree') {\n modules.push({\n member: 'OrganizationalChart',\n args: [this]\n });\n }\n if (this.layout.type === 'ComplexHierarchicalTree') {\n modules.push({\n member: 'ComplexHierarchicalTree',\n args: []\n });\n }\n if (this.layout.type === 'MindMap') {\n modules.push({\n member: 'MindMapChart',\n args: []\n });\n }\n if (this.layout.type === 'RadialTree') {\n modules.push({\n member: 'RadialTree',\n args: []\n });\n }\n if (this.layout.type === 'SymmetricalLayout') {\n modules.push({\n member: 'SymmetricalLayout',\n args: []\n });\n }\n if (this.layout.type === 'Flowchart') {\n modules.push({\n member: 'FlowchartLayout',\n args: []\n });\n }\n if (this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource ||\n this.dataSourceSettings.crudAction.read || this.dataSourceSettings.connectionDataSource.crudAction.read) {\n modules.push({\n member: 'DataBinding',\n args: []\n });\n }\n if (this.constraints & DiagramConstraints.LineRouting) {\n modules.push({\n member: 'LineRouting',\n args: []\n });\n }\n if ((this.layout && (this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree')) || (this.layout.arrangement === 'Linear' || (this.layout.enableRouting))) {\n modules.push({\n member: 'LineDistribution',\n args: []\n });\n }\n return modules;\n };\n /* tslint:enable */\n Diagram.prototype.removeUserHandlesTemplate = function () {\n if (this.selectedItems.userHandles.length) {\n for (var i = 0; i < this.selectedItems.userHandles.length; i++) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(this.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_template_hiddenUserHandle', elementId);\n }\n }\n }\n };\n /**\n *Destroys the diagram, freeing up its resources.\n *\n * @returns {void} Destroys the diagram, freeing up its resources.\n */\n Diagram.prototype.destroy = function () {\n clearInterval(this.renderTimer);\n this.renderTimer = null;\n if (this.hRuler && this.vRuler) {\n this.hRuler.destroy();\n this.vRuler.destroy();\n }\n this.tooltipObject.destroy();\n this.droppable.destroy();\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n this.removeUserHandlesTemplate();\n this.clearTemplate();\n if (document.getElementById(this.element.id)) {\n this.element.classList.remove('e-diagram');\n var tooltipelement = document.getElementsByClassName('e-diagram-tooltip');\n while (tooltipelement.length > 0) {\n tooltipelement[0].parentNode.removeChild(tooltipelement[0]);\n }\n var content = document.getElementById(this.element.id + 'content');\n if (content) {\n this.element.removeChild(content);\n }\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement].usageCount -= 1;\n var measureElementCount = 'measureElementCount';\n window[\"\" + measureElementCount]--;\n if (window[\"\" + measureElementCount] === 0) {\n window[\"\" + measureWindowElement].parentNode.removeChild(window[\"\" + measureWindowElement]);\n window[\"\" + measureWindowElement] = null;\n }\n }\n }\n var domTable = 'domTable';\n window[\"\" + domTable] = {};\n for (var i = 0; i < this.layers.length; i++) {\n var currentLayer = this.layers[parseInt(i.toString(), 10)];\n currentLayer.zIndexTable = {};\n }\n this.diagramActions = undefined;\n };\n //Wires the mouse events with diagram control\n Diagram.prototype.wireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var isIE11Pointer = Browser.isPointer;\n var wheelEvent = Browser.info.name === 'mozilla' ?\n (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n EventHandler.add(this.diagramCanvas, startEvent, this.eventHandler.mouseDown, this.eventHandler);\n EventHandler.add(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove, this.eventHandler);\n EventHandler.add(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp, this.eventHandler);\n EventHandler.add(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'keydown', this.eventHandler.keyDown, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'keyup', this.eventHandler.keyUp, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'scroll', this.eventHandler.scrolled, this.eventHandler);\n EventHandler.add(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel, this.eventHandler);\n EventHandler.add(window, 'resize', this.eventHandler.windowResize, this.eventHandler);\n this.initDroppables();\n };\n //Unwires the mouse events from diagram control\n Diagram.prototype.unWireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var isIE11Pointer = Browser.isPointer;\n var wheelEvent = Browser.info.name === 'mozilla' ?\n (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n var stopEvent = Browser.touchEndEvent;\n EventHandler.remove(this.diagramCanvas, startEvent, this.eventHandler.mouseDown);\n EventHandler.remove(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove);\n EventHandler.remove(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp);\n EventHandler.remove(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave);\n EventHandler.remove(this.diagramCanvas, 'keydown', this.eventHandler.keyDown);\n EventHandler.remove(this.diagramCanvas, 'keyup', this.eventHandler.keyUp);\n EventHandler.remove(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick);\n EventHandler.remove(this.diagramCanvas, 'scroll', this.eventHandler.scrolled);\n EventHandler.remove(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel);\n EventHandler.remove(window, 'resize', this.eventHandler.windowResize);\n };\n //public methods - start region\n /**\n * Select a specified collection of nodes and connectors in the diagram. You can specify whether to clear the existing selection and provide an old value if needed. \\\n *\n * @returns { void } Select a specified collection of nodes and connectors in the diagram. You can specify whether to clear the existing selection and provide an old value if needed.\\\n * @param {NodeModel | ConnectorModel} objects - An array containing the collection of nodes and connectors to be selected.\n * @param {boolean} multipleSelection - Determines whether the existing selection should be cleared (default is false).\n * @param {NodeModel | ConnectorModel} oldValue - Defines the old value\n *\n */\n Diagram.prototype.select = function (objects, multipleSelection, oldValue) {\n //Removed isBlazor code.\n if (objects != null) {\n this.commandHandler.selectObjects(objects, multipleSelection, oldValue);\n }\n };\n /**\n * Returns the diagram action as a string representation.\n * @returns { string }\n * @param { DiagramAction } diagramAction - The diagram action to be converted to a string.\n */\n //Feature (EJ2-18451) : For all client side events, cause argument data type should be string instead of flag enum and value should be easier to understand.\n Diagram.prototype.getDiagramAction = function (diagramAction) {\n var action;\n if (diagramAction === 2 && DiagramAction.Render) {\n action = 'Render';\n }\n else if (diagramAction & DiagramAction.UndoRedo) {\n action = 'UndoRedo';\n }\n else if (diagramAction & DiagramAction.PublicMethod) {\n action = 'PublicMethod';\n }\n else if (diagramAction & DiagramAction.ToolAction) {\n action = 'ToolAction';\n }\n else if (diagramAction & DiagramAction.TextEdit) {\n action = 'TextEdit';\n }\n else if (diagramAction & DiagramAction.Group) {\n action = 'Group';\n }\n else if (diagramAction & DiagramAction.Interactions) {\n action = 'Interactions';\n }\n else if (diagramAction & DiagramAction.PreventHistory) {\n action = 'PreventHistory';\n }\n else if (diagramAction & DiagramAction.DecoratorPropertyChange) {\n action = 'DecoratorPropertyChange';\n }\n else if (diagramAction & DiagramAction.PreventZIndexOnDragging) {\n action = 'PreventZIndexOnDragging';\n }\n else if (diagramAction & DiagramAction.isGroupDragging) {\n action = 'isGroupDragging';\n }\n else if (diagramAction & DiagramAction.DragUsingMouse) {\n action = 'DragUsingMouse';\n }\n return action;\n };\n /**\n * Select all objects, including nodes and connectors, in the diagram. \\\n *\n * @returns { void } Select all objects, including nodes and connectors, in the diagram.\\\n *\n */\n Diagram.prototype.selectAll = function () {\n var selectedItems = [];\n selectedItems = this.getObjectsOfLayer(this.activeLayer.objects);\n this.select(selectedItems);\n };\n /**\n * Remove a specific object from the current selection in the diagram. \\\n *\n * @returns { void } Remove a specific object from the current selection in the diagram.\\\n * @param {NodeModel | ConnectorModel} obj - The object to remove from the selection.\n *\n */\n Diagram.prototype.unSelect = function (obj) {\n //Removed isBlazor code.\n if (obj && isSelected(this, obj)) {\n this.commandHandler.unSelect(obj);\n // this.commandHandler.updateBlazorSelector();\n }\n };\n /**\n * Removes all elements from the selection list, clearing the current selection.\\\n *\n * @returns { void } Removes all elements from the selection list, clearing the current selection.\\\n *\n */\n Diagram.prototype.clearSelection = function () {\n this.commandHandler.clearSelection(true);\n };\n /**\n * Updates the dimensions of the diagram viewport. \\\n *\n * @returns { void } Updates the dimensions of the diagram viewport.\\\n *\n */\n Diagram.prototype.updateViewPort = function () {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.eventHandler.updateViewPortSize(this.element);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n Diagram.prototype.cutCommand = function () {\n this.cut();\n };\n /**\n * Removes the selected nodes and connectors from the diagram and moves them to the diagram clipboard for cutting. \\\n *\n * @returns { void } Removes the selected nodes and connectors from the diagram and moves them to the diagram clipboard for cutting. \\\n *\n */\n Diagram.prototype.cut = function () {\n this.commandHandler.cut();\n };\n /**\n * Adds a process into the sub-process. \\\n *\n * @returns { void } Adds a process into the sub-process. \\\n * @param {NodeModel | ConnectorModel} process - A NodeModel representing the process to be added.\n * @param {boolean} parentId - A string representing the parent ID where the process will be added.\n *\n */\n Diagram.prototype.addProcess = function (process, parentId) {\n if (this.bpmnModule) {\n this.bpmnModule.addProcess(process, parentId, this);\n }\n };\n /**\n * Removes a process from the BPMN sub-process. \\\n *\n * @returns { void } Removes a process from the BPMN sub-process.\\\n * @param {string} id - The ID of the process to be removed.\n *\n */\n Diagram.prototype.removeProcess = function (id) {\n if (this.bpmnModule) {\n this.bpmnModule.removeProcess(id, this);\n }\n };\n Diagram.prototype.pasteCommand = function () {\n this.paste();\n };\n /**\n * Adds the given objects or the objects in the diagram clipboard to the diagram control. \\\n *\n * @returns { void } Adds the given objects or the objects in the diagram clipboard to the diagram control. \\\n * @param {NodeModel[] | ConnectorModel[]} obj - An array of nodes or connectors objects to be added to diagram.\n\n *\n */\n Diagram.prototype.paste = function (obj) {\n this.commandHandler.paste(obj);\n };\n /**\n * Fits the diagram to the page with respect to mode and region. \\\n *\n * @returns { void } Fits the diagram to the page with respect to mode and region.\\\n * @param {IFitOptions} options - specify the options for fitting the diagram to the page.\n */\n Diagram.prototype.fitToPage = function (options) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.fitToPage(options);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Brings the specified bounds into view within the diagram's viewport. \\\n *\n * @returns { void } Brings the specified bounds into view within the diagram's viewport.\\\n * @param {Rect} bound - Representing the bounds to be brought into view.\n *\n */\n Diagram.prototype.bringIntoView = function (bound) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset\n this.scroller.bringIntoView(bound, true);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Brings the specified bounds to the center of the viewport. \\\n *\n * @returns { void } Brings the specified bounds to the center of the viewport.\\\n * @param {Rect} bound - representing the bounds to be centered in the viewport.\n *\n */\n Diagram.prototype.bringToCenter = function (bound) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.bringToCenter(bound);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n Diagram.prototype.copyCommand = function () {\n this.copy();\n };\n /**\n * Copies the selected nodes and connectors from the diagram to the diagram clipboard for copying. \\\n *\n * @returns { Object } Copies the selected nodes and connectors from the diagram to the diagram clipboard for copying.\\\n *\n */\n Diagram.prototype.copy = function () {\n var obj = this.commandHandler.copy();\n return obj;\n };\n /**\n * Groups the selected nodes and connectors in the diagram. \\\n *\n * @returns { void } Groups the selected nodes and connectors in the diagram.\\\n *\n */\n Diagram.prototype.group = function () {\n var selectedItems = [];\n selectedItems = this.selectedItems.nodes;\n selectedItems = selectedItems.concat(this.selectedItems.connectors);\n if (selectedItems.length > 1) {\n this.callBlazorModel = false;\n this.insertBlazorDiagramObjects(this.selectedItems);\n this.commandHandler.group();\n this.callBlazorModel = true;\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * UnGroup the selected nodes and connectors in diagram \\\n *\n * @returns { void } UnGroup the selected nodes and connectors in diagram.\\\n *\n */\n Diagram.prototype.unGroup = function () {\n this.callBlazorModel = false;\n this.insertBlazorDiagramObjects(this.selectedItems);\n this.commandHandler.unGroup();\n this.callBlazorModel = true;\n this.commandHandler.getBlazorOldValues();\n };\n /**\n * Use this method to move the currently selected nodes or connectors to the back of the drawing order. This effectively places them behind other elements in the diagram. \\\n *\n * @returns { void } Use this method to move the currently selected nodes or connectors to the back of the drawing order. This effectively places them behind other elements in the diagram.\\\n *\n */\n Diagram.prototype.sendToBack = function () {\n this.commandHandler.sendToBack();\n };\n /**\n * Specify which layer in the diagram should be considered the active layer. The active layer is the one where new elements will be added and where user interactions are primarily focused. \\\n *\n * @returns { void } Specify which layer in the diagram should be considered the active layer. The active layer is the one where new elements will be added and where user interactions are primarily focused. \\\n * @param {string} layerName - The name of the layer to set as the active layer.\n *\n */\n Diagram.prototype.setActiveLayer = function (layerName) {\n var layer = this.commandHandler.getLayer(layerName);\n this.activeLayer = layer;\n };\n /**\n * add the layer into diagram\\\n *\n * @returns { void } Adds the specified layer to the diagram control along with its associated objects.\\\n * @param {LayerModel} layer - representing the layer to be added to the diagram.\n * @param {Object[]} layerObject - An optional array of objects associated with the layer.\n * @blazorArgsType layer|DiagramLayer\n\n *\n */\n Diagram.prototype.addLayer = function (layer, layerObject) {\n this.commandHandler.addLayer(layer, layerObject);\n };\n /**\n * remove the layer from diagram \\\n *\n * @returns { void } remove the layer from diagram.\\\n * @param {string} layerId - provide the bound value.\n\n *\n */\n Diagram.prototype.removeLayer = function (layerId) {\n this.commandHandler.removeLayer(layerId, isBlazor());\n };\n // /* eslint-enable */\n /**\n *Moves objects from one layer to another layer within the diagram. \\\n *\n * @returns { void } Moves objects from one layer to another layer within the diagram. \\\n * @param {string[]} objects - An array of object IDs represented as strings to be moved.\n * @param {string} targetLayer - The ID of the target layer to which the objects should be moved.\n */\n Diagram.prototype.moveObjects = function (objects, targetLayer) {\n var oldValues = cloneObject(this.layers);\n this.enableServerDataBinding(false);\n this.commandHandler.moveObjects(objects, targetLayer);\n // const result: object = this.commandHandler.deepDiffer.map(oldValues, cloneObject(this.layers));\n // const diffValue: object = this.commandHandler.deepDiffer.frameObject({}, result);\n // this.oldDiagramObject = { layers: diffValue };\n // // this.commandHandler.updateBlazorProperties();\n };\n /* tslint:disable */\n Diagram.prototype.layerObjectUpdate = function () {\n //Removed isBlazor code.\n };\n /* tslint:enable */\n /**\n * Use this method to change the order of layers in the diagram. This moves the specified layer behind the layer that comes after it in the layer order. \\\n *\n * @returns { void } Use this method to change the order of layers in the diagram. This moves the specified layer behind the layer that comes after it in the layer order.\\\n * @param {string} layerName - The name of the layer to be moved.\n * @param {string} targetLayer - define the objects id of string array\n *\n */\n Diagram.prototype.sendLayerBackward = function (layerName) {\n this.layerObjectUpdate();\n this.commandHandler.sendLayerBackward(layerName);\n // comment blazor code\n // this.commandHandler.updateLayerObject(this.oldDiagramObject, true);\n };\n /**\n * Moves the specified layer forward in the drawing order. \\\n *\n * @returns { void } Moves the specified layer forward in the drawing order.\\\n * @param {string} layerName - A string representing the name of the layer to be moved forward.\n *\n */\n Diagram.prototype.bringLayerForward = function (layerName) {\n this.layerObjectUpdate();\n this.commandHandler.bringLayerForward(layerName);\n // comment blazor code\n // this.commandHandler.updateLayerObject(this.oldDiagramObject);\n };\n /**\n * Clones a layer along with its objects.\\\n *\n * @returns { void } Clones a layer along with its objects.\\\n * @param {string} layerName - A string representing the name of the layer to be cloned.\n *\n */\n Diagram.prototype.cloneLayer = function (layerName) {\n this.commandHandler.cloneLayer(layerName);\n };\n /**\n *Brings the selected nodes or connectors to the front of the drawing order. \\\n *\n * @returns { void } Brings the selected nodes or connectors to the front of the drawing order. \\\n *\n */\n Diagram.prototype.bringToFront = function () {\n this.commandHandler.bringToFront();\n };\n /**\n *Sends the selected nodes or connectors forward in the visual order. \\\n *\n * @returns { void } Sends the selected nodes or connectors forward in the visual order. \\\n *\n */\n Diagram.prototype.moveForward = function () {\n this.commandHandler.sendForward();\n };\n /**\n *Sends the selected nodes or connectors one step backward in the z-order.\\\n *\n * @returns { void } Sends the selected nodes or connectors one step backward in the z-order.\\\n *\n */\n Diagram.prototype.sendBackward = function () {\n this.commandHandler.sendBackward();\n };\n /**\n *gets the node or connector having the given name \\\n *\n * @returns { void } gets the node or connector having the given name.\\\n * @param {string} name - define the name of the layer\n *\n */\n Diagram.prototype.getObject = function (name) {\n return this.nameTable[\"\" + name];\n };\n /**\n *Retrieves the node object for the given node ID. \\\n *\n * @returns { void } Retrieves the node object for the given node ID. \\\n * @param {string} id - The ID of the node for which the node object is to be retrieved.\n *\n */\n Diagram.prototype.getNodeObject = function (id) {\n return cloneObject(this.nameTable[\"\" + id]);\n };\n /**\n *Retrieves the connector object for the given node ID. \\\n *\n * @returns { void } Retrieves the connector object for the given node ID.\\\n * @param {string} id - The ID of the node for which the connector object is to be retrieved.\n *\n */\n Diagram.prototype.getConnectorObject = function (id) {\n return cloneObject(this.nameTable[\"\" + id]);\n };\n /**\n * Retrieves the active layer. \\\n *\n * @returns { void } Retrieves the active layer.\\\n *\n */\n Diagram.prototype.getActiveLayer = function () {\n return this.activeLayer;\n };\n Diagram.prototype.nudgeCommand = function (direction, x, y) {\n if (typeof direction !== 'object' && (this.selectedItems.nodes.length || this.selectedItems.connectors.length) > 0) {\n var type = void 0;\n if (x.type && x.type === 'KEYDOWN') {\n type = x.type;\n }\n this.nudge(direction, undefined, undefined, type);\n }\n };\n /**\n * Moves the selected objects towards the given direction by a specified distance.\n *\n * @returns { void } Moves the selected objects towards the given direction by a specified distance. \\\n * @param {NudgeDirection} direction - Defines the direction in which the objects should be moved.\n * @param {number} x - The horizontal distance by which the selected objects should be moved.\n * @param {number} y - The vertical distance by which the selected objects should be moved.\n * @param {string} type - A string that defines the type of nudge action.\n */\n Diagram.prototype.nudge = function (direction, x, y, type) {\n var tx = 0;\n var ty = 0;\n var negativeDirection;\n if (direction === 'Left' || direction === 'Right') {\n negativeDirection = (direction === 'Left');\n tx = (negativeDirection ? -1 : 1) * (x ? x : 1);\n }\n else {\n negativeDirection = (direction === 'Up');\n ty = (negativeDirection ? -1 : 1) * (y ? y : 1);\n }\n if (type === 'KEYDOWN') {\n tx *= 5;\n ty *= 5;\n }\n var obj = this.selectedItems;\n var annotation = this.selectedItems.wrapper.children[0];\n if (annotation instanceof TextElement) {\n this.commandHandler.labelDrag(obj.nodes[0], annotation, tx, ty);\n }\n else {\n var undoObject = cloneObject(this.selectedItems);\n this.protectPropertyChange(true);\n this.drag(obj, tx, ty);\n this.protectPropertyChange(false);\n var entry = {\n type: 'PositionChanged',\n redoObject: cloneObject(this.selectedItems), undoObject: undoObject, category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n this.refreshCanvasLayers();\n };\n Diagram.prototype.insertBlazorDiagramObjects = function (actualObject) {\n //Removed isBlazor code\n };\n /**\n * Drags the given object (nodes, connectors, or selector) by the specified horizontal and vertical distances.\n *\n * @returns { void } Drags the given object (nodes, connectors, or selector) by the specified horizontal and vertical distances.\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - representing the nodes, connectors, or selector to be dragged.\n * @param {number} tx - A number representing the horizontal distance by which the given objects should be moved.\n * @param {number} ty - A number representing the vertical distance by which the given objects should be moved.\n */\n Diagram.prototype.drag = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n //Removed isBlazor code\n if (this.bpmnModule && (obj instanceof Node)) {\n var updated = this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty);\n if (updated) {\n return;\n }\n }\n if (obj instanceof Selector) {\n this.preventConnectorsUpdate = true;\n if (obj.nodes && obj.nodes.length) {\n for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n this.callBlazorModel = false;\n this.drag(node, tx, ty);\n if (node.parentId) {\n var parent_1 = this.nameTable[node.parentId];\n if (parent_1.isLane) {\n var swimlane = this.nameTable[parent_1.parentId];\n updateLaneBoundsAfterAddChild(parent_1, swimlane, node, this);\n }\n }\n }\n this.callBlazorModel = true;\n }\n if (obj.connectors && obj.connectors.length) {\n this.callBlazorModel = false;\n for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n this.drag(conn, tx, ty);\n if (this.selectionConnectorsList.indexOf(conn) === -1) {\n this.selectionConnectorsList.push(conn);\n }\n }\n this.callBlazorModel = true;\n }\n this.updateSelector();\n if ((this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.updatePage();\n }\n }\n else {\n if (obj instanceof Node) {\n if (this.bpmnModule) {\n this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty);\n }\n }\n this.commandHandler.drag(obj, tx, ty);\n }\n if (obj instanceof Selector) {\n this.preventConnectorsUpdate = false;\n for (var _d = 0, _e = this.selectionConnectorsList; _d < _e.length; _d++) {\n var connectors = _e[_d];\n this.updateConnectorProperties(this.nameTable[connectors.id]);\n if (connectors.shape.type === 'Bpmn' && connectors.shape.sequence === 'Default' && connectors.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(connectors);\n }\n }\n this.selectionConnectorsList = [];\n }\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n // Removed one if condition here to improve performance.\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction)) &&\n (!(this.blazorActions & BlazorAction.GroupClipboardInProcess))) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n Diagram.prototype.disableStackContainerPadding = function (wrapper, disable) {\n if (wrapper instanceof StackPanel) {\n wrapper.considerPadding = disable;\n }\n if (wrapper.children) {\n for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.disableStackContainerPadding(child, false);\n }\n }\n };\n /**\n * Use this method to scale one or more objects in the diagram by specifying the horizontal and vertical scaling ratios. You can also provide a pivot point as a reference for scaling.\n *\n * @returns { void } Use this method to scale one or more objects in the diagram by specifying the horizontal and vertical scaling ratios. You can also provide a pivot point as a reference for scaling.\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - The objects to be resized.\n * @param {number} sx - The horizontal scaling ratio.\n * @param {number} sy - The vertical scaling ratio.\n * @param {PointModel} pivot - The reference point with respect to which the objects will be resized.\n */\n Diagram.prototype.scale = function (obj, sx, sy, pivot) {\n this.disableStackContainerPadding(obj.wrapper, false);\n this.insertBlazorDiagramObjects(obj);\n var checkBoundaryConstraints = true;\n if (obj.id) {\n obj = this.nameTable[obj.id] || obj;\n }\n if (obj instanceof Selector) {\n if (obj.nodes && obj.nodes.length) {\n this.callBlazorModel = false;\n for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n checkBoundaryConstraints = this.commandHandler.scale(node, sx, sy, pivot, obj);\n if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) {\n this.commandHandler.scale(node, 1 / sx, 1 / sy, pivot, obj);\n }\n }\n this.callBlazorModel = true;\n }\n if (obj.connectors && obj.connectors.length) {\n this.callBlazorModel = false;\n for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n this.commandHandler.scale(conn, sx, sy, pivot, obj);\n if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) {\n this.commandHandler.scale(conn, 1 / sx, 1 / sy, pivot, obj);\n }\n }\n this.callBlazorModel = true;\n }\n var selector = this.selectedItems;\n if (!(selectionHasConnector(this, selector))) {\n this.updateSelector();\n }\n this.refreshCanvasLayers();\n }\n else {\n this.commandHandler.scale(obj, sx, sy, pivot, (obj.children ? obj : undefined));\n }\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction)) &&\n (!(this.blazorActions & BlazorAction.GroupClipboardInProcess))) {\n this.commandHandler.getBlazorOldValues();\n }\n this.disableStackContainerPadding(obj.wrapper, true);\n return checkBoundaryConstraints;\n };\n /**\n * Rotates the specified nodes, connectors, or selector by the given angle.\n *\n * @returns { void } Rotates the specified nodes, connectors, or selector by the given angle.\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - The objects to be rotated\n * @param {number} angle - The angle by which the objects should be rotated (in degrees).\n * @param {PointModel} pivot - The reference point with respect to which the objects will be rotated.\n * @param {boolean} rotateUsingHandle - Whether to rotate using the handle.\n */\n Diagram.prototype.rotate = function (obj, angle, pivot, rotateUsingHandle) {\n // Bug 842506: After multiple group node rotations, the undo functionality is not working.\n // Added below condition to store the current obj to add it as undo element in rotation changed entry.\n var undoObject;\n var childTable = [];\n if (!rotateUsingHandle) {\n undoObject = cloneObject(obj);\n if (undoObject.nodes && undoObject.nodes.length > 0 && undoObject.nodes[0].children) {\n var elements = [];\n if (!this.fromUndo) {\n this.rotateUsingButton = true;\n }\n var nodes = this.commandHandler.getAllDescendants(undoObject.nodes[0], elements);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n if (angle < 0) {\n angle = (angle + 360) % 360;\n }\n }\n this.insertBlazorDiagramObjects(obj);\n var checkBoundaryConstraints;\n if (obj.id) {\n obj = this.nameTable[obj.id] || obj;\n }\n if (obj) {\n pivot = pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n if (obj instanceof Selector) {\n this.callBlazorModel = false;\n obj.rotateAngle += angle;\n obj.wrapper.rotateAngle += angle;\n var bounds = getBounds(obj.wrapper);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bounds);\n if (!checkBoundaryConstraints) {\n obj.rotateAngle -= angle;\n obj.wrapper.rotateAngle -= angle;\n return checkBoundaryConstraints;\n }\n var objects = [];\n objects = objects.concat(obj.nodes);\n objects = objects.concat(obj.connectors);\n this.commandHandler.rotateObjects(obj, objects, angle, pivot);\n this.callBlazorModel = true;\n }\n else {\n this.commandHandler.rotateObjects(obj, [obj], angle, pivot);\n }\n }\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction))) {\n this.commandHandler.getBlazorOldValues();\n }\n if (!rotateUsingHandle && !this.fromUndo) {\n // To add history entry for group node rotation.\n if (undoObject.nodes && undoObject.nodes.length > 0 && undoObject.nodes[0].children) {\n var entry = {\n type: 'RotationChanged', redoObject: cloneObject(obj), undoObject: cloneObject(undoObject), category: 'Internal',\n childTable: childTable\n };\n this.commandHandler.addHistoryEntry(entry);\n this.commandHandler.updateSelector();\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * Moves the source point of the given connector by the specified horizontal and vertical distances.\n *\n * @returns { void } Moves the source point of the given connector by the specified horizontal and vertical distances.\\\n * @param {ConnectorModel} obj - representing the connector whose source point needs to be moved.\n * @param {number} tx - A number representing the horizontal distance by which the source point should be moved.\n * @param {number} ty - A number representing the vertical distance by which the source point should be moved.\n */\n Diagram.prototype.dragSourceEnd = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n this.commandHandler.dragSourceEnd(obj, tx, ty);\n if (this.callBlazorModel) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * Moves the target point of the given connector by the specified horizontal and vertical distances.\n *\n * @returns { void } Moves the target point of the given connector by the specified horizontal and vertical distances.\\\n * @param {ConnectorModel} obj - representing the connector whose target point needs to be moved.\n * @param {number} tx - A number representing the horizontal distance by which the target point should be moved.\n * @param {number} ty - A number representing the vertical distance by which the target point should be moved.\n */\n Diagram.prototype.dragTargetEnd = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n this.commandHandler.dragTargetEnd(obj, tx, ty);\n if (this.callBlazorModel) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * Finds all the objects that are under the given mouse position based on specified criteria.\n *\n * @returns { void } Finds all the objects that are under the given mouse position based on specified criteria.\\\n * @param {PointModel} position - The PointModel that defines the position. The objects under this position will be found.\n * @param {IElement} source - Representing the source object. The objects under this source will be found.\n */\n Diagram.prototype.findObjectsUnderMouse = function (position, source) {\n return this.eventHandler.findObjectsUnderMouse(position, source);\n };\n /**\n * Finds the object that is under the given mouse position based on specified criteria.\n *\n * @returns { void } Finds the object that is under the given mouse position based on specified criteria. \\\n * @param {NodeModel[] | ConnectorModel[]}objects - A collection of NodeModel or ConnectorModel objects, from which the target object has to be found.\n * @param {Actions} action - Defines the action used to find the relevant object.\n * @param {boolean} inAction - A boolean indicating the active state of the action.\n */\n Diagram.prototype.findObjectUnderMouse = function (objects, action, inAction) {\n return this.eventHandler.findObjectUnderMouse(objects, action, inAction);\n };\n /**\n * Finds the object that is under the given active object (source) based on specified criteria.\n *\n * @returns { void } Finds the object that is under the given active object (source) based on specified criteria.\\\n * @param {NodeModel[] | ConnectorModel[]} objects - A collection of node or connector objects, from which the target object has to be found.\n * @param {Actions} action - defines the action used to find the relevant object.\n * @param {boolean} inAction - A boolean indicating the active state of the action.\n * @param {PointModel} position - The PointModel that defines the position\n * @param {IElement} source - Representing the source element.\n */\n Diagram.prototype.findTargetObjectUnderMouse = function (objects, action, inAction, position, source) {\n return this.eventHandler.findTargetUnderMouse(objects, action, inAction, position, source);\n };\n /**\n * Finds the child element of the given object at the given position based on specified criteria.\n *\n * @returns { void } Finds the child element of the given object at the given position based on specified criteria.\\\n * @param {IElement} obj - representing the object, the child element of which has to be found.\n * @param {PointModel} position - defines the position. The child element under this position will be found.\n * @param {Diagram} diagram - defines the diagram value.\n * @param {number} padding - A number representing the padding for the search area around the position.\n */\n Diagram.prototype.findElementUnderMouse = function (obj, position, diagram, padding) {\n return this.eventHandler.findElementUnderMouse(obj, position, diagram, padding);\n };\n /**\n * Defines the action to be done, when the mouse hovers the given element of the given object\n *\n * @returns { void } Defines the action to be done, when the mouse hovers the given element of the given object .\\\n * @param {NodeModel | ConnectorModel} obj - Defines the object under mouse\n * @param {DiagramElement} wrapper - Defines the target element of the object under mouse\n * @param {PointModel} position - Defines the current mouse position\n * @param { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - Defines the target\n * @private\n */\n Diagram.prototype.findActionToBeDone = function (obj, wrapper, position, target) {\n return this.eventHandler.findActionToBeDone(obj, wrapper, position, target);\n };\n // Feature 826644: Support to add ports to the connector. Added below method to update connector port on property change.\n Diagram.prototype.updateConnectorPort = function (connector) {\n if (connector.ports.length) {\n var portContent = void 0;\n for (var _i = 0, _a = connector.ports; _i < _a.length; _i++) {\n var port = _a[_i];\n portContent = this.getWrapper(connector.wrapper, port.id);\n connector.initPortWrapper(port, connector.intermediatePoints, connector.wrapper.bounds, portContent);\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n /**\n * Returns the tool that handles the given action.\n *\n * @returns { ToolBase } Returns the tool that handles the given action. \\\n * @param {string} action - A string that defines the action that is going to be performed.\n */\n Diagram.prototype.getTool = function (action) {\n var tool;\n var getCustomTool = getFunction(this.getCustomTool);\n if (getCustomTool) {\n tool = getCustomTool(action);\n if (tool) {\n return tool;\n }\n }\n return this.eventHandler.getTool(action);\n };\n /**\n * Defines the cursor that corresponds to the given action.\n *\n * @returns { string } Defines the cursor that corresponds to the given action. \\\n * @param {string} action - The action for which the cursor is defined.\n * @param {boolean} active - Indicates whether the action is active.\n */\n Diagram.prototype.getCursor = function (action, active) {\n var cursor;\n var getCustomCursor = getFunction(this.getCustomCursor);\n if (getCustomCursor) {\n cursor = getCustomCursor(action, active);\n if (cursor) {\n return cursor;\n }\n }\n if (this.customCursor.length) {\n for (var i = 0; i < this.customCursor.length; i++) {\n if (this.customCursor[parseInt(i.toString(), 10)].action === action) {\n return this.customCursor[parseInt(i.toString(), 10)].cursor;\n }\n }\n }\n return this.eventHandler.getCursor(action);\n };\n /**\n * Initializes the undo redo actions\n *\n * @returns { void } Initializes the undo redo actions \\\n * @private\n */\n Diagram.prototype.initHistory = function () {\n if (this.undoRedoModule) {\n this.undoRedoModule.initHistory(this);\n }\n };\n /**\n * Adds a history entry for a change in the diagram control to the track.\n *\n * @returns { void } Adds a history entry for a change in the diagram control to the track. \\\n * @param {HistoryEntry} entry - The history entry that describes a change in the diagram.\n * @param {string[]} sourceId - An optional array of source IDs associated with the change.\n */\n Diagram.prototype.addHistoryEntry = function (entry, sourceId) {\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)\n && (!this.currentSymbol || this.checkCurrentSymbol(this.currentSymbol, entry))) {\n if (entry.undoObject && entry.undoObject.id === 'helper') {\n return;\n }\n var added = this.undoRedoModule.addHistoryEntry(entry, this);\n if (entry.type !== 'StartGroup' && entry.type !== 'EndGroup' && added) {\n this.historyChangeTrigger(entry, 'CustomAction', sourceId);\n }\n }\n };\n Diagram.prototype.checkCurrentSymbol = function (currentSymbol, entry) {\n var check = false;\n if (entry.undoObject && entry.redoObject) {\n var undoObjects = entry.undoObject;\n var redoObject = entry.undoObject;\n if (redoObject.id && undoObjects.id && redoObject.id !== currentSymbol.id && undoObjects.id !== currentSymbol.id) {\n return check = true;\n }\n else {\n return check;\n }\n }\n return check;\n };\n /**\n * Adds the given custom change in the diagram control to the track\n *\n * @returns { void } Adds the given custom change in the diagram control to the track \\\n * @param {HistoryEntry} entry - Defines the entry/information about a change in diagram\n */\n Diagram.prototype.addCustomHistoryEntry = function (entry) {\n //Removed isBlazor code\n };\n /* eslint-disable */\n /** @private */\n Diagram.prototype.historyChangeTrigger = function (entry, action, sourceId) {\n var change = {};\n /* eslint-enable */\n var oldValue = 'oldValue';\n var newValue = 'newValue';\n var type = 'type';\n var entryType = 'entryType';\n var source = [];\n if (entry.category === 'Internal') {\n if (entry && entry.redoObject && ((entry.redoObject.nodes) instanceof Array) &&\n ((entry.redoObject.connectors) instanceof Array)) {\n source = entry.redoObject.nodes.concat(entry.redoObject.connectors);\n }\n else {\n if (entry.redoObject) {\n source.push(entry.redoObject);\n }\n }\n change[\"\" + type] = entry.type;\n //Removed isBlazor code\n switch (entry.type) {\n case 'PositionChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX,\n offsetY: entry.undoObject.offsetY\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX,\n offsetY: entry.redoObject.offsetY\n };\n break;\n case 'RotationChanged':\n change[\"\" + oldValue] = { rotateAngle: entry.undoObject.rotateAngle };\n change[\"\" + newValue] = { rotateAngle: entry.redoObject.rotateAngle };\n break;\n case 'SizeChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX, offsetY: entry.undoObject.offsetY,\n width: entry.undoObject.width, height: entry.undoObject.height\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX, offsetY: entry.redoObject.offsetY,\n width: entry.redoObject.width, height: entry.redoObject.height\n };\n break;\n case 'CollectionChanged':\n change[entry.changeType] = source;\n break;\n case 'ConnectionChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX,\n offsetY: entry.undoObject.offsetY\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX,\n offsetY: entry.redoObject.offsetY\n };\n break;\n }\n /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/\n var nodeSourceId = [];\n var connectorSourceId = [];\n if (sourceId === undefined && entry.type === 'PropertyChanged') {\n for (var i = 0; i < Object.keys(entry.undoObject).length; i++) {\n if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'nodes') {\n for (var _i = 0, _a = Object.keys(entry.undoObject.nodes); _i < _a.length; _i++) {\n var key = _a[_i];\n var undoIndex = parseInt(key, 10);\n nodeSourceId.push(this.nodes[parseInt(undoIndex.toString(), 10)].id);\n }\n }\n }\n for (var i = 0; i < Object.keys(entry.undoObject).length; i++) {\n if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'connectors') {\n for (var _b = 0, _c = Object.keys(entry.undoObject.connectors); _b < _c.length; _b++) {\n var key = _c[_b];\n var undoIndex = parseInt(key, 10);\n connectorSourceId.push(this.connectors[parseInt(undoIndex.toString(), 10)].id);\n }\n }\n }\n sourceId = nodeSourceId.concat(connectorSourceId);\n }\n var arg = {\n cause: entry.category, source: cloneBlazorObject(source), change: cloneBlazorObject(change),\n action: action, sourceId: sourceId\n };\n //Removed isBlazor code\n if (source.length) {\n this.triggerEvent(DiagramEvent.historyChange, arg);\n }\n }\n };\n /**\n * Use this method to start a group action, allowing multiple actions to be treated as a single unit during undo/redo operations. This is useful when you want to group related actions together.\n *\n * @returns { void } Use this method to start a group action, allowing multiple actions to be treated as a single unit during undo/redo operations. This is useful when you want to group related actions together. \\\n */\n Diagram.prototype.startGroupAction = function () {\n var entry = { type: 'StartGroup', category: 'Internal' };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n };\n /**\n * Closes the grouping of actions that will be undone/restored as a whole.\n *\n * @returns { void } Closes the grouping of actions that will be undone/restored as a whole.\\\n */\n Diagram.prototype.endGroupAction = function () {\n var entry = { type: 'EndGroup', category: 'Internal' };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n };\n /**\n * Restores the last action that was performed.\n *\n * @returns { void } Restores the last action that was performed. \\\n */\n Diagram.prototype.undo = function () {\n this.canEnableBlazorObject = true;\n this.callBlazorModel = false;\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)) {\n this.undoRedoModule.undo(this);\n }\n else if (this.constraints & DiagramConstraints.UndoRedo) {\n console.warn('[WARNING] :: Module \"UndoRedo\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n /**\n * Reverse an undo action, essentially restoring the state of the component to a previous state after an undo operation has been performed.\n *\n * @returns { void } Reverse an undo action, essentially restoring the state of the component to a previous state after an undo operation has been performed.\\\n */\n Diagram.prototype.redo = function () {\n this.canEnableBlazorObject = true;\n this.callBlazorModel = false;\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)) {\n this.undoRedoModule.redo(this);\n }\n else if (this.constraints & DiagramConstraints.UndoRedo) {\n console.warn('[WARNING] :: Module \"UndoRedo\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n Diagram.prototype.getBlazorDiagramObjects = function (objects) {\n if (objects) {\n for (var j = 0; j < objects.length; j++) {\n this.insertBlazorDiagramObjects(objects[parseInt(j.toString(), 10)]);\n }\n }\n else {\n this.insertBlazorDiagramObjects(this.selectedItems);\n }\n this.callBlazorModel = false;\n this.canEnableBlazorObject = true;\n };\n /**\n * Aligns a group of objects with reference to the first object in the group.\n *\n * @returns { void } Aligns a group of objects with reference to the first object in the group.\\\n * @param {AlignmentOptions}option - Defining the factor by which the objects have to be aligned.\n * @param {NodeModel[] | ConnectorModel[]} objects - A collection of node or connector objects to be aligned.\n * @param {AlignmentMode} type - Defines the type to be aligned\n */\n Diagram.prototype.align = function (option, objects, type) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.align(objects, option, (type ? type : 'Object'));\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n /**\n * Arranges a group of objects with equal intervals within the group.\n *\n * @returns { void } Arranges a group of objects with equal intervals within the group.\\\n * @param {NodeModel[] | ConnectorModel[]} option - Objects that have to be equally spaced within the group.\n * @param {DistributeOptions} objects - Object defining the factor to distribute the shapes.\n */\n Diagram.prototype.distribute = function (option, objects) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.distribute(objects, option);\n this.commandHandler.getBlazorOldValues();\n this.canEnableBlazorObject = false;\n this.callBlazorModel = true;\n };\n /**\n * Scales the specified objects to match the size of the first object in the group.\n *\n * @returns { void } Scales the specified objects to match the size of the first object in the group.\\\n * @param {SizingOptions} option - Specifies whether the objects should be horizontally scaled, vertically scaled, or both.\n * @param {NodeModel[] | ConnectorModel[]}objects - The collection of objects to be scaled.\n */\n Diagram.prototype.sameSize = function (option, objects) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.sameSize(objects, option);\n this.commandHandler.getBlazorOldValues();\n this.canEnableBlazorObject = false;\n this.callBlazorModel = true;\n };\n Diagram.prototype.updateBlazorDiagramProperties = function (attribute, canCall) {\n //Removed isBlazor code\n if (canCall) {\n // this.commandHandler.getDiagramOldValues(this.oldDiagramObject, attribute);\n }\n };\n Diagram.prototype.getZoomingAttribute = function () {\n var attribute = [];\n attribute.push('scrollSettings');\n attribute.push('snapSettings');\n return attribute;\n };\n /**\n * Scales the diagram control based on the provided zoom factor. You can optionally specify a focused point around which the diagram will be zoomed.\n *\n * @returns { void } Scales the diagram control based on the provided zoom factor. You can optionally specify a focused point around which the diagram will be zoomed.\\\n * @param {number} factor - Defines the factor by which the diagram is zoomed.\n * @param {PointModel} focusedPoint - Defines the point with respect to which the diagram will be zoomed.\n */\n Diagram.prototype.zoom = function (factor, focusedPoint) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.zoom(factor, 0, 0, focusedPoint);\n if (!(this.blazorActions & BlazorAction.interaction)) {\n this.updateBlazorDiagramProperties(attribute, true);\n }\n };\n /**\n * Scales the diagram control based on the provided options, which include the desired zoom factor, focus point, and zoom type.\n *\n * @returns { void } Scales the diagram control based on the provided options, which include the desired zoom factor, focus point, and zoom type.\\\n * @param {ZoomOptions} options - An object specifying the zoom factor, focus point, and zoom type.\n *\n */\n Diagram.prototype.zoomTo = function (options) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n var factor = options.zoomFactor ? options.zoomFactor : 0.2;\n factor = options.type === 'ZoomOut' ? 1 / (1 + factor) : (1 + factor);\n this.scroller.zoom(factor, 0, 0, options.focusPoint);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Pans the diagram control to the given horizontal and vertical offsets.\n *\n * @returns { void } Pans the diagram control to the given horizontal and vertical offsets.\\\n * @param {number} horizontalOffset - The horizontal distance to which the diagram should be scrolled.\n * @param {number} verticalOffset - The vertical distance to which the diagram should be scrolled.\n * @param {PointModel} focusedPoint - representing the focused point during panning.\n * @param {boolean} isInteractiveZoomPan - A boolean indicating whether the panning is interactive zoom pan.\n */\n Diagram.prototype.pan = function (horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.setCursor('grabbing');\n this.scroller.zoom(1, horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Resets the zoom and scroller offsets to their default values.\n *\n * @returns { void } Resets the zoom and scroller offsets to their default values.\\\n */\n Diagram.prototype.reset = function () {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.zoom(1 / this.scroller.currentZoom, -this.scroller.horizontalOffset, -this.scroller.verticalOffset, { x: 0, y: 0 });\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Resets the segments of the connectors to their default state. This removes any custom segments and restores the connectors to their original configuration.\n *\n * @returns { void } Resets the segments of the connectors to their default state. This removes any custom segments and restores the connectors to their original configuration. \\\n */\n Diagram.prototype.resetSegments = function () {\n var previousConnectorObject = [];\n var updateConnectorObject = [];\n var changeConnectors = [];\n //Removed isBlazor code\n if (this.constraints & DiagramConstraints.LineRouting && this.lineRoutingModule) {\n this.lineRoutingModule.lineRouting(this);\n }\n else {\n this.protectPropertyChange(true);\n var connector = void 0;\n for (var i = 0; i < this.connectors.length; i++) {\n connector = this.connectors[parseInt(i.toString(), 10)];\n connector.segments = [];\n this.connectorPropertyChange(connector, {}, { segments: connector.segments });\n }\n this.protectPropertyChange(false);\n }\n //Removed isBlazor code\n };\n /**\n * setBlazorDiagramProps method\n *\n * @returns {void} setBlazorDiagramProps method .\\\n * @param {boolean} arg - provide the eventName value.\n * @private\n */\n Diagram.prototype.setBlazorDiagramProps = function (arg) {\n var attribute = this.getZoomingAttribute();\n if (arg) {\n this.updateBlazorDiagramProperties(attribute);\n }\n else {\n this.updateBlazorDiagramProperties(attribute, true);\n }\n };\n /**\n * getDirection method\n *\n * @returns { Promise } getDirection method .\\\n * @param {DiagramEvent} eventName - provide the eventName value.\n * @param {Object} args - provide the args value.\n * @private\n */\n Diagram.prototype.triggerEvent = function (eventName, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (args) {\n this.updateEventValue(args);\n }\n return [4 /*yield*/, this.trigger(DiagramEvent[\"\" + eventName], args)];\n case 1:\n eventArgs = _a.sent();\n //Removed isBlazor code.\n return [2 /*return*/, eventArgs];\n }\n });\n });\n };\n Diagram.prototype.updateEventValue = function (args) {\n var element = args.element;\n if (args.element && element instanceof Selector && (element.nodes.length + element.connectors.length === 1)) {\n args.element = (element.nodes.length === 1) ? element.nodes[0] : element.connectors[0];\n }\n };\n /**\n * Adds the specified node to a lane within a swimlane.\n *\n * @returns { void } Adds the specified node to a lane within a swimlane. \\\n * @param {NodeModel} node - representing the node to be added to the lane.\n * @param {string} swimLane - A string representing the ID of the swimlane containing the lane.\n * @param {string} lane - A string representing the ID of the lane where the node will be added.\n\n */\n Diagram.prototype.addNodeToLane = function (node, swimLane, lane) {\n if (this.nameTable[\"\" + swimLane]) {\n var swimlaneNode = this.nameTable[\"\" + swimLane];\n this.protectPropertyChange(true);\n if (this.undoRedoModule) {\n this.historyManager.startGroupAction();\n }\n if (!this.nameTable[node.id]) {\n node.offsetX = swimlaneNode.wrapper.bounds.width + swimlaneNode.wrapper.bounds.x;\n node.offsetY = swimlaneNode.wrapper.bounds.height + swimlaneNode.wrapper.bounds.y;\n node = this.add(node);\n }\n node.parentId = '';\n if (!swimlaneNode.shape.phases.length) {\n var laneId = swimLane + lane + '0';\n if (this.nameTable[\"\" + laneId]) {\n addChildToContainer(this, this.nameTable[\"\" + laneId], node, undefined, true);\n updateLaneBoundsAfterAddChild(this.nameTable[\"\" + laneId], swimlaneNode, node, this);\n }\n }\n else {\n for (var i = 0; i < swimlaneNode.shape.phases.length; i++) {\n var laneId = swimLane + lane + i;\n if (this.nameTable[\"\" + laneId] && this.nameTable[\"\" + laneId].isLane) {\n var laneNode = this.nameTable[\"\" + laneId].wrapper.bounds;\n var focusPoint = {\n x: laneNode.x +\n (laneNode.x - swimlaneNode.wrapper.bounds.x + node.margin.left + (node.wrapper.bounds.width / 2)),\n y: laneNode.y + swimlaneNode.wrapper.bounds.y - node.margin.top\n };\n if (swimlaneNode.shape.orientation === 'Horizontal') {\n focusPoint.y = laneNode.y;\n }\n else {\n focusPoint.x = laneNode.x;\n var laneHeaderId = this.nameTable[\"\" + laneId].parentId +\n swimlaneNode.shape.lanes[0].id + '_0_header';\n focusPoint.y = laneNode.y +\n (swimlaneNode.wrapper.bounds.y - this.nameTable[\"\" + laneHeaderId].wrapper.bounds.height +\n node.margin.top + (node.wrapper.bounds.height / 2));\n }\n if ((laneId === swimLane + lane + (swimlaneNode.shape.phases.length - 1)) ||\n laneNode.containsPoint(focusPoint)) {\n addChildToContainer(this, this.nameTable[\"\" + laneId], node, undefined, true);\n updateLaneBoundsAfterAddChild(this.nameTable[\"\" + laneId], swimlaneNode, node, this);\n break;\n }\n }\n }\n }\n if (this.undoRedoModule) {\n this.historyManager.endGroupAction();\n }\n this.protectPropertyChange(false);\n }\n this.updateDiagramElementQuad();\n };\n /**\n * Displays a tooltip for the specified diagram object.\n *\n * @param {NodeModel | ConnectorModel} obj - The object for which the tooltip will be shown.\n */\n Diagram.prototype.showTooltip = function (obj) {\n if (obj && obj.id && !obj.wrapper) {\n obj = this.nameTable[obj.id];\n }\n var bounds = getBounds(obj.wrapper);\n var position = { x: 0, y: 0 };\n var content = obj.tooltip.content ?\n obj.tooltip.content : 'X:' + Math.round(bounds.x) + ' ' + 'Y:' + Math.round(bounds.y);\n if (obj && obj.tooltip.openOn === 'Custom') {\n if (obj instanceof Node) {\n position = { x: obj.offsetX + (obj.width / 2), y: obj.offsetY + (obj.height / 2) };\n }\n else {\n position = { x: obj.targetPoint.x, y: obj.targetPoint.x };\n }\n this.commandHandler.showTooltip(obj, position, content, 'SelectTool', true);\n }\n };\n /**\n * Hides the tooltip for the corresponding diagram object.\n *\n * @param {NodeModel | ConnectorModel} obj - The node or connector object for which the tooltip should be hidden.\n */\n Diagram.prototype.hideTooltip = function (obj) {\n if (obj && obj.tooltip.openOn === 'Custom') {\n this.tooltipObject.close();\n }\n };\n /**\n * Adds the specified node to the diagram control.\n *\n * @returns { Node } Adds the specified node to the diagram control.\\\n * @param {NodeModel} obj - representing the node to be added to the diagram.\n * @param {boolean} group - A boolean value indicating whether the node should be added to a group.\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addNode = function (obj, group) {\n return this.add(obj, group);\n };\n /**\n * Adds the specified diagram object to the specified group node.\n *\n * @returns { void } Adds the specified diagram object to the specified group node.\\\n * @param {NodeModel} group - The group node to which the diagram object will be added.\n * @param {string | NodeModel | ConnectorModel} child - The diagram object to be added to the group.\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addChildToGroup = function (group, child) {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n group = this.getObject(group.id);\n //Removed isBlazor code\n var isHistoryAdded = (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory));\n if (isHistoryAdded) {\n this.startGroupAction();\n }\n var id = this.addChild(group, child);\n if (isHistoryAdded) {\n var childTable = {};\n childTable[\"\" + id] = cloneObject(this.getObject(id));\n var entry = {\n type: 'AddChildToGroupNode', changeType: 'Insert', undoObject: cloneObject(group),\n redoObject: cloneObject(group), category: 'Internal', objectId: id, childTable: childTable\n };\n this.addHistoryEntry(entry);\n this.endGroupAction();\n }\n //880811- Adding child to group node using addChildToGroup method is not working properly.\n var element = this.nameTable[child] ? this.nameTable[child] : child;\n var childElementToMove = document.getElementById(element.id + '_groupElement');\n var targetGroupElement = document.getElementById(group.id + '_groupElement');\n if (targetGroupElement && childElementToMove) {\n targetGroupElement.appendChild(childElementToMove);\n }\n this.protectPropertyChange(propChange);\n this.enableServerDataBinding(severDataBind);\n this.updateSelector();\n //Removed isBlazor code.\n };\n /**\n * Removes the specified diagram object from the specified group node.\n *\n * @returns { void } Removes the specified diagram object from the specified group node.\\\n * @param {NodeModel} group - The group node to which the diagram object will be removed.\n * @param {string | NodeModel | ConnectorModel} child - The diagram object to be removed from the group.\n */\n Diagram.prototype.removeChildFromGroup = function (group, child) {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n group = this.getObject(group.id);\n var undoGroup = cloneObject(group);\n var isHistoryAdded = (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory));\n if (isHistoryAdded) {\n this.startGroupAction();\n }\n var id = this.removeChild(group, child);\n if (isHistoryAdded) {\n var childTable = {};\n childTable[\"\" + id] = cloneObject(this.getObject(id));\n var entry = {\n type: 'RemoveChildFromGroupNode', changeType: 'Remove', undoObject: cloneObject(undoGroup),\n redoObject: cloneObject(group), category: 'Internal', objectId: id, childTable: childTable\n };\n this.addHistoryEntry(entry);\n this.endGroupAction();\n }\n //880811 - diagram elements not updated properly while grouping nodes at runtime\n var element = this.nameTable[child] ? this.nameTable[child] : child;\n var elementZindex = element.zIndex;\n var layerNum = this.layers.indexOf(this.commandHandler.getObjectLayer(element.id));\n var insertBeforeObj = this.layers[parseInt(layerNum.toString(), 10)].objects[elementZindex + 1];\n var insertBeforeElement = document.getElementById(insertBeforeObj + '_groupElement');\n var childElementToMove = document.getElementById(element.id + '_groupElement');\n var targetGroupElement = document.getElementById(group.id + '_groupElement');\n if (targetGroupElement && childElementToMove) {\n if (insertBeforeObj && insertBeforeElement) {\n if (targetGroupElement.contains(insertBeforeElement)) {\n targetGroupElement.insertBefore(childElementToMove, insertBeforeElement);\n }\n else if (targetGroupElement.parentNode.contains(insertBeforeElement) && insertBeforeElement.parentElement\n === targetGroupElement.parentElement) {\n targetGroupElement.parentNode.insertBefore(childElementToMove, insertBeforeElement);\n }\n else {\n targetGroupElement.parentNode.appendChild(childElementToMove);\n }\n }\n else {\n targetGroupElement.parentNode.appendChild(childElementToMove);\n }\n }\n this.protectPropertyChange(propChange);\n this.enableServerDataBinding(severDataBind);\n this.updateSelector();\n };\n /**\n * Retrieves the history stack values for either undo or redo actions.\n *\n * @returns { void } Retrieves the history stack values for either undo or redo actions.\\\n * @param {boolean} isUndoStack - If `true`, retrieves the undo stack values; if `false`, retrieves the redo stack values.\n */\n Diagram.prototype.getHistoryStack = function (isUndoStack) {\n //let temp: HistoryEntry[];\n var historyEntry = [];\n var temp = isUndoStack ? this.historyManager.undoStack : this.historyManager.redoStack;\n if (this.historyManager.stackLimit !== undefined) {\n for (var i = temp.length - 1; i >= 0; i--) {\n historyEntry.push(temp[parseInt(i.toString(), 10)]);\n if (historyEntry.length > this.historyManager.stackLimit) {\n return historyEntry;\n }\n }\n }\n else {\n historyEntry = temp;\n }\n return historyEntry;\n };\n /* tslint:disable */\n /**\n * Returns the edges connected to the given node.\n *\n * @returns { string[] } Returns the edges connected to the given node. \\\n\n * @param {Object} args - An object containing information about the node for which edges are to be retrieved.\n */\n Diagram.prototype.getEdges = function (args) {\n return args['outEdge'] ? this.nameTable[args['id']].outEdges : this.nameTable[args['id']].inEdges;\n };\n /* tslint:enable */\n /**\n * Returns the parent id for the node\n *\n * @returns { string }Returns the parent id for the node .\\\n\n * @param {string} id - returns the parent id\n */\n Diagram.prototype.getParentId = function (id) {\n return this.nameTable[\"\" + id].parentId;\n };\n /**\n * Adds the given connector to diagram control\n * @returns { Connector } Adds the given connector to diagram control .\\\n *\n * @param {ConnectorModel} obj - Defines the connector that has to be added to diagram\n * @blazorArgsType obj|DiagramConnector\n */\n Diagram.prototype.addConnector = function (obj) {\n return this.add(obj);\n };\n /* eslint-disable */\n /** @private */\n Diagram.prototype.UpdateBlazorDiagramModelCollection = function (obj, copiedObject, multiSelectDelete, isBlazorGroupUpdate) {\n /* eslint-enable */\n //Removed isBlazor code\n };\n /**\n * UpdateBlazorDiagramModel method\n *\n * @returns { void } UpdateBlazorDiagramModel method .\\\n * @param {Node | Connector | ShapeAnnotation | PathAnnotation} obj - provide the obj value.\n * @param {string} objectType - provide the objectType value.\n * @param {number} removalIndex - provide the removalIndex value.\n * @param {number} annotationNodeIndex - provide the annotationNodeIndex value.\n *\n * @private\n */\n Diagram.prototype.UpdateBlazorDiagramModel = function (obj, objectType, removalIndex, annotationNodeIndex) {\n //Removed isBlazor code\n };\n // eslint-disable-next-line max-len\n Diagram.prototype.UpdateBlazorLabelOrPortObjects = function (obj, objectType, removalIndex, nodeIndex) {\n //Removed isBlazor code\n };\n /**\n * addBlazorDiagramObjects method\n *\n * @returns { void } addBlazorDiagramObjects method .\\\n *\n * @private\n */\n Diagram.prototype.addBlazorDiagramObjects = function () {\n //Removed isBlazor code\n };\n Diagram.prototype.removeNodeEdges = function (elementId, id, isOutEdges) {\n var node = this.nameTable[\"\" + elementId];\n var edges = isOutEdges ? node.outEdges : node.inEdges;\n if (edges.length > 0) {\n for (var i = 0; i < edges.length; i++) {\n if (edges[parseInt(i.toString(), 10)] === id) {\n edges.splice(i, 1);\n }\n }\n }\n };\n /**\n * insertBlazorConnector method\n *\n * @returns { void } insertBlazorConnector method .\\\n * @param {Connector} obj - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.insertBlazorConnector = function (obj) {\n //Removed isBlazor code\n };\n /* tslint:disable */\n /**\n * Adds the provided object, which can be a node, group, or connector, onto the diagram canvas.\n *\n * @returns { Node | Connector } Adds the provided object, which can be a node, group, or connector, onto the diagram canvas.\\\n * @param {NodeModel | ConnectorModel} obj - Specifies the object to be added to the diagram.\n * @param {boolean} group - If a group object is passed, set it to true.\n */\n Diagram.prototype.add = function (obj, group) {\n var newObj;\n var propertyChangeValue = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n var isTextAnnotationNode = false;\n if (obj) {\n obj = cloneObject(obj);\n var args = void 0;\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changing', type: 'Addition', cancel: false\n };\n if (this.parentObject) {\n args.parentId = this.parentObject.id;\n }\n //Removed isBlazor code\n if (obj.id !== 'helper' && !(this.diagramActions & DiagramAction.PreventCollectionChangeOnDragOver)) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (args.cancel && this.drawingObject) {\n this.removeElements(args.element);\n this.tooltipObject.close();\n var sourceNodee = this.getObject(args.element.sourceID);\n var isOutEdgee = void 0;\n if (getObjectType(args.element) === Connector) {\n if (args.element.sourceID) {\n this.removeNodeEdges(args.element.sourceID, args.element.id, true);\n if (sourceNodee.ports.length > 0) {\n for (var i = 0; i < sourceNodee.ports.length; i++) {\n var port = sourceNodee.ports[parseInt(i.toString(), 10)];\n if (port.id === args.element.sourcePortID) {\n if (port.outEdges.length > 0) {\n isOutEdgee = false;\n }\n else {\n isOutEdgee = true;\n }\n }\n }\n this.removePortEdges(sourceNodee, args.element.sourcePortID, args.element.id, isOutEdgee);\n }\n }\n if (args.element.targetID) {\n this.removeNodeEdges(args.element.targetID, args.element.id, false);\n }\n }\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n obj.id = obj.id || randomId();\n var layers = this.activeLayer;\n // Bug 890792: Exception thrown when adding a node at runtime in the unit test case.\n // The issue arises only when the diagram is not appended to the DOM. In such cases, the diagram will not be rendered, and the activeLayer property is undefined.\n // Check if activeLayer is defined. If activeLayer is defined, then proceed with the operation.\n if (!args.cancel && layers && !layers.lock) {\n if (layers.objects.indexOf(obj.id) < 0 && !layers.lock) {\n if (!layers.visible) {\n layers.visible = true;\n this.dataBind();\n }\n layers.objects.push(obj.id);\n }\n if (getObjectType(obj) === Connector) {\n newObj = new Connector(this, 'connectors', obj, true);\n newObj.status = 'New';\n if (this.nameTable[newObj.targetID] && this.nameTable[newObj.targetID].shape.shape === 'TextAnnotation') {\n newObj.isBpmnAnnotationConnector = true;\n newObj.constraints = newObj.constraints & ~ConnectorConstraints.Delete;\n }\n updateDefaultValues(newObj, obj, this.connectorDefaults);\n this.connectors.push(newObj);\n this.initObject(newObj);\n //Removed isBlazor code\n if (obj.visible === false) {\n this.updateElementVisibility(newObj.wrapper, newObj, obj.visible);\n }\n this.updateEdges(newObj);\n this.insertBlazorConnector(newObj);\n }\n else {\n newObj = new Node(this, 'nodes', obj, true);\n updateDefaultValues(newObj, obj, this.nodeDefaults);\n newObj.parentId = (obj.parentId) ? obj.parentId : newObj.parentId;\n newObj.umlIndex = obj.umlIndex;\n newObj.status = 'New';\n isTextAnnotationNode = newObj.shape.shape === 'TextAnnotation';\n if (isTextAnnotationNode && !obj.isTextAnnotationCopied) {\n newObj.inEdges = obj.inEdges ? obj.inEdges : newObj.inEdges;\n }\n this.nodes.push(newObj);\n this.initObject(newObj, layers, undefined, group);\n if (isTextAnnotationNode) {\n if (this.bpmnModule) {\n for (var i = 0; i < this.bpmnModule.bpmnTextAnnotationConnector.length; i++) {\n if (this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)].wrapper === null) {\n this.initConnectors(this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)], undefined, true);\n }\n }\n }\n }\n //Removed isBlazor code\n this.updateTemplate();\n if (this.bpmnModule) {\n if (newObj.shape.activity && newObj.shape.activity.subProcess.processes &&\n newObj.shape.activity.subProcess.processes.length) {\n this.bpmnModule.updateDocks(newObj, this);\n }\n }\n if (this.lineRoutingModule && (this.constraints & DiagramConstraints.LineRouting)) {\n var objects = this.spatialSearch.findObjects(newObj.wrapper.outerBounds);\n for (var i = 0; i < objects.length; i++) {\n var object = objects[parseInt(i.toString(), 10)];\n if (object instanceof Connector) {\n this.connectorPropertyChange(object, {}, {\n sourceID: object.sourceID, targetID: object.targetID, sourcePortID: object.sourcePortID,\n targetPortID: object.targetPortID, sourcePoint: object.sourcePoint, targetPoint: object.targetPoint\n });\n }\n }\n }\n else if (this.constraints & DiagramConstraints.LineRouting) {\n console.warn('[WARNING] :: Module \"LineRouting\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n if (newObj.umlIndex > -1 && obj.parentId && this.nameTable[obj.parentId] &&\n this.nameTable[obj.parentId].shape.type === 'UmlClassifier') {\n var parent_2 = this.nameTable[obj.parentId];\n parent_2.children.splice(newObj.umlIndex, 0, newObj.id);\n parent_2.wrapper.children.splice(newObj.umlIndex, 0, newObj.wrapper);\n parent_2.wrapper.measure(new Size());\n parent_2.wrapper.arrange(parent_2.wrapper.desiredSize);\n this.updateDiagramObject(parent_2);\n }\n }\n args = {\n element: newObj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changed', type: 'Addition', cancel: false\n };\n if (this.parentObject) {\n args.parentId = this.parentObject.id;\n }\n //Removed isBlazor code\n if (obj.id !== 'helper' && !(this.diagramActions & DiagramAction.PreventCollectionChangeOnDragOver)) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory)) {\n var entry = {\n type: 'CollectionChanged', changeType: 'Insert', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n this.parentObject = undefined;\n if (this.mode === 'SVG') {\n this.updateSvgNodes(newObj);\n this.updateTextElementValue(newObj);\n this.updateDiagramObject(newObj);\n if (isTextAnnotationNode) {\n var con = this.nameTable[newObj.inEdges[0]];\n this.updateDiagramObject(con);\n }\n if (newObj.shape.activity && newObj.shape.activity.subProcess.processes &&\n newObj.shape.activity.subProcess.processes.length) {\n this.updateProcesses(newObj);\n }\n this.updateBridging();\n }\n }\n }\n this.protectPropertyChange(propertyChangeValue);\n this.resetDiagramActions(DiagramAction.PublicMethod);\n if (newObj && this.layers.length > 1) {\n this.moveNode(newObj);\n }\n // Bug 890792: Exception thrown when adding a node at runtime in the unit test case.\n // The issue arises only when the diagram is not appended to the DOM. In such cases, the diagram will not be rendered, and the views property is undefined.\n // Check if views is defined before iterating. If views is defined, then refresh the canvas for each view.\n if (this.views) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n }\n this.renderReactTemplates();\n return newObj;\n };\n /**\n * AddElements method allows us to add diagram elements such as nodes and connectors as a collection into the diagram canvas.\n * @returns {void} -AddElements method.\n * @param { NodeModel[] | ConnectorModel[]} obj -Specifies the colelction object to be added to the diagram.\n * @public method\n **/\n Diagram.prototype.addElements = function (obj) {\n for (var i = 0; i < obj.length; i++) {\n this.add(obj[parseInt(i.toString(), 10)]);\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateSvgNodes = function (node) {\n if (node.children) {\n for (var _i = 0, _a = node.children; _i < _a.length; _i++) {\n var j = _a[_i];\n if (this.nameTable[\"\" + j] && this.nameTable[\"\" + j].parentId) {\n var child = getDiagramElement(j + '_groupElement', this.element.id);\n if (child) {\n child.parentNode.removeChild(child);\n }\n }\n }\n }\n };\n /**\n * updateProcesses method\n *\n * @returns { void } updateProcesses method .\\\n * @param {(Node | Connector)} node - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.updateProcesses = function (node) {\n if (this.bpmnModule && node && node.shape && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length) {\n var processes = node.shape.activity.subProcess.processes;\n this.moveSvgNode(node.id);\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var j = processes_1[_i];\n this.moveSvgNode(j);\n var edges = [];\n edges = edges.concat(this.nameTable[\"\" + j].outEdges, this.nameTable[\"\" + j].inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n this.moveSvgNode(edges[parseInt(i.toString(), 10)]);\n }\n }\n for (var _a = 0, processes_2 = processes; _a < processes_2.length; _a++) {\n var j = processes_2[_a];\n if (this.nameTable[\"\" + j].shape.activity.subProcess.processes &&\n this.nameTable[\"\" + j].shape.activity.subProcess.processes.length) {\n this.updateProcesses(this.nameTable[\"\" + j]);\n }\n }\n }\n else {\n this.moveSvgNode(node.id);\n }\n };\n /**\n * moveSvgNode method\n *\n * @returns { void } moveSvgNode method .\\\n * @param {string} nodeId - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.moveSvgNode = function (nodeId) {\n var child = getDiagramElement(nodeId + '_groupElement', this.element.id);\n var parent = child.parentElement;\n child.parentNode.removeChild(child);\n parent.appendChild(child);\n };\n /**\n * Adds the given annotation to the specified node.\n *\n * @returns { void } Adds the given annotation to the specified node.\\\n * @param {BpmnAnnotationModel} annotation - Object representing the annotation to be added.\n * @param {NodeModel} node - object representing the node to which the annotation will be added.\n\n */\n Diagram.prototype.addTextAnnotation = function (annotation, node) {\n if (this.bpmnModule) {\n this.getBPMNTextAnnotation(node, this, annotation, true);\n }\n };\n //Splice the InEdge and OutEdge of the for the node with respect to corresponding connectors that is deleting\n Diagram.prototype.spliceConnectorEdges = function (connector, isSource) {\n //let node: Node;\n var edges = [];\n //let isInEdge: boolean;\n var node = isSource ? this.nameTable[connector.sourceID] : this.nameTable[connector.targetID];\n if (node) {\n edges = isSource ? node.outEdges : node.inEdges;\n for (var i = edges.length - 1; i >= 0; i--) {\n if (edges[parseInt(i.toString(), 10)] === connector.id) {\n edges.splice(i, 1);\n }\n }\n for (var j = 0; node.ports && j < node.ports.length; j++) {\n var isInEdge = isSource ? false : true;\n this.removePortEdges(node, node.ports[parseInt(j.toString(), 10)].id, connector.id, isInEdge);\n }\n }\n };\n /**\n * Remove the dependent connectors if the node is deleted\n * @returns { void } Remove the dependent connectors if the node is deleted .\\\n * @param {Node} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeDependentConnector = function (obj) {\n if (obj) {\n var connector = void 0;\n var edges = [];\n edges = edges.concat(obj.outEdges, obj.inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n connector = this.nameTable[edges[parseInt(i.toString(), 10)]];\n if (connector) {\n this.connectorTable[connector.id] = cloneObject(connector);\n //To check for text annotation connector and remove the dependent text annotation node.\n if (connector.isBpmnAnnotationConnector) {\n var targetNode = this.nameTable[connector.targetID];\n this.removeObjectsFromLayer(connector);\n var index = this.connectors.indexOf(connector);\n if (index !== -1) {\n this.connectors.splice(index, 1);\n }\n this.removeElements(connector);\n this.removeFromAQuad(connector);\n delete this.nameTable[connector.id];\n var sourceNode = this.nameTable[connector.sourceID];\n if (sourceNode) {\n var index_1 = sourceNode.outEdges.indexOf(connector.id);\n if (index_1 !== -1) {\n sourceNode.outEdges.splice(index_1, 1);\n }\n }\n if (obj.id !== connector.targetID) {\n this.remove(targetNode);\n }\n }\n else {\n this.remove(connector);\n }\n }\n }\n }\n };\n /**\n * Remove the dependent connectors if the node is deleted\n * @returns { void } Remove the dependent connectors if the node is deleted .\\\n * @param {(NodeModel | ConnectorModel)} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeObjectsFromLayer = function (obj) {\n if (obj.children) {\n for (var i = 0; i < obj.children.length; i++) {\n var object = this.nameTable[obj.children[parseInt(i.toString(), 10)]];\n if (object) {\n this.removeObjectsFromLayer(object);\n }\n }\n }\n var layer = this.layers.indexOf(this.commandHandler.getObjectLayer(obj.id));\n var objects = this.layers[parseInt(layer.toString(), 10)].objects;\n var objIndex = objects.indexOf(obj.id);\n if (objIndex > -1) {\n if (isSelected(this, obj)) {\n this.unSelect(obj);\n }\n this.layers[parseInt(layer.toString(), 10)].objects.splice(objIndex, 1);\n delete this.layers[parseInt(layer.toString(), 10)].zIndexTable[this.nameTable[obj.id].zIndex];\n }\n };\n /**\n * removeElements method \\\n *\n * @returns { string } removeElements method .\\\n * @param {NodeModel | ConnectorModel} currentObj - provide the currentObj value.\n *\n * @private\n */\n Diagram.prototype.removeElements = function (currentObj) {\n if (this.mode === 'SVG' || (this.mode === 'Canvas' && currentObj.shape.type === 'Native')) {\n var removeElement_1 = getDiagramElement(currentObj.id + '_groupElement', this.element.id);\n var object = currentObj;\n if ((object).ports && (object).ports.length > 0) {\n for (var i = 0; i < (object).ports.length; i++) {\n var port = (object).ports[parseInt(i.toString(), 10)];\n var removePort = getDiagramElement(object.id + '_' + port.id + '_groupElement', this.element.id);\n if (removePort) {\n removePort.parentNode.removeChild(removePort);\n }\n }\n }\n if (removeElement_1) {\n removeElement_1.parentNode.removeChild(removeElement_1);\n }\n }\n this.refreshCanvasLayers();\n if (currentObj.wrapper) {\n var children = currentObj.wrapper.children;\n var element = void 0;\n var view = void 0;\n if (children) {\n for (var i = 0; i < children.length; i++) {\n if (children[parseInt(i.toString(), 10)] instanceof DiagramNativeElement || ((children[parseInt(i.toString(), 10)].id) && (children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0)) {\n if ((children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0 && this.mode === 'SVG') {\n element = getDiagramElement(children[parseInt(i.toString(), 10)].id + '_shape_groupElement', this.element.id);\n if (element) {\n element.parentNode.removeChild(element);\n }\n element = getDiagramElement(children[parseInt(i.toString(), 10)].id + '_rect_groupElement', this.element.id);\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(children[parseInt(i.toString(), 10)].id + '_groupElement', elementId);\n var nodeIndex = this.scroller.removeCollection.indexOf(currentObj.id);\n this.scroller.removeCollection.splice(nodeIndex, 1);\n }\n }\n else if (children[parseInt(i.toString(), 10)] instanceof DiagramHtmlElement) {\n for (var _b = 0, _c = this.views; _b < _c.length; _b++) {\n var elementId = _c[_b];\n removeElement(currentObj.id + '_html_element', elementId);\n removeElement(children[parseInt(i.toString(), 10)].id + '_html_element', elementId);\n //EJ2-63598 - Added below code to check whether platform is Angular or not.\n // If angular then we do not remove the node html element wrapper to retain the HTML element in it.\n var canUpdate = true;\n var parent_3 = this.nameTable[currentObj.parentId];\n //893691: HTML Template nodes are not visible after Zooming with Virtualisation\n if (((this.isAngular || this.isReact) || this.isVue) &&\n ((parent_3 && parent_3.isLane) || (this.constraints & DiagramConstraints.Virtualization))) {\n canUpdate = false;\n }\n if (canUpdate) {\n this.clearTemplate(['nodeTemplate' + '_' + currentObj.id]);\n if (children[parseInt(i.toString(), 10)].annotationId) {\n this.clearTemplate(['annotationTemplate' + '_' + currentObj.id +\n (children[parseInt(i.toString(), 10)].annotationId)]);\n }\n }\n }\n }\n removeGradient(children[parseInt(i.toString(), 10)].id);\n }\n }\n }\n };\n Diagram.prototype.removeCommand = function () {\n this.remove();\n };\n /**\n * Removes the specified object from the diagram.\n *\n * @param {NodeModel | ConnectorModel} obj - The node or connector object to be removed from the diagram.\n */\n /* tslint:disable */\n Diagram.prototype.remove = function (obj) {\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n var args;\n var groupAction = false;\n if (obj) {\n obj = this.nameTable[obj.id];\n this.insertBlazorConnector(obj);\n if (obj && (canDelete(obj) || (this.diagramActions & DiagramAction.Clear))) {\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n state: 'Changing', type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n if (!(this.diagramActions & DiagramAction.Clear) && (obj.id !== 'helper')) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (!args.cancel) {\n if (canDelete(obj)) {\n if (obj && obj.shape && obj.shape.type === 'SwimLane') {\n removeSwimLane(this, obj);\n }\n }\n if ((!(this.diagramActions & DiagramAction.UndoRedo)) && !(this.diagramActions & DiagramAction.PreventHistory) &&\n (obj instanceof Node || obj instanceof Connector)) {\n var entry = {\n type: 'CollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n if (!(this.diagramActions & DiagramAction.Clear)) {\n if (obj.children && !obj.isLane && !obj.isPhase && obj.children.length > 0 && this.undoRedoModule && this.layout.type === 'None') {\n this.historyManager.startGroupAction();\n groupAction = true;\n }\n }\n //875087 - Restrict removing dependent connectors when moveing between layers\n if ((obj instanceof Node || obj instanceof Connector) && this.deleteDependentConnector) {\n this.removeDependentConnector(obj);\n }\n if (!obj.isLane && !obj.isPhase) {\n if (!(this.diagramActions & DiagramAction.Clear) && !this.isStackChild(obj)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n if (obj.shape.shape === 'TextAnnotation') {\n this.removeDependentConnector(obj);\n }\n if (obj.children && !obj.isLane && !obj.isPhase &&\n (!(this.diagramActions & DiagramAction.UndoRedo) || !isBlazor())) {\n this.deleteGroup(obj);\n }\n if (obj.parentId) {\n this.deleteChild(obj, undefined, true);\n if (this.nameTable[obj.parentId] && this.nameTable[obj.parentId].shape.type === 'UmlClassifier') {\n this.updateDiagramObject(this.nameTable[obj.parentId]);\n this.updateConnectorEdges(this.nameTable[obj.parentId]);\n }\n }\n var index = void 0;\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n var currentObj = this.nameTable[obj.id];\n if (currentObj instanceof Node) {\n if (currentObj.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.removeBpmnProcesses(currentObj, this);\n }\n if (currentObj.isLane || currentObj.isPhase || currentObj.shape.type === 'SwimLane') {\n var swimLaneNode = (currentObj.isLane || currentObj.isPhase) ?\n this.nameTable[currentObj.parentId] : this.nameTable[currentObj.id];\n var grid = swimLaneNode.wrapper.children[0];\n if (currentObj.isLane) {\n removeLane(this, currentObj, swimLaneNode);\n }\n else if (currentObj.isPhase) {\n removePhase(this, currentObj, swimLaneNode);\n }\n }\n index = this.nodes.indexOf(currentObj);\n // Removed isBlazor code\n if (index !== -1) {\n this.crudDeleteNodes.push(this.nameTable[currentObj.id]);\n this.nodes.splice(index, 1);\n this.updateNodeEdges(currentObj);\n }\n }\n else {\n index = this.connectors.indexOf(currentObj);\n //Removed isBlazor code\n if (index !== -1) {\n this.crudDeleteNodes.push(this.nameTable[currentObj.id]);\n this.connectors.splice(index, 1);\n }\n this.updateEdges(currentObj);\n this.spliceConnectorEdges(obj, true);\n this.spliceConnectorEdges(obj, false);\n }\n if ((!this.isServerUpdate) && !(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n this.commandHandler.getBlazorOldValues();\n }\n if (groupAction) {\n this.historyManager.endGroupAction();\n }\n if (isSelected(this, currentObj)) {\n this.unSelect(currentObj);\n }\n if (!currentObj.isPhase) {\n this.removeObjectsFromLayer(obj);\n if (this.currentDrawingObject) {\n this.currentDrawingObject.wrapper = undefined;\n }\n delete this.nameTable[obj.id];\n if (selectedItems.length > 0 && selectedItems[0].id === currentObj.id && currentObj.parentId) {\n var parentnode = this.nameTable[currentObj.parentId];\n if (parentnode && parentnode.isLane && this.nameTable[parentnode.parentId].shape.type === 'SwimLane') {\n var swimLaneNode = this.nameTable[parentnode.parentId];\n removeLaneChildNode(this, swimLaneNode, parentnode, currentObj);\n }\n }\n this.removeElements(currentObj);\n this.updateBridging();\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n if (!(this.diagramActions & DiagramAction.Clear)) {\n this.removeFromAQuad(currentObj);\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n state: 'Changed', type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n if (obj.id !== 'helper') {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n this.resetTool();\n }\n }\n }\n }\n }\n else if (selectedItems.length > 0) {\n if (this.undoRedoModule) {\n this.historyManager.startGroupAction();\n this.blazorActions |= BlazorAction.GroupingInProgress;\n groupAction = true;\n }\n //Removed isBlazor code\n for (var i = 0; i < selectedItems.length; i++) {\n var node = selectedItems[parseInt(i.toString(), 10)];\n var parent_4 = this.nameTable[node.parentId];\n if (this.nameTable[selectedItems[parseInt(i.toString(), 10)].id]) {\n //Removed isBlazor code\n // 912905: Multi-selecting and deleting swimlane objects causes the diagram to break\n if (parent_4 && parent_4.shape instanceof SwimLane && !node.isPhase) {\n if (node.isLane) {\n var parentHeader = parent_4.shape.header.id ? parent_4.shape.header.height : 0;\n if ((this.selectedItems.wrapper.bounds.x <= parent_4.wrapper.bounds.x &&\n this.selectedItems.wrapper.bounds.width >= parent_4.wrapper.bounds.width &&\n parent_4.shape.orientation === 'Horizontal') ||\n (this.selectedItems.wrapper.bounds.y <= parent_4.wrapper.bounds.y + parentHeader &&\n this.selectedItems.wrapper.bounds.height >= parent_4.wrapper.bounds.height - parentHeader &&\n parent_4.shape.orientation === 'Vertical')) {\n if (canDelete(parent_4) || parent_4.shape.lanes.length > 1) {\n this.remove(selectedItems[parseInt(i.toString(), 10)]);\n }\n }\n }\n }\n else {\n this.remove(selectedItems[parseInt(i.toString(), 10)]);\n }\n //Removed isBlazor code\n }\n }\n if (groupAction) {\n this.blazorActions &= ~BlazorAction.GroupingInProgress;\n this.isServerUpdate = true;\n this.commandHandler.getBlazorOldValues();\n this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true);\n this.historyManager.endGroupAction();\n this.isServerUpdate = false;\n }\n this.clearSelection();\n }\n if (!(obj && (canDelete(obj) || (this.diagramActions & DiagramAction.Clear)))) {\n if ((!(this.diagramActions & DiagramAction.UndoRedo)) && !(this.diagramActions & DiagramAction.PreventHistory) &&\n (obj instanceof Node || obj instanceof Connector)) {\n var entry = {\n type: 'ConnectionChanged', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n if (!obj.isLane && !obj.isPhase) {\n if (!(this.diagramActions & DiagramAction.Clear) && !this.isStackChild(obj)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n }\n this.tooltipObject.close();\n //Removed isBlazor code\n };\n /* tslint:enable */\n Diagram.prototype.isStackChild = function (obj) {\n var isstack;\n var parent = this.nameTable[obj.parentId];\n if (obj && obj.parentId && parent.container &&\n (parent.container.type === 'Stack' &&\n this.nameTable[obj.parentId].shape.type !== 'UmlClassifier')) {\n isstack = true;\n var redoElement = {\n sourceIndex: parent.wrapper.children.indexOf(obj.wrapper), source: obj,\n target: undefined, targetIndex: undefined\n };\n var entry = {\n type: 'StackChildPositionChanged', redoObject: {\n sourceIndex: undefined, source: obj,\n target: undefined, targetIndex: undefined\n },\n undoObject: redoElement,\n category: 'Internal'\n };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n return isstack;\n };\n /** @private */\n Diagram.prototype.deleteChild = function (node, parentNode, allowChildInSwimlane) {\n var id;\n parentNode = parentNode ? this.nameTable[parentNode.id] : this.nameTable[node.parentId];\n if (typeof node === 'string') {\n id = node;\n }\n else {\n id = node.id;\n }\n if (parentNode && parentNode.children) {\n for (var i = 0; i < parentNode.children.length; i++) {\n if (parentNode.children[parseInt(i.toString(), 10)] === id) {\n parentNode.children.splice(i, 1);\n for (var j = 0; j < parentNode.wrapper.children.length; j++) {\n if (parentNode.wrapper.children[parseInt(j.toString(), 10)].id === id) {\n parentNode.wrapper.children.splice(j, 1);\n }\n }\n // Bug 841849: Swimlane child are not positioned properly and throw exception after deleting and then undoing.\n // Added below condition to skip the child deletion inside swimlane when we add phase at runtime and delete swimlane.\n if (!allowChildInSwimlane) {\n // EJ2-57179 - Below lines added to remove the childs to swimlane after Redo.\n var swimlaneNode = this.getObject(parentNode.parentId);\n if (swimlaneNode && swimlaneNode.shape instanceof SwimLane) {\n for (var h = 0; h < swimlaneNode.shape.lanes.length; h++) {\n var laneId = node.parentId.split(swimlaneNode.id);\n if (swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].id\n === laneId[1].slice(0, -1)) {\n for (var y = 0; y < swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.length; y++) {\n if (node.id ===\n swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children[parseInt(y.toString(), 10)].id) {\n swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.splice(y, 1);\n break;\n }\n }\n }\n }\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n }\n };\n /**\n * addChild method \\\n *\n * @returns { string } addChild method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string | NodeModel | ConnectorModel} child - provide the child value.\n * @param {number} index - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.addChild = function (node, child, index) {\n var id;\n var parentNode = this.nameTable[node.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n if (parentNode.children) {\n if (typeof child === 'string') {\n if (this.nameTable[\"\" + child]) {\n id = child;\n }\n }\n else {\n id = child.id = child.id || randomId();\n this.add(child);\n }\n if (id && (!child.umlIndex || child.umlIndex === -1)) {\n var childNode = this.nameTable[\"\" + id];\n childNode.parentId = parentNode.id;\n if (parentNode.container && parentNode.container.type === 'Stack') {\n this.updateStackProperty(parentNode, childNode);\n }\n if (index) {\n parentNode.children.splice(index, 0, id);\n parentNode.wrapper.children.splice(index, 0, childNode.wrapper);\n }\n else {\n parentNode.children.push(id);\n parentNode.wrapper.children.push(childNode.wrapper);\n // SF-362880 - Below lines added for adding the childs to swimlane after Undo.\n var swimlane = this.getObject(node.parentId);\n var childAlreadyInCollection = false;\n if (swimlane && swimlane.shape instanceof SwimLane) {\n for (var h = 0; h < swimlane.shape.lanes.length; h++) {\n var laneId = childNode.parentId.split(node.parentId);\n if (swimlane.shape.lanes[parseInt(h.toString(), 10)].id === laneId[1].slice(0, -1)) {\n //Bug 876330: After performing cut operations followed by an undo, lanes and nodes in the swimlane are not rendered properly.\n // To avoid adding the child node multiple times in the collection.\n for (var i = 0; i < swimlane.shape.lanes[parseInt(h.toString(), 10)].children.length; i++) {\n if (swimlane.shape.lanes[parseInt(h.toString(), 10)].children[parseInt(i.toString(), 10)].id === childNode.id) {\n childAlreadyInCollection = true;\n break;\n }\n }\n if (!childAlreadyInCollection) {\n swimlane.shape.lanes[parseInt(h.toString(), 10)].children.push(childNode);\n }\n break;\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n if (!parentNode.isLane) {\n this.nameTable[node.id].width = parentNode.wrapper.actualSize.width;\n this.nameTable[node.id].height = parentNode.wrapper.actualSize.height;\n this.nameTable[node.id].offsetX = parentNode.wrapper.offsetX;\n this.nameTable[node.id].offsetY = parentNode.wrapper.offsetY;\n }\n if (parentNode.container !== undefined) {\n childNode.offsetX = childNode.wrapper.offsetX;\n childNode.offsetY = childNode.wrapper.offsetY;\n }\n if (!parentNode.parentId ||\n (this.nameTable[parentNode.parentId] &&\n this.nameTable[parentNode.parentId].shape.type !== 'SwimLane')) {\n this.updateDiagramObject(parentNode);\n }\n }\n }\n return id;\n };\n /**\n * removeChild method \\\n *\n * @returns { string } removeChild method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string | NodeModel | ConnectorModel} child - provide the child value.\n *\n * @private\n */\n Diagram.prototype.removeChild = function (node, child) {\n var id;\n var parentNode = this.nameTable[node.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n if (parentNode.children) {\n if (typeof child === 'string') {\n if (this.nameTable[\"\" + child]) {\n id = child;\n }\n }\n else {\n id = child.id = child.id || randomId();\n }\n if (id && (!child.umlIndex || child.umlIndex === -1)) {\n var childNode = this.nameTable[\"\" + id];\n childNode.parentId = '';\n if (parentNode.container && parentNode.container.type === 'Stack') {\n this.updateStackProperty(parentNode, childNode);\n }\n for (var i = 0; i < parentNode.children.length; i++) {\n if (parentNode.children[parseInt(i.toString(), 10)] === id) {\n parentNode.children.splice(i, 1);\n for (var j = 0; j < parentNode.wrapper.children.length; j++) {\n if (parentNode.wrapper.children[parseInt(j.toString(), 10)] === childNode.wrapper) {\n parentNode.wrapper.children.splice(j, 1);\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n if (!parentNode.isLane) {\n this.nameTable[node.id].width = parentNode.wrapper.actualSize.width;\n this.nameTable[node.id].height = parentNode.wrapper.actualSize.height;\n this.nameTable[node.id].offsetX = parentNode.wrapper.offsetX;\n this.nameTable[node.id].offsetY = parentNode.wrapper.offsetY;\n }\n if (!parentNode.parentId ||\n (this.nameTable[parentNode.parentId] &&\n this.nameTable[parentNode.parentId].shape.type !== 'SwimLane')) {\n this.updateDiagramObject(parentNode);\n }\n }\n }\n return id;\n };\n /**\n * Clears all nodes and objects in the diagram, effectively resetting the diagram to an empty state.\n *\n * @returns { void } Clears all nodes and objects in the diagram, effectively resetting the diagram to an empty state.\\\n\n */\n Diagram.prototype.clear = function () {\n this.clearObjects();\n this.clearLayers();\n };\n //Bug 872106: Layer object in diagram doesnot removed in clear method\n Diagram.prototype.clearLayers = function () {\n var layerCount = this.layers.length;\n for (var i = layerCount - 1; i >= 0; i--) {\n this.removeLayer(this.layers[parseInt(i.toString(), 10)].id);\n }\n //Create default layer\n var defaultLayer = {\n id: 'default_layer', visible: true, lock: false, objects: [], zIndex: 0,\n objectZIndex: -1, zIndexTable: {}\n };\n this.commandHandler.addLayer(defaultLayer, null, true);\n this.setActiveLayer(this.layers[this.layers.length - 1].id);\n };\n Diagram.prototype.clearObjects = function (collection) {\n var objects = [];\n if (!collection) {\n objects = objects.concat(this.nodes);\n objects = objects.concat(this.connectors);\n }\n else {\n objects = collection;\n }\n this.diagramActions = this.diagramActions | DiagramAction.Clear;\n // Removed isBlazor code\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var obj = objects_1[_i];\n if (this.nameTable[obj.id]) {\n this.remove(obj);\n }\n }\n this.diagramActions = this.diagramActions & ~DiagramAction.Clear;\n this.spatialSearch = new SpatialSearch(this.nameTable);\n this.initHistory();\n };\n Diagram.prototype.startEditCommad = function () {\n var laneHeader;\n var node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : undefined;\n if (node && node instanceof Node) {\n if (node.isLane && node.parentId) {\n var swimlane = this.nameTable[node.parentId];\n var lanes = swimlane.shape.lanes;\n var canvasId = (node.id.slice(swimlane.id.length));\n var currentParentId = canvasId.substring(0, canvasId.length - 1);\n for (var i = 0; i < lanes.length; i++) {\n if (node.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) {\n laneHeader = this.nameTable[lanes[parseInt(i.toString(), 10)].header.id];\n }\n }\n }\n else if (node.shape.type === 'SwimLane' && node.shape.header && node.shape.hasHeader) {\n var id = node.wrapper.children[0].rows[0].cells[0].children[0].id;\n laneHeader = this.nameTable[\"\" + id];\n }\n }\n this.startTextEdit(laneHeader);\n };\n /* tslint:disable */\n /**\n * Initiate the editing mode for a specific annotation within a node or connector.\n *\n * @returns { void } Initiate the editing mode for a specific annotation within a node or connector. \\\n * @param {NodeModel | ConnectorModel} node - The node or connector containing the annotation to be edited.\n * @param {string} id - The ID of the annotation to be edited within the node or connector.\n */\n Diagram.prototype.startTextEdit = function (node, id) {\n if ((!canZoomPan(this) && !canMultiSelect(this)) || canSingleSelect(this)) {\n this.textEditing = true;\n var transform = this.scroller.transform;\n var scale = canZoomTextEdit(this) ? transform.scale : 1;\n var minWidth = 90;\n var text = void 0;\n var bounds = void 0;\n var attributes = void 0;\n var x = void 0;\n var y = void 0;\n var textWrapper = void 0;\n if (!node) {\n node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : this.selectedItems.connectors[0];\n }\n if (node) {\n //Removed isBlazor code\n //893031: Exception throws while double click on UML Classifier connector\n //Added the condition that the node is not an instance of a connector\n if (node.shape && node.shape.type === 'UmlClassifier' && !(node instanceof Connector)) {\n node = this.nameTable[node.children[0]];\n }\n var bpmnAnnotation = false;\n if (!textWrapper) {\n if (node.shape.type !== 'Text' && node.annotations.length === 0) {\n if (!(node.constraints & NodeConstraints.ReadOnly)) {\n this.activeLabel.isGroup = true;\n this.startGroupAction();\n this.addLabels(node, [{ id: randomId(), content: '' }]);\n }\n }\n if (!id && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) {\n //(EJ2-840331)-Double click on node annotation will open the edit of invisible annotation\n if (node.shape.type === 'Text') {\n id = (node.wrapper.children[0].id).split('_')[1];\n }\n else {\n for (var i = node.annotations.length - 1; i >= 0; i--) {\n if (node.annotations[parseInt(i.toString(), 10)].visibility) {\n id = node.annotations[parseInt(i.toString(), 10)].id;\n }\n }\n }\n }\n if (id) {\n textWrapper = this.getWrapper(node.wrapper, id);\n }\n }\n else {\n bpmnAnnotation = true;\n }\n if (node && textWrapper && !(textWrapper instanceof DiagramHtmlElement) &&\n (!enableReadOnly(textWrapper, node) || bpmnAnnotation)) {\n var style = (textWrapper.style);\n var maxWidth = void 0;\n maxWidth = textWrapper.bounds.width < node.wrapper.bounds.width ? textWrapper.bounds.width : node.wrapper.bounds.width;\n maxWidth = minWidth > maxWidth ? minWidth : maxWidth;\n var textEditing = document.getElementById(this.element.id + '_editTextBoxDiv');\n var textArea = document.getElementById(this.element.id + '_editBox');\n text = textArea ? textArea.value : textWrapper.content;\n this.activeLabel.text = text;\n if (!textEditing && !textArea) {\n textEditing = createHtmlElement('div', {});\n textArea = createHtmlElement('textarea', {});\n this.diagramCanvas.appendChild(textEditing);\n textEditing.appendChild(textArea);\n textArea.appendChild(document.createTextNode(text));\n }\n bounds = measureHtmlText(textWrapper.style, text, undefined, undefined, maxWidth);\n if (bounds.isEmpty()) {\n if (node.shape.type !== 'Text') {\n bounds = new Size(findAnnotation(node, (textWrapper.id).split(node.id + '_')[1]).width || 50, textWrapper.style.fontSize);\n }\n else {\n bounds = new Size((node.width > 50) ? 50 : node.width, textWrapper.style.fontSize);\n }\n }\n if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier') {\n bounds.width = node.wrapper.bounds.width - 20;\n x = ((((node.wrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5);\n y = ((((node.wrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3);\n textWrapper.style.textAlign = 'Left';\n }\n else {\n bounds.width = Math.max(bounds.width, 50);\n x = ((((textWrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5);\n y = ((((textWrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3);\n }\n attributes = {\n 'id': this.element.id + '_editTextBoxDiv', 'style': 'position: absolute' + ';left:' + x + 'px;top:' +\n y + 'px;width:' + ((bounds.width + 1) * scale) + 'px;height:' + (bounds.height * scale) +\n 'px; containerName:' + node.id + ';'\n };\n setAttributeHtml(textEditing, attributes);\n //879137 - aria-label missing in annotation textEdit mode.\n attributes = {\n 'aria-label': text, 'id': this.element.id + '_editBox', 'style': 'width:' + ((bounds.width + 1) * scale) +\n 'px;height:' + (bounds.height * scale) + 'px;resize: none;outline: none;overflow: hidden;' +\n ';font-family:' + style.fontFamily +\n ';font-size:' + (style.fontSize * scale) + 'px;text-align:' +\n (textWrapper.style.textAlign.toLocaleLowerCase()) + ';', 'class': 'e-diagram-text-edit'\n };\n setAttributeHtml(textArea, attributes);\n textArea.style.fontWeight = (style.bold) ? 'bold' : '';\n textArea.style.fontStyle = (style.italic) ? 'italic' : '';\n textArea.style.lineHeight = (style.fontSize * 1.2 + 'px;').toString();\n textArea.style.textDecoration = (style.textDecoration) ? style.textDecoration : '';\n this.activeLabel.parentId = node.id;\n this.activeLabel.id = id;\n textWrapper.visible = false;\n this.updateDiagramObject(node);\n this.diagramActions = this.diagramActions | DiagramAction.TextEdit;\n if (!this.isTriggerEvent) {\n EventHandler.add(textArea, 'input', this.eventHandler.inputChange, this.eventHandler);\n EventHandler.add(textArea, 'focusout', this.focusOutEdit, this);\n textArea.select();\n }\n }\n }\n }\n };\n Diagram.prototype.updateConnectorfixedUserHandles = function (connector) {\n if (connector.fixedUserHandles.length) {\n var fixedUserHandleWrapper = void 0;\n for (var _i = 0, _a = connector.fixedUserHandles; _i < _a.length; _i++) {\n var fixedUserHandle = _a[_i];\n fixedUserHandleWrapper = this.getWrapper(connector.wrapper, fixedUserHandle.id);\n connector.updateAnnotation(fixedUserHandle, connector.intermediatePoints, connector.wrapper.bounds, fixedUserHandleWrapper);\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n /* tslint:enable */\n Diagram.prototype.updateNodeExpand = function (node, visibility) {\n for (var i = 0; i < node.outEdges.length; i++) {\n var connector = this.nameTable[node.outEdges[parseInt(i.toString(), 10)]];\n var target = this.nameTable[connector.targetID];\n connector.visible = visibility;\n if (target) {\n if (!visibility) {\n this.updateElementVisibility(connector.wrapper, connector, false);\n target.isExpanded = visibility;\n }\n this.updateNodeExpand(target, target.isExpanded);\n target.visible = visibility;\n if (!visibility) {\n this.updateElementVisibility(target.wrapper, target, false);\n }\n }\n }\n };\n Diagram.prototype.updateConnectorAnnotation = function (connector) {\n if (connector.annotations.length) {\n var annotationWrapper = void 0;\n for (var _i = 0, _a = connector.annotations; _i < _a.length; _i++) {\n var annotation = _a[_i];\n annotationWrapper = this.getWrapper(connector.wrapper, annotation.id);\n connector.updateAnnotation(annotation, connector.intermediatePoints, connector.wrapper.bounds, annotationWrapper, (this.diagramActions & DiagramAction.Interactions));\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n Diagram.prototype.removeChildrenFromLayout = function (nodes) {\n var nodesCollection = [];\n var node;\n var parentId = 'parentId';\n var processId = 'processId';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (!node[\"\" + parentId] && !node[\"\" + processId]) {\n nodesCollection.push(node);\n }\n }\n return nodesCollection;\n };\n /* tslint:disable */\n /**\n * Automatically updates the diagram objects based on the type of the layout.\n * @returns { ILayout | boolean } Automatically updates the diagram objects based on the type of the layout.\\\n */\n Diagram.prototype.doLayout = function () {\n var update = false;\n var layout;\n var canDoOverlap = (this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree');\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n var nodes = this.removeChildrenFromLayout(this.nodes);\n var canEnableRouting = this.layout.enableRouting && this.layout.type === 'ComplexHierarchicalTree';\n var viewPort = { x: this.scroller.viewPortWidth, y: this.scroller.viewPortHeight };\n if (this.layout.type !== 'None') {\n //Bug 862601: Connectors are not rendered properly with lineRouting and lineDistribution enables during doLayout process.\n //Removed initLineDistribution method call here and added it below after the complex hierarchical tree doLayout process.\n if (this.organizationalChartModule) {\n layout = this.organizationalChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.diagramActions);\n update = true;\n if (this.canDistribute(canEnableRouting, canDoOverlap)) {\n this.lineDistributionModule.initLineDistribution(this.layout, this);\n }\n if (this.layoutAnimateModule && layout.rootNode && !this.diagramActions) {\n this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded);\n }\n // EJ2-58221 - added to render the layout properly based on parent node isExpanded property.\n else if (!this.layoutAnimateModule && layout.rootNode && !layout.rootNode.isExpanded && !this.canExpand) {\n this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded);\n }\n }\n else if (this.mindMapChartModule) {\n if (nodes && nodes.length > 0) {\n this.mindMapChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.dataSourceSettings.root);\n }\n update = true;\n }\n else if (this.radialTreeModule) {\n this.radialTreeModule.updateLayout(nodes, this.nameTable, this.layout, viewPort);\n update = true;\n }\n else if (this.symmetricalLayoutModule) {\n this.symmetricalLayoutModule.maxIteration = this.layout.maxIteration;\n this.symmetricalLayoutModule.springLength = this.layout.springLength;\n this.symmetricalLayoutModule.springFactor = this.layout.springFactor;\n this.symmetricalLayoutModule.updateLayout(nodes, this.connectors, this.symmetricalLayoutModule, this.nameTable, this.layout, viewPort);\n update = true;\n }\n else if (this.complexHierarchicalTreeModule) {\n //Bug 862601: Connectors are not rendered properly with lineRouting and lineDistribution enables during doLayout process.\n //As the initLineDistribution method call removed from above and added below doLayout, we need to set diagram value and clear obstacle collection\n // of connectors.\n if (this.canDistribute(canEnableRouting, canDoOverlap)) {\n this.lineDistributionModule.diagram = this;\n var obstacleCollection_1 = 'obstaclePointCollection';\n this.connectors.forEach(function (connector) {\n connector[\"\" + obstacleCollection_1] = [];\n });\n }\n var nodes_1 = this.complexHierarchicalTreeModule.getLayoutNodesCollection(this.nodes);\n if (nodes_1.length > 0) {\n // eslint-disable-next-line max-len\n this.complexHierarchicalTreeModule.doLayout(nodes_1, this.nameTable, this.layout, viewPort, this);\n }\n update = true;\n //initLineDistribution method call after doLayout.\n if (this.canDistribute(canEnableRouting, canDoOverlap)) {\n this.lineDistributionModule.initLineDistribution(this.layout, this);\n }\n }\n else if (this.flowchartLayoutModule) {\n this.flowchartLayoutModule.updateLayout(this.nodes, this);\n update = true;\n }\n else {\n var moduleName = this.layout.type === 'OrganizationalChart' ? 'HierarchicalTree' : this.layout.type;\n console.warn('[WARNING] :: Module ' + moduleName + ' is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n if (update) {\n this.preventDiagramUpdate = true;\n var connectors = {};\n var updatedNodes = nodes;\n // BLAZ-22230 - Added condition to check if canUpdateTemplate is false means then we can update the template for blazor\n //Removed isBlazor code\n for (var _i = 0, updatedNodes_1 = updatedNodes; _i < updatedNodes_1.length; _i++) {\n var obj = updatedNodes_1[_i];\n var node = obj;\n if (!this.preventNodesUpdate && (!this.diagramActions || !(this.diagramActions & DiagramAction.PreventIconsUpdate))) {\n this.updateIcon(node);\n this.updateDefaultLayoutIcons(node);\n }\n this.preventNodesUpdate = true;\n this.nodePropertyChange(node, {}, { offsetX: node.offsetX, offsetY: node.offsetY }, true);\n this.preventNodesUpdate = false;\n node.wrapper.measure(new Size(node.wrapper.width, node.wrapper.height));\n node.wrapper.arrange(node.wrapper.desiredSize);\n this.updateDiagramObject(node, true);\n if (node.inEdges.length > 0) {\n for (var j = 0; j < node.inEdges.length; j++) {\n var connector = this.nameTable[node.inEdges[parseInt(j.toString(), 10)]];\n connectors[connector.id] = connector;\n }\n }\n if (node.outEdges.length > 0) {\n for (var k = 0; k < node.outEdges.length; k++) {\n var connection = this.nameTable[node.outEdges[parseInt(k.toString(), 10)]];\n connectors[connection.id] = connection;\n }\n }\n }\n for (var _a = 0, _b = Object.keys(connectors); _a < _b.length; _a++) {\n var conn = _b[_a];\n if (canEnableRouting) {\n this.lineDistributionModule.resetConnectorSegments(this.nameTable[\"\" + conn]);\n }\n var connector = connectors[\"\" + conn];\n var points = this.getPoints(connector);\n if (canEnableRouting) {\n this.lineDistributionModule.resetRoutingSegments(connector, this, points);\n }\n updateConnector(connector, points);\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(connector);\n }\n connector.wrapper.measure(new Size(undefined, undefined));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n this.updateConnectorAnnotation(connector);\n this.updateConnectorfixedUserHandles(connector);\n this.updateQuad(connector);\n this.updateDiagramObject(connector, true);\n }\n if (canEnableRouting || this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) {\n this.lineDistributionModule.distributeLines(this.layout, this);\n }\n this.refreshFlowChartConnectors();\n this.preventDiagramUpdate = false;\n this.updatePage();\n if ((!(this.diagramActions & DiagramAction.Render)) || this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n this.isRefreshed = true;\n }\n }\n if (!propChange) {\n this.protectPropertyChange(propChange);\n }\n }\n if (update) {\n this.updateDiagramElementQuad();\n }\n if ((this.diagramActions & DiagramAction.Render) && this.layout.enableRouting) {\n this.refreshRoutingConnectors();\n }\n return ((this.blazorActions & BlazorAction.expandNode) ? layout : true);\n };\n //Bug 877799: Optimize the routing segment distance while using enableRouting in layout.\n //Stored the routingConnectors in resetRoutingSegments method and then Refresh the routing connectors after layout completion.\n Diagram.prototype.refreshRoutingConnectors = function () {\n this.isProtectedOnChange = true;\n if (this.routingConnectors) {\n for (var i = 0; i < this.routingConnectors.length; i++) {\n var connector = this.routingConnectors[parseInt(i.toString(), 10)];\n var sourceNode = this.nameTable[connector.sourceID];\n var targetNode = this.nameTable[connector.targetID];\n var lineRouting = new LineRouting();\n if (sourceNode.visible && targetNode.visible) {\n lineRouting.renderVirtualRegion(this, true);\n lineRouting.refreshConnectorSegments(this, connector, false, true);\n var points = this.getPoints(connector);\n updateConnector(connector, points);\n connector.wrapper.measure(new Size(undefined, undefined));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n this.updateDiagramObject(connector, true);\n this.routingConnectors.splice(i, 1);\n i--;\n }\n }\n }\n this.isProtectedOnChange = false;\n };\n //To update new connector points in flowchart layout\n Diagram.prototype.refreshFlowChartConnectors = function () {\n if (this.flowchartLayoutModule) {\n this.flowchartLayoutModule.reRouteFlowChartConnectors(this.layout.flowChartData, this);\n for (var i = 0; i < this.connectors.length; i++) {\n var connector = this.connectors[parseInt(i.toString(), 10)];\n var points = this.getPoints(connector);\n updateConnector(connector, points);\n connector.wrapper.measure(new Size(undefined, undefined));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n this.updateConnectorAnnotation(connector);\n this.updateConnectorfixedUserHandles(connector);\n this.updateQuad(connector);\n this.updateDiagramObject(connector, true);\n }\n }\n };\n //Checks if line distribution is enabled.\n Diagram.prototype.canDistribute = function (canEnableRouting, canDoOverlap) {\n if ((canEnableRouting && this.lineDistributionModule) || (this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) || (this.layout.arrangement === 'Linear' && this.lineDistributionModule)) {\n return true;\n }\n else {\n if ((canEnableRouting) || (this.layout.connectionPointOrigin === 'DifferentPoint' && canDoOverlap) || (this.layout.arrangement === 'Linear')) {\n console.warn('[WARNING] :: Module \"LineDistribution\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n return false;\n }\n };\n /* tslint:enable */\n /**\n * Serializes the diagram control as a string.\n * @returns { string } Serializes the diagram control as a string. \\\n */\n Diagram.prototype.saveDiagram = function () {\n var children = [];\n var node;\n var grid;\n var childTable;\n var child;\n var gridChild = 'childTable';\n for (var i = 0; i < this.nodes.length; i++) {\n node = this.nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n grid = node.wrapper.children[0];\n childTable = grid[\"\" + gridChild];\n for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) {\n var key = _a[_i];\n child = childTable[\"\" + key];\n children = getChild(child, children);\n }\n for (var i_1 = 0; i_1 < children.length; i_1++) {\n if (this.nameTable[children[parseInt(i_1.toString(), 10)]]) {\n this.swimlaneChildTable[children[parseInt(i_1.toString(), 10)]]\n = this.nameTable[children[parseInt(i_1.toString(), 10)]].zIndex;\n }\n }\n this.swimlaneZIndexTable[node.id] = node.zIndex;\n }\n }\n return serialize(this);\n };\n /**\n * Converts the given string into a Diagram Control.\n *\n * @returns { Object } Converts the given string into a Diagram Control. \\\n * @param {string} data - The string representing the diagram model JSON to be loaded.\n * @param {boolean} isEJ1Data - A boolean indicating whether the JSON data is EJ1 data.\n */\n Diagram.prototype.loadDiagram = function (data, isEJ1Data) {\n if (isEJ1Data && this.ej1SerializationModule) {\n var ejDiagram = JSON.parse(data);\n data = this.ej1SerializationModule.getSerializedData(ejDiagram);\n }\n else if (isEJ1Data) {\n console.warn('[WARNING] :: Module \"Ej1Serialization\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n return deserialize(data, this);\n };\n /**\n * Exports the current diagram to a string in Mermaid format.\n * This method converts the current state of the diagram into Mermaid syntax, allowing it to be saved or shared.\n * @returns {string} - A string containing the Mermaid text representation of the current diagram.\n */\n Diagram.prototype.saveDiagramAsMermaid = function () {\n var mermaidData = '';\n if (this.layout && this.layout.type === 'Flowchart') {\n mermaidData = this.saveFlowDiagramInMermaidFormat();\n }\n else {\n mermaidData = this.saveMindmapDiagramInMermaidFormat();\n }\n return mermaidData;\n };\n /**\n * Converts the diagram to Mermaid format and saves it.\n * If the diagram has a 'MindMap' layout, it will generate a Mermaid mind map.\n * @returns {string} - The Mermaid formatted string representing the diagram.\n */\n Diagram.prototype.saveMindmapDiagramInMermaidFormat = function () {\n var mermaidData = '';\n var dataSourceCollection = [];\n if (this.layout && this.layout.type === 'MindMap') {\n dataSourceCollection.push('mindmap');\n if (this.nodes.length > 0) {\n var rootNode = this.nodes.filter(function (node) { return node.inEdges.length === 0; })[0];\n var content = this.convertMindmapToMermaid(rootNode, 0);\n dataSourceCollection.push(content);\n var outConnectors = rootNode.outEdges;\n this.updateTextDataSource(dataSourceCollection, outConnectors, 1);\n dataSourceCollection = dataSourceCollection.filter(function (data) { return data.trim() !== ''; });\n mermaidData = dataSourceCollection.join('\\n');\n }\n }\n return mermaidData;\n };\n /**\n * Creates a text data source for sub-level children in a Mermaid diagram.\n * @param {string[]} dataSource - The data source to be updated.\n * @param {string[]} outEdges - The out edges of the current node.\n * @param {number} level - The level of the current node.\n * @returns {void} - Creates a text data source for sub-level children in a Mermaid diagram.\n */\n Diagram.prototype.updateTextDataSource = function (dataSource, outEdges, level) {\n var count = 0;\n while (count < outEdges.length) {\n var connector = this.getObject(outEdges[parseInt(count.toString(), 10)]);\n var targetNode = this.getObject(connector.targetID);\n var content = this.convertMindmapToMermaid(targetNode, level);\n dataSource.push(content);\n var childOutConnectors = targetNode.outEdges;\n if (childOutConnectors.length > 0) {\n this.updateTextDataSource(dataSource, childOutConnectors, level + 1);\n }\n count++;\n }\n };\n /**\n * Returns the text data source for the specified node in Mermaid format.\n * @param {NodeModel} node - The node for which the Mermaid data is to be generated.\n * @param {number} level - The level of the node in the diagram.\n * @returns {string} - The text data source for the specified node in Mermaid format.\n */\n Diagram.prototype.convertMindmapToMermaid = function (node, level) {\n var nodeId = node.id;\n var spaceCount = (level + 1) * 2;\n var spaces = ' '.repeat(spaceCount);\n var annotationContent = node.annotations.length > 0\n ? node.annotations[0].content.replace(/\\n/g, ' ')\n : '';\n var content = spaces + annotationContent;\n var spaceWithNodeId = spaces + nodeId;\n if (node.shape && node.shape.type === 'Basic') {\n var basicShape = node.shape;\n if (basicShape.shape === 'Rectangle') {\n content = spaceWithNodeId + '[' + annotationContent + ']';\n }\n else if (basicShape.shape === 'Ellipse') {\n content = spaceWithNodeId + '((' + annotationContent + '))';\n }\n else if (basicShape.shape === 'Hexagon') {\n content = spaceWithNodeId + '{{' + annotationContent + '}}';\n }\n }\n else if (node.shape && node.shape.type === 'Flow') {\n var flowShape = node.shape;\n if (flowShape.shape === 'Terminator') {\n content = spaceWithNodeId + '(' + annotationContent + ')';\n }\n }\n else if (node.shape && node.shape.type === 'Path') {\n var pathShape = node.shape;\n if (pathShape.data === this.bangShape) {\n content = spaceWithNodeId + '))' + annotationContent + '((';\n }\n else if (pathShape.data === this.cloudShape) {\n content = spaceWithNodeId + ')' + annotationContent + '(';\n }\n }\n return content;\n };\n /**\n * Converts the flowchart diagram to Mermaid format.\n * @returns {string} - The exported flowchart diagram as Mermaid data.\n */\n Diagram.prototype.saveFlowDiagramInMermaidFormat = function () {\n var _this = this;\n var existingIds = [];\n var mermaidCode = 'graph TD\\n';\n var graph = { nodes: this.nodes, edges: this.connectors };\n // Create a map of node labels for easy access\n // accumulator - The object that stores the node ID and label pairs.\n var nodeLabels = graph.nodes.reduce(function (accumulator, node) {\n accumulator[node.id] = node.annotations.length ? node.annotations[0].content : '';\n return accumulator;\n }, {});\n // Iterate through edges to create connections and node definitions\n graph.edges.forEach(function (edge) {\n var fromNodeId = edge.sourceID;\n var toNodeId = edge.targetID;\n var fromNodeLabel = nodeLabels[\"\" + fromNodeId];\n var toNodeLabel = nodeLabels[\"\" + toNodeId];\n var fromNode = _this.nameTable[\"\" + fromNodeId];\n var toNode = _this.nameTable[\"\" + toNodeId];\n var fromNodeShape = _this.getNodeShape(fromNode);\n var toNodeShape = _this.getNodeShape(toNode);\n var condition = (edge.annotations[0] && edge.annotations[0].content !== '') ? '|' + edge.annotations[0].content + '|' : '';\n if (existingIds.indexOf(fromNodeId) === -1) {\n existingIds.push(fromNodeId);\n }\n else {\n fromNodeShape = '';\n }\n if (existingIds.indexOf(toNodeId) === -1) {\n existingIds.push(toNodeId);\n }\n else {\n toNodeShape = '';\n }\n var arrow = _this.arrowType(edge);\n mermaidCode += \" \" + fromNodeId + fromNodeShape + \" \" + arrow + condition + \" \" + toNodeId + toNodeShape + \"\\n\";\n });\n // Add styles for each node\n graph.nodes.forEach(function (node) {\n var nodeId = node.id;\n var fill = node.style.fill;\n var stroke = node.style.strokeColor;\n var strokeWidth = node.style.strokeWidth + \"px\";\n mermaidCode += \" style \" + nodeId + \" fill:\" + fill + \",stroke:\" + stroke + \",stroke-width:\" + strokeWidth + \";\\n\";\n });\n return mermaidCode;\n };\n // Method to get the arrow type from connector\n Diagram.prototype.arrowType = function (edge) {\n var decoratorShape = edge.targetDecorator.shape;\n var strokeDash = edge.style.strokeDashArray;\n var strokeWidth = edge.style.strokeWidth;\n var opacity = edge.style.opacity;\n var arrow = '';\n if (opacity < 1) {\n arrow = '~~~';\n }\n else if (strokeDash !== '') {\n arrow = '-.->';\n }\n else if (decoratorShape === 'Arrow') {\n arrow = strokeWidth > 1 ? '==>' : '-->';\n }\n else if (decoratorShape === 'None') {\n arrow = '---';\n }\n else {\n arrow = '-->';\n }\n return arrow;\n };\n // Method to get the node shape\n Diagram.prototype.getNodeShape = function (node) {\n var label = node.annotations.length > 0 ? node.annotations[0].content : '';\n var shape = node.shape.shape;\n if (shape) {\n switch (shape) {\n case 'Terminator':\n return '([' + label + '])';\n case 'Process':\n return '[' + label + ']';\n case 'Decision':\n return '{' + label + '}';\n case 'Parallelogram':\n return '[/' + label + '/]';\n case 'Ellipse':\n return '((' + label + '))';\n case 'PreDefinedProcess':\n return '[[' + label + ']]';\n default:\n return '[' + label + ']';\n }\n }\n else {\n var data = node.shape.data;\n if (data === 'M 0 0 A 1 1 0 0 0 7 0 A 1 1 0 0 0 0 0 M -1 0 A 1 1 0 0 0 8 0 A 1 1 0 0 0 -1 0') {\n return '(((' + label + ')))';\n }\n else if (data === 'M 0 0 L 1 -1 L 5 -1 L 6 0 L 0 0') {\n return '[/' + label + '\\\\]';\n }\n else if (data === 'M 0 1 L 0 6 C 2 7 4 7 6 6 L 6 1 C 5 0 1 0 0 1 C 1 2 5 2 6 1') {\n return '[(' + label + ')]';\n }\n else if (data === 'M 0 0 L 12 0 L 14 2 L 2 2 L 0 0') {\n return '[\\\\' + label + '\\\\]';\n }\n else if (data === 'M 0 0 L 5 0 L 4 1 L 1 1 L 0 0') {\n return '[\\\\' + label + '/]';\n }\n else if (data === 'M 0 0 L 2 -2 L 11 -2 L 13 0 L 11 2 L 2 2 L 0 0') {\n return '{{' + label + '}}';\n }\n else {\n return '>' + label + ']';\n }\n }\n };\n /** Loads a diagram from a string containing Mermaid syntax.\n * This method parses the provided Mermaid text data and updates the current diagram accordingly.\n * Currently, only Mindmap and Flowchart diagrams can be loaded.\n * To render the diagram properly, you should set the `Layout.type` to either `MindMap` or `FlowChart`, and ensure that the respective modules are injected.\n * @param {string} data - The Mermaid text data representing the diagram to be loaded.\n * @returns {void} - No return value. The method updates the diagram in place.\n */\n Diagram.prototype.loadDiagramFromMermaid = function (data) {\n if (this.layout && this.layout.type === 'Flowchart' && this.flowchartLayoutModule) {\n //Task 896394: To load the mermaid data as flowchart\n this.convertMermaidToFlowChart(data);\n }\n else if (this.layout && this.layout.type === 'MindMap' && this.mindMapChartModule) {\n //Task 900266: To load the mermaid data as mindmap\n this.convertMermaidToMindmap(data);\n }\n else {\n console.warn('[WARNING] :: Module \"FlowchartLayout\" or \"MindMap\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Counts the number of leading spaces in the specified string.\n * @param {string} word The string to check for leading spaces.\n * @returns { number } The number of leading spaces.\n */\n Diagram.prototype.countLeadingSpaces = function (word) {\n var i = 0;\n var length = word.length;\n // Loop through the string to count leading spaces\n while (i < length && word.charAt(i) === ' ') {\n i++;\n }\n // Return the number of leading spaces\n return i;\n };\n Diagram.prototype.convertMermaidToMindmap = function (data) {\n if (data && this.layout && this.layout.type === 'MindMap' && this.mindMapChartModule) {\n var dataSource = data.split(/\\r?\\n/).filter(function (s) { return s.trim().length > 0; });\n this.clear();\n this.mermaidNodeBaseCollection = [];\n var dataStack = [];\n var root = null;\n var previousItem = { text: '', children: [], currentLevel: 0, branch: 'Left' };\n var spaceAndItsLevels = [];\n var startLevel = 1;\n var haveBackticks = false;\n var isEndBackticks = false;\n var canCreateMindMap = false;\n if (dataSource.length > 0) {\n var _loop_1 = function (index) {\n var word = dataSource[parseInt(index.toString(), 10)];\n var level = 0;\n var text = '';\n var levelChar = ' ';\n var leadingWhiteSpace = this_1.countLeadingSpaces(word);\n var isStartBackticks = word.includes('\"`');\n isEndBackticks = word.includes('`\"');\n haveBackticks = isStartBackticks ? true : haveBackticks;\n canCreateMindMap = (!haveBackticks && !canCreateMindMap) ? leadingWhiteSpace === 0 && index > 0 : canCreateMindMap;\n if (haveBackticks && isEndBackticks && !isStartBackticks) {\n previousItem.text += '\\n' + word;\n haveBackticks = false;\n return \"continue\";\n }\n if (!isStartBackticks && haveBackticks) {\n previousItem.text += '\\n' + word;\n return \"continue\";\n }\n haveBackticks = isEndBackticks ? false : haveBackticks;\n if (word.length > 0 && ((/\\s/.test(word[0]) && index > 0) || (leadingWhiteSpace === 0))) {\n var spaceIndex = spaceAndItsLevels.findIndex(function (space) {\n return space.space === leadingWhiteSpace.toString();\n });\n if (spaceIndex !== -1) {\n for (var i = spaceAndItsLevels.length - 1; i >= 0; i--) {\n var currentSpace = spaceAndItsLevels[parseInt(i.toString(), 10)];\n var currentKey = parseFloat(currentSpace.space);\n if (currentKey > leadingWhiteSpace) {\n spaceAndItsLevels.splice(i, 1); // Remove the element at index i\n }\n else if (currentKey < leadingWhiteSpace) {\n spaceAndItsLevels.push({ space: leadingWhiteSpace.toString(), level: currentSpace.level + 1 });\n level = currentSpace.level + 1;\n break;\n }\n else if (currentKey === leadingWhiteSpace) {\n level = currentSpace.level;\n break;\n }\n }\n }\n else {\n if (spaceAndItsLevels.length === 0) {\n spaceAndItsLevels.push({ space: leadingWhiteSpace.toString(), level: startLevel });\n level = startLevel;\n }\n else {\n for (var i = spaceAndItsLevels.length - 1; i >= 0; i--) {\n var currentElement = spaceAndItsLevels[parseInt(i.toString(), 10)];\n var currentKey = parseFloat(currentElement.space);\n if (currentKey > leadingWhiteSpace) {\n spaceAndItsLevels.splice(i, 1); // Remove the element at index i\n }\n else {\n var lastElement = spaceAndItsLevels[spaceAndItsLevels.length - 1];\n spaceAndItsLevels.push({ space: leadingWhiteSpace.toString(), level: lastElement.level + 1 });\n break;\n }\n }\n level = spaceAndItsLevels[spaceAndItsLevels.length - 1].level;\n }\n }\n text = word.trim().replace(/^[+-]/, '');\n levelChar = ' ';\n }\n var currentItem = {\n text: text,\n branch: undefined,\n children: [],\n currentLevel: index === 0 ? 0 : level - 1\n };\n if (dataStack.length > 0) {\n while (dataStack.length >= level) {\n if (dataStack.length === 0) {\n break;\n }\n dataStack.pop();\n }\n if (dataStack.length > 0) {\n dataStack[dataStack.length - 1].children.push(currentItem);\n }\n }\n else {\n root = currentItem;\n }\n dataStack.push(currentItem);\n previousItem = currentItem;\n };\n var this_1 = this;\n for (var index = 0; index < dataSource.length; index++) {\n _loop_1(index);\n }\n // Create dataSource\n var hierarchyDataSource = dataStack[0];\n if (hierarchyDataSource.text === 'mindmap' || canCreateMindMap) {\n if (canCreateMindMap) {\n var nodeDetails = this.getNodeDetails(hierarchyDataSource);\n var nodeObj = {\n id: nodeDetails.nodeId,\n shape: nodeDetails.nodeShapeData,\n annotations: [\n { content: nodeDetails.annotationContent }\n ]\n };\n this.mermaidNodeBaseCollection.push(nodeObj);\n this.createDataSource(hierarchyDataSource.children, hierarchyDataSource, nodeObj.id);\n }\n else {\n var hierarchyData = hierarchyDataSource.children[0];\n var nodeData = this.getNodeDetails(hierarchyData);\n var node = {\n id: nodeData.nodeId,\n shape: nodeData.nodeShapeData,\n annotations: [\n { content: nodeData.annotationContent }\n ]\n };\n this.mermaidNodeBaseCollection.push(node);\n this.createDataSource(hierarchyData.children, hierarchyData, node.id);\n }\n this.addElements(this.mermaidNodeBaseCollection);\n this.doLayout();\n }\n }\n }\n };\n /**\n * Creates a data source for the Mermaid diagram based on the provided hierarchy data.\n * @param { HierarchyData[] } data The list of hierarchy data to process.\n * @param { HierarchyData } parent The parent hierarchy data.\n * @param { string } parentId The ID of the parent node.\n * @returns { void }\n */\n Diagram.prototype.createDataSource = function (data, parent, parentId) {\n var index = 0;\n while (index < data.length) {\n var child = data[parseInt(index.toString(), 10)];\n var nodeData = this.getNodeDetails(child);\n var node = {\n id: nodeData.nodeId,\n shape: nodeData.nodeShapeData,\n annotations: [\n { content: nodeData.annotationContent }\n ]\n };\n var connector = {\n sourceID: parentId,\n targetID: node.id\n };\n this.mermaidNodeBaseCollection.push(node);\n this.mermaidNodeBaseCollection.push(connector);\n this.createDataSource(child.children, child, node.id);\n index++;\n }\n };\n /**\n * Retrieves the node details based on the provided hierarchy data for a mermaid diagram.\n * @param { HierarchyData } hierarchyData The hierarchy data.\n * @returns { NodeData } The node details.\n */\n Diagram.prototype.getNodeDetails = function (hierarchyData) {\n var pattern = /^(.*?)\\s*([\\\\[\\\\(\\\\{][\\s\\S]*?[\\]\\\\)\\\\}]|[)\\\\(][\\s\\S]*|[)\\\\{][\\s\\S]*|[)\\\\(][^{}()\\\\[\\]]*$)/;\n var annotationContent = hierarchyData.text;\n var match = annotationContent.match(pattern);\n var nodeId = randomId();\n var annotationText = hierarchyData.text;\n var shape = { type: 'Basic', shape: 'Rectangle' };\n if (match) {\n nodeId = match[1] ? match[1] : nodeId;\n var content = match[2].trim().replace(/[\"`]/g, '');\n var firstCharacter = content.charAt(0);\n if (firstCharacter === '[') {\n annotationText = content.slice(1, -1);\n }\n else if (firstCharacter === '(') {\n if (content.startsWith('((')) {\n annotationText = content.slice(2, -1);\n }\n else {\n annotationText = content.slice(1, -1);\n }\n shape = content.startsWith('((') ?\n { type: 'Basic', shape: 'Ellipse' } :\n { type: 'Flow', shape: 'Terminator' };\n }\n else if (firstCharacter === ')') {\n if (content.startsWith('))')) {\n annotationText = content.slice(2, -2);\n }\n else {\n annotationText = content.slice(1, -1);\n }\n shape = content.startsWith('))') ?\n { type: 'Path', data: this.bangShape } :\n { type: 'Path', data: this.cloudShape };\n }\n else if (firstCharacter === '{') {\n annotationText = content.slice(2, -1);\n shape = { type: 'Basic', shape: 'Hexagon' };\n }\n }\n return {\n nodeId: nodeId,\n annotationContent: annotationText,\n nodeShapeData: shape\n };\n };\n /**\n * To convert the Mermaid data to flowchart diagram\n * @param {string} data - The Mermaid data to be converted to a flowchart diagram.\n * @returns {void}\n */\n Diagram.prototype.convertMermaidToFlowChart = function (data) {\n var dataCollection = [];\n this.clear();\n var lines = data.trim().split('\\n');\n for (var i = 1; i < lines.length; i++) {\n var line = lines[parseInt(i.toString(), 10)];\n line = line.trim();\n if (line !== '') {\n if (line.startsWith('style')) {\n this.parseStyle(line, dataCollection);\n }\n else {\n var lineSplit = this.getLineSplitting(line);\n var parts = [lineSplit[0], lineSplit[1]];\n var data_1 = this.getNodeData(parts, dataCollection, lineSplit[2]);\n if (data_1.length > 0) {\n var lastItem = data_1[data_1.length - 1];\n lastItem.arrowType = lineSplit[2];\n if (lineSplit[3] !== '') {\n if (lastItem.label && lastItem.label.some(function (str) { return str.trim().length > 0; })) {\n lastItem.label.push(lineSplit[3]);\n }\n else {\n lastItem.label = [];\n lastItem.label[lastItem.parentId.length - 1] = lineSplit[3];\n }\n }\n }\n data_1.filter(function (flowData) {\n return flowData.parentId && flowData.parentId.length === 0;\n }).forEach(function (node) {\n node.parentId = null;\n });\n dataCollection = dataCollection.concat(data_1);\n }\n }\n }\n this.createFlowChart(dataCollection);\n this.doLayout();\n this.clearHistory();\n };\n /**\n * To convert the dataCollection into flowchart nodes and connectors\n * @param { FlowChartData[] } dataCollection - The data collection to be converted to flowchart nodes and connectors.\n * @returns {void}\n */\n Diagram.prototype.createFlowChart = function (dataCollection) {\n var flowchartNodesAndConnectors = [];\n for (var n = 0; n < dataCollection.length; n++) {\n var data = dataCollection[parseInt(n.toString(), 10)];\n var node = {\n id: data.id,\n shape: data.shape,\n annotations: [{ content: data.name }],\n style: { fill: data.color, strokeColor: data.stroke, strokeWidth: data.strokeWidth }\n };\n flowchartNodesAndConnectors.push(node);\n }\n for (var c = 0; c < dataCollection.length; c++) {\n var data = dataCollection[parseInt(c.toString(), 10)];\n var connectorStyle = getConnectorArrowType(data);\n if (data.parentId && data.parentId.length > 1) {\n for (var i = 0; i < data.parentId.length; i++) {\n var connector = {\n id: randomId(),\n sourceID: data.parentId[parseInt(i.toString(), 10)],\n targetID: data.id,\n annotations: [{ content: data.label ? data.label[parseInt(i.toString(), 10)] : '' }],\n style: {\n strokeWidth: connectorStyle.strokeWidth ? connectorStyle.strokeWidth : 1,\n strokeDashArray: connectorStyle.strokeDashArray ? connectorStyle.strokeDashArray : '',\n opacity: connectorStyle.opacity !== undefined ? connectorStyle.opacity : 1\n },\n targetDecorator: { shape: connectorStyle.targetDecorator }\n };\n flowchartNodesAndConnectors.push(connector);\n }\n }\n else if (data.parentId && data.parentId.length === 1) {\n var connector = {\n id: randomId(),\n sourceID: data.parentId[0],\n targetID: data.id,\n annotations: [{ content: data.label ? data.label[0] : '' }],\n style: {\n strokeWidth: connectorStyle.strokeWidth ? connectorStyle.strokeWidth : 1,\n strokeDashArray: connectorStyle.strokeDashArray ? connectorStyle.strokeDashArray : '',\n opacity: connectorStyle.opacity !== undefined ? connectorStyle.opacity : 1\n },\n targetDecorator: { shape: connectorStyle.targetDecorator }\n };\n flowchartNodesAndConnectors.push(connector);\n }\n }\n this.addElements(flowchartNodesAndConnectors);\n };\n /**\n * Splits the line based on arrow\n * @param { string } line - line to split\n * @returns { string[] } - Splitted line\n */\n Diagram.prototype.getLineSplitting = function (line) {\n var leftPart;\n var rightPart;\n var arrowName;\n var arrowText = '';\n // RegEx to split the line based on arrow\n var regex = /^(.*?)\\s*(-->|---|--\\s*.*?\\s*-->|~~~|==>|===|==\\s*.*?\\s*==>|\\s*-\\.\\s*->|\\s*-\\.\\s*-|\\s*-\\.\\s*.*?\\s*\\.\\s*->|\\s*-\\..*?\\.\\s*->)(.*)$/;\n var match = line.match(regex);\n if (match) {\n leftPart = match[1].trim();\n var arrow = match[2].trim();\n rightPart = match[3].trim();\n // Detect and extract arrow text\n var arrowRegex = /(-\\.|\\\\-\\\\-|==|--|~~)(.*?)(\\1>|\\.->|==>|\\\\->|~~>)/;\n var arrowTextMatch = arrow.match(arrowRegex);\n var arrowDetails = void 0;\n var arrowType = '';\n if (arrowTextMatch) {\n var text = arrowTextMatch[2].trim() || null;\n var arrowType_1 = arrowTextMatch[1] + arrowTextMatch[3];\n arrowDetails = {\n text: text,\n arrowType: arrowType_1\n };\n }\n else {\n arrowDetails = {\n text: null,\n arrowType: arrow\n };\n }\n arrowText = arrowDetails.text !== null ? arrowDetails.text : '';\n arrowType = arrowDetails.arrowType;\n // Identify arrow type\n if (arrowType.includes('-->')) {\n arrowName = 'single-line-arrow';\n }\n else if (arrowType.includes('---')) {\n arrowName = 'single-line';\n }\n else if (arrowType.includes('==>')) {\n arrowName = 'double-line-arrow';\n }\n else if (arrowType.includes('==')) {\n arrowName = 'double-line';\n }\n else if (arrowType.includes('~~~')) {\n arrowName = 'wiggly-arrow';\n }\n else if (arrowType.includes('-.->') || arrowType.includes('.->')) {\n arrowName = 'dotted-arrow';\n }\n else if (arrowType.includes('-.-') || arrowType.includes('.-')) {\n arrowName = 'dotted';\n }\n else {\n arrowName = 'single-line-arrow';\n }\n }\n return [leftPart, rightPart, arrowName, arrowText];\n };\n /**\n * To parse the style of the node\n * @param { string } line - line to parse\n * @param { FlowChartData[] } dataCollection - data collection\n * @returns { void }\n */\n Diagram.prototype.parseStyle = function (line, dataCollection) {\n var styleRegex = /^style\\s+(\\w+)\\s+fill:([^,]+),stroke:([^,]+),stroke-width:(\\d+)px;/;\n if (line.startsWith('style')) {\n var match = line.match(styleRegex);\n if (match) {\n var id = match[1];\n var fill = match[2];\n var stroke = match[3];\n var strokeWidth = parseInt(match[4], 10);\n var data_2 = {\n id: id,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth\n };\n var matchData = dataCollection.filter(function (x) { return x.id === data_2.id; });\n matchData[0].color = data_2.fill;\n matchData[0].stroke = data_2.stroke;\n matchData[0].strokeWidth = data_2.strokeWidth;\n }\n }\n };\n /**\n * @param {string[]} lines - The lines to be processed.\n * @param {FlowChartData[]} dataCollection - The data collection to be updated.\n * @param {string} arrowType - The type of arrow.\n * @returns { void }\n */\n Diagram.prototype.getNodeData = function (lines, dataCollection, arrowType) {\n var dataArray = [];\n var firstId = null;\n var secondId = null;\n var isExistCount = 0;\n var connectorLabel = '';\n var _loop_2 = function (i) {\n var line1 = lines[parseInt(i.toString(), 10)];\n var text = this_2.splitNested(line1);\n if (text[0].includes('|')) {\n // Extract content outside the '|'\n var match = text[0].match(/\\|([^|]*)\\|/);\n if (match) {\n connectorLabel = match[1];\n }\n var parts = text[0].split('|');\n if (parts.length >= 3) {\n text[0] = parts[2].trim();\n }\n }\n var id = text[0].trim();\n if (i === 0) {\n firstId = id;\n }\n else {\n secondId = id;\n }\n var exsist = dataCollection.find(function (data) { return data.id === id; });\n if (!exsist) {\n var labelShape = text.length > 1 ? text[1] : text[0];\n var shape = this_2.getShape(labelShape);\n var label = labelShape.replace(/[\\\\[\\]\\\\(\\\\)\\\\{\\\\}\\\\{\\\\}\\\\/>]/g, '');\n var data = {\n id: id,\n name: label,\n shape: shape,\n color: 'white',\n parentId: []\n };\n dataArray.push(data);\n }\n else {\n isExistCount++;\n }\n };\n var this_2 = this;\n for (var i = 0; i < lines.length; i++) {\n _loop_2(i);\n }\n if (dataArray.length) {\n var lastItem = dataArray[dataArray.length - 1];\n if (lastItem.id !== firstId) {\n lastItem.parentId.push(firstId);\n if (lastItem.label) {\n lastItem.label.push(connectorLabel);\n }\n else {\n lastItem.label = [connectorLabel];\n }\n }\n else {\n var data = dataCollection.find(function (data) { return data.id === secondId; });\n if (data.parentId) {\n data.parentId.push(firstId);\n }\n else {\n data.parentId = [firstId];\n }\n if (data.label) {\n data.label.push(connectorLabel);\n }\n else {\n data.label = [connectorLabel];\n }\n }\n }\n else if (isExistCount === 2) {\n var filteredData = dataCollection.filter(function (flowData) { return flowData.id === secondId; })[0];\n filteredData.parentId = filteredData.parentId || [];\n filteredData.parentId.push(firstId);\n filteredData.label = filteredData.label || [];\n filteredData.label[filteredData.parentId.length - 1] = connectorLabel;\n }\n if (arrowType) {\n var filteredData = dataCollection.filter(function (flowData) { return flowData.id === secondId; })[0];\n if (filteredData) {\n filteredData.arrowType = arrowType;\n }\n }\n return dataArray;\n };\n /**\n * To split the text based on the nested brackets\n * @param {string} text - The text to be split based on nested brackets.\n * @returns {string[]} An array of strings split based on the nested brackets.\n */\n Diagram.prototype.splitNested = function (text) {\n var result = [];\n var current = '';\n var level = 0;\n var delimiter = '';\n for (var _i = 0, text_1 = text; _i < text_1.length; _i++) {\n var char = text_1[_i];\n if (char === '[' || char === '{' || char === '(' || char === '>') {\n if (level === 0) {\n if (current.trim().length > 0) {\n result.push(current.trim());\n }\n current = char; // Include the delimiter in the current part\n delimiter = char;\n level++;\n }\n else {\n current += char;\n level++;\n }\n }\n else if (char === ']' || char === '}' || char === ')') {\n if (level === 1 && char === delimiter) {\n current += char; // Include the delimiter in the current part\n result.push(current.trim());\n current = '';\n level--;\n }\n else if (level > 1) {\n current += char;\n level--;\n }\n else {\n current += char;\n }\n }\n else {\n current += char;\n }\n }\n if (current.trim().length > 0) {\n result.push(current.trim());\n }\n return result;\n };\n // Get shape based on the bracket\n Diagram.prototype.getShape = function (text) {\n var shape = {};\n if (text.startsWith('(((')) {\n shape = { type: 'Path', data: 'M 0 0 A 1 1 0 0 0 7 0 A 1 1 0 0 0 0 0 M -1 0 A 1 1 0 0 0 8 0 A 1 1 0 0 0 -1 0' };\n }\n else if (text.startsWith('((')) {\n shape = { shape: 'Ellipse', type: 'Basic' };\n }\n else if (text.startsWith('([')) {\n shape = { type: 'Flow', shape: 'Terminator' };\n }\n else if (text.startsWith('(')) {\n shape = { type: 'Flow', shape: 'Process' };\n }\n else if (text.startsWith('[[')) {\n shape = { type: 'Flow', shape: 'PreDefinedProcess' };\n }\n else if (text.startsWith('[/')) {\n if (text.endsWith('/]')) {\n shape = { type: 'Basic', shape: 'Parallelogram' };\n }\n else {\n shape = { type: 'Path', data: 'M 0 0 L 1 -1 L 5 -1 L 6 0 L 0 0' };\n }\n }\n else if (text.startsWith('[(')) {\n shape = { type: 'Path', data: 'M 0 1 L 0 6 C 2 7 4 7 6 6 L 6 1 C 5 0 1 0 0 1 C 1 2 5 2 6 1' };\n }\n else if (text.startsWith('[\\\\')) {\n if (text.endsWith('\\\\]')) {\n shape = { type: 'Path', data: 'M 0 0 L 12 0 L 14 2 L 2 2 L 0 0' };\n }\n else {\n shape = { type: 'Path', data: 'M 0 0 L 5 0 L 4 1 L 1 1 L 0 0' };\n }\n }\n else if (text.startsWith('[')) {\n shape = { type: 'Basic', shape: 'Rectangle' };\n }\n else if (text.startsWith('{{')) {\n shape = { type: 'Path', data: 'M 0 0 L 2 -2 L 11 -2 L 13 0 L 11 2 L 2 2 L 0 0' };\n }\n else if (text.startsWith('{')) {\n shape = { type: 'Flow', shape: 'Decision' };\n }\n else if (text.startsWith('>')) {\n shape = { type: 'Path', data: 'M 0 0 L 8 0 L 8 2 L 0 2 L 2 1 L 0 0' };\n }\n return shape;\n };\n /**\n * To get the html diagram content\n *\n * @returns { string } getDirection method .\\\n * @param {StyleSheetList} styleSheets - defines the collection of style files to be considered while exporting.\n */\n Diagram.prototype.getDiagramContent = function (styleSheets) {\n if (this.printandExportModule) {\n var data = this.printandExportModule.getDiagramContent(styleSheets);\n return data;\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n return '';\n }\n };\n /**\n * Exports a diagram as a image.\n *\n * @returns { void } Exports a diagram as a image.\\\n * @param {string} image - A string representing the image content to be exported.\n * @param {IExportOptions} options -An object defining the properties of the image export.\n */\n Diagram.prototype.exportImage = function (image, options) {\n if (this.printandExportModule) {\n this.printandExportModule.exportImages(image, options);\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Prints the native or HTML nodes of the diagram as an image.\n *\n * @returns { void } Prints the native or HTML nodes of the diagram as an image. \\\n * @param {string} image - A string that defines the image content to be printed.\n * @param {IExportOptions} options - An IExportOptions object that defines the properties of the image and printing options.\n */\n Diagram.prototype.printImage = function (image, options) {\n if (this.printandExportModule) {\n options.printOptions = true;\n this.printandExportModule.exportImages(image, options);\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Define a limit on the number of history entries that the diagram's history manager can store. This can help manage memory usage and control the undo/redo history size. Or\n * Sets the limit for the history entries in the diagram.\n *\n * @returns { void } Define a limit on the number of history entries that the diagram's history manager can store. This can help manage memory usage and control the undo/redo history size. Or Sets the limit for the history entries in the diagram.\n * @param {number} stackLimit - The limit for the history manager's stack.\n */\n Diagram.prototype.setStackLimit = function (stackLimit) {\n if (this.undoRedoModule && stackLimit) {\n this.historyManager.stackLimit = stackLimit;\n this.undoRedoModule.applyLimit(this.historyManager.currentEntry, stackLimit, this, true);\n }\n };\n /**\n * Clears the history of the diagram, removing all the recorded actions from the undo and redo history.\n * @returns { void } Clears the history of the diagram, removing all the recorded actions from the undo and redo history.\\\n */\n Diagram.prototype.clearHistory = function () {\n if (this.undoRedoModule) {\n this.undoRedoModule.clearHistory(this);\n }\n };\n /**\n * Retrieves the bounding rectangle that encloses the entire diagram.\n * @returns { void } TRetrieves the bounding rectangle that encloses the entire diagram. \\\n */\n Diagram.prototype.getDiagramBounds = function () {\n if (this.printandExportModule) {\n var bounds = this.printandExportModule.getDiagramBounds('', {});\n bounds.width = bounds.width > this.scrollSettings.viewPortWidth ?\n bounds.width + (bounds.x > 0 ? bounds.x : 0) : this.scrollSettings.viewPortWidth;\n bounds.height = bounds.height > this.scrollSettings.viewPortHeight ?\n bounds.height + (bounds.y > 0 ? bounds.y : 0) : this.scrollSettings.viewPortHeight;\n bounds.x = bounds.x > 0 ? 0 : bounds.x;\n bounds.y = bounds.y > 0 ? 0 : bounds.y;\n return bounds;\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n return new Rect();\n }\n };\n /**\n * Exports the diagram as an image or SVG element based on the specified options.\n *\n * @returns { void } Exports the diagram as an image or SVG element based on the specified options.\\\n * @param {IExportOptions} options - An object defining how the diagram image should be exported.\n */\n Diagram.prototype.exportDiagram = function (options) {\n if (this.printandExportModule) {\n var data = this.printandExportModule.exportDiagram(options);\n return data;\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n return '';\n }\n };\n /**\n * Prints the diagram.\n *\n * @returns { void } Prints the diagram.\\\n * @param {IPrintOptions} optons - An IPrintOptions object that defines how the diagram is to be printed.\n */\n Diagram.prototype.print = function (options) {\n if (this.printandExportModule) {\n this.printandExportModule.print(options);\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Adds ports to a node or connector at runtime. \\\n *\n * @returns { void } Adds ports to a node or connector at runtime.\\\n * @param { Node | ConnectorModel} obj - object representing the node or connector to which ports will be added.\n * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} ports - objects representing the ports to be added.\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addPorts = function (obj, ports) {\n this.protectPropertyChange(true);\n var portCollection = [];\n var isAddPortInServer = true;\n var exist = false;\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n var newObj;\n if (ports.length > 1) {\n this.startGroupAction();\n }\n var _loop_3 = function (i) {\n //907755 - Issue in add/remove port on runtime\n exist = obj.ports.some(function (port) { return port.id === ports[parseInt(i.toString(), 10)].id; });\n if (exist) {\n return \"continue\";\n }\n if (obj instanceof Node) {\n newObj = new PointPort(obj, 'ports', ports[parseInt(i.toString(), 10)], true);\n obj.ports.push(newObj);\n }\n else if (obj instanceof Connector) {\n newObj = new PathPort(obj, 'ports', ports[parseInt(i.toString(), 10)], true);\n obj.ports.push(newObj);\n }\n //Removed isBlazor code\n if (obj.children) {\n // 907773: Add port to Group at runtime Issue Fix\n var container = obj.wrapper;\n for (var k = 0; k < container.children.length; k++) {\n var wrapper = container.children[parseInt(k.toString(), 10)];\n if ((wrapper.id).match(container.id)) {\n obj.initPort(this_3.getDescription, wrapper, newObj);\n break;\n }\n }\n }\n else {\n var canvas = obj.wrapper;\n if (obj instanceof Node) {\n canvas.children.push(obj.initPortWrapper(obj.ports[obj.ports.length - 1]));\n }\n else if (obj instanceof Connector) {\n var points = obj.type === 'Bezier' ? obj.intermediatePoints : obj.getConnectorPoints(obj.type);\n points = obj.clipDecorators(obj, points);\n var bounds = Rect.toBounds(points);\n // eslint-disable-next-line max-len\n canvas.children.push(obj.initPort(obj.ports[obj.ports.length - 1], points, bounds, undefined));\n }\n }\n if (!(this_3.diagramActions & DiagramAction.UndoRedo) && !(this_3.diagramActions & DiagramAction.Group)) {\n var entry = {\n type: 'PortCollectionChanged', changeType: 'Insert', undoObject: cloneObject(newObj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this_3.addHistoryEntry(entry);\n }\n };\n var this_3 = this;\n for (var i = 0; i < ports.length; i++) {\n _loop_3(i);\n }\n if (ports.length > 1) {\n this.endGroupAction();\n }\n //Removed isBlazor code\n obj.wrapper.measure(new Size(obj.width, obj.height));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n this.updateDiagramObject(obj);\n this.protectPropertyChange(false);\n };\n /**\n * Adds constraints at run time. \\\n *\n * @returns { void }Add constraints at run time .\\\n * @param {number} constraintsType - The source value for constraints.\n * @param {number} constraintsValue - The target value for constraints.\n *\n */\n Diagram.prototype.addConstraints = function (constraintsType, constraintsValue) {\n return constraintsType | constraintsValue;\n };\n /**\n * Remove constraints at run time. \\\n *\n * @returns { void }Remove constraints at run time.\\\n * @param {number} constraintsType - The type of constraints to be removed.\n * @param {number} constraintsValue - The value of constraints to be removed.\n *\n */\n Diagram.prototype.removeConstraints = function (constraintsType, constraintsValue) {\n return constraintsType & ~constraintsValue;\n };\n /**\n * Add labels in node at the run time in the blazor platform \\\n *\n * @returns { void } Add labels in node at the run time in the blazor platform \\\n * @param {NodeModel} obj - provide the obj value.\n * @param {ShapeAnnotationModel[]} labels - provide the labels value.\n *\n */\n Diagram.prototype.addNodeLabels = function (obj, labels) {\n this.addLabels(obj, labels);\n };\n /**\n * Adds labels to a connector at runtime in the Blazor platform.\\\n *\n * @returns { void } Adds labels to a connector at runtime in the Blazor platform.\\\n * @param {ConnectorModel} obj - The connector to which labels will be added.\n * @param {PathAnnotationModel[]} labels - An array of labels to add to the connector.\n *\n */\n Diagram.prototype.addConnectorLabels = function (obj, labels) {\n this.addLabels(obj, labels);\n };\n /**\n * Adds labels to a node or connector at runtime. \\\n *\n * @returns { void } Adds labels to a node or connector at runtime.\\\n * @param {NodeModel | ConnectorModel} obj - The node or connector to which labels will be added.\n * @param {ShapeAnnotationModel[] | PathAnnotation[] | PathAnnotationModel[]} labels - An array of label objects to be added.\n *\n */\n Diagram.prototype.addLabels = function (obj, labels) {\n this.protectPropertyChange(true);\n var isAddLabelInServer = true;\n var annotationCollection = [];\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n var canvas = obj.wrapper;\n var newObj;\n if (labels.length > 1) {\n this.startGroupAction();\n }\n for (var i = 0; i < labels.length; i++) {\n if (obj instanceof Node) {\n newObj = new ShapeAnnotation(obj, 'annotations', labels[parseInt(i.toString(), 10)], true);\n obj.annotations.push(newObj);\n //Removed isBlazor code\n if (obj.children) {\n var node = obj;\n for (var i_2 = 0; i_2 < node.wrapper.children.length; i_2++) {\n if (node.wrapper.children[parseInt(i_2.toString(), 10)].id === node.id + 'group_container') {\n var container = node.wrapper.children[parseInt(i_2.toString(), 10)];\n container.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id));\n }\n }\n }\n else {\n canvas.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id));\n }\n }\n else if (obj instanceof Connector) {\n newObj = new PathAnnotation(obj, 'annotations', labels[parseInt(i.toString(), 10)], true);\n obj.annotations.push(newObj);\n //Removed isBlazor code\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n canvas.children.push(obj.getAnnotationElement(obj.annotations[obj.annotations.length - 1], obj.intermediatePoints, bounds, this.getDescription, this.element.id));\n }\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group)) {\n var entry = {\n type: 'LabelCollectionChanged', changeType: 'Insert', undoObject: cloneObject(newObj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n }\n if (labels.length > 1) {\n this.endGroupAction();\n }\n //Removed isBlazor code\n obj.wrapper.measure(new Size(canvas.width, canvas.height));\n obj.wrapper.arrange(canvas.desiredSize);\n this.updateDiagramObject(obj);\n this.protectPropertyChange(false);\n //EJ2-908488 - Added for Update annotations in overview\n this.refreshCanvasLayers();\n };\n /**\n *addChildToUmlNode - Add methods, members and attributes into a UML class runtime. \\\n *\n * @returns { void } Add.\n * @param {NodeModel} node - Specifies the existing UmlClass node in the diagram to which you intend to add child elements.\n * @param {UmlClassMethodModel | UmlClassAttributeModel | UmlEnumerationMemberModel} child - Specify the child elements, such as attributes, members, or methods, to be added to the UML class.\n * @param {UmlClassChildType} umlChildType - Specify the enum that you intend to add to the UML class.\n *\n */\n Diagram.prototype.addChildToUmlNode = function (node, child, umlChildType) {\n var classifier;\n var method;\n var attribute;\n var member;\n var textWrap = 'NoWrap';\n //Members and attributes are exclusively added to the classShape and interfaceShape within the UML node\n if (node.shape.classifier === 'Class' || node.shape.classifier === 'Interface') {\n if (umlChildType === 'Method') {\n method = new UmlClassMethod(node, '', child);\n if (node.shape.classifier === 'Class') {\n node.shape.classShape.methods.push(method);\n classifier = node.shape.classShape;\n }\n else if (node.shape.classifier === 'Interface') {\n node.shape.interfaceShape.methods.push(method);\n classifier = node.shape.interfaceShape;\n }\n //this method triggers for adding methods at runtime\n getClassMembersChild(node, this, classifier, textWrap);\n }\n else if (umlChildType === 'Attribute') {\n attribute = new UmlClassAttribute(node, '', child);\n if (node.shape.classifier === 'Class') {\n node.shape.classShape.attributes.push(attribute);\n classifier = node.shape.classShape;\n }\n else if (node.shape.classifier === 'Interface') {\n node.shape.interfaceShape.attributes.push(attribute);\n classifier = node.shape.interfaceShape;\n }\n //this method triggers for adding attributes at runtime\n getClassAttributesChild(node, this, classifier, textWrap);\n }\n }\n else if (node.shape.classifier === 'Enumeration' && umlChildType === 'Member') {\n member = new UmlEnumerationMember(node, '', child);\n node.shape.enumerationShape.members.push(member);\n classifier = node.shape.enumerationShape;\n //this method triggers for adding members at runtime\n getClassNodesChild(node, this, classifier, textWrap);\n }\n //The clearSelection methods is invoked to update the newly added child type dynamically at runtime\n this.clearSelection();\n this.updateSelector();\n };\n /**\n * Dynamically add lanes to a swimlane at runtime. You can specify the swimlane (node), the lanes to be added (lane), and an optional index to determine where the lanes should be inserted. \\\n *\n * @returns { void } Dynamically add lanes to a swimlane at runtime. You can specify the swimlane (node), the lanes to be added (lane), and an optional index to determine where the lanes should be inserted.\\\n * @param {NodeModel} node - The swimlane to which lanes will be added.\n * @param {LaneModel[]} lane -An array of LaneModel objects representing the lanes to be added.\n * @param {number} index - The index at which the lanes should be inserted.\n *\n */\n Diagram.prototype.addLanes = function (node, lane, index) {\n node = this.nameTable[node.id] || node;\n for (var i = 0; i < lane.length; i++) {\n addLane(this, node, lane[parseInt(i.toString(), 10)], index);\n if (index !== undefined) {\n index += 1;\n }\n }\n this.updateDiagramElementQuad();\n };\n /**\n * Adds phases to a swimlane at runtime. \\\n *\n * @returns { void } Adds phases to a swimlane at runtime. \\\n * @param {NodeModel} node - object representing the swimlane to which phases will be added.\n * @param {PhaseModel[]} phases - objects representing the phases to be added.\n *\n */\n Diagram.prototype.addPhases = function (node, phases) {\n node = this.nameTable[node.id] || node;\n for (var i = 0; i < phases.length; i++) {\n //897967-Exception thrown when adding Phases at runtime and perform undo Action\n this.protectPropertyChange(true);\n addPhase(this, node, phases[parseInt(i.toString(), 10)]);\n this.protectPropertyChange(false);\n }\n this.updateDiagramElementQuad();\n };\n /**\n *Removes a dynamic lane from a swimlane at runtime. \\\n *\n * @returns { void } Removes a dynamic lane from a swimlane at runtime.\\\n * @param {NodeModel} node - representing the swimlane to remove the lane from.\n * @param {LaneModel} lane - representing the dynamic lane to be removed.\n *\n */\n Diagram.prototype.removeLane = function (node, lane) {\n removeLane(this, undefined, node, lane);\n this.updateDiagramElementQuad();\n };\n /**\n *Removes a phase from a swimlane at runtime.\\\n *\n * @returns { void } Removes a phase from a swimlane at runtime.\\\n * @param {NodeModel} node - representing the swimlane to remove the phase from.\n * @param {PhaseModel} phase - representing the phase to be removed.\n *\n */\n Diagram.prototype.removePhase = function (node, phase) {\n removePhase(this, undefined, node, phase);\n this.updateDiagramElementQuad();\n };\n //827745-support to edit Segment for Straight connector at runtime.\n /**\n * Used to add or remove intermediate segments to the straight connector.\n *\n * @returns { void } Used to add or remove intermediate segments to the straight connector.\n * @param {IEditSegmentOptions} editOptions - An object containing various options for adding/removing segments.\n *\n */\n Diagram.prototype.editSegment = function (editOptions) {\n if (editOptions.connector.type === 'Straight') {\n var connector = editOptions.connector;\n var mode = editOptions && editOptions.SegmentEditing ? editOptions.SegmentEditing : 'Toggle';\n var point = editOptions.point;\n var hasPoint = void 0;\n var allowEdit = void 0;\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = (connector.segments)[parseInt(i.toString(), 10)];\n if (contains(point, segment.point, connector.hitPadding)) {\n hasPoint = true;\n break;\n }\n }\n if ((hasPoint && mode === 'Remove') || (!hasPoint && mode === 'Add')) {\n allowEdit = true;\n }\n if ((connector.type === 'Straight') && (allowEdit || mode === 'Toggle')) {\n this.connectorEditingToolModule.addOrRemoveSegment(connector, point, this.commandHandler);\n }\n }\n };\n Diagram.prototype.removelabelExtension = function (obj, labels, j, wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var canvas = wrapper.children[parseInt(i.toString(), 10)];\n if ((canvas instanceof TextElement) || (canvas instanceof DiagramHtmlElement)) {\n if (canvas.id.match('_' + labels[parseInt(j.toString(), 10)].id + '$')) {\n for (var k = 0; k < obj.annotations.length; k++) {\n if (canvas.id.match('_' + obj.annotations[parseInt(k.toString(), 10)].id + '$')) {\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'LabelCollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj.annotations[parseInt(k.toString(), 10)]),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n obj.annotations.splice(k, 1);\n }\n }\n wrapper.children.splice(i, 1);\n if (this.mode === 'SVG') {\n var element = getDiagramElement(canvas.id, this.element.id);\n if (element) {\n var element_1 = getDiagramElement(canvas.id, this.element.id);\n element_1.parentNode.removeChild(element_1);\n }\n var textElement = getDiagramElement(canvas.id + '_text', this.element.id);\n if (textElement) {\n element = getDiagramElement(canvas.id + '_text', this.element.id);\n element.parentNode.removeChild(element);\n }\n var htmlElement = getDiagramElement(canvas.id + '_html_element', this.element.id);\n if (htmlElement) {\n htmlElement.parentNode.removeChild(htmlElement);\n }\n }\n else {\n this.refreshCanvasLayers();\n }\n }\n }\n }\n };\n /**\n * Removes labels from a node or connector at runtime. \\\n *\n * @returns { string } Removes labels from a node or connector at runtime. \\\n * @param { Node | ConnectorModel} obj - Representing the node or connector to remove labels from.\n * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} labels - objects representing the labels to be removed.\n *\n */\n Diagram.prototype.removeLabels = function (obj, labels) {\n var isAddLabelInServer = true;\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n // Removed isBlazor code\n if (labels.length > 1) {\n this.startGroupAction();\n }\n for (var j = labels.length - 1; j >= 0; j--) {\n if (obj.children && obj.children.length > 0) {\n //Bug 886881: Exception throws while ungrouping a group node with annotations.\n //Added the condition to check the wrapper id is same as the obj id to remove the group node label alone while unGroup.\n var groupWrapper = obj.wrapper.children.filter(function (wrapper) { return wrapper.id === obj.id + 'group_container'; });\n if (groupWrapper && groupWrapper.length > 0) {\n this.removelabelExtension(obj, labels, j, groupWrapper[0]);\n }\n }\n else {\n this.removelabelExtension(obj, labels, j, obj.wrapper);\n }\n }\n if (labels.length > 1) {\n this.endGroupAction();\n }\n //EJ2-908488 - Added for Update annotations in overview\n this.refreshCanvasLayers();\n };\n Diagram.prototype.removePortsExtenion = function (obj, ports, j, wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var canvas = wrapper.children[parseInt(i.toString(), 10)];\n if (canvas instanceof PathElement) {\n if (canvas.id.match('_' + ports[parseInt(j.toString(), 10)].id + '$')) {\n for (var k = 0; k < obj.ports.length; k++) {\n if (canvas.id.match('_' + obj.ports[parseInt(k.toString(), 10)].id + '$')) {\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PortCollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj.ports[parseInt(k.toString(), 10)]),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n obj.ports.splice(k, 1);\n }\n }\n wrapper.children.splice(i, 1);\n if (this.mode === 'SVG') {\n var element = getDiagramElement(canvas.id, this.element.id);\n // 905159: undo redo the multi-node after the group and ungrouping the multi nodes Issue fix\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n else {\n this.refreshCanvasLayers();\n }\n }\n }\n }\n };\n /**\n * Removes Ports at run time. \\\n *\n * @returns { void } Removes Ports at run time.\\\n * @param {Node} obj - The node or connector to remove ports from.\n * @param {PointPortModel[]} ports - An array of ports to be removed.\n *\n */\n Diagram.prototype.removePorts = function (obj, ports) {\n var isAddPortInServer = true;\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n //Removed isBlazor code\n if (ports.length > 1) {\n this.startGroupAction();\n }\n for (var j = ports.length - 1; j >= 0; j--) {\n if (obj.children && obj.children.length > 0) {\n for (var k = 0; k < obj.wrapper.children.length; k++) {\n //EJ2-66928 Bug- added for ungroup Issue to only remove the grouping ports and not to remove ports of the children nodes\n var wrapper = obj.wrapper.children[parseInt(k.toString(), 10)];\n if ((wrapper.id).match(obj.wrapper.id)) {\n this.removePortsExtenion(obj, ports, j, obj.wrapper.children[parseInt(k.toString(), 10)]);\n }\n }\n }\n else {\n this.removePortsExtenion(obj, ports, j, obj.wrapper);\n }\n }\n if (ports.length > 1) {\n this.endGroupAction();\n }\n };\n //public methods - end region\n /**\n * getSizeValue method \\\n *\n * @returns { string } getSizeValue method .\\\n * @param {string | number} real - provide the real value.\n * @param {string | number} rulerSize - provide the rulerSize value.\n *\n * @private\n */\n Diagram.prototype.getSizeValue = function (real, rulerSize) {\n var value;\n if (real.toString().indexOf('px') > 0) {\n value = real.toString();\n }\n else if (real.toString().indexOf('%') > 0) {\n value = rulerSize !== undefined ? '100%' : real.toString();\n }\n else {\n value = real.toString() + 'px';\n }\n if (rulerSize) {\n var position = getRulerSize(this);\n value = 'calc(' + value + ' - ' + rulerSize + 'px)';\n }\n return value;\n };\n Diagram.prototype.renderRulers = function () {\n if (this.rulerSettings.showRulers) {\n renderOverlapElement(this);\n renderRuler(this, true);\n renderRuler(this, false);\n }\n else {\n removeRulerElements(this);\n }\n };\n Diagram.prototype.intOffPageBackground = function () {\n var position = new Size();\n position = getRulerSize(this);\n var element = document.getElementById(this.element.id + 'content');\n var width = this.getSizeValue(this.width, position.width);\n var height = this.getSizeValue(this.height, position.height);\n var style = this.rulerSettings.showRulers ?\n 'width:' + width + '; height:' + height + ';' +\n 'top:' + position.height + 'px;left:' + position.width + 'px;' +\n 'overflow: scroll;position:absolute;overflow:auto;' :\n 'width:' + width + '; height:' + height + ';position:absolute;' +\n ' left:0px; top:0px;overflow: auto;';\n var attr = {\n 'id': this.element.id + 'content',\n 'tabindex': '0',\n 'style': style\n };\n if (!element) {\n this.diagramCanvas = createHtmlElement('div', attr);\n this.element.appendChild(this.diagramCanvas);\n }\n else {\n this.diagramCanvas = element;\n applyStyleAgainstCsp(this.diagramCanvas, style);\n }\n this.diagramCanvas.style.background = this.backgroundColor;\n };\n Diagram.prototype.initDiagram = function () {\n this.intOffPageBackground();\n setAttributeHtml(this.element, {\n style: 'width:' + this.getSizeValue(this.width) + '; height:'\n + this.getSizeValue(this.height) + ';position:relative;overflow:hidden;'\n });\n };\n Diagram.prototype.renderHiddenUserHandleTemplateLayer = function (bounds) {\n //let element: HTMLElement;\n var attributes = {\n 'class': this.element.id + '_hiddenUserHandleTemplate',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + 'visibility:hidden ; overflow: hidden;'\n };\n var element = createHtmlElement('div', attributes);\n this.element.appendChild(element);\n };\n Diagram.prototype.renderBackgroundLayer = function (bounds, commonStyle) {\n var bgLayer = this.createSvg(this.element.id + '_backgroundLayer_svg', bounds.width, bounds.height);\n applyStyleAgainstCsp(bgLayer, commonStyle);\n var backgroundImage = createSvgElement('g', {\n 'id': this.element.id + '_backgroundImageLayer',\n 'class': 'e-background-image-layer'\n });\n bgLayer.appendChild(backgroundImage);\n var attr = { 'id': this.element.id + '_backgroundLayer', 'class': 'e-background-layer' };\n var background = createSvgElement('g', attr);\n bgLayer.appendChild(background);\n this.diagramCanvas.appendChild(bgLayer);\n };\n Diagram.prototype.renderGridLayer = function (bounds, commonStyle) {\n var svgGridSvg = this.createSvg(this.element.id + '_gridline_svg', bounds.width, bounds.height);\n svgGridSvg.setAttribute('class', 'e-grid-layer');\n var svgGrid = createSvgElement('g', { 'id': this.element.id + '_gridline' });\n var rect = createSvgElement('rect', {\n 'id': this.element.id + '_grid_rect', 'x': '0', 'y': '0', 'width': '100%', 'height': '100%'\n });\n if (checkBrowserInfo()) {\n //EJ2-832888-To remove the black grid lines appearing in the safari browser.\n var url = new URL(window.location.href);\n // Check if the URL contains a query string\n if (url.search !== '') {\n rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)');\n }\n else {\n rect.setAttribute('fill', 'url(' + location.protocol + '//' + location.host + location.pathname +\n '#' + this.element.id + '_pattern)');\n }\n }\n else {\n rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)');\n }\n svgGrid.appendChild(rect);\n svgGridSvg.appendChild(svgGrid);\n this.diagramCanvas.appendChild(svgGridSvg);\n setAttributeSvg(svgGridSvg, { 'style': commonStyle });\n };\n Diagram.prototype.renderDiagramLayer = function (bounds, commonStyle) {\n var attributes = {\n 'id': this.element.id + '_diagramLayer_div',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + commonStyle\n };\n this.diagramLayerDiv = createHtmlElement('div', attributes);\n if (this.mode === 'SVG') {\n var diagramSvg = this.createSvg(this.element.id + '_diagramLayer_svg', bounds.width, bounds.height);\n diagramSvg.style['pointer-events'] = 'none';\n diagramSvg.setAttribute('class', 'e-diagram-layer');\n var diagramLayer = createSvgElement('g', { 'id': this.element.id + '_diagramLayer' });\n var transformationLayer = createSvgElement('g', {});\n this.diagramLayer = diagramLayer;\n diagramSvg.style['pointer-events'] = 'all';\n transformationLayer.appendChild(diagramLayer);\n diagramSvg.appendChild(transformationLayer);\n this.diagramLayerDiv.appendChild(diagramSvg);\n }\n else {\n this.diagramLayer = CanvasRenderer.createCanvas(this.element.id + '_diagram', bounds.width, bounds.height);\n applyStyleAgainstCsp(this.diagramLayer, 'position:absolute;left:0px;top:0px;');\n this.diagramLayerDiv.appendChild(this.diagramLayer);\n }\n this.diagramCanvas.appendChild(this.diagramLayerDiv);\n };\n Diagram.prototype.initLayers = function () {\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;';\n var container = document.getElementById(this.element.id);\n var bounds = container.getBoundingClientRect();\n var scrollerSize = getScrollerWidth();\n this.scroller.scrollerWidth = scrollerSize;\n this.scroller.setViewPortSize(bounds.width, bounds.height);\n this.renderRulers();\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n var measureElements = document.getElementById('measureElement');\n measureElements.remove();\n }\n createMeasureElements();\n // this.renderBackgroundImageLayer(bounds, commonStyle);\n this.renderBackgroundLayer(bounds, commonStyle);\n this.renderGridLayer(bounds, commonStyle);\n this.renderDiagramLayer(bounds, commonStyle);\n this.renderHTMLLayer(bounds, commonStyle);\n this.renderPortsExpandLayer(bounds, commonStyle);\n this.renderNativeLayer(bounds, commonStyle);\n this.renderAdornerLayer(bounds, commonStyle);\n this.renderHiddenUserHandleTemplateLayer(bounds);\n };\n Diagram.prototype.renderAdornerLayer = function (bounds, commonStyle) {\n var divElement = createHtmlElement('div', {\n 'id': this.element.id + '_diagramAdornerLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n var element = createHtmlElement('div', {\n 'id': this.element.id + '_diagramUserHandleLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n element.setAttribute('class', 'e-userHandle-layer');\n divElement.appendChild(element);\n var svgAdornerSvg = this.createSvg(this.element.id + '_diagramAdorner_svg', bounds.width, bounds.height);\n svgAdornerSvg.setAttribute('class', 'e-adorner-layer');\n svgAdornerSvg.style['pointer-events'] = 'none';\n this.adornerLayer = createSvgElement('g', { 'id': this.element.id + '_diagramAdorner' });\n this.adornerLayer.style[' pointer-events'] = 'all';\n svgAdornerSvg.appendChild(this.adornerLayer);\n divElement.appendChild(svgAdornerSvg);\n this.diagramCanvas.appendChild(divElement);\n var svgSelector = createSvgElement('g', { 'id': this.element.id + '_SelectorElement' });\n this.adornerLayer.appendChild(svgSelector);\n setAttributeSvg(svgAdornerSvg, { style: 'pointer-events:none;' });\n };\n Diagram.prototype.renderPortsExpandLayer = function (bounds, commonStyle) {\n var svgPortsSvg = this.createSvg(this.element.id + '_diagramPorts_svg', bounds.width, bounds.height);\n svgPortsSvg.setAttribute('class', 'e-ports-expand-layer');\n var svgPortsLayer = createSvgElement('g', {\n 'id': this.element.id + '_diagramPorts',\n 'class': 'e-ports-layer',\n 'style': 'pointer-events: all;'\n });\n svgPortsSvg.appendChild(svgPortsLayer);\n var svgExpandLayer = createSvgElement('g', {\n 'id': this.element.id + '_diagramExpander',\n 'class': 'e-expand-layer',\n 'style': 'pointer-events: all;'\n });\n svgPortsSvg.appendChild(svgExpandLayer);\n this.diagramCanvas.appendChild(svgPortsSvg);\n setAttributeSvg(svgPortsSvg, { 'style': commonStyle });\n };\n Diagram.prototype.renderHTMLLayer = function (bounds, commonStyle) {\n this.htmlLayer = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;position:absolute;top:0px;' +\n 'left:0px;overflow:hidden;pointer-events:none;',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer_div',\n 'style': 'position:absolute;top:0px;left:0px;pointer-events:all;'\n });\n this.htmlLayer.appendChild(htmlLayerDiv);\n this.diagramCanvas.appendChild(this.htmlLayer);\n };\n Diagram.prototype.renderNativeLayer = function (bounds, commonStyle) {\n var nativeLayerSvg = this.createSvg(this.element.id + '_nativeLayer_svg', bounds.width, bounds.height);\n var nativeLayer = createSvgElement('g', { 'id': this.element.id + '_nativeLayer', 'style': 'pointer-events:all;' });\n nativeLayerSvg.appendChild(nativeLayer);\n this.diagramLayerDiv.appendChild(nativeLayerSvg);\n setAttributeSvg(nativeLayerSvg, { 'class': 'e-native-layer', 'style': commonStyle });\n };\n /**\n * createSvg method \\\n *\n * @returns { void } createSvg method .\\\n * @param {string} id - provide the source value.\n * @param {string | number} width - provide the source value.\n * @param {string | number} height - provide the source value.\n *\n * @private\n */\n Diagram.prototype.createSvg = function (id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n };\n Diagram.prototype.updateBazorShape = function () {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n switch (node.shape.type) {\n case 'Bpmn':\n node.shape.bpmnShape =\n node.shape.shape;\n break;\n case 'UmlActivity':\n node.shape.umlActivityShape =\n node.shape.shape;\n break;\n case 'Flow':\n node.shape.flowShape =\n node.shape.shape;\n break;\n case 'Basic':\n node.shape.basicShape =\n node.shape.shape;\n break;\n case 'Text':\n node.shape.textContent =\n node.shape.content;\n break;\n }\n }\n };\n Diagram.prototype.initObjects = function (isLoad) {\n this.updateBazorShape();\n if (!this.isLoading) {\n this.initData();\n }\n this.initLayerObjects();\n this.updateBridging(isLoad);\n };\n /**\n * initLayerObjects method \\\n *\n * @returns { void } initLayerObjects method .\\\n *\n * @private\n */\n Diagram.prototype.initLayerObjects = function () {\n var hasLayers = this.layers.length > 1; //const set: boolean = false;\n var connectors = [];\n var blazor = 'Blazor';\n //Removed isBlazor code\n var tempTabel = {};\n var bpmnTable = {};\n var tempNode = [];\n var groups = [];\n var i = 0;\n var previousNodeObject = [];\n var previousConnectorObject = [];\n var updateNodeObject = [];\n var updateConnectorObject = [];\n var changeNodes = [];\n var changeConnectors = [];\n //Removed isBlazor code\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.id = obj.id || randomId();\n this.addToLayer(obj, hasLayers);\n tempTabel[obj.id] = obj;\n }\n for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) {\n var obj = _c[_b];\n obj.id = obj.id || randomId();\n this.addToLayer(obj, hasLayers);\n tempTabel[obj.id] = obj;\n }\n for (var _d = 0, _e = this.layers; _d < _e.length; _d++) {\n var layer = _e[_d];\n for (var _f = 0, _g = layer.objects; _f < _g.length; _f++) {\n var obj = _g[_f];\n if (tempTabel[\"\" + obj]) {\n if (!(tempTabel[\"\" + obj] instanceof Connector)) {\n if (tempTabel[\"\" + obj].children) {\n groups.push(obj);\n }\n else if ((tempTabel[\"\" + obj].shape instanceof BpmnShape) &&\n tempTabel[\"\" + obj].shape.activity.subProcess.processes &&\n tempTabel[\"\" + obj].shape.activity.subProcess.processes.length > 0) {\n bpmnTable[tempTabel[\"\" + obj].id] = obj;\n }\n else {\n this.initNodes(tempTabel[\"\" + obj], layer);\n }\n }\n else {\n var connector = tempTabel[\"\" + obj];\n if (connector.sourceID && connector.targetID) {\n var sourceNode = tempTabel[connector.sourceID];\n var targetNode = tempTabel[connector.targetID];\n var flag = true;\n if (this.isLoading && ((sourceNode && sourceNode.children && sourceNode.children.length > 0) ||\n (targetNode && targetNode.children && targetNode.children.length > 0))) {\n flag = false;\n }\n if ((sourceNode && sourceNode.wrapper && targetNode && targetNode.wrapper) && flag) {\n this.initConnectors(tempTabel[\"\" + obj], layer);\n }\n else {\n connectors.push(tempTabel[\"\" + obj]);\n }\n }\n else {\n // 908150: Connector not rendered properly when one end is a group and other end is an endpoint\n var sourceNode = tempTabel[connector.sourceID];\n var targetNode = tempTabel[connector.targetID];\n if ((sourceNode && sourceNode.children && sourceNode.children.length > 0) ||\n (targetNode && targetNode.children && targetNode.children.length > 0)) {\n connectors.push(tempTabel[\"\" + obj]);\n }\n else {\n this.initConnectors(tempTabel[\"\" + obj], layer);\n }\n }\n }\n }\n }\n if (this.bpmnModule) {\n for (var _h = 0, _j = this.bpmnModule.bpmnTextAnnotationConnector; _h < _j.length; _h++) {\n var obj = _j[_h];\n this.initConnectors(obj, undefined, true);\n }\n }\n }\n for (var _k = 0, _l = Object.keys(bpmnTable); _k < _l.length; _k++) {\n var obj = _l[_k];\n this.initObject(tempTabel[\"\" + obj]);\n this.bpmnModule.updateDocks(tempTabel[\"\" + obj], this);\n }\n var alignedGroups = this.alignGroup(groups, tempTabel);\n for (var _m = 0, alignedGroups_1 = alignedGroups; _m < alignedGroups_1.length; _m++) {\n var obj = alignedGroups_1[_m];\n var layer = this.commandHandler.getObjectLayer(obj);\n this.initNodes(tempTabel[\"\" + obj], layer);\n }\n for (var _o = 0, connectors_1 = connectors; _o < connectors_1.length; _o++) {\n var connector = connectors_1[_o];\n var layer = this.commandHandler.getObjectLayer(connector.id);\n this.initConnectors(connector, layer);\n }\n //Removed isBlazor code\n };\n Diagram.prototype.alignGroup = function (parents, tempTabel) {\n var newList = [];\n var parentist = [];\n var child;\n var childNode;\n var i;\n var j;\n for (i = 0; i < parents.length; i++) {\n child = parents[parseInt(i.toString(), 10)];\n childNode = tempTabel[\"\" + child];\n var node = void 0;\n if (childNode && childNode.children.length) {\n for (j = 0; j < childNode.children.length; j++) {\n node = childNode.children[parseInt(j.toString(), 10)];\n if (parents.indexOf(node) > -1 && (newList.indexOf(node) === -1) &&\n (parentist.indexOf(node) === -1)) {\n newList.splice(0, 0, node);\n }\n }\n }\n if (newList.indexOf(child) === -1) {\n parentist.push(child);\n }\n }\n newList = newList.concat(parentist);\n return newList;\n };\n Diagram.prototype.addToLayer = function (obj, hasLayers) {\n var layer;\n var isSourceId = false;\n var isTargetId = false;\n if (hasLayers) {\n layer = this.commandHandler.getObjectLayer(obj.id);\n }\n if (!hasLayers || !layer) {\n if (this.activeLayer.objects.indexOf(obj.id) === -1) {\n this.activeLayer.objects.push(obj.id);\n }\n }\n if ((obj instanceof Node || obj instanceof Connector) &&\n (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) {\n if (obj.parentId) {\n var zIndex = this.swimlaneZIndexTable[obj.parentId];\n //EJ2-69247 - Unable to select node in swimlane after save and load\n var childzIndex = this.swimlaneChildTable[obj.id];\n if ((zIndex && zIndex !== -1) || ((childzIndex && childzIndex !== -1))) {\n obj.zIndex = this.swimlaneChildTable[obj.id];\n }\n }\n if (obj instanceof Connector && (obj.sourceID && obj.targetID)) {\n //EJ2-69577 - We have removed findNodeInLane method to improve the performance.\n if (this.activeLayer.objects.indexOf(obj.sourceID) !== -1 &&\n this.activeLayer.objects.indexOf(obj.targetID) !== -1) {\n this.setZIndex(layer || this.activeLayer, obj);\n }\n }\n else {\n this.setZIndex(layer || this.activeLayer, obj);\n }\n }\n };\n Diagram.prototype.updateLayer = function (newProp) {\n for (var _i = 0, _a = Object.keys(newProp.layers); _i < _a.length; _i++) {\n var key = _a[_i];\n var layerObject = this.layers[\"\" + key].objects;\n for (var _b = 0, layerObject_1 = layerObject; _b < layerObject_1.length; _b++) {\n var obj = layerObject_1[_b];\n var node = this.nameTable[\"\" + obj];\n if (newProp.layers[\"\" + key].visible !== undefined) {\n this.updateElementVisibility(node.wrapper, node, newProp.layers[\"\" + key].visible);\n }\n else if (newProp.layers[\"\" + key].lock === true) {\n this.unSelect(node);\n }\n }\n if (newProp.layers[\"\" + key].lock !== undefined) {\n this.layers[\"\" + key].lock = newProp.layers[\"\" + key].lock;\n }\n }\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.updateScrollSettings = function (newProp) {\n var hPan = (-this.scroller.horizontalOffset + newProp.scrollSettings.horizontalOffset || 0);\n var vPan = (-this.scroller.verticalOffset + newProp.scrollSettings.verticalOffset || 0);\n var oldValue = {\n VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset,\n ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth,\n CurrentZoom: this.scroller.currentZoom\n };\n if (hPan !== 0 || vPan !== 0) {\n this.pan(hPan, vPan);\n }\n var newValue = {\n VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset,\n ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth,\n CurrentZoom: this.scroller.currentZoom\n };\n var panStatus = 'Start';\n if (this.realActions & RealAction.PanInProgress) {\n panStatus = 'Progress';\n }\n var arg = {\n oldValue: oldValue,\n newValue: newValue, source: this,\n panState: panStatus\n };\n //Removed isBlazor code\n this.triggerEvent(DiagramEvent.scrollChange, arg);\n this.commandHandler.updatePanState(true);\n if (this.mode === 'Canvas' && (this.constraints & DiagramConstraints.Virtualization)) {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.initData = function () {\n var dataSourceSettings = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource;\n var adapter = 'adaptorName';\n if (this.dataBindingModule && !(this.realActions & RealAction.PreventDataInit)) {\n if (dataSourceSettings && this.dataSourceSettings.connectionDataSource.dataManager) {\n var dataManager = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource;\n this.nodes = this.generateData(dataManager, true);\n this.connectors = this.generateData(this.dataSourceSettings.connectionDataSource.dataManager, false);\n }\n else if (dataSourceSettings && dataSourceSettings.dataSource &&\n (dataSourceSettings.dataSource.url || (dataSourceSettings[\"\" + adapter] === 'BlazorAdaptor' &&\n !dataSourceSettings.dataSource.url))) {\n this.dataBindingModule.initSource(this.dataSourceSettings, this);\n }\n else {\n this.dataBindingModule.initData(this.dataSourceSettings, this);\n }\n }\n else if (dataSourceSettings && !this.dataBindingModule) {\n console.warn('[WARNING] :: Module \"DataBinding\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n Diagram.prototype.generateData = function (dataSource, isNode) {\n var nodes = [];\n var i;\n for (i = 0; i < dataSource.length; i++) {\n var row = dataSource[parseInt(i.toString(), 10)];\n var node = isNode ? this.makeData(row, true) : this.makeData(row, false);\n if (node && node.id && (!findNodeByName(nodes, node.id))) {\n nodes.push(node);\n }\n }\n return (nodes);\n };\n Diagram.prototype.makeData = function (row, isNode) {\n var i;\n var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource;\n var data = {};\n data.id = row[fields.id] ? row[fields.id] : randomId();\n if (fields.sourceID) {\n data.sourceID = row[fields.sourceID];\n }\n if (fields.targetID) {\n data.targetID = row[fields.targetID];\n }\n if (row[fields.sourcePointX] && row[fields.sourcePointY]) {\n data.sourcePoint = { 'x': Number(row[fields.sourcePointX]), 'y': Number(row[fields.sourcePointY]) };\n }\n if (row[fields.targetPointX] && row[fields.targetPointY]) {\n data.targetPoint = { 'x': Number(row[fields.targetPointX]), 'y': Number(row[fields.targetPointY]) };\n }\n if (fields.crudAction.customFields && fields.crudAction.customFields.length > 0) {\n for (i = 0; i < fields.crudAction.customFields.length; i++) {\n data[fields.crudAction.customFields[parseInt(i.toString(), 10)]]\n = row[fields.crudAction.customFields[parseInt(i.toString(), 10)]];\n }\n }\n return data;\n };\n Diagram.prototype.initNodes = function (obj, layer) {\n this.preventDiagramUpdate = true;\n this.initObject(obj, layer);\n this.preventDiagramUpdate = false;\n };\n Diagram.prototype.initConnectors = function (obj, layer, independentObj) {\n this.preventDiagramUpdate = true;\n this.initObject(obj, layer, independentObj);\n this.updateEdges(obj);\n this.preventDiagramUpdate = false;\n };\n Diagram.prototype.setZIndex = function (layer, obj) {\n //should be changed\n var currentLayer = layer;\n if ((obj).zIndex === Number.MIN_VALUE) {\n while (currentLayer.zIndexTable[currentLayer.objectZIndex + 1]) {\n layer.objectZIndex++;\n }\n obj.zIndex = ++currentLayer.objectZIndex;\n }\n else {\n var index = obj.zIndex;\n if (currentLayer.zIndexTable[parseInt(index.toString(), 10)]) {\n var tabelLength = Object.keys(currentLayer.zIndexTable).length;\n var j = 0;\n for (var i = 0; i < tabelLength; i++) {\n if (i === index) {\n for (var j_1 = tabelLength; j_1 > index; j_1--) {\n currentLayer.zIndexTable[parseInt(j_1.toString(), 10)] = currentLayer.zIndexTable[j_1 - 1];\n if (this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]]) {\n this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]].zIndex = j_1;\n }\n }\n currentLayer.zIndexTable[parseInt(i.toString(), 10)] = obj.id;\n }\n j++;\n }\n }\n }\n };\n Diagram.prototype.initializeDiagramLayers = function () {\n //const tempLayers: LayerModel[] = this.layers;\n for (var i = 0; i < this.layers.length; i++) {\n if (this.layers[parseInt(i.toString(), 10)].zIndex !== -1) {\n var temp = this.layers[parseInt(i.toString(), 10)];\n this.layers[parseInt(i.toString(), 10)] = this.layers[this.layers[parseInt(i.toString(), 10)].zIndex];\n this.layers[temp.zIndex] = temp;\n }\n }\n for (var _i = 0, _a = this.layers; _i < _a.length; _i++) {\n var layer = _a[_i];\n layer.zIndex = layer.zIndex !== -1 ? layer.zIndex : this.layers.indexOf(layer);\n this.layerZIndexTable[layer.zIndex] = layer.id;\n }\n for (var i = 0; i < this.layers.length; i++) {\n for (var j = i + 1; j < this.layers.length; j++) {\n if (this.layers[parseInt(i.toString(), 10)].zIndex > this.layers[parseInt(j.toString(), 10)].zIndex) {\n var temp = this.layers[parseInt(i.toString(), 10)];\n this.layers[parseInt(i.toString(), 10)] = this.layers[parseInt(j.toString(), 10)];\n this.layers[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n if (this.layers.length === 0) {\n var defaultLayer = {\n id: 'default_layer', visible: true, lock: false, objects: [], zIndex: 0,\n objectZIndex: -1, zIndexTable: {}\n };\n this.commandHandler.addLayer(defaultLayer, null, true);\n }\n this.setActiveLayer(this.layers[this.layers.length - 1].id);\n };\n /**\n * resetTool method \\\n *\n * @returns { void } resetTool method .\\\n *\n * @private\n */\n Diagram.prototype.resetTool = function () {\n this.eventHandler.resetTool();\n };\n Diagram.prototype.initObjectExtend = function (obj, layer, independentObj) {\n if (independentObj) {\n var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds, true);\n //EJ2-71853 - Need to improve performance of diagram while rendering large number of nodes and connectors.\n // Removed the for loop which is iterating through the zindex table and removing the object from the table as it is not covered in any scenario.\n //EJ2-840575 - Order commands not working between Swimlane and other nodes while drag and drop from the palette\n if (obj.shape.type === 'SwimLane') {\n for (var i = 0, a = Object.keys(layer.zIndexTable); i < a.length; i++) {\n if (layer.zIndexTable[a[parseInt(i.toString(), 10)]] &&\n layer.zIndexTable[a[parseInt(i.toString(), 10)]] === obj.id) {\n delete layer.zIndexTable[a[parseInt(i.toString(), 10)]];\n }\n }\n }\n layer.zIndexTable[obj.zIndex] = obj.id;\n if (!checkBoundaryConstraints) {\n var node = obj instanceof Node ? this.nodes : this.connectors;\n for (var i = 0; i <= node.length; i++) {\n if (node[parseInt(i.toString(), 10)] && obj.id\n === node[parseInt(i.toString(), 10)].id) {\n node.splice(i, 1);\n }\n }\n delete layer.zIndexTable[obj.zIndex];\n }\n }\n };\n /* tslint:disable */\n /**\n * initObject method \\\n *\n * @returns { void } initObject method .\\\n * @param {End} obj - provide the obj value.\n * @param {End} layer - provide the layer value.\n * @param {LayoutOrientation} independentObj - provide the independentObj value.\n * @param {boolean} group - provide the independentObj value.\n *\n * @private\n */\n Diagram.prototype.initObject = function (obj, layer, independentObj, group) {\n if (independentObj === void 0) { independentObj = true; }\n if (obj !== undefined) {\n if (independentObj) {\n if (!layer) {\n this.addToLayer(obj, false);\n layer = this.activeLayer;\n }\n //Move the common properties like zindex and id to an abstract class\n if ((obj instanceof Node || obj instanceof Connector) &&\n (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) {\n this.setZIndex(layer, obj);\n }\n }\n if (obj instanceof Node) {\n if (independentObj) {\n if (obj.id !== 'helper') {\n var getDefaults = getFunction(this.getNodeDefaults);\n if (getDefaults) {\n var defaults = getDefaults(obj, this);\n if (defaults && defaults.ports) {\n for (var i = 0; i < defaults.ports.length; i++) {\n defaults.ports[parseInt(i.toString(), 10)].inEdges = [];\n defaults.ports[parseInt(i.toString(), 10)].outEdges = [];\n }\n }\n if (defaults && defaults !== obj) {\n extendObject(defaults, obj);\n }\n }\n }\n this.initNode(obj, this.element.id);\n }\n }\n else if (obj instanceof Connector) {\n var getDefaults = getFunction(this.getConnectorDefaults);\n if (getDefaults) {\n var defaults = getDefaults(obj, this);\n if (defaults && defaults !== obj) {\n extendObject(defaults, obj);\n }\n if (obj.segments.length) {\n if (obj.type !== obj.segments[0].type) {\n obj.segments = [];\n }\n }\n }\n var sourceNode = this.nameTable[obj.sourceID];\n var targetNode = this.nameTable[obj.targetID];\n var port = this.getConnectedPort(sourceNode, obj, true);\n var targetPort = this.getConnectedPort(targetNode, obj);\n var outPort = this.findInOutConnectPorts(sourceNode, false);\n var inPort = this.findInOutConnectPorts(targetNode, true);\n if ((sourceNode !== undefined && canOutConnect(sourceNode)) || (obj.sourcePortID !== ''\n && canPortOutConnect(outPort))) {\n obj.sourceWrapper = this.getEndNodeWrapper(sourceNode, obj, true);\n if (obj.sourcePortID) {\n // eslint-disable-next-line max-len\n if (port && port.constraints && !(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.OutConnect)) {\n obj.sourcePortWrapper = this.getWrapper(sourceNode.wrapper, obj.sourcePortID);\n }\n }\n }\n if ((targetNode !== undefined && canInConnect(targetNode)) || (obj.targetPortID !== ''\n && canPortInConnect(inPort))) {\n obj.targetWrapper = this.getEndNodeWrapper(targetNode, obj, false);\n if (obj.targetPortID) {\n // eslint-disable-next-line max-len\n if (targetPort && targetPort.constraints && !(targetPort.constraints & PortConstraints.None) && (targetPort.constraints & PortConstraints.InConnect)) {\n obj.targetPortWrapper = this.getWrapper(targetNode.wrapper, obj.targetPortID);\n }\n }\n }\n if (!independentObj) {\n var points = obj.getConnectorPoints(obj.type);\n updateConnector(obj, points);\n }\n if (independentObj) {\n obj.init(this);\n }\n for (var k = 0; k < obj.wrapper.children.length; k++) {\n if (this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data]) {\n obj.wrapper.children[parseInt(k.toString(), 10)].absoluteBounds =\n this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data].absoluteBounds;\n }\n }\n obj.wrapper.measure(new Size(undefined, undefined));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n if (obj instanceof Connector && obj.type === 'Bezier') {\n this.updateConnectorAnnotation(obj);\n this.updateConnectorfixedUserHandles(obj);\n }\n for (var j = 0; j < obj.wrapper.children.length; j++) {\n this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data] = {};\n this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data].absoluteBounds =\n obj.wrapper.children[parseInt(j.toString(), 10)].absoluteBounds;\n }\n }\n if (obj instanceof Node && obj.children && obj.container) {\n for (var i = 0; i < obj.children.length; i++) {\n this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetX\n = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetX;\n this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetY\n = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetY;\n }\n }\n // 908606: The nodes goes outside the subprocess while node rotation Issue Fix\n if (obj instanceof Node && obj.shape &&\n obj.shape.shape === 'Activity' && obj.shape.activity.activity === 'SubProcess') {\n if (obj.shape.activity.subProcess.processes) {\n var children = obj.shape.activity.subProcess.processes;\n for (var i = 0; i < children.length; i++) {\n if (this.nameTable[children[parseInt(i.toString(), 10)]]) {\n this.nameTable[children[parseInt(i.toString(), 10)]].offsetX\n = this.nameTable[children[parseInt(i.toString(), 10)]].wrapper.offsetX;\n this.nameTable[children[parseInt(i.toString(), 10)]].offsetY\n = this.nameTable[children[parseInt(i.toString(), 10)]].wrapper.offsetY;\n }\n }\n }\n }\n this.initObjectExtend(obj, layer, independentObj);\n this.nameTable[obj.id] = obj;\n if (!this.refreshing) {\n //To create text annotation node if we define shape annotations in parent node.\n if (obj.shape.annotations && obj.shape.annotations.length > 0) {\n for (var i = 0; i < obj.shape.annotations.length\n && obj.shape.annotations[parseInt(i.toString(), 10)].text; i++) {\n this.getBPMNTextAnnotation(obj, this, obj.shape.annotations[parseInt(i.toString(), 10)], false);\n }\n }\n }\n if (obj instanceof Node && obj.children) {\n this.preventNodesUpdate = true;\n this.preventConnectorsUpdate = true;\n if (!group && !obj.container) {\n this.updateGroupOffset(obj, true);\n }\n this.groupTable[obj.id] = obj.children;\n for (var i = 0; i < obj.children.length; i++) {\n var node = (this.nameTable[obj.children[parseInt(i.toString(), 10)]]);\n if (node) {\n node.parentId = obj.id;\n }\n }\n if (!this.isLoading && obj.rotateAngle && !obj.container) {\n this.commandHandler.rotateObjects(obj, [obj], obj.rotateAngle, { x: obj.offsetX, y: obj.offsetY }, false);\n }\n this.preventNodesUpdate = false;\n this.preventConnectorsUpdate = false;\n }\n if (this['enterObject'] === undefined) {\n this.updateQuad(obj);\n }\n }\n if (obj.visible === false) {\n this.updateElementVisibility(obj.wrapper, obj, false);\n }\n };\n /* tslint:enable */\n Diagram.prototype.getConnectedPort = function (node, connector, isSource) {\n if (node && node.ports) {\n for (var _i = 0, _a = node.ports; _i < _a.length; _i++) {\n var port = _a[_i];\n if (port.id === connector.sourcePortID && isSource) {\n return port;\n }\n else if (port.id === connector.targetPortID && !isSource) {\n return port;\n }\n }\n }\n return null;\n };\n Diagram.prototype.scaleObject = function (obj, size, isWidth) {\n var actualSize = isWidth ? obj.wrapper.actualSize.width : obj.wrapper.actualSize.height;\n var sw = (isWidth) ? 1 + ((size - actualSize) / actualSize) : 1;\n var sh = (isWidth) ? 1 : 1 + ((size - actualSize) / actualSize);\n //const groupOffsetX: number = obj.offsetX; const groupOffsetY: number = obj.offsetY;\n this.realActions |= RealAction.PreventDrag;\n this.scale(obj, sw, sh, { x: 0.5, y: 0.5 });\n this.realActions &= ~RealAction.PreventDrag;\n };\n Diagram.prototype.updateDefaultLayoutIcons = function (node) {\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' ||\n this.layout.type === 'ComplexHierarchicalTree') {\n {\n this.updateDefaultLayoutIcon(node, node.expandIcon);\n this.updateDefaultLayoutIcon(node, node.collapseIcon);\n }\n }\n };\n Diagram.prototype.updateDefaultLayoutIcon = function (node, icon) {\n if (icon.shape !== 'None') {\n if (icon.horizontalAlignment === 'Auto' && icon.verticalAlignment === 'Auto' &&\n icon.offset.x === .5 && icon.offset.y === 1) {\n var iconWrapper = this.getWrapper(node.wrapper, 'icon_content');\n var offsetX = void 0;\n var offsetY = void 0;\n if (this.layout.orientation === 'TopToBottom' || this.layout.orientation === 'BottomToTop') {\n offsetX = .5;\n offsetY = this.layout.orientation === 'TopToBottom' ? 1 : 0;\n }\n else if (this.layout.orientation === 'RightToLeft' || this.layout.orientation === 'LeftToRight') {\n offsetX = this.layout.orientation === 'LeftToRight' ? 1 : 0;\n offsetY = .5;\n }\n iconWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n iconWrapper.horizontalAlignment = 'Center';\n iconWrapper.verticalAlignment = 'Center';\n node.wrapper.measure(new Size(node.wrapper.width, node.wrapper.height));\n node.wrapper.arrange(node.wrapper.desiredSize);\n }\n }\n };\n /**\n * updateGroupOffset method \\\n *\n * @returns { void } updateGroupOffset method .\\\n * @param {NodeModel | ConnectorModel} node - provide the source value.\n * @param {boolean} isUpdateSize - provide the target value.\n *\n * @private\n */\n Diagram.prototype.updateGroupOffset = function (node, isUpdateSize) {\n var isUpdateGroupToBlazor = false;\n if ((node.children && node.children.length > 0 && (!node.container)) || (node.processId)) {\n var node1 = this.nameTable[node.id];\n if (!(this.realActions & RealAction.PreventScale) && !(this.realActions & RealAction.PreventDrag)) {\n if (node1.offsetX && ((this.realActions & RealAction.EnableGroupAction) ||\n ((!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.ToolAction)\n && !(this.diagramActions & DiagramAction.PublicMethod))))) {\n this.realActions |= RealAction.PreventScale;\n var diffX = (node1.offsetX - node.wrapper.offsetX);\n node1.offsetX = node.wrapper.offsetX;\n var diffY = (node1.offsetY - node.wrapper.offsetY);\n node1.offsetY = node.wrapper.offsetY;\n if ((diffX + diffY) !== 0) {\n this.drag(node1, diffX, diffY);\n }\n this.realActions &= ~RealAction.PreventScale;\n }\n else {\n //Removed isBlazor code\n node1.offsetX = node.wrapper.offsetX;\n }\n if (node1.offsetY && ((this.realActions & RealAction.EnableGroupAction) ||\n ((!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.ToolAction)\n && !(this.diagramActions & DiagramAction.PublicMethod))))) {\n this.realActions |= RealAction.PreventScale;\n var diffY = (node1.offsetY - node.wrapper.offsetY);\n node1.offsetY = node.wrapper.offsetY;\n this.drag(node1, 0, diffY);\n this.realActions &= ~RealAction.PreventScale;\n }\n else {\n //Removed isBlazor code\n node1.offsetY = node.wrapper.offsetY;\n }\n if (this.diagramActions) {\n //Removed isBlazor code\n node1.width = node.wrapper.actualSize.width;\n node1.height = node.wrapper.actualSize.height;\n }\n }\n }\n if (isUpdateSize) {\n if ((node.children && node.children.length > 0)) {\n if (this.nameTable[node.id].width !== undefined) {\n this.scaleObject(node, this.nameTable[node.id].width, true);\n }\n else {\n //Removed isBlazor code\n this.nameTable[node.id].width = node.wrapper.actualSize.width;\n }\n if (this.nameTable[node.id].height !== undefined) {\n this.scaleObject(node, this.nameTable[node.id].height, false);\n }\n else {\n //Removed isBlazor code\n this.nameTable[node.id].height = node.wrapper.actualSize.height;\n }\n }\n }\n //Removed Blazor code\n };\n /* eslint-disable */\n Diagram.prototype.initNode = function (obj, diagramId, group) {\n var canvas = obj.initContainer();\n var portContainer = new Canvas();\n var content;\n if (!this.diagramSettings.inversedAlignment) {\n canvas.inversedAlignment = false;\n }\n if (!canvas.children) {\n canvas.children = [];\n }\n if (obj.children) {\n canvas.measureChildren = false;\n portContainer.id = obj.id + 'group_container';\n // Bug 853721: Grid lines remain hidden when lane fill is set to transparent.\n // Added below code to set swimlane fill while dragging from palette to diagram.\n if (obj.shape && obj.shape.type === 'SwimLane') {\n portContainer.style.fill = obj.style.fill;\n }\n else {\n portContainer.style.fill = 'none';\n }\n portContainer.style.strokeColor = 'none';\n portContainer.horizontalAlignment = 'Stretch';\n portContainer.verticalAlignment = 'Stretch';\n //EJ2-865476 - Issue with Pivot Point in group node during resizing\n portContainer.pivot = obj.pivot;\n canvas.style = obj.style;\n canvas.padding.left = obj.padding.left;\n canvas.padding.right = obj.padding.right;\n canvas.padding.top = obj.padding.top;\n canvas.padding.bottom = obj.padding.bottom;\n portContainer.children = [];\n portContainer.preventContainer = true;\n if (obj.container) {\n portContainer.relativeMode = 'Object';\n }\n var checkPorts = (obj.ports && obj.ports.length > 0) ? true : false;\n if (isNullOrUndefined(obj.container) && !checkPorts) {\n canvas.children.push(portContainer);\n }\n if (obj.container && (obj.container.type === 'Grid')) {\n for (var i = 0; i < obj.children.length; i++) {\n var childCollection = new Canvas();\n var child = this.nameTable[obj.children[i]];\n childCollection.children = [];\n childCollection.children.push(child.wrapper);\n if (child) {\n canvas.addObject(child.wrapper, child.rowIndex, child.columnIndex, child.rowSpan, child.columnSpan);\n }\n }\n }\n else {\n for (var i = 0; i < obj.children.length; i++) {\n if (this.nameTable[obj.children[i]]) {\n var child = this.nameTable[obj.children[i]];\n this.updateStackProperty(obj, child, i);\n canvas.children.push(child.wrapper);\n canvas.elementActions = canvas.elementActions | ElementAction.ElementIsGroup;\n child.wrapper.flip = child.wrapper.flip === 'None' ?\n obj.wrapper.flip : child.wrapper.flip;\n }\n }\n }\n if (checkPorts || (obj.container && (obj.container.type !== 'Grid'))) {\n canvas.children.push(portContainer);\n }\n }\n else {\n var setNodeTemplate = getFunction(this.setNodeTemplate);\n if (setNodeTemplate && obj.id !== 'helper') {\n content = setNodeTemplate(obj, this);\n }\n if (!content) {\n content = obj.init(this);\n }\n canvas.children.push(content);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var wrapperContent;\n wrapperContent = getFunction(this.getDescription);\n if (wrapperContent) {\n (obj.children ? canvas : content).description = wrapperContent;\n }\n else {\n (obj.children ? canvas : content).description = obj.annotations.length ? obj.annotations[0].content : obj.id;\n }\n var container = obj.children ? portContainer : canvas;\n obj.initAnnotations(this.getDescription, container, this.element.id, canVitualize(this) ? true : false, this.annotationTemplate);\n obj.initPorts(this.getDescription, container);\n obj.initIcons(this.getDescription, this.layout, container, diagramId);\n for (var i = 0; obj.fixedUserHandles !== undefined, i < obj.fixedUserHandles.length; i++) {\n var fixedUserHandles = obj.initFixedUserHandles(obj.fixedUserHandles[i], this.fixedUserHandleTemplate, this.element.id);\n container.children.push(fixedUserHandles);\n }\n if (obj.shape.type === 'SwimLane' && obj.wrapper && obj.wrapper.children.length > 0 &&\n obj.wrapper.children[0] instanceof GridPanel) {\n this.setZIndex(this.activeLayer, obj);\n if (this.connectors.length > 0) {\n for (var i = 0; i < this.connectors.length; i++) {\n var obj_1 = this.connectors[i];\n if ((obj_1.sourceID && obj_1.targetID) && (this.activeLayer.objects.indexOf(obj_1.sourceID) === -1 &&\n this.activeLayer.objects.indexOf(obj_1.targetID) === -1)) {\n this.setZIndex(this.activeLayer, obj_1);\n }\n }\n }\n swimLaneMeasureAndArrange(obj);\n arrangeChildNodesInSwimLane(this, obj);\n this.updateDiagramElementQuad();\n }\n else {\n canvas.measure(new Size(obj.width, obj.height), obj.id, this.onLoadImageSize.bind(this));\n if (canvas instanceof GridPanel) {\n canvas.arrange(canvas.desiredSize, true);\n }\n else {\n canvas.arrange(canvas.desiredSize);\n }\n }\n if (obj.wrapper.flip !== 'None' && obj.wrapper.elementActions & ElementAction.ElementIsGroup) {\n alignElement(obj.wrapper, obj.wrapper.offsetX, obj.wrapper.offsetY, this, obj.wrapper.flip);\n }\n if (obj.shape.type === 'Bpmn') {\n if (obj.shape.shape === 'TextAnnotation') {\n var isbpmnTextConnector = false;\n for (var i = 0; i < this.connectors.length; i++) {\n if (this.connectors[parseInt(i.toString(), 10)].id === (obj.id + \"_connector\")) {\n this.connectors[parseInt(i.toString(), 10)].isBpmnAnnotationConnector = true;\n isbpmnTextConnector = true;\n break;\n }\n }\n if (!isbpmnTextConnector) {\n this.addBpmnAnnotationConnector(obj, canvas);\n }\n }\n }\n if (obj instanceof Node && obj.container && (obj.width < canvas.outerBounds.width || obj.height < canvas.outerBounds.height) &&\n canvas.bounds.x <= canvas.outerBounds.x && canvas.bounds.y <= canvas.outerBounds.y) {\n obj.width = canvas.width = canvas.outerBounds.width;\n obj.height = canvas.height = canvas.outerBounds.height;\n canvas.measure(new Size(obj.width, obj.height));\n canvas.arrange(canvas.desiredSize);\n }\n if (obj.container && obj.container.type === 'Grid' && obj.children && obj.children.length > 0) {\n this.updateChildPosition(obj);\n }\n };\n Diagram.prototype.addBpmnAnnotationConnector = function (node, wrapper) {\n if (node.parentObj instanceof Diagram || node.parentObj instanceof Lane) {\n var bpmnAnnotation = node.shape;\n var direction = bpmnAnnotation.textAnnotation.textAnnotationDirection;\n var hasTarget = (bpmnAnnotation.textAnnotation.textAnnotationTarget !== '' && this.nameTable[bpmnAnnotation.textAnnotation.textAnnotationTarget]);\n var targetNode = hasTarget ? this.nameTable[bpmnAnnotation.textAnnotation.textAnnotationTarget] : null;\n var targetWrapper = targetNode != null ? targetNode.wrapper : null;\n var port = node.ports[0];\n var sourcePoint = { x: 0, y: 0 };\n switch (direction) {\n case 'Left':\n port.offset = { x: 0, y: 0.5 };\n sourcePoint.x = wrapper.bounds.left - 40;\n sourcePoint.y = wrapper.bounds.bottom + 30;\n break;\n case 'Right':\n port.offset = { x: 1, y: 0.5 };\n sourcePoint.x = wrapper.bounds.right + 40;\n sourcePoint.y = wrapper.bounds.bottom + 30;\n break;\n case 'Top':\n port.offset = { x: 0.5, y: 0 };\n sourcePoint.x = wrapper.bounds.right + 30;\n sourcePoint.y = wrapper.bounds.top - 40;\n break;\n case 'Bottom':\n port.offset = { x: 0.5, y: 1 };\n sourcePoint.x = wrapper.bounds.right + 30;\n sourcePoint.y = wrapper.bounds.bottom + 40;\n break;\n default:\n port.offset = { x: 0, y: 0.5 };\n sourcePoint.x = wrapper.bounds.left - 40;\n sourcePoint.y = wrapper.bounds.bottom + 30;\n if (hasTarget && wrapper != null && targetWrapper != null) {\n if (wrapper.bounds.left > targetWrapper.bounds.right) {\n port.offset = { x: 0, y: 0.5 };\n }\n else if (wrapper.bounds.right < targetWrapper.bounds.left) {\n port.offset = { x: 1, y: 0.5 };\n }\n else if (wrapper.bounds.bottom > targetWrapper.bounds.top) {\n port.offset = { x: 0.5, y: 0 };\n }\n else if (wrapper.bounds.top < targetWrapper.bounds.bottom) {\n port.offset = { x: 0.5, y: 1 };\n }\n }\n break;\n }\n var connector = new Connector(this, 'connectors', {\n id: node.id + \"_connector\",\n targetID: node.id,\n targetPortID: port.id,\n type: 'Straight',\n shape: {\n type: \"Bpmn\", flow: 'Association'\n },\n constraints: ConnectorConstraints.Default & ~(ConnectorConstraints.DragTargetEnd | ConnectorConstraints.Delete),\n isBpmnAnnotationConnector: true,\n }, true);\n if (hasTarget) {\n connector.sourceID = bpmnAnnotation.textAnnotation.textAnnotationTarget;\n }\n else {\n connector.sourcePoint = sourcePoint;\n }\n var oldProtectOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n node.constraints |= NodeConstraints.InConnect;\n this.connectors.push(connector);\n if (!(this.bpmnModule).bpmnTextAnnotationConnector) {\n (this.bpmnModule).bpmnTextAnnotationConnector = [];\n }\n (this.bpmnModule).bpmnTextAnnotationConnector.push(connector);\n node.constraints = NodeConstraints.Default & ~(NodeConstraints.OutConnect | NodeConstraints.InConnect);\n this.isProtectedOnChange = oldProtectOnChange;\n }\n };\n /** @private */\n Diagram.prototype.getBPMNTextAnnotation = function (node, diagram, annotation, isDynamic) {\n // create new text annotation node\n var obj = {\n id: annotation.id || randomId(),\n height: annotation.height || 100,\n width: annotation.width || 100,\n annotations: [{ id: (annotation.id ? annotation.id : randomId()) + annotation.text, content: annotation.text }],\n offsetX: node.offsetX + annotation.length *\n Math.cos(annotation.angle * (Math.PI / 180)),\n offsetY: node.offsetY + annotation.length *\n Math.sin(annotation.angle * (Math.PI / 180)),\n shape: { type: 'Bpmn', shape: 'TextAnnotation', textAnnotation: { textAnnotationDirection: 'Auto', textAnnotationTarget: node.id } },\n constraints: NodeConstraints.Default & ~(NodeConstraints.OutConnect | NodeConstraints.InConnect)\n };\n var parentBounds = node.wrapper.bounds;\n var position = { x: obj.offsetX, y: obj.offsetY };\n var direction = getPortDirection(position, parentBounds, parentBounds, false);\n var segment;\n switch (direction) {\n case 'Right':\n segment = {\n x1: parentBounds.right, y1: parentBounds.top,\n x2: parentBounds.right, y2: parentBounds.bottom\n };\n break;\n case 'Left':\n segment = {\n x1: parentBounds.left, y1: parentBounds.top,\n x2: parentBounds.left, y2: parentBounds.bottom\n };\n break;\n case 'Bottom':\n segment = {\n x1: parentBounds.right, y1: parentBounds.bottom,\n x2: parentBounds.left, y2: parentBounds.bottom\n };\n break;\n case 'Top':\n segment = {\n x1: parentBounds.right, y1: parentBounds.top,\n x2: parentBounds.left, y2: parentBounds.top\n };\n break;\n }\n var center = parentBounds.center;\n var endPoint = Point.transform(position, annotation.angle, Math.max(parentBounds.width, parentBounds.height));\n var point = getIntersectionPoints(segment, [center, endPoint], false, center);\n if (annotation.length !== undefined && annotation.angle !== undefined && point) {\n point = Point.transform(point, annotation.angle, annotation.length);\n obj.offsetX = point.x;\n obj.offsetY = point.y;\n }\n if (direction === 'Right') {\n obj.offsetX += obj.width / 2;\n }\n else if (direction === 'Left') {\n obj.offsetX -= obj.width / 2;\n }\n else if (direction === 'Bottom') {\n obj.offsetY += obj.height / 2;\n }\n else {\n obj.offsetY -= obj.height / 2;\n }\n if (isDynamic) {\n this.add(obj);\n }\n else {\n var bpmnTextNode = new Node(this, 'nodes', obj, true);\n diagram.initObject(bpmnTextNode, undefined, undefined, true);\n diagram.nodes.push(bpmnTextNode);\n }\n };\n /* eslint-enable */\n /**\n * updateDiagramElementQuad method \\\n *\n * @returns { void } updateDiagramElementQuad method .\\\n *\n * @private\n */\n Diagram.prototype.updateDiagramElementQuad = function () {\n for (var i = 0; i < this.nodes.length; i++) {\n if (this.nodes[parseInt(i.toString(), 10)].wrapper && (this.nodes[parseInt(i.toString(), 10)].wrapper instanceof Container)) {\n this.updateQuad(this.nodes[parseInt(i.toString(), 10)]);\n }\n }\n };\n Diagram.prototype.onLoadImageSize = function (id, size) {\n var obj = this.getObject(id);\n var image = document.getElementById(id + 'sf-imageNode');\n if (image) {\n image.parentNode.removeChild(image);\n }\n this.nodePropertyChange(obj, {}, { width: size.width, height: size.height });\n var args = { element: cloneObject(obj), size: size };\n this.triggerEvent(DiagramEvent.onImageLoad, args);\n };\n Diagram.prototype.updateChildPosition = function (obj) {\n for (var i = 0; i < obj.children.length; i++) {\n var child = this.getObject(obj.children[parseInt(i.toString(), 10)]);\n child.offsetX = child.wrapper.offsetX;\n child.offsetY = child.wrapper.offsetY;\n if (child.children && child.children.length > 0) {\n this.updateChildPosition(child);\n }\n }\n };\n Diagram.prototype.canExecute = function () {\n return true;\n };\n Diagram.prototype.updateStackProperty = function (obj, child, index) {\n if (obj.container && obj.container.type === 'Stack') {\n if (!child.width) {\n child.wrapper.horizontalAlignment = 'Stretch';\n child.horizontalAlignment = 'Stretch';\n }\n if (!child.height) {\n child.verticalAlignment = 'Stretch';\n child.wrapper.verticalAlignment = 'Stretch';\n }\n if (index && obj.shape.type === 'UmlClassifier') {\n child.umlIndex = index;\n }\n }\n };\n Diagram.prototype.initViews = function () {\n if (!this.isLoading) {\n this.views.push(this.element.id);\n this.views[this.element.id] = this;\n }\n };\n Diagram.prototype.initCommands = function () {\n var i;\n var newCommands = this.commandManager.commands;\n var commands = {\n 'copy': {\n execute: this.copyCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.C, keyModifiers: KeyModifiers.Control }\n },\n 'paste': {\n execute: this.pasteCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.V, keyModifiers: KeyModifiers.Control }\n },\n 'cut': {\n execute: this.cutCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.X, keyModifiers: KeyModifiers.Control }\n },\n 'delete': {\n execute: this.removeCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Delete }\n },\n 'selectAll': {\n execute: this.selectAll.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.A, keyModifiers: KeyModifiers.Control }\n },\n 'undo': {\n execute: this.undo.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Z, keyModifiers: KeyModifiers.Control }\n },\n 'redo': {\n execute: this.redo.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Y, keyModifiers: KeyModifiers.Control }\n },\n 'nudgeUp': {\n execute: this.nudgeCommand.bind(this, 'Up'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Up },\n parameter: 'up'\n },\n 'nudgeRight': {\n execute: this.nudgeCommand.bind(this, 'Right'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Right },\n parameter: 'right'\n },\n 'nudgeDown': {\n execute: this.nudgeCommand.bind(this, 'Down'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Down },\n parameter: 'down'\n },\n 'nudgeLeft': {\n execute: this.nudgeCommand.bind(this, 'Left'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Left },\n parameter: 'left'\n },\n 'startEdit': {\n execute: this.startEditCommad.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.F2 }\n },\n 'endEdit': {\n execute: this.endEditCommand.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Escape }\n },\n //EJ2-866418-keyboard shortcut keys\n 'focusToNextItem': {\n execute: this.navigateItems.bind(this, true),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Tab }\n },\n 'focusToPreviousItem': {\n execute: this.navigateItems.bind(this, false), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Tab, keyModifiers: KeyModifiers.Shift }\n },\n 'selectFocusedItem': {\n execute: this.startEditCommad.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Enter }\n },\n 'bold': {\n execute: this.fontStyleCommand.bind(this, 'bold'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.B, keyModifiers: KeyModifiers.Control }\n },\n 'italic': {\n execute: this.fontStyleCommand.bind(this, 'italic'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.I, keyModifiers: KeyModifiers.Control }\n },\n 'underline': {\n execute: this.fontStyleCommand.bind(this, 'underline'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.U, keyModifiers: KeyModifiers.Control }\n },\n 'duplicate': {\n execute: this.duplicateCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.D, keyModifiers: KeyModifiers.Control }\n },\n 'group': {\n execute: this.groupCommand.bind(this, 'group'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.G, keyModifiers: KeyModifiers.Control }\n },\n 'ungroup': {\n execute: this.groupCommand.bind(this, 'ungroup'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.U, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'rotateClockwise': {\n execute: this.rotateCommand.bind(this, 'clockwise'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.R, keyModifiers: KeyModifiers.Control }\n },\n 'rotateAntiClockwise': {\n execute: this.rotateCommand.bind(this, 'antiClockwise'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.L, keyModifiers: KeyModifiers.Control }\n },\n 'flipHorizontal': {\n execute: this.flipCommand.bind(this, 'horizontal'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.H, keyModifiers: KeyModifiers.Control }\n },\n 'flipVertical': {\n execute: this.flipCommand.bind(this, 'vertical'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.J, keyModifiers: KeyModifiers.Control }\n },\n 'pointerTool': {\n execute: this.toolCommand.bind(this, 'pointer'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number1, keyModifiers: KeyModifiers.Control }\n },\n 'textTool': {\n execute: this.toolCommand.bind(this, 'text'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number2, keyModifiers: KeyModifiers.Control }\n },\n 'connectTool': {\n execute: this.toolCommand.bind(this, 'connect'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number3, keyModifiers: KeyModifiers.Control }\n },\n 'freeForm': {\n execute: this.toolCommand.bind(this, 'freeForm'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number5, keyModifiers: KeyModifiers.Control }\n },\n 'lineTool': {\n execute: this.toolCommand.bind(this, 'line'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number6, keyModifiers: KeyModifiers.Control }\n },\n 'rectangleTool': {\n execute: this.toolCommand.bind(this, 'rectangle'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number8, keyModifiers: KeyModifiers.Control }\n },\n 'ellipseTool': {\n execute: this.toolCommand.bind(this, 'ellipse'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number9, keyModifiers: KeyModifiers.Control }\n },\n 'zoomIn': {\n execute: this.zoomCommand.bind(this, 'zoomIn'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Plus, keyModifiers: KeyModifiers.Control }\n },\n 'zoomOut': {\n execute: this.zoomCommand.bind(this, 'zoomOut'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Minus, keyModifiers: KeyModifiers.Control }\n },\n 'shiftUp': {\n execute: this.shiftCommand.bind(this, 'Up'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Up, keyModifiers: KeyModifiers.Shift }\n },\n 'shiftDown': {\n execute: this.shiftCommand.bind(this, 'Down'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Down, keyModifiers: KeyModifiers.Shift }\n },\n 'shiftLeft': {\n execute: this.shiftCommand.bind(this, 'Left'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Left, keyModifiers: KeyModifiers.Shift }\n },\n 'shiftRight': {\n execute: this.shiftCommand.bind(this, 'Right'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Right, keyModifiers: KeyModifiers.Shift }\n },\n 'alignTextCenter': {\n execute: this.alignCommand.bind(this, 'center'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.C, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextLeft': {\n execute: this.alignCommand.bind(this, 'right'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.L, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextRight': {\n execute: this.alignCommand.bind(this, 'left'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.R, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextTop': {\n execute: this.alignCommand.bind(this, 'top'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.E, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextCenterVertical': {\n execute: this.alignCommand.bind(this, 'centerVertical'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.M, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextBottom': {\n execute: this.alignCommand.bind(this, 'bottom'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.V, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignJustify': {\n execute: this.alignCommand.bind(this, 'justify'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.J, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'sendToBack': {\n execute: this.orderCommand.bind(this, 'sendToBack'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.B, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'bringToFront': {\n execute: this.orderCommand.bind(this, 'bringToFront'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.F, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'sendBackward': {\n execute: this.orderCommand.bind(this, 'sendBackward'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.BracketLeft, keyModifiers: KeyModifiers.Control }\n },\n 'bringForward': {\n execute: this.orderCommand.bind(this, 'bringForward'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.BracketRight, keyModifiers: KeyModifiers.Control }\n }\n };\n this.initCommandManager(newCommands, commands);\n };\n Diagram.prototype.overrideCommands = function (newCommand, commands) {\n var command;\n for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) {\n var key = _a[_i];\n command = commands[\"\" + key];\n if (newCommand.gesture.key === command.gesture.key && newCommand.gesture.keyModifiers === command.gesture.keyModifiers) {\n delete commands[\"\" + key];\n break;\n }\n }\n };\n Diagram.prototype.initCommandManager = function (newCommands, commands) {\n var i = 0;\n if (newCommands) {\n for (i = 0; i < newCommands.length; i++) {\n if (commands[newCommands[parseInt(i.toString(), 10)].name] && newCommands[parseInt(i.toString(), 10)]) {\n if (newCommands[parseInt(i.toString(), 10)].canExecute) {\n commands[newCommands[parseInt(i.toString(), 10)].name].canExecute\n = newCommands[parseInt(i.toString(), 10)].canExecute;\n }\n if (newCommands[parseInt(i.toString(), 10)].execute) {\n commands[newCommands[parseInt(i.toString(), 10)].name].execute\n = newCommands[parseInt(i.toString(), 10)].execute;\n }\n if (newCommands[parseInt(i.toString(), 10)].gesture.key\n || newCommands[parseInt(i.toString(), 10)].gesture.keyModifiers) {\n commands[newCommands[parseInt(i.toString(), 10)].name].gesture\n = newCommands[parseInt(i.toString(), 10)].gesture;\n }\n if (newCommands[parseInt(i.toString(), 10)].parameter !== '') {\n commands[newCommands[parseInt(i.toString(), 10)].name].parameter\n = newCommands[parseInt(i.toString(), 10)].parameter;\n }\n }\n else {\n this.overrideCommands(newCommands[parseInt(i.toString(), 10)], commands);\n commands[newCommands[parseInt(i.toString(), 10)].name] = {\n execute: newCommands[parseInt(i.toString(), 10)].execute,\n canExecute: newCommands[parseInt(i.toString(), 10)].canExecute,\n gesture: newCommands[parseInt(i.toString(), 10)].gesture,\n parameter: newCommands[parseInt(i.toString(), 10)].parameter\n };\n }\n }\n }\n this.commands = commands;\n };\n /**\n * updateNodeEdges method \\\n *\n * @returns { void } updateNodeEdges method .\\\n * @param {Node} node - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateNodeEdges = function (node) {\n for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n if (this.nameTable[\"\" + edge]) {\n this.nameTable[\"\" + edge].targetID = '';\n }\n }\n for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) {\n var edge = _c[_b];\n if (this.nameTable[\"\" + edge]) {\n this.nameTable[\"\" + edge].sourceID = '';\n }\n }\n node.inEdges = [];\n node.outEdges = [];\n };\n /**\n * updateIconVisibility method \\\n *\n * @returns { void } updateIconVisibility method .\\\n * @param {Node} node - provide the source value.\n * @param {boolean} visibility - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateIconVisibility = function (node, visibility) {\n for (var i = 0; i < node.wrapper.children.length; i++) {\n var child = node.wrapper.children[parseInt(i.toString(), 10)];\n if (child.id) {\n var id = child.id.split(node.id)[1];\n if (id && id.match('^_icon')) {\n child.visible = visibility;\n this.updateDiagramContainerVisibility(child, visibility);\n }\n }\n }\n };\n /**\n * updateEdges method \\\n *\n * @returns { void } updateEdges method .\\\n * @param {Connector} obj - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateEdges = function (obj) {\n if (obj.sourceID !== undefined && obj.sourceID !== '') {\n var object = this.nameTable[obj.sourceID];\n if (object && object.outEdges && object.outEdges.length === 0) {\n object.outEdges = [];\n }\n if (object && object.outEdges && object.outEdges.indexOf(obj.id) === -1) {\n object.outEdges.push(obj.id);\n }\n this.updatePortEdges(object, obj, false);\n }\n if (obj.targetID !== undefined && obj.targetID !== '') {\n var node = this.nameTable[obj.targetID];\n if (node && node.inEdges && node.inEdges.length === 0) {\n node.inEdges = [];\n }\n if (node && node.inEdges && node.inEdges.indexOf(obj.id) === -1) {\n node.inEdges.push(obj.id);\n }\n this.updatePortEdges(node, obj, true);\n if (node && node.visible && node.outEdges) {\n var value = node.outEdges.length === 0 ? false : true;\n this.updateIconVisibility(node, value);\n }\n }\n };\n /**\n * updatePortEdges method \\\n *\n * @returns { void } updatePortEdges method .\\\n * @param {NodeModel} node - provide the source value.\n * @param {ConnectorModel} obj - provide the target value.\n * @param {boolean} isInEdges - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.updatePortEdges = function (node, obj, isInEdges) {\n if (node) {\n for (var i = 0; i < node.ports.length; i++) {\n var port = node.ports[parseInt(i.toString(), 10)];\n var portId = (isInEdges) ? obj.targetPortID : obj.sourcePortID;\n if (port.id === portId) {\n var portEdges = (isInEdges) ? port.inEdges : port.outEdges;\n if (portEdges.indexOf(obj.id) === -1) {\n portEdges.push(obj.id);\n }\n }\n }\n }\n };\n /**\n * refreshDiagram method \\\n *\n * @returns { void } refreshDiagram method .\\\n *\n * @private\n */\n Diagram.prototype.refreshDiagram = function () {\n this.initLayerObjects();\n this.doLayout();\n this.updateBridging();\n this.scroller.setSize();\n this.addBlazorDiagramObjects();\n //Removed isBlazor code\n this.updateFitToPage();\n };\n Diagram.prototype.updateCanupdateStyle = function (element, value) {\n for (var j = 0; j < element.length; j++) {\n if (element[parseInt(j.toString(), 10)].children) {\n this.updateCanupdateStyle(element[parseInt(j.toString(), 10)].children, value);\n }\n element[parseInt(j.toString(), 10)].canApplyStyle = value;\n }\n };\n Diagram.prototype.getZindexPosition = function (obj, viewId) {\n var objects = [];\n var index = undefined;\n objects = objects.concat(this.nodes);\n objects = objects.concat(this.connectors);\n var type;\n if (obj.zIndex !== Number.MIN_VALUE) {\n for (var i = 0; i < objects.length; i++) {\n if (objects[parseInt(i.toString(), 10)].zIndex > obj.zIndex) {\n if (obj.shape.type === 'HTML' || obj.shape.type === 'Native') {\n type = obj.shape.type === 'HTML' ? 'html' : 'native';\n }\n index = getDomIndex(viewId, objects[parseInt(i.toString(), 10)].id, type);\n break;\n }\n }\n }\n return index;\n };\n /**\n *updateDiagramObject method \\\n *\n * @returns { void } updateDiagramObject method .\\\n * @param { (NodeModel | ConnectorModel) } obj - provide the obj value.\n * @param { boolean } canIgnoreIndex - provide the canIgnoreIndex value.\n * @param { boolean } isUpdateObject - provide the isUpdateObject value.\n *\n * @private\n */\n Diagram.prototype.updateDiagramObject = function (obj, canIgnoreIndex, isUpdateObject) {\n var view;\n var domTable = 'domTable';\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n if (this.diagramActions) {\n if (view.mode === 'SVG') {\n var hasLayers = this.layers.length > 1;\n var layer = void 0;\n if (hasLayers) {\n layer = this.commandHandler.getObjectLayer(obj.id);\n }\n if ((layer === undefined || (layer && layer.visible)) || isUpdateObject) {\n var htmlLayer = getHTMLLayer(this.element.id);\n if (!window[\"\" + domTable][view.element.id + '_diagramLayer']) {\n window[\"\" + domTable][view.element.id + '_diagramLayer'] =\n document.getElementById(view.element.id + '_diagramLayer');\n }\n var diagramElementsLayer = window[\"\" + domTable][view.element.id + '_diagramLayer'];\n if (this.diagramActions & DiagramAction.Interactions) {\n this.updateCanupdateStyle(obj.wrapper.children, true);\n }\n var centerPoint = this.getMidPoint(obj);\n this.diagramRenderer.updateNode(obj.wrapper, diagramElementsLayer, htmlLayer, undefined, canIgnoreIndex ? undefined : this.getZindexPosition(obj, view.element.id), centerPoint, this.portCenterPoint);\n this.updateCanupdateStyle(obj.wrapper.children, true);\n }\n }\n }\n }\n };\n //Method used to apply margin for Bezier Curve points.\n Diagram.prototype.applyMarginBezier = function (obj, centerPoint) {\n centerPoint.cx = centerPoint.cx + obj.margin.left;\n centerPoint.cx = centerPoint.cx - obj.margin.right;\n centerPoint.cy = centerPoint.cy + obj.margin.top;\n centerPoint.cy = centerPoint.cy - obj.margin.bottom;\n };\n //Method used to get mid point of Bezier Curve\n Diagram.prototype.getMidPoint = function (obj) {\n var finalPoint;\n if (obj instanceof Connector && obj.type === 'Bezier') {\n finalPoint = [];\n var totalPoints = this.getBezierPoints(obj);\n var totalLength = Point.getLengthFromListOfPoints(totalPoints);\n // Bug 905077: Fixed improper positioning of multiple annotations for Bezier connectors.\n // Iterated through annotations and ports to correctly determine their positions.\n for (var i = 0; i < obj.annotations.length; i++) {\n var centerPoint = obj.annotations[parseInt(i.toString(), 10)].offset;\n var absoluteLength = centerPoint * totalLength;\n var position = this.commandHandler.getPointAtLength(absoluteLength, totalPoints, 0);\n var annotationPosition = { cx: position.x, cy: position.y };\n // EJ2-64114 -Horizontal and Vertical alignment not applied properly for the bezier connector annotation\n for (var j = 0; j < obj.wrapper.children.length; j++) {\n if (obj.wrapper && obj.wrapper.children[parseInt(j.toString(), 10)] instanceof TextElement) {\n if (obj.wrapper.children[parseInt(j.toString(), 10)].id === obj.id + '_' + obj.annotations[parseInt(i.toString(), 10)].id) {\n this.applyMarginBezier(obj.wrapper.children[parseInt(j.toString(), 10)], annotationPosition);\n finalPoint[obj.id + '_' + obj.annotations[parseInt(i.toString(), 10)].id] =\n this.applyAlignment(obj.wrapper.children[parseInt(j.toString(), 10)], annotationPosition, obj.annotations[parseInt(i.toString(), 10)].displacement);\n }\n }\n }\n }\n // Bug 835525: Connector Port feature. Below code is used to get the port position for bezier connector.\n for (var i = 0; i < obj.ports.length; i++) {\n var portOffset = obj.ports[parseInt(i.toString(), 10)].offset;\n var length_1 = portOffset * totalLength;\n var portPosition = this.commandHandler.getPointAtLength(length_1, totalPoints, 0);\n var portPoint = { cx: portPosition.x, cy: portPosition.y };\n for (var j = 0; j < obj.wrapper.children.length; j++) {\n if (obj.wrapper && obj.wrapper.children[parseInt(j.toString(), 10)] instanceof PathElement &&\n obj.wrapper.children[parseInt(j.toString(), 10)].isPathPort) {\n if (obj.wrapper.children[parseInt(j.toString(), 10)].id === obj.id + '_' + obj.ports[parseInt(i.toString(), 10)].id) {\n this.applyMarginBezier(obj.wrapper.children[parseInt(j.toString(), 10)], portPoint);\n this.portCenterPoint[obj.id + '_' + obj.ports[parseInt(i.toString(), 10)].id] =\n this.applyAlignment(obj.wrapper.children[parseInt(j.toString(), 10)], portPoint, obj.ports[parseInt(i.toString(), 10)].displacement);\n }\n }\n }\n }\n }\n return finalPoint;\n };\n /**\n * Apply alignment to bezier port\n * @returns {PointModel} return the port alignment points\n * @param {PathElement | TextElement} child - provide the obj value.\n * @param {any} finalPoint - provide final point value.\n * @param {PointModel} displacement - provide displacement value.\n */\n Diagram.prototype.applyAlignment = function (child, finalPoint, displacement) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n finalPoint.cx = child.inversedAlignment ? finalPoint.cx : (finalPoint.cx - child.desiredSize.width);\n finalPoint.cx += displacement.x;\n break;\n case 'Stretch':\n case 'Center':\n finalPoint.cx -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n finalPoint.cx = child.inversedAlignment ? (finalPoint.cx - child.desiredSize.width) : finalPoint.cx;\n finalPoint.cx -= displacement.x;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n finalPoint.cy = child.inversedAlignment ? finalPoint.cy : (finalPoint.cy - child.desiredSize.height);\n finalPoint.cy += displacement.y;\n break;\n case 'Stretch':\n case 'Center':\n finalPoint.cy -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n finalPoint.cy = child.inversedAlignment ? (finalPoint.cy - child.desiredSize.height) : finalPoint.cy;\n finalPoint.cy -= displacement.y;\n break;\n }\n return finalPoint;\n };\n //(EJ2-62683) Method used to get total points in bezier connector\n Diagram.prototype.getBezierPoints = function (obj) {\n var points = [];\n var i;\n var source = { x: obj.sourcePoint.x, y: obj.sourcePoint.y };\n points.push(source);\n for (i = 0; i < obj.segments.length; i++) {\n var total = obj.segments[parseInt(i.toString(), 10)].getPoints(obj.segments[parseInt(i.toString(), 10)], source);\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line prefer-spread\n points.push.apply(points, total);\n source = points[points.length - 1];\n }\n return points;\n };\n /**\n *updateGridContainer method \\\n *\n * @returns { void } updateGridContainer method .\\\n * @param { GridPanel } grid - provide the objectArray value.\n *\n * @private\n */\n Diagram.prototype.updateGridContainer = function (grid) {\n var view;\n var htmlLayer = getHTMLLayer(this.element.id);\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n if (view.mode === 'SVG' && this.diagramActions) {\n var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer');\n this.diagramRenderer.updateNode(grid, diagramElementsLayer, htmlLayer, undefined);\n }\n else {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n };\n /**\n *Retrieves the node or connector with the given id. \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } Retrieves the node or connector with the given id.\\\n * @param { string[] } objectArray - The id of the node or connector to be retrieved.\n *\n * @private\n */\n Diagram.prototype.getObjectsOfLayer = function (objectArray) {\n var nodeArray = [];\n for (var _i = 0, objectArray_1 = objectArray; _i < objectArray_1.length; _i++) {\n var obj = objectArray_1[_i];\n if (this.nameTable[\"\" + obj]) {\n nodeArray.push(this.nameTable[\"\" + obj]);\n }\n }\n return nodeArray;\n };\n /**\n *refreshDiagramLayer method \\\n *\n * @returns { void } refreshDiagramLayer method .\\\n *\n * @private\n */\n Diagram.prototype.refreshDiagramLayer = function () {\n var view;\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n switch (view.mode) {\n case 'SVG':\n this.refreshSvgDiagramLayer(view);\n break;\n case 'Canvas':\n this.refreshCanvasLayers(view);\n break;\n }\n }\n };\n /**\n *refreshCanvasLayers method \\\n *\n * @returns { void } refreshCanvasLayers method .\\\n * @param { View } view - provide the view value.\n *\n * @private\n */\n Diagram.prototype.refreshCanvasLayers = function (view) {\n if (!view) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view_1 = this.views[\"\" + temp];\n this.refreshCanvasDiagramLayer(view_1);\n }\n }\n else {\n this.refreshCanvasDiagramLayer(view);\n }\n };\n Diagram.prototype.renderBasicElement = function (view) {\n var htmlLayer = getHTMLLayer(view.element.id);\n for (var i = 0; i < this.basicElements.length; i++) {\n var element = this.basicElements[parseInt(i.toString(), 10)];\n if (element instanceof Container) {\n element.prevRotateAngle = 0;\n }\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize);\n view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer);\n }\n };\n Diagram.prototype.refreshElements = function (view) {\n var isOverView = false;\n if (!this.isDestroyed) {\n this.clearCanvas(view);\n if (view instanceof Diagram) {\n view.diagramLayer.getContext('2d').setTransform(view.scroller.currentZoom, 0, 0, view.scroller.currentZoom, 0, 0);\n view.diagramLayer.getContext('2d').scale(1.5, 1.5);\n }\n else {\n isOverView = true;\n var element = document.getElementById(view.element.id + '_nativeLayer');\n if (element.children.length > 0) {\n view.updateView(view);\n }\n }\n var htmlLayer = getHTMLLayer(view.element.id);\n //const bounds: Rect = this.spatialSearch.getPageBounds();\n this.renderDiagramElements(view.diagramLayer, view.diagramRenderer, htmlLayer, undefined, undefined, isOverView);\n for (var i = 0; i < this.basicElements.length; i++) {\n var element = this.basicElements[parseInt(i.toString(), 10)];\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize);\n view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer);\n }\n if (view instanceof Diagram) {\n view.diagramLayer.style.transform = 'scale(' + (2 / 3) + ')';\n view.diagramLayer.style.transformOrigin = '0 0';\n }\n this.renderTimer = null;\n }\n };\n /**\n *refreshCanvasDiagramLayer method \\\n *\n * @returns { void } refreshCanvasDiagramLayer method .\\\n * @param { View } view - provide the view value.\n *\n * @private\n */\n Diagram.prototype.refreshCanvasDiagramLayer = function (view) {\n var _this = this;\n if (view.mode !== 'SVG' && !this.isDestroyed) {\n if (this.basicElements.length > 0) {\n this.renderBasicElement(view);\n }\n if ((!this.diagramActions || (this.diagramActions & DiagramAction.Render) === 0)\n || (DiagramAction.ToolAction & this.diagramActions) || canVitualize(this) || (this.scroller.currentZoom !== 1)) {\n this.refreshElements(view);\n }\n else if (!this.renderTimer) {\n this.renderTimer = setTimeout(function () {\n _this.refreshElements(view);\n }, 40);\n }\n }\n };\n /**\n *updatePortVisibility method \\\n *\n * @returns { void } updatePortVisibility method .\\\n * @param { Node } obj - provide the node value.\n * @param { PortVisibility } portVisibility - provide the portVisibility value.\n * @param { Boolean } inverse - provide the inverse value.\n *\n * @private\n */\n Diagram.prototype.updatePortVisibility = function (obj, portVisibility, inverse) {\n var portElement;\n var drawingObject = !(this.drawingObject && this.drawingObject.shape) ? true : false;\n if ((obj instanceof Node || obj instanceof Connector) && drawingObject && canMove(obj)) {\n var ports = obj.ports;\n var changed = false;\n for (var i = 0; i < ports.length; i++) {\n portElement = this.getWrapper(obj.wrapper, ports[parseInt(i.toString(), 10)].id);\n if ((portVisibility & PortVisibility.Hover || portVisibility & PortVisibility.Connect)) {\n if (checkPortRestriction(ports[parseInt(i.toString(), 10)], portVisibility)) {\n portElement.visible = !inverse;\n changed = true;\n }\n }\n }\n if (changed) {\n this.updateDiagramObject(obj);\n }\n //EJ2-59672 - Added the below code to render the ports while hovering over the node\n if (this.mode === 'Canvas') {\n this.refreshCanvasLayers();\n }\n }\n };\n /**\n *refreshSvgDiagramLayer method \\\n *\n * @returns { void } refreshSvgDiagramLayer method .\\\n * @param { View } view - provide the object value.\n *\n * @private\n */\n Diagram.prototype.refreshSvgDiagramLayer = function (view) {\n var element;\n var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(view.element.id);\n if (!canVitualize(this)) {\n for (var i = 0; i < this.basicElements.length; i++) {\n element = this.basicElements[parseInt(i.toString(), 10)];\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize, (!(this.diagramActions & DiagramAction.Render) ? true : false));\n this.diagramRenderer.renderElement(element, diagramElementsLayer, htmlLayer);\n }\n this.renderDiagramElements(diagramElementsLayer, this.diagramRenderer, htmlLayer);\n }\n else {\n this.scroller.virtualizeElements();\n }\n };\n /**\n *removeVirtualObjects method \\\n *\n * @returns { void } removeVirtualObjects method .\\\n * @param { Object } clearIntervalVal - provide the object value.\n *\n * @private\n */\n Diagram.prototype.removeVirtualObjects = function (clearIntervalVal) {\n if (this.deleteVirtualObject) {\n for (var i = 0; i < this.scroller.removeCollection.length; i++) {\n var obj = this.nameTable[this.scroller.removeCollection[parseInt(i.toString(), 10)]];\n //EJ2-840437 - Exception occurs When Removing connector with Virtualization Enabled\n if (obj !== undefined) {\n this.removeElements(obj);\n }\n }\n this.deleteVirtualObject = false;\n }\n clearInterval(clearIntervalVal);\n };\n /**\n *updateTextElementValue method \\\n *\n * @returns { void } updateTextElementValue method .\\\n * @param { NodeModel | ConnectorModel } object - provide the object value.\n *\n * @private\n */\n Diagram.prototype.updateTextElementValue = function (object) {\n for (var j = 0; j < object.wrapper.children.length; j++) {\n var element = object.wrapper.children[parseInt(j.toString(), 10)];\n if (element instanceof TextElement) {\n element.canMeasure = true;\n //866384-Annotation Alignment is wrong when virtualisation constraints enabled\n var viewPortHeight = this.scroller.viewPortHeight;\n var viewPortWidth = this.scroller.viewPortWidth;\n var measureText = false;\n if (object.offsetX < viewPortWidth && object.offsetY < viewPortHeight) {\n measureText = true;\n }\n if (measureText && canVitualize(this) && element.actualSize.height === undefined\n && element.actualSize.width === undefined) {\n object.wrapper.measure(new Size(object.width, object.height), object.id, this.onLoadImageSize.bind(this));\n object.wrapper.arrange(object.wrapper.desiredSize);\n }\n element.measure(new Size(object.width, object.height));\n element.arrange(element.desiredSize);\n }\n }\n };\n /**\n *updateVirtualObjects method \\\n *\n * @returns { void } updateVirtualObjects method .\\\n * @param { string[] } collection - provide the collection value.\n * @param { boolean } remove - provide the remove value.\n * @param { string[] } tCollection - provide the htmlLayer value.\n *\n * @private\n */\n Diagram.prototype.updateVirtualObjects = function (collection, remove, tCollection) {\n var diagramElementsLayer = document.getElementById(this.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(this.element.id);\n if (this.mode === 'SVG') {\n for (var i = 0; i < collection.length; i++) {\n var index = this.scroller.removeCollection.indexOf(collection[parseInt(i.toString(), 10)]);\n if (index >= 0) {\n this.scroller.removeCollection.splice(index, 1);\n }\n var object = this.nameTable[collection[parseInt(i.toString(), 10)]];\n this.updateTextElementValue(object);\n this.diagramRenderer.renderElement(object.wrapper, diagramElementsLayer, htmlLayer, undefined, undefined, undefined, undefined, object.zIndex);\n }\n for (var k = 0; k < tCollection.length; k++) {\n this.scroller.removeCollection.push(tCollection[parseInt(k.toString(), 10)]);\n }\n if (this.scroller.currentZoom !== 1) {\n this.eventHandler.updateVirtualization();\n }\n }\n else if (this.diagramActions) {\n this.refreshDiagramLayer();\n }\n };\n /**\n *renderDiagramElements method \\\n *\n * @returns { void } renderDiagramElements method .\\\n * @param { HTMLCanvasElement | SVGElement} canvas - provide the canvas value.\n * @param { DiagramRenderer } renderer - provide the renderer value.\n * @param { HTMLElement } htmlLayer - provide the htmlLayer value.\n * @param {boolean } transform - provide the transform value.\n * @param {boolean } fromExport - provide the fromExport value.\n * @param { boolean } isOverView - provide the isOverView value.\n *\n * @private\n */\n Diagram.prototype.renderDiagramElements = function (canvas, renderer, htmlLayer, transform, fromExport, isOverView) {\n if (transform === void 0) { transform = true; }\n var pageBounds = this.scroller.getPageBounds();\n pageBounds.x *= this.scroller.currentZoom;\n pageBounds.y *= this.scroller.currentZoom;\n pageBounds.width *= this.scroller.currentZoom;\n pageBounds.height *= this.scroller.currentZoom;\n var difX = -this.scroller.horizontalOffset - pageBounds.x;\n var difY = -this.scroller.verticalOffset - pageBounds.y;\n var getCenterPoint;\n for (var _i = 0, _a = Object.keys(this.layerZIndexTable); _i < _a.length; _i++) {\n var layerId = _a[_i];\n var layer = this.commandHandler.getLayer(this.layerZIndexTable[\"\" + layerId]);\n var left = void 0;\n var top_1 = void 0;\n if (this.mode === 'Canvas' && canVitualize(this) && !this.diagramActions) {\n this.scroller.virtualizeElements();\n }\n var id = (this.mode === 'Canvas' && canVitualize(this) &&\n this.scroller.oldCollectionObjects.length > 0) ?\n this.scroller.oldCollectionObjects : undefined;\n // Sort layer objects to arrange nodes with negative zIndex values at the beginning of the array.\n // Due to the new implementation with order commands, the zIndex of a node may become negative.\n // Therefore, we need to sort the zIndex values, with the least negative values coming first, followed by positive values.\n var layerObjects = Object.keys(id || layer.zIndexTable);\n layerObjects.sort(function (a, b) { return parseInt(\"\" + a, 10) - parseInt(\"\" + b, 10); });\n for (var _b = 0, layerObjects_1 = layerObjects; _b < layerObjects_1.length; _b++) {\n var node = layerObjects_1[_b];\n var renderNode = id ? this.nameTable[id[\"\" + node]] : this.nameTable[layer.zIndexTable[\"\" + node]];\n if (renderNode && !(renderNode.parentId) && layer.visible &&\n (!(renderNode.processId) || this.refreshing)) {\n //EJ2-68738 - Overview content not updated properly on zoom out the diagram\n var transformValue = void 0;\n //828826 - In canvas mode diagram transform values are not updated properly while Zoom out action\n if (this.scroller.currentZoom < 1 && this.mode === 'SVG') {\n transformValue = {\n tx: (-pageBounds.x) / this.scroller.currentZoom,\n ty: (-pageBounds.y) / this.scroller.currentZoom,\n scale: this.scroller.transform.scale\n };\n }\n else {\n transformValue = {\n tx: this.scroller.transform.tx,\n ty: this.scroller.transform.ty,\n scale: this.scroller.transform.scale\n };\n }\n // Bug 880945: Overview is not updated properly with 4k monitor.\n //To render the overview elements based on the pageBounds.\n if (isOverView) {\n transformValue = {\n tx: (-pageBounds.x) / this.scroller.currentZoom,\n ty: (-pageBounds.y) / this.scroller.currentZoom,\n scale: this.scroller.transform.scale\n };\n }\n if (canVitualize(this)) {\n if (this.scroller.currentZoom < 1) {\n if (pageBounds.x < 0 || this.scroller.horizontalOffset < 0) {\n var verticalValue = this.scroller.verticalOffset < 0 ? this.scroller.verticalOffset : 0;\n left = (difX > 0 ? difX : 0) + 'px';\n top_1 = ((this.realActions & RealAction.vScrollbarMoved) ? 0 : -verticalValue) + 'px';\n }\n else {\n left = 0 + 'px';\n top_1 = 0 + 'px';\n }\n if (this.realActions & RealAction.hScrollbarMoved) {\n this.realActions = this.realActions & ~RealAction.hScrollbarMoved;\n }\n if (this.realActions & RealAction.vScrollbarMoved) {\n this.realActions = this.realActions & ~RealAction.vScrollbarMoved;\n }\n }\n else {\n left = (pageBounds.x < 0 ? difX : -this.scroller.horizontalOffset) + 'px';\n top_1 = (pageBounds.y < 0 ? difY : -this.scroller.verticalOffset) + 'px';\n }\n this.diagramLayer.style.left = left;\n this.diagramLayer.style.top = top_1;\n //EJ2-69578 - Overview is not updated properly when we enable virtualization.\n transformValue.tx = (-pageBounds.x) / transformValue.scale;\n transformValue.ty = (-pageBounds.y) / transformValue.scale;\n }\n var status_1 = true;\n if (fromExport) {\n status_1 = false;\n }\n this.updateTextElementValue(renderNode);\n if (this.refreshing) {\n if (renderNode.shape.activity && renderNode.shape.activity.subProcess\n && renderNode.shape.activity.subProcess.processes) {\n for (var i = 0; i < renderNode.shape.activity.subProcess.processes.length; i++) {\n var process = renderNode.shape.activity.subProcess.processes[parseInt(i.toString(), 10)];\n renderNode.wrapper.children.push(this.nameTable[\"\" + process].wrapper);\n }\n renderNode.wrapper.measure(new Size(renderNode.wrapper.bounds.width, renderNode.wrapper.bounds.height));\n renderNode.wrapper.arrange(renderNode.wrapper.desiredSize);\n }\n }\n if (renderNode instanceof Connector && renderNode.type === 'Bezier') {\n getCenterPoint = this.getMidPoint(renderNode);\n // (EJ2-58802) - Added the below code to add the transform x and y values to center point value in canvas mode\n if (this.mode === 'Canvas' && transform) {\n getCenterPoint.cx += transformValue.tx;\n getCenterPoint.cy += transformValue.ty;\n }\n }\n else {\n getCenterPoint = null;\n }\n renderer.renderElement(renderNode.wrapper, canvas, htmlLayer, (!renderer.isSvgMode && transform) ? transformValue : undefined, undefined, undefined, status_1 && (!this.diagramActions || isOverView), undefined, undefined, getCenterPoint, this.portCenterPoint);\n }\n }\n }\n };\n /**\n *updateBridging method \\\n *\n * @returns { void } updateBridging method .\\\n * @param {string} isLoad - provide the isLoad value.\n *\n * @private\n */\n Diagram.prototype.updateBridging = function (isLoad) {\n if (this.bridgingModule) {\n for (var i = 0; i < this.connectors.length; i++) {\n var connector = this.connectors[parseInt(i.toString(), 10)];\n this.bridgingModule.updateBridging(connector, this);\n var canvas = this.connectors[parseInt(i.toString(), 10)].wrapper;\n if (canvas && canvas.children && canvas.children.length > 0) {\n var pathSegment = canvas.children[0];\n var data = pathSegment.data;\n if (connector.isBezierEditing && this.selectedItems.connectors[0].id === connector.id || connector.type !== 'Bezier') {\n connector.getSegmentElement(connector, pathSegment, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ?\n this.layout.orientation : undefined, undefined, false);\n }\n if (pathSegment.data !== data) {\n canvas.measure(new Size());\n canvas.arrange(canvas.desiredSize);\n if (this.mode === 'SVG' && !isLoad) {\n this.updateDiagramObject(connector);\n }\n }\n }\n }\n }\n else if (this.constraints & DiagramConstraints.Bridging) {\n console.warn('[WARNING] :: Module \"ConnectorBridging\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n *setCursor method \\\n *\n * @returns { void } setCursor method .\\\n * @param {string} cursor - provide the width value.\n *\n * @private\n */\n Diagram.prototype.setCursor = function (cursor) {\n this.diagramRenderer.setCursor(this.diagramCanvas, cursor);\n };\n /**\n *clearCanvas method \\\n *\n * @returns { void } clearCanvas method .\\\n * @param {View} view - provide the width value.\n *\n * @private\n */\n Diagram.prototype.clearCanvas = function (view) {\n //let width: number;\n //let height: number;\n var width = view.contentWidth || view.diagramLayer.width / this.scroller.currentZoom;\n var height = view.contentHeight || view.diagramLayer.height / this.scroller.currentZoom;\n if (view.mode !== 'SVG') {\n var ctx = CanvasRenderer.getContext(view.diagramLayer);\n ctx.clearRect(0, 0, width, height);\n }\n };\n /**\n *updateScrollOffset method \\\n *\n * @returns { void } updateScrollOffset method .\\\n *\n * @private\n */\n Diagram.prototype.updateScrollOffset = function () {\n this.scroller.setScrollOffset(this.diagramCanvas.scrollLeft, this.diagramCanvas.scrollTop);\n updateRuler(this);\n if (canVitualize(this)) {\n this.scroller.virtualizeElements();\n }\n };\n /**\n *setOffset method \\\n *\n * @returns { void } setOffset method .\\\n * @param {number} offsetX - provide the width value.\n * @param {number} offsetY - provide the height value.\n *\n * @private\n */\n Diagram.prototype.setOffset = function (offsetX, offsetY) {\n var domTable = 'domTable';\n if (!window[\"\" + domTable][this.element.id + 'content']) {\n window[\"\" + domTable][this.element.id + 'content'] = document.getElementById(this.element.id + 'content');\n }\n var container = window[\"\" + domTable][this.element.id + 'content'];\n if (container) {\n container.scrollLeft = offsetX;\n container.scrollTop = offsetY;\n }\n };\n /**\n *setSize method \\\n *\n * @returns { void } setSize method .\\\n * @param {number} width - provide the width value.\n * @param {number} height - provide the height value.\n *\n * @private\n */\n Diagram.prototype.setSize = function (width, height) {\n if (this.diagramLayer && !this.preventDiagramUpdate) {\n var position = getRulerSize(this);\n width -= position.width;\n height -= position.height;\n var bounds = this.spatialSearch.getPageBounds();\n bounds.x *= this.scroller.currentZoom;\n bounds.y *= this.scroller.currentZoom;\n bounds.width *= this.scroller.currentZoom;\n bounds.height *= this.scroller.currentZoom;\n var factor = this.mode === 'SVG' ? 1 : 1.5;\n var diagramLayer = this.mode === 'SVG' ?\n getDiagramLayerSvg(this.element.id) : this.diagramLayer;\n var w = (this.mode === 'Canvas' &&\n (this.constraints & DiagramConstraints.Virtualization)) ? this.scroller.viewPortWidth : width;\n var h = (this.mode === 'Canvas' &&\n (this.constraints & DiagramConstraints.Virtualization)) ? this.scroller.viewPortHeight : height;\n diagramLayer.setAttribute('width', (factor * w).toString());\n diagramLayer.setAttribute('height', (factor * h).toString());\n var hiddenUserHandleTemplate = document.getElementById(this.element.id + '_diagramUserHandleLayer');\n if (hiddenUserHandleTemplate) {\n hiddenUserHandleTemplate.style.width = width + 'px';\n hiddenUserHandleTemplate.style.height = height + 'px';\n }\n var attr = { 'width': width.toString(), 'height': height.toString() };\n this.diagramLayerDiv.style.width = width + 'px';\n this.diagramLayerDiv.style.height = height + 'px';\n setAttributeSvg(getNativeLayerSvg(this.element.id), attr);\n setAttributeSvg(getPortLayerSvg(this.element.id), attr);\n var adornerSVG = getAdornerLayerSvg(this.element.id);\n setAttributeSvg(adornerSVG, attr);\n adornerSVG.parentNode.style.width = width + 'px';\n adornerSVG.parentNode.style.height = height + 'px';\n var gridLayer = getGridLayerSvg(this.element.id);\n setAttributeSvg(gridLayer, attr);\n this.diagramRenderer.updateGrid(this.snapSettings, gridLayer, this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n setAttributeSvg(getBackgroundLayerSvg(this.element.id), attr);\n this.htmlLayer.style.width = width + 'px';\n this.htmlLayer.style.height = height + 'px';\n if (this.mode !== 'SVG' && !(canVitualize(this))) {\n this.refreshDiagramLayer();\n }\n if (this.mode === 'SVG' && canVitualize(this)) {\n this.scroller.virtualizeElements();\n }\n }\n };\n /**\n *transformLayers method \\\n *\n * @returns { void } Defines how to remove the Page breaks .\\\n *\n * @private\n */\n Diagram.prototype.transformLayers = function () {\n var bounds = this.spatialSearch.getPageBounds();\n bounds.x *= this.scroller.currentZoom;\n bounds.y *= this.scroller.currentZoom;\n bounds.width *= this.scroller.currentZoom;\n bounds.height *= this.scroller.currentZoom;\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n this.diagramRenderer.transformLayers(this.scroller.transform, this.mode === 'SVG');\n if (!(this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.updateSelector();\n }\n this.renderPageBreaks(bounds);\n };\n /**\n *Defines how to remove the Page breaks \\\n *\n * @returns { void } Defines how to remove the Page breaks .\\\n *\n * @private\n */\n Diagram.prototype.removePageBreaks = function () {\n if (this.diagramLayer) {\n var line = getBackgroundLayer(this.element.id);\n if (line && line.childNodes) {\n var length_2 = line.childNodes.length;\n for (var i = 0; i < length_2; i++) {\n line.removeChild(line.childNodes[0]);\n }\n }\n }\n };\n /**\n * Defines how the page breaks has been rendered \\\n *\n * @returns { void } Defines how the page breaks has been rendered .\\\n * @param {Rect} bounds - provide the overview value.\n *\n * @private\n */\n Diagram.prototype.renderPageBreaks = function (bounds) {\n this.removePageBreaks();\n var backgroundLayer = getBackgroundLayer(this.element.id);\n if (backgroundLayer) {\n var i = 0;\n bounds = this.scroller.getPageBounds(true);\n var x = (this.scroller.transform.tx + bounds.x) * this.scroller.currentZoom;\n var y = (this.scroller.transform.ty + bounds.y) * this.scroller.currentZoom;\n var height = bounds.height * this.scroller.currentZoom;\n var width = bounds.width * this.scroller.currentZoom;\n DiagramRenderer.renderSvgBackGroundImage(this.pageSettings.background, this.element, x, y, width, height);\n var options = {\n id: backgroundLayer.id + 'rect', x: x,\n y: y,\n height: height,\n width: width, angle: 0, stroke: '', strokeWidth: 1,\n fill: this.pageSettings.background.color, opacity: 1,\n pivotX: 0, pivotY: 0, visible: true, dashArray: '0'\n };\n this.diagramRenderer.drawRect(backgroundLayer, options);\n if (this.pageSettings.showPageBreaks) {\n var collection = this.scroller.getPageBreak(bounds);\n for (i = 0; i < collection.length; i++) {\n this.diagramRenderer.drawLine(backgroundLayer, {\n class: 'e-diagram-page-break',\n fill: 'none', stroke: '#aaaaaa', strokeWidth: 1, dashArray: '10 10',\n opacity: 2, x: 0, y: 0, width: 0, height: 0, angle: 0, pivotX: 0, pivotY: 0, visible: true,\n startPoint: {\n x: (collection[parseInt(i.toString(), 10)].x1 + this.scroller.transform.tx) * this.scroller.currentZoom,\n y: (collection[parseInt(i.toString(), 10)].y1 + this.scroller.transform.ty) * this.scroller.currentZoom\n },\n endPoint: {\n x: (collection[parseInt(i.toString(), 10)].x2 + this.scroller.transform.tx) * this.scroller.currentZoom,\n y: (collection[parseInt(i.toString(), 10)].y2 + this.scroller.transform.ty) * this.scroller.currentZoom\n }, id: collection[parseInt(i.toString(), 10)].y1 === collection[parseInt(i.toString(), 10)].y2 ? 'HorizontalLines' : 'VerticalLines'\n });\n }\n }\n }\n };\n Diagram.prototype.validatePageSize = function () {\n var temp = 0;\n if (this.pageSettings.orientation === 'Portrait') {\n if (this.pageSettings.width > this.pageSettings.height) {\n temp = this.pageSettings.height;\n this.pageSettings.height = this.pageSettings.width;\n this.pageSettings.width = temp;\n }\n }\n else {\n if (this.pageSettings.height > this.pageSettings.width) {\n temp = this.pageSettings.width;\n this.pageSettings.width = this.pageSettings.height;\n this.pageSettings.height = temp;\n }\n }\n };\n /**\n * setOverview method \\\n *\n * @returns { void } setOverview method .\\\n * @param {View} overview - provide the overview value.\n * @param {string} id - provide the boolean value.\n *\n * @private\n */\n Diagram.prototype.setOverview = function (overview, id) {\n if (overview) {\n if (overview) {\n this.views.push(overview.id);\n this.views[overview.id] = overview;\n overview.renderDocument(overview);\n overview.diagramRenderer.setLayers();\n overview.updateView(overview);\n this.renderNodes(overview);\n }\n }\n else {\n for (var i = 0; i < this.views.length; i++) {\n if (this.views[parseInt(i.toString(), 10)] === id) {\n overview = (this.views[\"\" + id]);\n }\n }\n this.views[\"\" + id] = undefined;\n var index = this.views.indexOf(id);\n this.views.splice(index, 1);\n }\n };\n Diagram.prototype.renderNodes = function (overview) {\n if (overview) {\n var renderer = new DiagramRenderer(overview.id, new SvgRenderer(), false);\n var g = document.getElementById(overview.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(overview.element.id);\n this.renderDiagramElements(g, overview.diagramRenderer || renderer, htmlLayer, undefined, undefined, true);\n }\n };\n Diagram.prototype.updateThumbConstraints = function (node, selectorModel, canInitialize) {\n var state = 0;\n var length = node.length;\n for (var i = 0; i < length; i++) {\n var obj = node[parseInt(i.toString(), 10)];\n var hideRotate = false;\n var hideResize = false;\n var thumbConstraints = selectorModel.thumbsConstraints;\n if (obj instanceof Node) {\n hideRotate = (obj.shape.type === 'Bpmn' && (obj.shape.shape === 'Activity' &&\n (obj.shape.activity.subProcess.collapsed === false)));\n // hideResize = (obj.shape.type === 'Bpmn' && (obj.shape as BpmnShapeModel).shape === 'TextAnnotation');\n if (!canRotate(obj) || !(thumbConstraints & ThumbsConstraints.Rotate) || hideRotate) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.Rotate;\n }\n if (!canResize(obj, 'SouthEast') || !(thumbConstraints & ThumbsConstraints.ResizeSouthEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouthEast;\n }\n if (!canResize(obj, 'NorthWest') || !(thumbConstraints & ThumbsConstraints.ResizeNorthWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorthWest;\n }\n if (!canResize(obj, 'East') || !(thumbConstraints & ThumbsConstraints.ResizeEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeEast;\n }\n if (!canResize(obj, 'West') || !(thumbConstraints & ThumbsConstraints.ResizeWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeWest;\n }\n if (!canResize(obj, 'North') || !(thumbConstraints & ThumbsConstraints.ResizeNorth) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorth;\n }\n if (!canResize(obj, 'South') || !(thumbConstraints & ThumbsConstraints.ResizeSouth) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouth;\n }\n if (!canResize(obj, 'NorthEast') || !(thumbConstraints & ThumbsConstraints.ResizeNorthEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorthEast;\n }\n if (!canResize(obj, 'SouthWest') || !(thumbConstraints & ThumbsConstraints.ResizeSouthWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouthWest;\n }\n }\n else if (obj instanceof Connector) {\n if (!canInitialize) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.Default;\n }\n if (canDragSourceEnd(obj)) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.ConnectorSource;\n }\n else {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ConnectorSource;\n }\n if (canDragTargetEnd(obj)) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.ConnectorTarget;\n }\n else {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ConnectorTarget;\n }\n }\n else {\n if (!canInitialize) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.Default;\n }\n if (!canResize(obj)) {\n thumbConstraints = thumbConstraints & ~(ThumbsConstraints.ResizeSouthEast | ThumbsConstraints.ResizeSouthWest |\n ThumbsConstraints.ResizeSouth | ThumbsConstraints.ResizeEast | ThumbsConstraints.ResizeWest |\n ThumbsConstraints.ResizeNorth | ThumbsConstraints.ResizeNorthEast | ThumbsConstraints.ResizeNorthWest);\n }\n if (!canRotate(obj)) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.Rotate;\n }\n }\n selectorModel.thumbsConstraints = thumbConstraints;\n }\n };\n /**\n * renderSelector method \\\n *\n * @returns { void } renderSelector method .\\\n * @param {boolean} multipleSelection - provide the multipleSelection value.\n * @param {boolean} isSwimLane - provide the boolean value.\n * @param { Canvas } canvas - provide the lane or swimlane canvas\n *\n * @private\n */\n Diagram.prototype.renderSelector = function (multipleSelection, isSwimLane, canvas) {\n var isProtectedOnChangeValue = this.isProtectedOnChange;\n //Removed isBlazor code\n var size = new Size();\n var selectorModel = this.selectedItems;\n var selectorConstraints = selectorModel.constraints;\n var rendererActions = this.diagramRenderer.rendererActions;\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n this.diagramRenderer.rendererActions = this.currentSymbol ?\n this.addConstraints(rendererActions, RendererAction.DrawSelectorBorder) :\n this.removeConstraints(rendererActions, RendererAction.DrawSelectorBorder);\n this.clearSelectorLayer();\n if (this.commandHandler.hasSelection()) {\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.pivot = selectorModel.nodes[0].pivot;\n }\n selectorModel.wrapper.measure(size);\n selectorModel.wrapper.arrange(selectorModel.wrapper.desiredSize);\n selectorModel.width = selectorModel.wrapper.actualSize.width;\n selectorModel.height = selectorModel.wrapper.actualSize.height;\n selectorModel.offsetX = selectorModel.wrapper.offsetX;\n selectorModel.offsetY = selectorModel.wrapper.offsetY;\n if (selectorModel.rotateAngle !== 0) {\n for (var _i = 0, _a = selectorModel.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n }\n for (var _b = 0, _c = selectorModel.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n //update connections\n }\n }\n var bounds = this.spatialSearch.getPageBounds();\n //let selectorElement: (SVGElement | HTMLCanvasElement);\n var selectorElement = getSelectorElement(this.element.id);\n //let diagramUserHandlelayer: (SVGElement | HTMLElement);\n var diagramUserHandlelayer = getUserHandleLayer(this.element.id);\n selectorModel.thumbsConstraints = ThumbsConstraints.Default;\n if (selectorModel.annotation) {\n this.updateThumbConstraints([selectorModel.annotation], selectorModel);\n }\n else {\n this.updateThumbConstraints(selectorModel.nodes, selectorModel);\n this.updateThumbConstraints(selectorModel.connectors, selectorModel, true);\n }\n if (selectorModel.annotation) {\n this.renderSelectorForAnnotation(selectorModel, selectorElement);\n }\n else if (selectorModel.nodes.length + selectorModel.connectors.length === 1 || this.nameTable['helper']) {\n if (selectorModel.nodes[0] instanceof Node) {\n var node = selectorModel.nodes[0];\n if (checkParentAsContainer(this, node)) {\n if (!isSwimLane && (node.shape.type !== 'UmlClassifier' && !(node.parentId &&\n this.nameTable[node.parentId]\n && this.nameTable[node.parentId].shape.type === 'UmlClassifier'))) {\n selectorModel.thumbsConstraints &= ~ThumbsConstraints.Rotate;\n }\n }\n var constraints = isSwimLane ? true : ((node.constraints & NodeConstraints.HideThumbs) ? true : false);\n var swimlane = (node.shape.type === 'SwimLane' || node.isLane || node.isPhase || isSwimLane) ? true : false;\n this.diagramRenderer.renderResizeHandle(isSwimLane ? canvas : selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(node), constraints, swimlane, selectorModel.handleSize);\n }\n else if (selectorModel.connectors[0] instanceof Connector && canDrawThumbs(this.diagramRenderer.rendererActions)) {\n var connector = selectorModel.connectors[0];\n this.diagramRenderer.renderEndPointHandle(connector, selectorElement, selectorModel.thumbsConstraints, selectorModel.constraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && canDragSegmentThumb(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selectorModel.handleSize);\n }\n }\n else {\n this.diagramRenderer.renderResizeHandle(selectorModel.wrapper, selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(selectorModel), null, null, selectorModel.handleSize);\n }\n if (!(selectorModel.annotation) && !this.currentSymbol) {\n this.diagramRenderer.renderUserHandler(selectorModel, selectorElement, this.scroller.transform, diagramUserHandlelayer, this.eventHandler.currentAction, this.eventHandler.inAction);\n //Removed isBlazor code\n }\n }\n // EJ2-56919 - Add below code to render the selection rectangle for node if selected objects length is greater than one\n if (this.selectedItems.selectedObjects.length > 1) {\n this.updateSelectionRectangle();\n }\n this.isProtectedOnChange = isProtectedOnChangeValue;\n };\n Diagram.prototype.updateSelectionRectangle = function () {\n var selectorElement = getSelectorElement(this.element.id);\n var isFirst = false;\n for (var i = 0; i < this.selectedItems.selectedObjects.length; i++) {\n // EJ2-56919 - For first selected object we need to set stroke as 2, so check below condition as i is zero or not\n // For first element we passed isFirst argument(last arg) as true in both render selection line and rectangle method\n isFirst = i === 0 ? true : false;\n if (getObjectType(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)]) === Connector) {\n // EJ2-56919 - If selected object type is connector means then render selection line for connector\n this.diagramRenderer.renderSelectionLine(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper.children[0], selectorElement, this.scroller.transform, isFirst);\n }\n else {\n // EJ2-56919 - If selected object type is node means then render selection rectangle for node\n this.diagramRenderer.renderSelectionRectangle(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper, selectorElement, this.scroller.transform, isFirst);\n }\n }\n };\n /**\n * updateSelector method \\\n *\n * @returns { void } updateSelector method .\\\n *\n * @private\n */\n Diagram.prototype.updateSelector = function () {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var size = new Size();\n var selector = this.selectedItems;\n var selectorConstraints = selector.constraints;\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n if (!(this.diagramActions & DiagramAction.ToolAction) && this.selectedItems.nodes.length === 1) {\n this.selectedItems.rotateAngle = this.selectedItems.nodes[0].rotateAngle;\n this.selectedItems.wrapper.rotateAngle = this.selectedItems.nodes[0].rotateAngle;\n }\n if (this.selectedItems !== undefined) {\n this.clearSelectorLayer();\n if (selector.wrapper !== null && selector.wrapper.children && selector.wrapper.children.length) {\n var canUpdate = true;\n var canRender = true;\n if (selectionHasConnector(this, selector)) {\n var eventHandler = 'eventHandler';\n var rotate = this[\"\" + eventHandler].action;\n var isRotate = rotate.includes('Rotate');\n var isSelect = rotate.includes('None') || rotate.includes('Select') || rotate.includes('Drag');\n if (isRotate || isSelect) {\n canRender = false;\n }\n if (!isSelect) {\n canUpdate = false;\n }\n }\n if (canUpdate) {\n selector.wrapper.measure(size);\n selector.wrapper.arrange(selector.wrapper.desiredSize);\n }\n if (selector.rotateAngle !== 0 || selector.rotateAngle !== selector.wrapper.prevRotateAngle) {\n for (var _i = 0, _a = selector.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n }\n }\n selector.width = selector.wrapper.actualSize.width;\n selector.height = selector.wrapper.actualSize.height;\n selector.offsetX = selector.wrapper.offsetX;\n selector.offsetY = selector.wrapper.offsetY;\n //let selectorEle: (SVGElement | HTMLCanvasElement);\n var selectorEle = getSelectorElement(this.element.id);\n //let diagramUserHandlelayer: (SVGElement | HTMLElement);\n var diagramUserHandlelayer = getUserHandleLayer(this.element.id);\n var canHideResizers = this.eventHandler.canHideResizers();\n selector.thumbsConstraints = ThumbsConstraints.Default;\n if (selector.annotation) {\n this.updateThumbConstraints([selector.annotation], selector);\n }\n else {\n this.updateThumbConstraints(selector.nodes, selector);\n this.updateThumbConstraints(selector.connectors, selector, true);\n }\n if ((this.selectedItems.constraints & SelectorConstraints.UserHandle) && (!(selector.annotation)) && !this.currentSymbol) {\n this.diagramRenderer.renderUserHandler(selector, selectorEle, this.scroller.transform, diagramUserHandlelayer, this.eventHandler.currentAction, this.eventHandler.inAction);\n //Removed isBlazor code\n }\n if (selector.annotation) {\n this.renderSelectorForAnnotation(selector, selectorEle);\n }\n else if (selector.nodes.length + selector.connectors.length === 1) {\n if (selector.connectors[0] instanceof Connector && canDrawThumbs(this.diagramRenderer.rendererActions)) {\n var connector = selector.connectors[0];\n this.diagramRenderer.renderEndPointHandle(connector, selectorEle, selector.thumbsConstraints, selectorConstraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && canDragSegmentThumb(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selector.handleSize);\n }\n else if (selector.nodes[0] instanceof Node) {\n var stackPanel = selector.nodes[0];\n if (checkParentAsContainer(this, selector.nodes[0])) {\n if (stackPanel.shape.type !== 'UmlClassifier' && !(stackPanel.parentId &&\n this.nameTable[stackPanel.parentId]\n && this.nameTable[stackPanel.parentId].shape.type === 'UmlClassifier')) {\n selector.thumbsConstraints &= ~ThumbsConstraints.Rotate;\n }\n }\n var swimlane = (stackPanel.shape.type === 'SwimLane' || stackPanel.isLane ||\n stackPanel.isPhase) ? true : false;\n this.diagramRenderer.renderResizeHandle(selector.wrapper.children[0], selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, canMove(selector.nodes[0]), (selector.nodes[0].constraints & NodeConstraints.HideThumbs) ? true : false, swimlane, selector.handleSize);\n }\n }\n else {\n if (this.diagramActions & DiagramAction.Interactions) {\n this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions | RendererAction.PreventRenderSelector;\n }\n if (!(selectionHasConnector(this, selector) && canRender)) {\n this.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, canMove(selector), null, null, selector.handleSize);\n }\n this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions & ~RendererAction.PreventRenderSelector;\n }\n }\n }\n // EJ2-56919 - Add below code to render selection rectangle for node if selected objects length is greater than one\n if (this.selectedItems.selectedObjects.length > 1) {\n this.updateSelectionRectangle();\n }\n this.enableServerDataBinding(severDataBind);\n };\n /**\n * renderSelectorForAnnotation method \\\n *\n * @returns { void } renderSelectorForAnnotation method .\\\n * @param {Selector} selectorModel - provide the x value.\n * @param {(SVGElement | HTMLCanvasElement)} selectorElement - provide the y value.\n *\n * @private\n */\n //(EJ2-66036)- Annotation interaction not rendered properly\n Diagram.prototype.renderSelectorForAnnotation = function (selectorModel, selectorElement) {\n this.diagramRenderer.renderResizeHandle(selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(selectorModel.annotation), undefined, undefined, selectorModel.handleSize);\n };\n /**\n * drawSelectionRectangle method \\\n *\n * @returns { void } drawSelectionRectangle method .\\\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {number} width - provide the width value.\n * @param {number} height - provide the height value.\n *\n * @private\n */\n Diagram.prototype.drawSelectionRectangle = function (x, y, width, height) {\n this.clearSelectorLayer();\n this.diagramRenderer.drawSelectionRectangle(x, y, width, height, this.adornerLayer, this.scroller.transform);\n };\n /**\n * renderHighlighter method \\\n *\n * @returns { void } renderHighlighter method .\\\n * @param {DiagramElement} element - provide the node value.\n *\n * @private\n */\n Diagram.prototype.renderHighlighter = function (element) {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n this.diagramRenderer.renderHighlighter(element, adornerSvg, this.scroller.transform);\n };\n /**\n * clearHighlighter method \\\n *\n * @returns { void } clearHighlighter method .\\\n *\n * @private\n */\n Diagram.prototype.clearHighlighter = function () {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n };\n /**\n * getNodesConnectors method \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } getNodesConnectors method .\\\n * @param {(NodeModel | ConnectorModel)[]} selectedItems - provide the node value.\n *\n * @private\n */\n Diagram.prototype.getNodesConnectors = function (selectedItems) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n selectedItems.push(node);\n }\n for (var i = 0; i < this.connectors.length; i++) {\n var conn = this.connectors[parseInt(i.toString(), 10)];\n selectedItems.push(conn);\n }\n return selectedItems;\n };\n /**\n * clearSelectorLayer method \\\n *\n * @returns { void } clearSelectorLayer method .\\\n *\n * @private\n */\n Diagram.prototype.clearSelectorLayer = function () {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n var j;\n if (!this.currentSymbol) {\n var selectionRect = adornerSvg.getElementById(this.adornerLayer.id + '_selected_region');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n this.clearHighlighter();\n var childNodes = getSelectorElement(this.element.id).childNodes;\n var child = void 0;\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to get the target which we are dragging using touch interaction\n var handleId = this.eventHandler.touchArgs ? this.eventHandler.touchArgs.target.id : undefined;\n if (handleId && handleId.includes('bezierLine')) {\n handleId = undefined;\n }\n for (var i_3 = childNodes.length; i_3 > 0; i_3--) {\n //Added below code to prevent the removal of target element from DOM while doing touch move interaction\n if (this.eventHandler && this.eventHandler.touchArgs && this.eventHandler.touchArgs.type === 'touchmove') {\n this.diagramRenderer.touchMove = true;\n if (!(handleId && handleId === childNodes[i_3 - 1].id)) {\n child = childNodes[i_3 - 1];\n child.parentNode.removeChild(child);\n }\n }\n else {\n child = childNodes[i_3 - 1];\n child.parentNode.removeChild(child);\n }\n }\n //Removed isBlazor code\n if (!isBlazor()) {\n var templates = getUserHandleLayer(this.element.id).childNodes;\n for (i = templates.length; i > 0; i--) {\n templates[i - 1].parentNode.removeChild(templates[i - 1]);\n }\n }\n }\n else {\n var symbolBorder = adornerSvg.getElementById('borderRect_symbol');\n if (symbolBorder) {\n symbolBorder.parentNode.removeChild(symbolBorder);\n }\n }\n };\n /**\n * getWrapper method \\\n *\n * @returns { void } getWrapper method .\\\n * @param {Container} nodes - provide the node value.\n * @param {string} id - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getWrapper = function (nodes, id) {\n var wrapper;\n id = nodes.id + '_' + id;\n var container = nodes instanceof Canvas ? nodes : this.getPortContainer(this.nameTable[nodes.id]);\n for (var i = 0; i < container.children.length; i++) {\n if (id === container.children[parseInt(i.toString(), 10)].id) {\n wrapper = container.children[parseInt(i.toString(), 10)];\n }\n }\n return wrapper;\n };\n /**\n * DiagramElement method \\\n *\n * @returns { void } getEndNodeWrapper method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @param {ConnectorModel} connector - provide the childernCollection value.\n * @param {boolean} source - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getEndNodeWrapper = function (node, connector, source) {\n if (node.shape.type === 'Bpmn' && node.wrapper.children[0] instanceof Canvas) {\n if ((!isBlazor() && node.shape.shape === 'Activity')) {\n if (source && node.shape.activity.subProcess.type === 'Transaction'\n && connector.sourcePortID) {\n var portId = connector.sourcePortID;\n var parent_5 = node.wrapper.children[0].children[0].children[2];\n if (parent_5.children) {\n for (var _i = 0, _a = parent_5.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.visible && child.id === node.id + '_' + portId) {\n return child.children[0];\n }\n }\n }\n }\n return node.wrapper.children[0].children[0].children[0];\n }\n return node.wrapper.children[0].children[0];\n }\n if (!this.containsMargin(node.wrapper.children[0])) {\n if (!node.children) {\n return node.wrapper.children[0];\n }\n }\n return node.wrapper;\n };\n Diagram.prototype.containsMargin = function (node) {\n return node.margin && (node.margin.left !== 0 || node.margin.top !== 0 || node.margin.right !== 0 || node.margin.bottom !== 0);\n };\n Diagram.prototype.focusOutEdit = function () {\n this.endEdit();\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.endEditCommand = function () {\n this.endEdit();\n this.textEditing = false;\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) {\n this.refreshDiagramLayer();\n }\n };\n // EJ2-866418-keyboard shortcut keys method starting\n //Change the text style of nodes,swimlane,textnode\n Diagram.prototype.fontStyleCommand = function (format) {\n for (var i = 0; i < this.selectedItems.nodes.length; i++) {\n var node = this.selectedItems.nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n if (node.shape.hasHeader) {\n this.applyStyleText(format, node.shape.header.annotation);\n }\n }\n if (node.isLane) {\n var laneHeader = this.getObject(node.shape.header[0].id);\n this.applyStyle(format, laneHeader.annotations);\n }\n if (node.shape.type === 'Text') {\n var textNode = node;\n this.applyStyleText(format, textNode);\n }\n if (node.annotations.length > 0) {\n var annotationLength = node.annotations;\n this.applyStyle(format, annotationLength);\n }\n }\n for (var i = 0; i < this.selectedItems.connectors.length; i++) {\n if (this.selectedItems.connectors[parseInt(i.toString(), 10)].annotations.length > 0) {\n var annotationLength = this.selectedItems.connectors[parseInt(i.toString(), 10)].annotations;\n this.applyStyle(format, annotationLength);\n }\n }\n };\n Diagram.prototype.applyStyle = function (format, annotationLength) {\n for (var j = 0; j < annotationLength.length; j++) {\n switch (format) {\n case 'bold':\n annotationLength[parseInt(j.toString(), 10)].style.bold = !annotationLength[parseInt(j.toString(), 10)].style.bold;\n break;\n case 'italic':\n annotationLength[parseInt(j.toString(), 10)].style.italic = !annotationLength[parseInt(j.toString(), 10)].style.italic;\n break;\n case 'underline':\n if (annotationLength[parseInt(j.toString(), 10)].style.textDecoration === 'None') {\n annotationLength[parseInt(j.toString(), 10)].style.textDecoration = 'Underline';\n }\n else if (annotationLength[parseInt(j.toString(), 10)].style.textDecoration === 'Underline') {\n annotationLength[parseInt(j.toString(), 10)].style.textDecoration = 'None';\n }\n break;\n }\n }\n this.dataBind();\n };\n Diagram.prototype.applyStyleText = function (format, textNode) {\n switch (format) {\n case 'bold':\n textNode.style.bold = !textNode.style.bold;\n break;\n case 'italic':\n textNode.style.italic = !textNode.style.italic;\n break;\n case 'underline':\n if (textNode.style.textDecoration === 'None') {\n textNode.style.textDecoration = 'Underline';\n }\n else if (textNode.style.textDecoration === 'Underline') {\n textNode.style.textDecoration = 'None';\n }\n break;\n }\n this.dataBind();\n };\n //To duplicate the elements on clicking Ctrl+D\n Diagram.prototype.duplicateCommand = function () {\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n this.copy();\n this.paste();\n };\n //To group and ungroup the elements\n Diagram.prototype.groupCommand = function (group) {\n switch (group) {\n case 'group':\n this.group();\n break;\n case 'ungroup':\n this.unGroup();\n break;\n }\n };\n //To rotate clockwise and anti-clockwise the elements\n Diagram.prototype.rotateCommand = function (rotateValue) {\n var selectedItems = this.selectedItems;\n switch (rotateValue) {\n case 'clockwise':\n this.rotate(selectedItems, 90);\n break;\n case 'antiClockwise':\n this.rotate(selectedItems, -90);\n break;\n }\n };\n //To flip horizontally and vertically the elements\n Diagram.prototype.flipCommand = function (flipValue) {\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n for (var i = 0; i < selectedItems.length; i++) {\n switch (flipValue) {\n case 'horizontal':\n selectedItems[parseInt(i.toString(), 10)].flip = 'Horizontal';\n break;\n case 'vertical':\n selectedItems[parseInt(i.toString(), 10)].flip = 'Vertical';\n break;\n }\n }\n this.dataBind();\n };\n //To exceute the tool commands\n Diagram.prototype.toolCommand = function (tool) {\n switch (tool) {\n case 'pointer': {\n this.tool = DiagramTools.Default;\n this.dataBind();\n break;\n }\n case 'text': {\n var textnode = {\n shape: { type: 'Text' }\n };\n this.drawingObject = textnode;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'connect': {\n var connectors = {\n id: 'connector1',\n type: 'Straight'\n };\n this.drawingObject = connectors;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'freeForm': {\n var freeform = { id: 'connector1', type: 'Freehand' };\n this.drawingObject = freeform;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'line': {\n var polyline = { id: 'connector1', type: 'Polyline' };\n this.drawingObject = polyline;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'rectangle': {\n var drawingshape = { type: 'Basic', shape: 'Rectangle' };\n var basicNode = {\n shape: drawingshape\n };\n this.drawingObject = basicNode;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'ellipse': {\n var drawingNode = { type: 'Basic', shape: 'Ellipse' };\n var ellipseNode = {\n shape: drawingNode\n };\n this.drawingObject = ellipseNode;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n }\n };\n //To zoomin and zoom-out the diagram\n Diagram.prototype.zoomCommand = function (zoomValue) {\n switch (zoomValue) {\n case 'zoomIn':\n this.zoomTo({ type: 'ZoomIn', zoomFactor: 0.2 });\n break;\n case 'zoomOut':\n this.zoomTo({ type: 'ZoomOut', zoomFactor: 0.2 });\n break;\n }\n };\n //To move the diagram elements five pixel based on the arrow keys\n Diagram.prototype.shiftCommand = function (direction) {\n for (var i = 0; i < this.selectedItems.nodes.length; i++) {\n var pixel = 5;\n if (direction === 'Up') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY - pixel;\n }\n else if (direction === 'Down') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY + pixel;\n }\n else if (direction === 'Left') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX - pixel;\n }\n else if (direction === 'Right') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX + pixel;\n }\n }\n for (var i = 0; i < this.selectedItems.connectors.length; i++) {\n var connector = this.selectedItems;\n if (direction === 'Up') {\n this.drag(connector, 0, -5);\n }\n else if (direction === 'Down') {\n this.drag(connector, 0, 5);\n }\n else if (direction === 'Left') {\n this.drag(connector, -5, 0);\n }\n else if (direction === 'Right') {\n this.drag(connector, 5, 0);\n }\n }\n };\n //To execute the text align\n Diagram.prototype.alignCommand = function (alignDirection) {\n if (this.selectedItems.nodes.length > 0) {\n for (var i = 0; i < this.selectedItems.nodes.length; i++) {\n this.updateNodesAndConnectorAnnotation(this.selectedItems.nodes[parseInt(i.toString(), 10)], alignDirection);\n }\n }\n };\n Diagram.prototype.updateNodesAndConnectorAnnotation = function (object, alignDirection) {\n var annotation;\n for (var i = 0; i < object.annotations.length; i++) {\n annotation = object.annotations[parseInt(i.toString(), 10)];\n switch (alignDirection) {\n case 'left':\n annotation.horizontalAlignment = 'Left';\n break;\n case 'center':\n annotation.horizontalAlignment = 'Center';\n break;\n case 'right':\n annotation.horizontalAlignment = 'Right';\n break;\n case 'justify':\n annotation.style.textAlign = 'Justify';\n break;\n case 'top':\n annotation.verticalAlignment = 'Top';\n break;\n case 'centerVertical':\n annotation.verticalAlignment = 'Center';\n break;\n case 'bottom':\n annotation.verticalAlignment = 'Bottom';\n break;\n }\n this.dataBind();\n }\n };\n //To execute ordercommands using keyboard shortcuts\n Diagram.prototype.orderCommand = function (orderCommand) {\n switch (orderCommand) {\n case 'sendToBack':\n this.sendToBack();\n break;\n case 'bringToFront':\n this.bringToFront();\n break;\n case 'sendBackward':\n this.sendBackward();\n break;\n case 'bringForward':\n this.moveForward();\n break;\n }\n };\n //To execute the selection of elements on clicking tab key\n Diagram.prototype.navigateItems = function (tabCommand) {\n var currentSelectedNodeIndex = 0;\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n if (selectedItems.length > 0) {\n currentSelectedNodeIndex = selectedItems[0].zIndex + (tabCommand ? 1 : -1);\n }\n else {\n currentSelectedNodeIndex = tabCommand ? 0 : this.nodes.length + this.connectors.length - 1;\n }\n if (currentSelectedNodeIndex < 0) {\n currentSelectedNodeIndex = this.nodes.length + this.connectors.length - 1;\n }\n else if (currentSelectedNodeIndex === this.nodes.length + this.connectors.length) {\n currentSelectedNodeIndex = 0;\n }\n for (var i = 0; i < this.nodes.length; i++) {\n if (currentSelectedNodeIndex === this.nodes[parseInt(i.toString(), 10)].zIndex) {\n var nextNode = this.nodes[parseInt(i.toString(), 10)];\n this.clearSelection();\n this.select([nextNode]);\n }\n }\n for (var j = 0; j < this.connectors.length; j++) {\n if (currentSelectedNodeIndex === this.connectors[parseInt(j.toString(), 10)].zIndex) {\n var nextConnector = this.connectors[parseInt(j.toString(), 10)];\n this.clearSelection();\n this.select([nextConnector]);\n }\n }\n };\n /**\n * @private\n */\n /* tslint:disable */\n Diagram.prototype.endEdit = function () {\n return __awaiter(this, void 0, void 0, function () {\n var blazor, blazorInterop, oldValues, changedvalues, annotations, textArea, text, element, node, annotation, args, textWrapper, index, deleteNode, contentModified, index, changesAnnotation, nodeIndex, oldnodes, newnodes, clonedObject, selectedNode, swimLaneNode, laneHeader, phaseHeader, collection, j;\n return __generator(this, function (_a) {\n if (this.diagramActions & DiagramAction.TextEdit) {\n blazor = 'Blazor';\n blazorInterop = 'sfBlazor';\n oldValues = void 0;\n changedvalues = void 0;\n annotations = {};\n this.enableServerDataBinding(false);\n textArea = document.getElementById(this.element.id + '_editBox');\n if (!isBlazor()) {\n text = textArea.value;\n EventHandler.remove(textArea, 'input', this.eventHandler.inputChange);\n EventHandler.remove(textArea, 'focusout', this.focusOutEdit);\n element = document.getElementById(this.element.id + '_editTextBoxDiv');\n node = void 0;\n node = this.nameTable[this.activeLabel.parentId];\n annotation = findAnnotation(node, this.activeLabel.id);\n args = { oldValue: this.activeLabel.text, newValue: text, cancel: false, element: node, annotation: annotation };\n //Removed isBlazor code\n element.parentNode.removeChild(element);\n textWrapper = void 0;\n if (annotation && !(annotation instanceof Text)) {\n index = findObjectIndex(node, annotation.id, true);\n annotations[\"\" + index] = { content: annotation.content };\n oldValues = { annotations: annotations };\n }\n else {\n //Removed isBlazor code\n oldValues = { shape: { content: node.shape.content } };\n }\n deleteNode = false;\n if (this.eventHandler['currentAction'] === 'Draw') {\n deleteNode = this.eventHandler.isAddTextNode(node, true);\n }\n if (!deleteNode && (element.textContent !== text || text !== this.activeLabel.text)) {\n //Removed isBlaor code\n this.triggerEvent(DiagramEvent.textEdit, args);\n }\n if (!textWrapper) {\n textWrapper = this.getWrapper(node.wrapper, this.activeLabel.id);\n }\n contentModified = false;\n if (annotation.content !== text && !args.cancel) {\n contentModified = true;\n if (!this.activeLabel.isGroup) {\n this.startGroupAction();\n }\n if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier'\n && text.indexOf('+') === -1 && text.indexOf('-') === -1 && text.indexOf('#') === -1\n && text.indexOf('~') === -1 && node.id.indexOf('_umlClass_header') === -1) {\n text = ' + ' + text;\n }\n if (node.isLane || node.isPhase) {\n this.protectPropertyChange(true);\n }\n if (!(annotation instanceof Text)) {\n index = findObjectIndex(node, annotation.id, true);\n changesAnnotation = {};\n changesAnnotation[\"\" + index] = { content: text };\n changedvalues = { annotations: changesAnnotation };\n }\n else {\n //Removed isBlazor code\n changedvalues = { shape: { content: text } };\n }\n nodeIndex = this.getIndex(node, node.id);\n if (nodeIndex) {\n oldnodes = {};\n oldnodes[\"\" + nodeIndex] = oldValues;\n newnodes = {};\n newnodes[\"\" + nodeIndex] = changedvalues;\n if (getObjectType(node) === Node) {\n this.onPropertyChanged({ nodes: newnodes }, { nodes: oldnodes });\n }\n else {\n this.onPropertyChanged({ connectors: newnodes }, { connectors: oldnodes });\n }\n }\n this.protectPropertyChange(true);\n //Removed isBlazor code\n annotation.content = text;\n this.protectPropertyChange(false);\n this.updateSelector();\n if (node.isLane || node.isPhase) {\n this.protectPropertyChange(false);\n }\n }\n if (deleteNode) {\n this.removeObjectsFromLayer(node);\n this.removeFromAQuad(node);\n delete this.nameTable[this.activeLabel.parentId];\n if (text !== '') {\n this.clearSelection();\n clonedObject = cloneObject(node);\n node = this.add(clonedObject);\n this.updateDiagramObject(node);\n this.commandHandler.oldSelectedObjects = cloneSelectedObjects(this);\n this.commandHandler.select(this.nameTable[node.id]);\n // this.commandHandler.updateBlazorSelector();\n }\n }\n if (this.selectedItems.nodes.length) {\n selectedNode = this.nameTable[this.activeLabel.parentId];\n swimLaneNode = this.nameTable[selectedNode.parentId];\n if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane') || (selectedNode.shape.type === 'SwimLane')) {\n laneHeader = 'LaneHeaderParent';\n phaseHeader = 'PhaseHeaderParent';\n if ((selectedNode.shape.type === 'SwimLane')) {\n swimLaneNode = this.nameTable[this.activeLabel.parentId];\n selectedNode = node;\n }\n if ((selectedNode.isLane || selectedNode.isPhase)) {\n collection = selectedNode.isLane ?\n swimLaneNode.shape.lanes : swimLaneNode.shape.phases;\n for (j = 0; j < collection.length; j++) {\n if (collection[parseInt(j.toString(), 10)].id === (selectedNode[\"\" + laneHeader] || selectedNode[\"\" + phaseHeader])) {\n collection[parseInt(j.toString(), 10)].header.annotation.content = selectedNode.annotations[0].content;\n }\n }\n }\n else if (selectedNode.isHeader && swimLaneNode.shape.hasHeader) {\n swimLaneNode.shape.header.annotation.content = selectedNode.annotations[0].content;\n }\n }\n this.dataBind();\n }\n textWrapper.visible = true;\n this.updateDiagramObject(node);\n this.diagramActions = this.diagramActions & ~DiagramAction.TextEdit;\n if (this.activeLabel.isGroup || contentModified) {\n this.endGroupAction();\n }\n this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined };\n this.commandHandler.getBlazorOldValues();\n //Removed isBlazor code\n this.enableServerDataBinding(true);\n }\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * getIndex method \\\n *\n * @returns { void } getIndex method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getIndex = function (node, id) {\n //let index: number;\n var collection = (getObjectType(node) === Node) ? this.nodes : this.connectors;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id.toString() === id.toString()) {\n return i.toString();\n }\n }\n return null;\n };\n /* tslint:enable */\n //Removed getBlazorTextEditArgs method\n /**\n * canLogChange method \\\n *\n * @returns { void } canLogChange method .\\\n *\n * @private\n */\n Diagram.prototype.canLogChange = function () {\n if ((this.diagramActions & DiagramAction.Render) && (!(this.diagramActions & DiagramAction.ToolAction)) &&\n (!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.PublicMethod))) {\n return true;\n }\n else {\n return false;\n }\n };\n Diagram.prototype.modelChanged = function (newProp, oldProp) {\n if (newProp.connectors || oldProp.connectors || newProp.nodes || oldProp.connectors\n || newProp.pageSettings || oldProp.pageSettings || newProp.bridgeDirection || oldProp.bridgeDirection) {\n return true;\n }\n return false;\n };\n Diagram.prototype.resetDiagramActions = function (action) {\n var isAction = action ? true : false;\n if (this.diagramActions & DiagramAction.UndoRedo && (!isAction || (action === DiagramAction.UndoRedo))) {\n this.diagramActions = this.diagramActions & ~DiagramAction.UndoRedo;\n }\n if (this.diagramActions & DiagramAction.PublicMethod && (!isAction || action === DiagramAction.PublicMethod)) {\n this.diagramActions = this.diagramActions & ~DiagramAction.PublicMethod;\n }\n };\n /**\n * removeNode method \\\n *\n * @returns { void } removeNode method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {NodeModel} childrenCollection - provide the childrenCollection value.\n *\n * @private\n */\n Diagram.prototype.removeNode = function (node, childrenCollection) {\n this.removeObjectsFromLayer(node);\n this.removeFromAQuad(this.nameTable[node.id]);\n var groupElement = document.getElementById(node.id + '_groupElement');\n delete this.nameTable[node.id];\n if (node.children) {\n delete this.groupTable[node.id];\n }\n //Removed isBlazor code\n this.nodes.splice(this.nodes.indexOf(node), 1);\n if (groupElement && groupElement.children && groupElement.children.length > 0) {\n var beforeElement = undefined;\n for (var j = groupElement.children.length - 1; j >= 0; j--) {\n var childElement = groupElement.children[parseInt(j.toString(), 10)];\n //EJ2-863636 - Nodes Removed from Diagram upon Ungrouping\n if (childrenCollection.length > 0 && childrenCollection.indexOf(childElement.id.split('_groupElement')[0]) !== -1) {\n if (!beforeElement) {\n groupElement.parentNode.insertBefore(childElement, groupElement);\n }\n else {\n groupElement.parentNode.insertBefore(childElement, beforeElement);\n }\n beforeElement = childElement;\n }\n }\n }\n if (groupElement) {\n groupElement.parentNode.removeChild(groupElement);\n }\n };\n /**\n * deleteGroup method \\\n *\n * @returns { void } deleteGroup method .\\\n * @param {NodeModel} node - provide the source value.\n *\n * @private\n */\n Diagram.prototype.deleteGroup = function (node) {\n var elements = [];\n var tempNode = [];\n if (node.children) {\n tempNode = this.commandHandler.getChildren(node, elements);\n }\n this.UpdateBlazorDiagramModelCollection(node);\n for (var _i = 0, tempNode_1 = tempNode; _i < tempNode_1.length; _i++) {\n var nodes = tempNode_1[_i];\n if (this.nameTable[nodes.id]) {\n this.remove(nodes);\n }\n }\n };\n //helper methods - end region\n //property changes - start region\n /** @private */\n /**\n * updateObject method \\\n *\n * @returns { void } updateObject method .\\\n * @param {Node | Connector} actualObject - provide the source value.\n * @param {Node | Connector} oldObject - provide the target value.\n * @param {Node | Connector} changedProp - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.updateObject = function (actualObject, oldObject, changedProp) {\n if (!(this.diagramActions & DiagramAction.ToolAction)) {\n var bound = actualObject.wrapper.children[0].bounds;\n var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bound, true);\n if (!checkBoundaryConstraints) {\n if (actualObject instanceof Node) {\n var oldNode = oldObject;\n for (var _i = 0, _a = Object.keys(changedProp); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'width':\n actualObject.width = oldNode.width;\n break;\n case 'height':\n actualObject.height = oldNode.height;\n break;\n case 'offsetX':\n actualObject.offsetX = oldNode.offsetX;\n break;\n case 'offsetY':\n actualObject.offsetY = oldNode.offsetY;\n break;\n case 'rotateAngle':\n actualObject.rotateAngle = oldNode.rotateAngle;\n break;\n }\n }\n this.nodePropertyChange(actualObject, changedProp, oldObject);\n }\n else {\n for (var _b = 0, _c = Object.keys(changedProp); _b < _c.length; _b++) {\n var key = _c[_b];\n var oldConnector = oldObject;\n var actualSourcePoint = actualObject.sourcePoint;\n var actualTargetPoint = actualObject.targetPoint;\n switch (key) {\n case 'sourcePoint':\n actualSourcePoint.x = oldConnector.sourcePoint.x || actualSourcePoint.x;\n actualSourcePoint.y = oldConnector.sourcePoint.y || actualSourcePoint.y;\n break;\n case 'targetPoint':\n actualTargetPoint.x = oldConnector.targetPoint.x || actualTargetPoint.x;\n actualTargetPoint.y = oldConnector.targetPoint.y || actualTargetPoint.y;\n }\n }\n this.connectorPropertyChange(actualObject, changedProp, oldObject);\n }\n }\n }\n };\n Diagram.prototype.nodePropertyChangeExtend = function (actualObject, oldObject, node, update) {\n if (node.style !== undefined && actualObject.shape.type !== 'Bpmn') {\n updateStyle(node.style, actualObject.wrapper.children[0]);\n update = true;\n }\n if (node.shadow !== undefined) {\n this.updateShadow(actualObject.shadow, node.shadow);\n update = true;\n }\n if (node.constraints !== undefined) {\n if ((oldObject.constraints & NodeConstraints.Select) &&\n (!(node.constraints & NodeConstraints.Select)) && isSelected(this, actualObject)) {\n this.clearSelection();\n }\n else {\n this.updateThumbConstraints(this.selectedItems.nodes, this.selectedItems);\n this.updateSelector();\n update = true;\n }\n }\n this.updateTextAnnotationInSwimlane(actualObject, node);\n this.swimLaneNodePropertyChange(actualObject, oldObject, node, update);\n return update;\n };\n //To update text annotation node inside swimlane while dragging the text annotation parent.\n Diagram.prototype.updateTextAnnotationInSwimlane = function (actualObject, node) {\n if (actualObject.hasTextAnnotation && this.isPositionUndo) {\n for (var i = 0; i < actualObject.outEdges.length; i++) {\n var con = this.nameTable[actualObject.outEdges[parseInt(i.toString(), 10)]];\n if (con.isBpmnAnnotationConnector) {\n var textNode = this.nameTable[con.targetID];\n this.isProtectedOnChange = true;\n if (actualObject.laneMargin && textNode) {\n var dx = actualObject.margin.left - actualObject.laneMargin.left;\n var dy = actualObject.margin.top - actualObject.laneMargin.top;\n textNode.margin.left += dx;\n textNode.margin.top += dy;\n textNode.offsetX += dx;\n textNode.offsetY += dy;\n textNode.wrapper.offsetX += dx;\n textNode.wrapper.offsetY += dy;\n textNode.wrapper.measure(new Size(textNode.wrapper.width, textNode.wrapper.height));\n textNode.wrapper.arrange(textNode.wrapper.desiredSize);\n this.updateDiagramObject(textNode);\n }\n this.isProtectedOnChange = false;\n }\n }\n }\n };\n /* tslint:disable */\n Diagram.prototype.swimLaneNodePropertyChange = function (actualObject, oldObject, node, update) {\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol) {\n if (oldObject.shape) {\n var shape = node.shape;\n var actualShape = actualObject.shape;\n var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false;\n var padding = actualShape.padding;\n var oldShape = oldObject.shape;\n var grid = actualObject.wrapper.children[0];\n var oldObjects = void 0;\n var newObjects = void 0;\n var id = void 0;\n if (oldShape.lanes || oldShape.phases) {\n if (oldShape.lanes) {\n for (var _i = 0, _a = Object.keys(shape.lanes); _i < _a.length; _i++) {\n var count = _a[_i];\n var indexValue = Number(count);\n var lane = oldShape.lanes[parseInt(indexValue.toString(), 10)];\n var laneIndex = void 0;\n var newLane = shape.lanes[parseInt(indexValue.toString(), 10)];\n if (newLane && newLane.header) {\n id = actualShape.lanes[parseInt(indexValue.toString(), 10)].header.id;\n oldObjects = lane.header;\n newObjects = newLane.header;\n this.nodePropertyChange(this.nameTable[\"\" + id], oldObjects, newObjects);\n }\n if (lane.children) {\n for (var _b = 0, _c = Object.keys(lane.children); _b < _c.length; _b++) {\n var childNodeIndex = _c[_b];\n id = actualShape.lanes[parseInt(indexValue.toString(), 10)].children[Number(childNodeIndex)].id;\n var node_1 = this.nameTable[\"\" + id];\n oldObjects = lane.children[Number(childNodeIndex)];\n newObjects = newLane.children[Number(childNodeIndex)];\n this.nodePropertyChange(node_1, oldObjects, newObjects);\n }\n }\n if (lane.width && !orientation_1) {\n laneIndex = (actualShape.phases && actualShape.phaseSize) ? indexValue + 1 : indexValue;\n grid.updateColumnWidth(laneIndex, newLane.width, true, padding);\n this.updateDiagramElementQuad();\n }\n if (lane.height && orientation_1) {\n laneIndex = (actualShape.header && actualShape.hasHeader) ? indexValue + 1 : indexValue;\n laneIndex += (actualShape.phases && actualShape.phaseSize) ? 1 : 0;\n grid.updateRowHeight(laneIndex, newLane.height, true, padding);\n this.updateDiagramElementQuad();\n }\n }\n }\n if (shape.phases) {\n for (var _d = 0, _e = Object.keys(shape.phases); _d < _e.length; _d++) {\n var key = _e[_d];\n var indexValue = Number(key);\n var phase = shape.phases[parseInt(indexValue.toString(), 10)];\n var size = void 0;\n var rowIndex = (actualShape.header && actualShape.hasHeader) ? 1 : 0;\n if (phase && phase.header) {\n id = actualShape.phases[parseInt(indexValue.toString(), 10)].header.id;\n oldObjects = oldShape.phases[parseInt(indexValue.toString(), 10)].header;\n newObjects = phase.header;\n this.nodePropertyChange(this.nameTable[\"\" + id], oldObjects, newObjects);\n }\n if (phase.offset) {\n if (indexValue === 0) {\n size = phase.offset;\n }\n else {\n var previousPhase = actualShape.phases[indexValue - 1];\n size = phase.offset - previousPhase.offset;\n if (size <= 0) {\n size = phase.offset;\n }\n }\n if (orientation_1) {\n grid.updateColumnWidth(indexValue, size, true, padding);\n updatePhaseMaxWidth(actualObject, this, grid.rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(indexValue.toString(), 10)], indexValue);\n }\n else {\n grid.updateRowHeight(rowIndex + indexValue, size, true, padding);\n }\n }\n }\n }\n }\n if (shape.phaseSize !== undefined && actualShape.phases.length) {\n if (shape.phaseSize === 0 || oldShape.phaseSize === 0) {\n if (oldShape.phaseSize) {\n if (orientation_1) {\n grid.removeRow((actualShape.header && actualShape.hasHeader) ? 1 : 0);\n actualObject.height = actualObject.wrapper.height = grid.height;\n }\n else {\n if (actualShape.header && actualShape.hasHeader) {\n grid.rows[0].cells[1].children = grid.rows[0].cells[0].children;\n grid.rows[0].cells[1].columnSpan = grid.rows[0].cells[0].columnSpan - 1;\n grid.rows[0].cells[0].children = [];\n }\n grid.removeColumn(0);\n }\n }\n else {\n if (orientation_1) {\n var rowDef = new RowDefinition();\n rowDef.height = shape.phaseSize;\n grid.addRow((actualShape.header && actualShape.hasHeader) ? 1 : 0, rowDef, true);\n actualObject.height = actualObject.wrapper.height += shape.phaseSize;\n }\n else {\n var colDef = new ColumnDefinition();\n colDef.width = shape.phaseSize;\n grid.addColumn(0, colDef, true);\n if (actualShape.header && actualShape.hasHeader) {\n grid.rows[0].cells[0].children = grid.rows[0].cells[1].children;\n grid.rows[0].cells[1].children = [];\n grid.rows[0].cells[1].columnSpan = 1;\n grid.rows[0].cells[1].minWidth = undefined;\n grid.rows[0].cells[0].columnSpan = actualShape.lanes.length + 1;\n }\n }\n for (var k = 0; k < actualShape.phases.length; k++) {\n if (actualShape.phases[parseInt(k.toString(), 10)].id === '') {\n actualShape.phases[parseInt(k.toString(), 10)].id = randomId();\n }\n phaseDefine(grid, this, actualObject, (actualShape.header && actualShape.hasHeader) ? 1 : 0, orientation_1, k);\n }\n }\n }\n else {\n if (orientation_1) {\n grid.updateRowHeight((actualShape.header && actualShape.hasHeader) ? 1 : 0, shape.phaseSize, false);\n }\n else {\n grid.updateColumnWidth(0, shape.phaseSize, false);\n }\n }\n }\n if (actualShape.header && actualShape.hasHeader && oldShape.header) {\n var id_1 = grid.rows[0].cells[0].children[0].id;\n var headerNode = this.nameTable[\"\" + id_1];\n this.nodePropertyChange(headerNode, (oldShape.header), shape.header);\n }\n actualObject.height = actualObject.wrapper.height = grid.height;\n actualObject.width = actualObject.wrapper.width = grid.width;\n }\n else if (oldObject.constraints) {\n var oldSelectConstraints = (oldObject.constraints & NodeConstraints.Select);\n var newSelectConstraints = (node.constraints & NodeConstraints.Select);\n if (oldSelectConstraints !== newSelectConstraints) {\n var shape = actualObject.shape;\n // Header - constraints\n var headerNode = this.nameTable[actualObject.id + shape.header.id];\n headerNode.constraints = (!newSelectConstraints) ? headerNode.constraints & ~NodeConstraints.Select :\n headerNode.constraints | NodeConstraints.Select;\n // Phase - Constraints\n var phaseNode = void 0;\n if (shape.phaseSize > 0) {\n for (var i = 0; i < shape.phases.length; i++) {\n phaseNode = this.nameTable[actualObject.id + shape.phases[parseInt(i.toString(), 10)].id + '_header'];\n phaseNode.constraints = (!newSelectConstraints) ? phaseNode.constraints & ~NodeConstraints.Select :\n phaseNode.constraints | NodeConstraints.Select;\n }\n }\n // Header - Constraints\n var laneNode = void 0;\n var laneHeader = void 0;\n var value = shape.phases.length || 1;\n for (var i = 0; i < shape.lanes.length; i++) {\n for (var l = 0; l < value; l++) {\n laneNode = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + l];\n laneNode.constraints = (!newSelectConstraints) ? laneNode.constraints & ~NodeConstraints.Select :\n laneNode.constraints | NodeConstraints.Select;\n if (l === 0) {\n laneHeader = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + '_' + l + '_header'];\n laneHeader.constraints = (!newSelectConstraints) ? laneHeader.constraints & ~NodeConstraints.Select :\n laneHeader.constraints | NodeConstraints.Select;\n }\n }\n }\n }\n }\n update = true;\n }\n return update;\n };\n /** @private */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Diagram.prototype.insertValue = function (oldNodeObject, isNode) {\n if (!(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n var value = void 0;\n var oldObjects = isNode ? this.oldNodeObjects : this.oldConnectorObjects;\n for (var i = 0; i < oldObjects.length; i++) {\n if (oldObjects[parseInt(i.toString(), 10)].id === oldNodeObject.id) {\n value = true;\n }\n }\n if (!value) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n isNode ? (this.oldNodeObjects.push(oldNodeObject)) : this.oldConnectorObjects.push(oldNodeObject);\n }\n }\n };\n /* tslint:disable */\n /** @private */\n // eslint-disable-next-line max-len\n Diagram.prototype.nodePropertyChange = function (actualObject, oldObject, node, isLayout, rotate, propertyChange) {\n if (this.canEnableBlazorObject && actualObject.id !== 'helper') {\n var node_2 = cloneObject(actualObject);\n this.insertValue(node_2, true);\n }\n var existingBounds = actualObject.wrapper.outerBounds;\n var existingInnerBounds = actualObject.wrapper.bounds;\n var updateConnector = false;\n var i;\n var j;\n var offsetX;\n var offsetY;\n var update;\n var tx;\n var ty;\n var oldBpmnOffsetX = 0;\n var newBpmnOffsetX = 0;\n var oldBpmnOffsetY = 0;\n var newBpmnOffsetY = 0;\n var sizeChanged = false;\n var offsetChanged = false;\n var angleChanged = false;\n if (node.width !== undefined) {\n if (!actualObject.children) {\n actualObject.wrapper.children[0].width = node.width;\n update = true;\n updateConnector = true;\n }\n else if (!actualObject.container) {\n this.scaleObject(actualObject, node.width, true);\n }\n else {\n actualObject.wrapper.width = node.width;\n }\n sizeChanged = true;\n }\n if (node.height !== undefined) {\n if (!actualObject.children) {\n actualObject.wrapper.children[0].height = node.height;\n update = true;\n updateConnector = true;\n }\n else if (!actualObject.container) {\n this.scaleObject(actualObject, node.height, false);\n }\n else {\n actualObject.wrapper.height = node.height;\n }\n sizeChanged = true;\n }\n update = this.nodePropertyChangeExtend(actualObject, oldObject, node, update);\n if (node.constraints !== undefined && canShadow(oldObject) !== canShadow(node)) {\n actualObject.wrapper.children[0].shadow = canShadow(actualObject) ? actualObject.shadow : null;\n }\n if (node.offsetX !== undefined) {\n oldBpmnOffsetX = oldObject.offsetX;\n newBpmnOffsetX = node.offsetX;\n if (actualObject.wrapper.flip !== 'None') {\n if (actualObject.offsetX !== actualObject.wrapper.offsetX && oldObject.offsetX !== undefined) {\n var offsetX_1 = node.offsetX - oldObject.offsetX;\n actualObject.wrapper.offsetX = actualObject.wrapper.offsetX + offsetX_1;\n this.updateFlipOffset(actualObject.wrapper, offsetX_1, 0, actualObject.wrapper.flip);\n }\n //EJ2-895070: Flipping and moving the node are not working properly\n else {\n actualObject.wrapper.offsetX = node.offsetX;\n }\n }\n else {\n actualObject.wrapper.offsetX = node.offsetX;\n }\n update = true;\n updateConnector = true;\n offsetChanged = true;\n }\n if (node.offsetY !== undefined) {\n oldBpmnOffsetY = oldObject.offsetY;\n newBpmnOffsetY = node.offsetY;\n if (actualObject.wrapper.flip !== 'None') {\n if (actualObject.offsetY !== actualObject.wrapper.offsetY && oldObject.offsetY !== undefined) {\n var offsetY_1 = node.offsetY - oldObject.offsetY;\n actualObject.wrapper.offsetY = actualObject.wrapper.offsetY + offsetY_1;\n this.updateFlipOffset(actualObject.wrapper, 0, offsetY_1, actualObject.wrapper.flip);\n }\n //EJ2-895070: Flipping and moving the node are not working properly\n else {\n actualObject.wrapper.offsetY = node.offsetY;\n }\n }\n else {\n actualObject.wrapper.offsetY = node.offsetY;\n }\n update = true;\n updateConnector = true;\n offsetChanged = true;\n }\n if (node.padding !== undefined) {\n actualObject.wrapper.padding.left = node.padding.left !== undefined ? node.padding.left : actualObject.wrapper.padding.left;\n actualObject.wrapper.padding.right = node.padding.right !== undefined ? node.padding.right : actualObject.wrapper.padding.right;\n actualObject.wrapper.padding.top = node.padding.top !== undefined ? node.padding.top : actualObject.wrapper.padding.top;\n actualObject.wrapper.padding.bottom = node.padding.bottom !== undefined ? node.padding.bottom\n : actualObject.wrapper.padding.bottom;\n update = true;\n }\n if (node.pivot !== undefined) {\n actualObject.wrapper.pivot = node.pivot;\n update = true;\n }\n if (node.minWidth !== undefined) {\n actualObject.wrapper.minWidth = actualObject.wrapper.children[0].minWidth = node.minWidth;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.minHeight !== undefined) {\n actualObject.wrapper.minHeight = actualObject.wrapper.children[0].minHeight = node.minHeight;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.maxWidth !== undefined) {\n actualObject.wrapper.maxWidth = node.maxWidth;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.maxHeight !== undefined) {\n actualObject.wrapper.maxHeight = node.maxHeight;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.flip !== undefined) {\n actualObject.wrapper.flip = node.flip;\n update = true;\n updateConnector = true;\n if (actualObject.wrapper.elementActions & ElementAction.ElementIsGroup) {\n alignElement(actualObject.wrapper, actualObject.offsetX, actualObject.offsetY, this, node.flip);\n if (actualObject && actualObject.children) {\n for (var _i = 0, _a = actualObject.children; _i < _a.length; _i++) {\n var child = _a[_i];\n var updateNode = this.nameTable[\"\" + child];\n updateNode.wrapper.flip = node.flip;\n this.updatePorts(updateNode, node.flip);\n }\n }\n //EJ2-826617 - Flip option for BPMN node\n else {\n this.updatePorts(actualObject, actualObject.flip);\n }\n }\n else {\n // flips the port according to node flip direction\n if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All' ||\n actualObject.flipMode === 'PortAndLabel' || actualObject.flipMode === 'PortAndLabelText')) {\n this.updatePorts(actualObject, node.flip);\n }\n //EJ2-826617 - Flip 'None' is not working properly\n else if (actualObject.flip === 'None') {\n this.updatePorts(actualObject, node.flip);\n }\n }\n }\n // EJ2-71981 - Flip mode \"Port\" is not working properly while dragging multiselected node\n if (node.flipMode !== undefined) {\n actualObject.wrapper.flipMode = node.flipMode;\n update = true;\n updateConnector = true;\n // flips the port according to node flip direction\n if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All' ||\n actualObject.flipMode === 'PortAndLabel' || actualObject.flipMode === 'PortAndLabelText')) {\n this.updatePorts(actualObject, actualObject.flip);\n }\n //EJ2-826617 - Flip mode 'Label' does not triggers the port\n else if (actualObject.flipMode === 'Label' || actualObject.flipMode === 'LabelText' ||\n actualObject.flipMode === 'LabelAndLabelText') {\n this.updatePorts(actualObject, 'None');\n }\n //EJ2-826617 - Flip mode 'None' is not working properly\n else if (actualObject.flipMode === 'None') {\n this.updatePorts(actualObject, actualObject.flipMode);\n }\n }\n if (node.rotateAngle !== undefined && (actualObject.constraints & NodeConstraints.Rotate)) {\n if (actualObject.children && rotate) {\n // eslint-disable-next-line max-len\n this.commandHandler.rotateObjects(actualObject, [actualObject], actualObject.rotateAngle - actualObject.wrapper.rotateAngle, { x: actualObject.offsetX, y: actualObject.offsetY }, false);\n }\n actualObject.wrapper.rotateAngle = node.rotateAngle;\n update = true;\n updateConnector = true;\n angleChanged = true;\n }\n if (node.backgroundColor !== undefined) {\n actualObject.wrapper.style.fill = node.backgroundColor;\n }\n if (node.visible !== undefined) {\n this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible);\n }\n if (node.shape !== undefined && actualObject.shape.type !== 'Bpmn') {\n update = true;\n updateShape(node, actualObject, oldObject, this);\n updateConnector = true;\n }\n if (node.margin) {\n update = true;\n this.updateMargin(actualObject, node);\n updateConnector = true;\n offsetChanged = true;\n }\n if ((((node.shape !== undefined && (node.shape.type === undefined)) || node.width !== undefined\n || node.height !== undefined || node.style !== undefined) && actualObject.shape.type === 'Bpmn' && this.bpmnModule)) {\n update = true;\n updateConnector = true;\n this.bpmnModule.updateBPMN(node, oldObject, actualObject, this);\n }\n if (actualObject.shape.type === 'UmlActivity' && ((!isBlazor() && actualObject.shape.shape === 'FinalNode'))) {\n update = true;\n updateConnector = true;\n this.updateUMLActivity(node, oldObject, actualObject, this);\n }\n if ((actualObject.shape && actualObject.shape.type === 'UmlClassifier') || (actualObject.parentId &&\n this.nameTable[actualObject.parentId] && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier')) {\n update = true;\n updateConnector = true;\n }\n if (node.ports !== undefined) {\n for (var _b = 0, _c = Object.keys(node.ports); _b < _c.length; _b++) {\n var key = _c[_b];\n var index = Number(key);\n update = true;\n var changedObject = node.ports[\"\" + key];\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n this.updatePort(changedObject, actualPort, actualObject.wrapper);\n updateConnector = true;\n }\n }\n if (node.annotation !== undefined || node.annotations !== undefined || node.width !== undefined) {\n for (var _d = 0, _e = Object.keys(node.annotations || actualObject.annotations); _d < _e.length; _d++) {\n var key = _e[_d];\n var index = Number(key);\n update = true;\n var changedObject = void 0;\n if (node.annotation) {\n changedObject = node.annotation;\n }\n else {\n changedObject = node.annotations ? node.annotations[\"\" + key] : actualObject.annotations;\n }\n var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)];\n if (actualAnnotation) {\n var updateSize = actualObject.width ? true : false;\n this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject, updateSize);\n var swimLaneNode = this.nameTable[actualObject.parentId];\n if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane')) {\n var laneHeader = 'LaneHeaderParent';\n var phaseHeader = 'PhaseHeaderParent';\n if ((actualObject.isLane || actualObject.isPhase)) {\n var collection = actualObject.isLane ?\n swimLaneNode.shape.lanes : swimLaneNode.shape.phases;\n for (var j_2 = 0; j_2 < collection.length; j_2++) {\n if (collection[parseInt(j_2.toString(), 10)].id === (actualObject[\"\" + laneHeader] || actualObject[\"\" + phaseHeader])) {\n collection[parseInt(j_2.toString(), 10)].header.annotation.content = actualObject.annotations[0].content;\n collection[parseInt(j_2.toString(), 10)].header.annotation.style = actualObject.annotations[0].style;\n break;\n }\n }\n }\n }\n }\n }\n }\n if (node.expandIcon !== undefined || node.collapseIcon !== undefined || node.isExpanded !== undefined) {\n this.updateIcon(actualObject);\n this.updateDefaultLayoutIcons(actualObject);\n if (node.isExpanded !== undefined) {\n this.canExpand = true;\n //EJ2-844814 - Expand and collapse not working properly at runtime\n this.diagramActions |= DiagramAction.PreventIconsUpdate;\n this.commandHandler.expandNode(actualObject, this);\n this.diagramActions = this.diagramActions & ~DiagramAction.PreventIconsUpdate;\n }\n update = true;\n this.canExpand = false;\n }\n if (node.fixedUserHandles !== undefined) {\n var index = void 0;\n var changedObject = void 0;\n var actualfixedUserHandle = void 0;\n for (var _f = 0, _g = Object.keys(node.fixedUserHandles); _f < _g.length; _f++) {\n var key = _g[_f];\n index = Number(key);\n update = true;\n if (node.fixedUserHandles[parseInt(index.toString(), 10)]) {\n changedObject = node.fixedUserHandles[parseInt(index.toString(), 10)];\n }\n actualfixedUserHandle = actualObject.fixedUserHandles[parseInt(index.toString(), 10)];\n if (actualfixedUserHandle) {\n this.updateNodefixedUserHandle(changedObject, actualfixedUserHandle, actualObject.wrapper, actualObject);\n }\n }\n }\n if (node.tooltip !== undefined) {\n this.updateTooltip(actualObject, node);\n }\n if (update) {\n if (this.bpmnModule !== undefined && offsetChanged && !sizeChanged && !angleChanged && !this.sizeUndo) {\n // eslint-disable-next-line max-len\n this.updateBpmnAnnotationPosition(oldBpmnOffsetX, oldBpmnOffsetY, newBpmnOffsetX, newBpmnOffsetY, actualObject, actualObject.wrapper, actualObject.shape, actualObject.shape.shape === 'TextAnnotation');\n }\n if (this.checkSelectedItem(actualObject) && actualObject.wrapper.children[0] instanceof TextElement) {\n actualObject.wrapper.children[0].refreshTextElement();\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height), actualObject.id, this.onLoadImageSize.bind(this));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n this.updateObject(actualObject, oldObject, node);\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && !(this.diagramActions & DiagramAction.ToolAction)) {\n updateHeaderMaxWidth(this, actualObject);\n var grid = actualObject.wrapper.children[0];\n var shape = actualObject.shape;\n var column = grid.columnDefinitions().length;\n if (shape.orientation === 'Horizontal') {\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n updatePhaseMaxWidth(actualObject, this, grid.rows[parseInt(index.toString(), 10)].cells[column - 1], column - 1);\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n }\n if ((!(this.diagramActions & DiagramAction.ToolAction)) || (this.diagramActions & DiagramAction.UndoRedo)) {\n if (this.checkSelectedItem(actualObject)) {\n this.updateSelector();\n }\n }\n if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) {\n this.updateQuad(actualObject);\n // EJ2-57436 - Added the below code to check if node has parent id or not.\n // If node has parentId means then send the parent node to updatequad method to add the parent node in negative quadrant\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n var parentNode = this.nameTable[actualObject.parentId];\n this.updateQuad(parentNode);\n }\n }\n if (!isLayout) {\n // eslint-disable-next-line max-len\n this.commandHandler.connectorSegmentChange(actualObject, existingInnerBounds, (node.rotateAngle !== undefined) ? true : false);\n // if (updateConnector) {\n // this.updateConnectorEdges(actualObject);\n // }\n }\n else {\n if (actualObject && actualObject.visible && actualObject.outEdges) {\n this.updateIconVisibility(actualObject, (actualObject.outEdges.length === 0 ? false : true));\n }\n }\n if (this.bpmnModule !== undefined) {\n this.bpmnModule.updateDocks(actualObject, this);\n }\n if (!node.annotations || !actualObject.processId) {\n this.updateGroupOffset(actualObject);\n }\n // if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) { this.updateQuad(actualObject); }\n // EJ2-42005 - The parent of the actualObject is not measured and arranged when a node or connector is selected.\n // The condition restricts the measure and arrange of the actualObject whenever a node or connector is selected.\n // Commented @Dheepshiva\n // let objects: (NodeModel | ConnectorModel)[] = [];\n // objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n // if (objects.length === 0) {\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n var parent_6 = this.nameTable[actualObject.parentId];\n parent_6.wrapper.measure(new Size(parent_6.wrapper.width, actualObject.wrapper.height));\n parent_6.wrapper.arrange(parent_6.wrapper.desiredSize);\n parent_6.offsetX = parent_6.wrapper.offsetX;\n parent_6.offsetY = parent_6.wrapper.offsetY;\n }\n // }\n if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) {\n if (this.eventHandler.currentAction !== 'Drag') {\n this.updateGroupSize(actualObject);\n }\n if (actualObject.children) {\n this.updateGroupOffset(actualObject);\n }\n }\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && (this.diagramActions & DiagramAction.Render)) {\n var connectors = getConnectors(this, actualObject.wrapper.children[0], undefined, true);\n updateConnectorsProperties(connectors, this);\n }\n if (!this.preventNodesUpdate) {\n if (!canVitualize(this) || (canVitualize(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) {\n if (this.diagramActions & DiagramAction.PreventZIndexOnDragging) {\n this.updateDiagramObject(actualObject, true);\n }\n else {\n this.updateDiagramObject(actualObject);\n }\n }\n if (!isLayout && updateConnector) {\n if (this.lineRoutingModule && this.diagramActions && (this.constraints & DiagramConstraints.LineRouting) && actualObject.id !== 'helper') {\n if (!(this.diagramActions & DiagramAction.ToolAction)) {\n this.lineRoutingModule.renderVirtualRegion(this, true);\n }\n }\n else if (this.diagramActions && (this.constraints & DiagramConstraints.LineRouting) && actualObject.id !== 'helper') {\n console.warn('[WARNING] :: Module \"LineRouting\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.updateConnectorEdges(actualObject);\n if (actualObject.id !== 'helper' && !(this.diagramActions & DiagramAction.ToolAction)) {\n var objects = this.spatialSearch.findObjects(actualObject.wrapper.outerBounds);\n for (var i_4 = 0; i_4 < objects.length; i_4++) {\n var object = objects[parseInt(i_4.toString(), 10)];\n if (object instanceof Connector) {\n this.connectorPropertyChange(objects[parseInt(i_4.toString(), 10)], {}, {\n sourceID: object.sourceID,\n targetID: object.targetID,\n sourcePortID: object.sourcePortID,\n targetPortID: object.targetPortID,\n sourcePoint: object.sourcePoint,\n targetPoint: object.targetPoint\n });\n }\n }\n }\n }\n }\n if (actualObject.status !== 'New' && this.diagramActions) {\n actualObject.status = 'Update';\n }\n }\n if (!propertyChange) {\n var element = actualObject;\n var args = {\n element: element, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: oldObject, newValue: node\n };\n //Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n };\n //To update text annotation position while dragging the text annotation's parent node.\n Diagram.prototype.updateBpmnAnnotationPosition = function (oldX, oldY, newX, newY, node, wrapper, shape, isTextAnnotation) {\n var x = newX > oldX ? Math.abs(newX - oldX) : Math.abs(oldX - newX);\n var y = newY > oldY ? Math.abs(newY - oldY) : Math.abs(oldY - newY);\n var laneX;\n var laneY;\n if ((x === 0 && y === 0) || (Number.isNaN(x) && Number.isNaN(y))) {\n if (node.laneMargin) {\n laneX = node.margin.left - node.laneMargin.left;\n laneY = node.margin.top - node.laneMargin.top;\n }\n }\n var width = node.width;\n var height = node.height;\n var bounds = new Rect(0, 0, 0, 0);\n if (width !== 0 && height !== 0) {\n bounds = new Rect((newX !== 0 ? newX : node.offsetX) - width / 2, (newY !== 0 ? newY : node.offsetY) - height / 2, width, height);\n }\n //To update text annotation position\n if (isTextAnnotation) {\n var bpmnAnnotation = shape;\n var hasTarget = bpmnAnnotation.textAnnotation.textAnnotationTarget !== '' && this.nameTable[bpmnAnnotation.textAnnotation.textAnnotationTarget];\n var selectedNode = this.selectedItems.nodes ? this.selectedItems.nodes[0] : undefined;\n var isTextNodeSelected = selectedNode && selectedNode.shape && selectedNode.shape.shape === 'TextAnnotation';\n if (hasTarget) {\n //To check whether the text annotation inside the swimlane\n if (node.parentId === '' || isTextNodeSelected) {\n if (bpmnAnnotation.textAnnotation.textAnnotationDirection === 'Auto') {\n if (wrapper.children[0] instanceof Canvas && wrapper.children[0].children[0] instanceof PathElement) {\n var diagramCanvas = wrapper.children[0];\n var parentElement = document.getElementById(diagramCanvas.id + '_groupElement');\n var elementToRemove = document.getElementById(diagramCanvas.children[0].id + '_groupElement');\n parentElement.removeChild(elementToRemove);\n diagramCanvas.children.splice(0, 1);\n this.isProtectedOnChange = true;\n this.bpmnModule.setAnnotationPath(bounds, diagramCanvas, node, bpmnAnnotation, bpmnAnnotation.textAnnotation.textAnnotationDirection, this);\n this.isProtectedOnChange = false;\n }\n }\n }\n else {\n this.isPositionUndo = true;\n this.updateTextAnnotationInSwimlane(node, node);\n this.isPositionUndo = false;\n }\n }\n else { //To update text annotation connector source point.\n if (node.inEdges.length > 0) {\n var connectorID = node.inEdges[0];\n var connector = this.nameTable[\"\" + connectorID];\n if (connector && connector.isBpmnAnnotationConnector) {\n connector.sourcePoint =\n {\n x: newX > oldX ? connector.sourcePoint.x + x : connector.sourcePoint.x - x,\n y: newY > oldY ? connector.sourcePoint.y + y : connector.sourcePoint.y - y\n };\n }\n }\n }\n var newValue = { ports: [{ offset: node.ports[0].offset }] };\n //To update port offset of text annotation node\n this.nodePropertyChange(node, {}, newValue);\n }\n else {\n for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) {\n var id = _a[_i];\n var connector = this.nameTable[\"\" + id];\n if (connector && connector.isBpmnAnnotationConnector) {\n var targetNode = this.nameTable[connector.targetID];\n if (targetNode.shape.shape === 'TextAnnotation') {\n var oldValue = void 0;\n var newValue = void 0;\n if (laneX !== undefined && laneY !== undefined) {\n if (targetNode.parentId) {\n oldValue = { margin: { left: targetNode.margin.left, top: targetNode.margin.top } };\n targetNode.margin.left += laneX;\n targetNode.margin.top += laneY;\n newValue = { margin: { left: targetNode.margin.left, top: targetNode.margin.top } };\n }\n else {\n oldValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n targetNode.offsetX += laneX;\n targetNode.offsetY += laneY;\n newValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n }\n }\n else {\n oldValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n targetNode.offsetX = newX > oldX ? targetNode.offsetX + x : targetNode.offsetX - x;\n targetNode.offsetY = newY > oldY ? targetNode.offsetY + y : targetNode.offsetY - y;\n newValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n }\n this.nodePropertyChange(targetNode, oldValue, newValue);\n }\n }\n }\n }\n };\n Diagram.prototype.updatePorts = function (actualObject, flip) {\n if (actualObject && actualObject.ports.length > 0) {\n for (var _i = 0, _a = Object.keys(actualObject.ports); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n var portWrapper = this.getWrapper(actualObject.wrapper, actualPort.id);\n portWrapper = updatePortEdges(portWrapper, flip, actualPort);\n portWrapper.relativeMode = 'Point';\n portWrapper.measure(new Size(portWrapper.width, portWrapper.height));\n portWrapper.arrange(portWrapper.desiredSize);\n }\n }\n };\n Diagram.prototype.updateFlipOffset = function (element, diffX, diffY, flip) {\n if (element.hasChildren()) {\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (flip === 'Horizontal' || flip === 'Both') {\n child.flipOffset.x = child.flipOffset.x + diffX;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n child.flipOffset.y = child.flipOffset.y + diffY;\n }\n if (child instanceof Canvas || child instanceof Container) {\n this.updateFlipOffset(child, diffX, diffY, flip);\n }\n }\n }\n };\n Diagram.prototype.updateUMLActivity = function (changedProp, oldObject, actualObject, diagram) {\n var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined;\n if (sizeChanged) {\n var innerFinalNode = actualObject.wrapper.children[0].children[0];\n innerFinalNode.width = changedProp.width;\n innerFinalNode.height = changedProp.height;\n var outerFinalNode = actualObject.wrapper.children[0].children[1];\n outerFinalNode.width = changedProp.width / 1.5;\n outerFinalNode.height = changedProp.height / 1.5;\n }\n };\n Diagram.prototype.updateConnectorProperties = function (connector) {\n if (this.preventConnectorsUpdate) {\n var index = this.selectionConnectorsList.indexOf(connector);\n if (index === -1 && connector) {\n this.selectionConnectorsList.push(connector);\n }\n }\n else {\n var conn = {\n sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint, sourceID: connector.sourceID,\n targetID: connector.targetID, sourcePortID: connector.sourcePortID, targetPortID: connector.targetPortID\n };\n this.connectorPropertyChange(connector, {}, conn, undefined, true);\n }\n };\n /**\n * updateConnectorEdges method \\\n *\n * @returns { void } Updates the connectorPropertyChange of the diagram container .\\\n * @param {Node} actualObject - provide the actualObject value.\n *\n * @private\n */\n Diagram.prototype.updateConnectorEdges = function (actualObject) {\n if (actualObject.inEdges.length > 0) {\n for (var j = 0; j < actualObject.inEdges.length; j++) {\n this.updateConnectorProperties(this.nameTable[actualObject.inEdges[parseInt(j.toString(), 10)]]);\n }\n }\n if (actualObject.outEdges.length > 0) {\n for (var k = 0; k < actualObject.outEdges.length; k++) {\n this.updateConnectorProperties(this.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]]);\n }\n }\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n this.updateConnectorEdges(this.nameTable[actualObject.parentId]);\n }\n };\n /* tslint:enable */\n Diagram.prototype.connectorProprtyChangeExtend = function (actualObject, oldProp, newProp, updateSelector) {\n if (newProp.type !== undefined && newProp.type !== oldProp.type) {\n if (actualObject.segments.length > 0 && newProp.segments === undefined) {\n actualObject.segments = [];\n }\n }\n if ((newProp.shape !== undefined) && actualObject.shape !== undefined &&\n actualObject.shape && actualObject.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.updateBPMNConnector(actualObject, oldProp, newProp, this);\n }\n if (actualObject.constraints !== undefined) {\n this.updateThumbConstraints(this.selectedItems.connectors, this.selectedItems);\n return updateSelector = true;\n }\n return updateSelector;\n };\n /* tslint:disable */\n /**\n * Updates the connectorPropertyChange of the diagram container \\\n *\n * @returns { void } Updates the connectorPropertyChange of the diagram container .\\\n * @param {DiagramElement} actualObject - provide the actualObject value.\n * @param {boolean} oldProp - provide the oldProp value.\n * @param {boolean} newProp - provide the newProp value.\n * @param {boolean} disableBridging - provide the disableBridging value.\n * @param {boolean} propertyChange - provide the propertyChange value.\n *\n * @private\n */\n Diagram.prototype.connectorPropertyChange = function (actualObject, oldProp, newProp, disableBridging, propertyChange) {\n if (this.canEnableBlazorObject) {\n var node = cloneObject(actualObject);\n this.insertValue(node, false);\n }\n var existingBounds = actualObject.wrapper.bounds;\n var updateSelector = false;\n var points = [];\n updateSelector = this.connectorProprtyChangeExtend(actualObject, oldProp, newProp, updateSelector);\n var inPort;\n var outPort;\n var source;\n var target;\n if (newProp.visible !== undefined) {\n this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible);\n }\n if (newProp.sourcePoint !== undefined || newProp.targetPoint !== undefined\n || newProp.sourceID !== undefined || newProp.targetID !== undefined || newProp.targetPadding !== undefined ||\n newProp.sourcePortID !== undefined || newProp.targetPortID !== undefined || newProp.sourcePadding !== undefined ||\n newProp.type !== undefined || newProp.segments !== undefined || newProp.flip !== undefined) {\n if ((newProp.sourceID !== undefined && newProp.sourceID !== oldProp.sourceID) || newProp.sourcePortID) {\n var sourceNode = this.nameTable[actualObject.sourceID];\n outPort = this.findInOutConnectPorts(sourceNode, false);\n if (!sourceNode || (canOutConnect(sourceNode) || (actualObject.sourcePortID !== '' && canPortOutConnect(outPort)))) {\n actualObject.sourceWrapper = sourceNode ? this.getEndNodeWrapper(sourceNode, actualObject, true) : undefined;\n if (actualObject.sourcePortID && newProp.sourcePortID === undefined) {\n actualObject.sourcePortWrapper = sourceNode ? this.getWrapper(sourceNode.wrapper, actualObject.sourcePortID) : undefined;\n }\n this.removePortEdges(this.nameTable[oldProp.sourceID] || sourceNode, oldProp.sourcePortID || actualObject.sourcePortID, actualObject.id, false);\n }\n if (newProp.sourceID !== undefined && oldProp.sourceID !== undefined && oldProp.sourceID !== '') {\n var oldSource = this.nameTable[oldProp.sourceID];\n if (oldSource !== undefined && oldSource.outEdges && oldSource.outEdges.indexOf(actualObject.id) !== -1) {\n removeItem(oldSource.outEdges, actualObject.id);\n }\n }\n this.updateEdges(actualObject);\n }\n if (newProp.targetID !== undefined && newProp.targetID !== oldProp.targetID) {\n var targetNode = this.nameTable[newProp.targetID];\n inPort = this.findInOutConnectPorts(targetNode, true);\n if (!targetNode || (canInConnect(targetNode) || (actualObject.targetPortID !== '' && canPortInConnect(inPort)))) {\n actualObject.targetWrapper = targetNode ? this.getEndNodeWrapper(targetNode, actualObject, false) : undefined;\n if (actualObject.targetPortID && newProp.targetPortID === undefined) {\n actualObject.targetPortWrapper = targetNode ? this.getWrapper(targetNode.wrapper, actualObject.targetPortID) : undefined;\n }\n this.removePortEdges(this.nameTable[oldProp.targetID] || targetNode, oldProp.targetPortID || actualObject.targetPortID, actualObject.id, true);\n }\n if (oldProp !== undefined && oldProp.targetID !== undefined && oldProp.targetID !== '') {\n var oldTarget = this.nameTable[oldProp.targetID];\n if (oldTarget !== undefined && oldTarget.inEdges && oldTarget.inEdges.indexOf(actualObject.id) !== -1) {\n removeItem(oldTarget.inEdges, actualObject.id);\n }\n }\n this.updateEdges(actualObject);\n }\n if (newProp.sourcePortID !== undefined && newProp.sourcePortID !== oldProp.sourcePortID) {\n if (actualObject.sourceID && this.nameTable[actualObject.sourceID]) {\n source = this.nameTable[actualObject.sourceID].wrapper;\n }\n var sourceNode = this.nameTable[actualObject.sourceID];\n if (!sourceNode || (canOutConnect(sourceNode) || (actualObject.sourcePortID !== '' && canPortOutConnect(outPort)))) {\n actualObject.sourcePortWrapper = source ? this.getWrapper(source, newProp.sourcePortID) : undefined;\n }\n else if (actualObject.sourcePortID === '' && !canOutConnect(sourceNode)) {\n actualObject.sourcePortWrapper = undefined;\n }\n }\n if (newProp.targetPortID !== undefined && newProp.targetPortID !== oldProp.targetPortID) {\n var targetNode = this.nameTable[actualObject.targetID];\n if (actualObject.targetID && this.nameTable[actualObject.targetID]) {\n target = this.nameTable[actualObject.targetID].wrapper;\n }\n if (!targetNode || (canInConnect(targetNode) || (actualObject.targetPortID !== '' && canPortInConnect(inPort)))) {\n actualObject.targetPortWrapper = target ? this.getWrapper(target, newProp.targetPortID) : undefined;\n }\n else if (actualObject.targetPortID === '' && !canInConnect(targetNode)) {\n actualObject.targetPortWrapper = undefined;\n }\n }\n if (newProp.flip !== undefined) {\n actualObject.flip = newProp.flip;\n flipConnector(actualObject);\n }\n //EJ2-867479 - Performance issue in complexhierarchical layout due to linerouting injection\n if (actualObject.type === 'Orthogonal' && this.lineRoutingModule && this.diagramActions &&\n (this.constraints & DiagramConstraints.LineRouting) && !(this.diagramActions & DiagramAction.ToolAction) && this.layout.type !== 'ComplexHierarchicalTree') {\n this.lineRoutingModule.renderVirtualRegion(this, true);\n // EJ2-65876 - Exception occurs on line routing injection module\n if (actualObject.sourceID !== actualObject.targetID && actualObject.segments.length > 1) {\n //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module\n this.lineRoutingModule.refreshConnectorSegments(this, actualObject, false);\n }\n }\n points = this.getPoints(actualObject);\n } //Add prop change for zindex, alignments and margin\n if (newProp.style !== undefined) {\n updateStyle(newProp.style, actualObject.wrapper.children[0]);\n }\n if (points.length > 0 || newProp.sourceDecorator !== undefined || (newProp.targetDecorator !== undefined\n && (canMeasureDecoratorPath(Object.keys(newProp.targetDecorator)))) || newProp.cornerRadius !== undefined) {\n updateConnector(actualObject, points.length > 0 ? points : actualObject.intermediatePoints, this.diagramActions);\n if (newProp.type !== undefined) {\n updateSelector = true;\n }\n if (points.length > 0) {\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n // eslint-disable-next-line max-len\n this.updateConnectorAnnotation(actualObject);\n this.updateConnectorPort(actualObject);\n this.updateConnectorfixedUserHandles(actualObject);\n this.updateObject(actualObject, oldProp, newProp);\n } //work-around to update intersected connector bridging\n }\n if ((newProp.sourcePoint || newProp.targetPoint || newProp.segments)\n && this.diagramActions === DiagramAction.Render) {\n updateSelector = true;\n }\n if (actualObject.shape.type === 'Bpmn' && actualObject.shape.sequence === 'Default' && actualObject.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(actualObject);\n }\n // eslint-disable-next-line max-len\n if (!disableBridging) {\n this.updateBridging();\n }\n this.updateAnnotations(newProp, actualObject);\n this.updateConnectorPorts(newProp, actualObject);\n this.updatefixedUserHandle(newProp, actualObject);\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (existingBounds.equals(existingBounds, actualObject.wrapper.bounds) === false) {\n this.updateQuad(actualObject);\n if (this.eventHandler.currentAction !== 'Drag') {\n this.updateGroupSize(actualObject);\n }\n }\n if (updateSelector === true && this.checkSelectedItem(actualObject) && (!(this.diagramActions & DiagramAction.ToolAction)\n || (this.diagramActions & DiagramAction.UndoRedo))) {\n this.updateSelector();\n }\n if (!this.preventConnectorsUpdate) {\n if (!canVitualize(this) || (canVitualize(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) {\n if (this.diagramActions & DiagramAction.PreventZIndexOnDragging) {\n this.updateDiagramObject(actualObject, true);\n }\n else {\n this.updateDiagramObject(actualObject);\n }\n }\n }\n this.updateConnectorEdges(actualObject);\n if (this.diagramActions && actualObject.status !== 'New') {\n actualObject.status = 'Update';\n }\n this.triggerPropertyChange(propertyChange, actualObject, oldProp, newProp);\n };\n /* tslint:enable */\n /**\n * getDirection methods \\\n *\n * @returns { void } getDirection methods .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string} portId - provide the portId value.\n * @param {string} item - provide the item value.\n * @param {number} isInEdges - provide the isInEdges value.\n *\n * @private\n */\n Diagram.prototype.removePortEdges = function (node, portId, item, isInEdges) {\n if (node) {\n for (var i = 0; i < node.ports.length; i++) {\n var port = node.ports[parseInt(i.toString(), 10)];\n if (port.id === portId) {\n var portEdge = (isInEdges) ? port.inEdges : port.outEdges;\n removeItem(portEdge, item);\n }\n }\n }\n };\n //Removed blazor getpropertyChangeArgs method\n // Feature 826644: Support to add ports to the connector. Added below method to update connector ports\n // on connector property change.\n Diagram.prototype.updateConnectorPorts = function (newProp, actualObject) {\n if (newProp.ports !== undefined) {\n for (var _i = 0, _a = Object.keys(newProp.ports); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var changedObject = newProp.ports[\"\" + key];\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n this.updatePort(changedObject, actualPort, actualObject.wrapper, actualObject);\n }\n }\n };\n Diagram.prototype.triggerPropertyChange = function (propertyChange, actualObject, oldProp, newProp) {\n if (!propertyChange) {\n var element = actualObject;\n var args = {\n element: cloneBlazorObject(element), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp), newValue: cloneBlazorObject(newProp)\n };\n //Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n };\n Diagram.prototype.findInOutConnectPorts = function (node, isInconnect) {\n var port = {};\n if (node) {\n port = getInOutConnectPorts(node, isInconnect);\n }\n return port;\n };\n Diagram.prototype.getPoints = function (actualObject, points) {\n //let pts: PointModel[];\n //871158: Connector splitting point change with line distribution module injection\n var lineDistributionModule = (this.lineDistributionModule && this.layout.connectionPointOrigin === 'DifferentPoint') ? true : false;\n var pts = actualObject.getConnectorPoints(actualObject.type, points, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ?\n this.layout.orientation : undefined, lineDistributionModule);\n return pts;\n };\n /**\n * update the opacity and visibility for the node once the layout animation starts \\\n *\n * @returns { void } update the opacity and visibility for the node once the layout animation starts .\\\n * @param {Container} element - provide the element value.\n * @param {boolean} visible - provide the visible value.\n * @param {number} opacity - provide the opacity value.\n *\n * @private\n */\n Diagram.prototype.updateNodeProperty = function (element, visible, opacity) {\n if (visible === undefined) {\n this.updateElementVisibility(element, this.nameTable[element.id], visible);\n }\n else {\n element.style.opacity = opacity;\n for (var i = 0; i < element.children.length; i++) {\n if (element.children[parseInt(i.toString(), 10)] instanceof Container) {\n this.updateNodeProperty(element.children[parseInt(i.toString(), 10)], undefined, opacity);\n }\n element.children[parseInt(i.toString(), 10)].style.opacity = opacity;\n }\n }\n };\n /**\n * checkSelected Item for Connector \\\n *\n * @returns { void } checkSelected Item for Connector .\\\n * @param {Connector | Node} actualObject - provide the element value.\n *\n * @private\n */\n Diagram.prototype.checkSelectedItem = function (actualObject) {\n var selectorModel = this.selectedItems;\n var isSelected = false;\n var selItems = [];\n selItems = selItems.concat(selectorModel.nodes, selectorModel.connectors);\n if (selItems.length > 0) {\n if (actualObject.id === selItems[selItems.length - 1].id) {\n isSelected = true;\n }\n }\n return isSelected;\n };\n /**\n * Updates the visibility of the diagram container \\\n *\n * @returns { void } Updates the visibility of the diagram container .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {boolean} visible - provide the target value.\n *\n * @private\n */\n Diagram.prototype.updateDiagramContainerVisibility = function (element, visible) {\n if (element instanceof Container) {\n for (var i = 0; i < element.children.length; i++) {\n this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible);\n }\n }\n element.visible = visible;\n };\n /**\n * Updates the visibility of the node/connector \\\n *\n * @returns { void } Updates the visibility of the node/connector .\\\n * @param {Container} element - provide the element value.\n * @param {Connector | Node} obj - provide the obj value.\n * @param {boolean} visible - provide the visible value.\n *\n * @private\n */\n Diagram.prototype.updateElementVisibility = function (element, obj, visible) {\n if (visible !== undefined) {\n element.visible = visible;\n if (obj instanceof Node) {\n //content\n if (!obj.children) {\n element.children[0].visible = visible;\n this.updateDiagramContainerVisibility(element.children[0], visible);\n if (obj.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.updateElementVisibility(obj, visible, this);\n }\n }\n else {\n for (var _i = 0, _a = obj.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.updateElementVisibility(this.nameTable[\"\" + child].wrapper, this.nameTable[\"\" + child], visible);\n }\n }\n //ports\n if (obj.ports) {\n for (var _b = 0, _c = obj.ports; _b < _c.length; _b++) {\n var port = _c[_b];\n if (port.visibility & PortVisibility.Visible) {\n var wrapper = this.getWrapper(element, port.id);\n wrapper.visible = visible;\n }\n }\n }\n if (obj.annotations) {\n for (var _d = 0, _e = obj.annotations; _d < _e.length; _d++) {\n var annotation = _e[_d];\n var wrapper = this.getWrapper(element, annotation.id);\n if (visible) {\n wrapper.visible = wrapper.annotationVisibility === 'Visible' ? true : false;\n }\n else {\n wrapper.visible = visible;\n }\n }\n }\n }\n else {\n //path and decorators\n for (var i = 0; i < 3; i++) {\n element.children[parseInt(i.toString(), 10)].visible = visible;\n }\n }\n if (obj.annotations) {\n //annotations\n for (var _f = 0, _g = obj.annotations; _f < _g.length; _f++) {\n var annotation = _g[_f];\n var wrapper = this.getWrapper(element, annotation.id);\n //Bug 855273: Annotation visible property is not working while changing node visibility at runtime.\n if (visible) {\n wrapper.visible = wrapper.annotationVisibility === 'Visible' ? true : false;\n }\n else {\n wrapper.visible = visible;\n }\n }\n }\n if (obj.expandIcon || obj.collapseIcon) {\n var wrapper = this.getWrapper(element, 'icon_content');\n if (wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n wrapper.children[parseInt(i.toString(), 10)].visible = visible;\n }\n wrapper.visible = visible;\n }\n if (obj && obj.visible && obj.outEdges) {\n this.updateIconVisibility(obj, (obj.outEdges.length === 0 ? false : true));\n }\n }\n if (visible === false) {\n this.unSelect(this.nameTable[element.id]);\n }\n if ((obj instanceof Node && !this.preventNodesUpdate) || (obj instanceof Connector && !this.preventConnectorsUpdate)) {\n //Avoid calling updateDiagramObject method during rendering\n if (this.diagramActions) {\n this.updateDiagramObject(this.nameTable[element.id], undefined, true);\n }\n }\n }\n };\n Diagram.prototype.updateAnnotations = function (newProp, actualObject) {\n if (newProp.annotations !== undefined) {\n for (var _i = 0, _a = Object.keys(newProp.annotations); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var changedObject = newProp.annotations[\"\" + key];\n var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)];\n this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject);\n }\n }\n };\n Diagram.prototype.updatefixedUserHandle = function (newProp, actualObject) {\n if (newProp.fixedUserHandles !== undefined) {\n var index = void 0;\n var changedObject = void 0;\n var actualAnnotation = void 0;\n for (var _i = 0, _a = Object.keys(newProp.fixedUserHandles); _i < _a.length; _i++) {\n var key = _a[_i];\n index = Number(key);\n changedObject = newProp.fixedUserHandles[\"\" + key];\n actualAnnotation = actualObject.fixedUserHandles[parseInt(index.toString(), 10)];\n this.updateConnectorfixedUserHandle(changedObject, actualAnnotation, actualObject.wrapper, actualObject);\n }\n }\n };\n /**\n * updateConnectorfixedUserHandle method \\\n *\n * @returns { void } updateConnectorfixedUserHandle method .\\\n * @param {ConnectorFixedUserHandleModel} changedObject - provide the changedObject value.\n * @param {ConnectorFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value.\n * @param {Container} nodes - provide the nodes value.\n * @param {Object} actualObject - provide the actualObject value.\n * @param {boolean} canUpdateSize - provide the canUpdateSize value.\n *\n * @private\n */\n Diagram.prototype.updateConnectorfixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject, canUpdateSize) {\n var isMeasure = false;\n var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id);\n if (fixedUserHandleWrapper !== undefined) {\n if (changedObject.width !== undefined) {\n fixedUserHandleWrapper.width = changedObject.width;\n isMeasure = true;\n }\n if (changedObject.height !== undefined) {\n fixedUserHandleWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (actualfixedUserHandle instanceof ConnectorFixedUserHandle &&\n (changedObject.offset !== undefined)) {\n actualObject.updateAnnotation(actualfixedUserHandle, actualObject.intermediatePoints, actualObject.wrapper.bounds, fixedUserHandleWrapper);\n }\n if ((actualfixedUserHandle instanceof ConnectorFixedUserHandle) && changedObject.displacement) {\n if (changedObject.displacement.x !== undefined ||\n changedObject.displacement.y !== undefined) {\n isMeasure = true;\n }\n }\n if (changedObject.fill !== undefined) {\n fixedUserHandleWrapper.style.fill = changedObject.fill;\n }\n if (changedObject.handleStrokeColor !== undefined) {\n fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor;\n }\n if (changedObject.handleStrokeWidth !== undefined) {\n fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth;\n }\n if (changedObject.visibility !== undefined) {\n fixedUserHandleWrapper.visible = changedObject.visibility;\n }\n if (changedObject.cornerRadius !== undefined) {\n fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius;\n }\n this.updatefixedUserHandleContent(changedObject, isMeasure, fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes);\n if (isMeasure === true) {\n fixedUserHandleWrapper.measure(new Size(fixedUserHandleWrapper.width, fixedUserHandleWrapper.height));\n fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize);\n }\n }\n };\n /**\n * updateAnnotation method \\\n *\n * @returns { void } updateAnnotation method .\\\n * @param {AnnotationModel} changedObject - provide the changedObject value.\n * @param {ShapeAnnotationModel} actualAnnotation - provide the actualAnnotation value.\n * @param {Container} nodes - provide the nodes value.\n * @param {Object} actualObject - provide the actualObject value.\n * @param {boolean} canUpdateSize - provide the canUpdateSize value.\n *\n * @private\n */\n Diagram.prototype.updateAnnotation = function (changedObject, actualAnnotation, nodes, actualObject, canUpdateSize) {\n var isMeasure = false;\n // eslint-disable-next-line max-len\n var annotationWrapper = this.getWrapper(nodes, actualAnnotation.id);\n if (annotationWrapper !== undefined) {\n if (changedObject.width !== undefined && changedObject.height !== undefined) {\n annotationWrapper.width = changedObject.width;\n annotationWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (changedObject.rotateAngle !== undefined) {\n annotationWrapper.rotateAngle = changedObject.rotateAngle;\n }\n if (canUpdateSize && !(annotationWrapper instanceof DiagramHtmlElement)) {\n annotationWrapper.refreshTextElement();\n }\n if (actualAnnotation instanceof PathAnnotation && changedObject.segmentAngle !== undefined) {\n annotationWrapper.rotateAngle = actualAnnotation.rotateAngle;\n }\n if ((changedObject).rotationReference !== undefined) {\n annotationWrapper.rotationReference = changedObject.rotationReference;\n }\n if (actualAnnotation instanceof ShapeAnnotation &&\n changedObject.offset !== undefined) {\n var offset = changedObject.offset;\n isMeasure = true;\n var offsetX = offset.x !== undefined ? offset.x :\n actualAnnotation.offset.x;\n var offsetY = offset.y !== undefined ? offset.y :\n actualAnnotation.offset.y;\n annotationWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n annotationWrapper.relativeMode = 'Point';\n }\n else if (actualAnnotation instanceof PathAnnotation &&\n (changedObject.offset !== undefined ||\n changedObject.segmentAngle !== undefined)) {\n actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper);\n }\n if ((actualAnnotation instanceof PathAnnotation) && changedObject.displacement) {\n if (changedObject.displacement.x !== undefined ||\n changedObject.displacement.y !== undefined) {\n isMeasure = true;\n actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper);\n }\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n annotationWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n annotationWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.left !== undefined) {\n annotationWrapper.margin.left = changedObject.margin.left;\n }\n if (changedObject.margin.right !== undefined) {\n annotationWrapper.margin.right = changedObject.margin.right;\n }\n }\n if (isMeasure || canUpdateSize) {\n annotationWrapper.width = (actualAnnotation.width || actualObject.width);\n if (actualAnnotation.template) {\n annotationWrapper.width = (annotationWrapper.width || annotationWrapper.actualSize.width);\n annotationWrapper.height = (actualAnnotation.height || actualObject.height ||\n annotationWrapper.actualSize.height);\n }\n }\n if (changedObject.horizontalAlignment !== undefined) {\n annotationWrapper.horizontalAlignment = changedObject.horizontalAlignment;\n isMeasure = true;\n }\n if (changedObject.verticalAlignment !== undefined) {\n annotationWrapper.verticalAlignment = changedObject.verticalAlignment;\n isMeasure = true;\n }\n if (changedObject.visibility !== undefined) {\n annotationWrapper.visible = (nodes.visible && changedObject.visibility) ? true : false;\n annotationWrapper.annotationVisibility = annotationWrapper.visible ? 'Visible' : 'Collapsed';\n }\n if (changedObject.constraints !== undefined) {\n var updateSelector = false;\n if ((annotationWrapper.constraints & AnnotationConstraints.Select) &&\n (!(changedObject.constraints & AnnotationConstraints.Select)) &&\n isSelected(this, actualObject, false, annotationWrapper)) {\n //updateSelector = true;\n }\n annotationWrapper.constraints = changedObject.constraints;\n if (updateSelector) {\n this.clearSelection();\n }\n }\n if (changedObject.style !== undefined) {\n updateStyle(changedObject.style, annotationWrapper);\n }\n if (changedObject.hyperlink !== undefined) {\n updateHyperlink(changedObject.hyperlink, annotationWrapper, actualAnnotation);\n }\n this.updateAnnotationContent(changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes);\n if (isMeasure === true) {\n annotationWrapper.measure(new Size(annotationWrapper.width, annotationWrapper.height));\n annotationWrapper.arrange(annotationWrapper.desiredSize);\n }\n if (!(annotationWrapper instanceof DiagramHtmlElement)) {\n annotationWrapper.refreshTextElement();\n }\n // this.refresh(); this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.updatefixedUserHandleContent = function (changedObject, isMeasure, fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes) {\n if (changedObject !== undefined) {\n this.updateConnectorfixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes);\n }\n };\n Diagram.prototype.updateConnectorfixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(fixedUserHandleWrapper.id + '_groupElement', elementId);\n removeElement(fixedUserHandleWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Connector) {\n var canvas = actualObject.wrapper;\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n fixedUserHandleWrapper =\n actualObject.getFixedUserHandle(actualObject.fixedUserHandles[actualObject.fixedUserHandles.length - 1], actualObject.intermediatePoints, bounds, undefined, undefined);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, fixedUserHandleWrapper);\n }\n }\n };\n Diagram.prototype.updateAnnotationContent = function (changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes) {\n if (changedObject.content !== undefined) {\n if (annotationWrapper) {\n isMeasure = true;\n if (actualObject.shape.type === 'UmlActivity' &&\n ((!isBlazor() && actualObject.shape.shape === 'StructuredNode'))) {\n annotationWrapper.content = '<<' + changedObject.content + '>>';\n }\n else {\n annotationWrapper.content = changedObject.content;\n }\n }\n if (annotationWrapper instanceof DiagramHtmlElement) {\n this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes);\n }\n }\n if (changedObject.template !== undefined) {\n annotationWrapper.content = changedObject.template;\n this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes);\n }\n };\n Diagram.prototype.updateAnnotationWrapper = function (annotationWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(annotationWrapper.id + '_groupElement', elementId);\n removeElement(annotationWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Node) {\n annotationWrapper =\n actualObject.initAnnotationWrapper(actualAnnotation, this.element.id);\n }\n else if (actualObject instanceof Connector) {\n var canvas = actualObject.wrapper;\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n annotationWrapper =\n actualObject.getAnnotationElement(actualObject.annotations[actualObject.annotations.length - 1], actualObject.intermediatePoints, bounds, this.getDescription, this.element.id);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (annotationWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, annotationWrapper);\n }\n }\n };\n /**\n * updateNodefixedUserHandle method \\\n *\n * @returns { void } updateNodefixedUserHandle method .\\\n * @param {NodeFixedUserHandleModel} changedObject - provide the changedObject value.\n * @param {NodeFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value.\n * @param {Container} nodes - provide the changedObject value.\n * @param {Object} actualObject - provide the changedObject value.\n *\n * @private\n */\n Diagram.prototype.updateNodefixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject) {\n //let fixedUserHandleWrapper: Canvas;\n var isMeasure = false;\n var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id);\n if (fixedUserHandleWrapper !== undefined) {\n if (changedObject.width !== undefined) {\n fixedUserHandleWrapper.actualSize.width = changedObject.width;\n isMeasure = true;\n }\n if (changedObject.height !== undefined) {\n fixedUserHandleWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (actualfixedUserHandle instanceof NodeFixedUserHandle &&\n changedObject.offset !== undefined) {\n var offset = changedObject.offset;\n isMeasure = true;\n var offsetX = offset.x !== undefined ? offset.x :\n actualfixedUserHandle.offset.x;\n var offsetY = offset.y !== undefined ? offset.y :\n actualfixedUserHandle.offset.y;\n fixedUserHandleWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n fixedUserHandleWrapper.relativeMode = 'Point';\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n fixedUserHandleWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n fixedUserHandleWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.left !== undefined) {\n fixedUserHandleWrapper.margin.left = changedObject.margin.left;\n }\n if (changedObject.margin.right !== undefined) {\n fixedUserHandleWrapper.margin.right = changedObject.margin.right;\n }\n }\n if (changedObject.visibility !== undefined) {\n fixedUserHandleWrapper.visible = changedObject.visibility;\n }\n if (changedObject.fill !== undefined) {\n fixedUserHandleWrapper.style.fill = changedObject.fill;\n }\n if (changedObject.handleStrokeColor !== undefined) {\n fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor;\n }\n if (changedObject.handleStrokeWidth !== undefined) {\n fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth;\n }\n if (changedObject.cornerRadius !== undefined) {\n fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius;\n }\n this.updatefixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes);\n if (isMeasure === true) {\n fixedUserHandleWrapper.measure(new Size(fixedUserHandleWrapper.width, fixedUserHandleWrapper.height));\n fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize);\n }\n }\n };\n Diagram.prototype.updatefixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(fixedUserHandleWrapper.id + '_groupElement', elementId);\n removeElement(fixedUserHandleWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Node) {\n fixedUserHandleWrapper = actualObject.initFixedUserHandles(actualAnnotation, undefined, undefined);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, fixedUserHandleWrapper);\n }\n }\n };\n /**\n * updatePort method \\\n *\n * @returns { void } updatePort method .\\\n * @param {PointPortModel} changedObject - provide the changedObject value.\n * @param {PointPortModel} actualPort - provide the changedObject value.\n * @param {Container} nodes - provide the changedObject value.\n * @param {Connector} actualObject - The actual connector object to be used.\n * @private\n */\n Diagram.prototype.updatePort = function (changedObject, actualPort, nodes, actualObject) {\n var isMeasure = false;\n var portWrapper = this.getWrapper(nodes, actualPort.id);\n if (portWrapper !== undefined) {\n if (changedObject.offset !== undefined) {\n isMeasure = true;\n if (!actualObject) {\n var offsetX = changedObject.offset.x !== undefined ? changedObject.offset.x :\n actualPort.offset.x;\n var offsetY = changedObject.offset.y !== undefined ? changedObject.offset.y :\n actualPort.offset.y;\n portWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n portWrapper.relativeMode = 'Point';\n }\n else {\n if (changedObject.offset !== undefined) {\n actualObject.updateAnnotation(actualPort, actualObject.intermediatePoints, actualObject.wrapper.bounds, portWrapper);\n }\n }\n }\n if (changedObject.width !== undefined) {\n isMeasure = true;\n portWrapper.width = changedObject.width;\n }\n if (changedObject.height !== undefined) {\n isMeasure = true;\n portWrapper.height = changedObject.height;\n }\n if (changedObject.connectionDirection !== undefined) {\n portWrapper.connectionDirection = changedObject.connectionDirection;\n }\n if (changedObject.visibility !== undefined) {\n portWrapper.visible = (nodes.visible && checkPortRestriction(actualPort, PortVisibility.Visible)) ? true : false;\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n portWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n portWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.right !== undefined) {\n portWrapper.margin.right = changedObject.margin.right;\n }\n if (changedObject.margin.left !== undefined) {\n portWrapper.margin.left = changedObject.margin.left;\n }\n }\n if (changedObject.horizontalAlignment !== undefined) {\n isMeasure = true;\n portWrapper.horizontalAlignment = changedObject.horizontalAlignment;\n }\n if (changedObject.verticalAlignment !== undefined) {\n isMeasure = true;\n portWrapper.verticalAlignment = changedObject.verticalAlignment;\n }\n if (changedObject.style !== undefined) {\n if (changedObject.style.fill !== undefined) {\n portWrapper.style.fill = changedObject.style.fill;\n }\n if (changedObject.style.opacity !== undefined) {\n portWrapper.style.opacity = changedObject.style.opacity;\n }\n if (changedObject.style.strokeColor !== undefined) {\n portWrapper.style.strokeColor = changedObject.style.strokeColor;\n }\n if (changedObject.style.strokeWidth !== undefined) {\n portWrapper.style.strokeWidth = changedObject.style.strokeWidth;\n }\n if (changedObject.style.strokeDashArray !== undefined) {\n portWrapper.style.strokeDashArray = changedObject.style.strokeDashArray;\n }\n }\n if (changedObject.shape !== undefined) {\n if (portWrapper) {\n var pathdata = getPortShape(changedObject.shape);\n portWrapper.data = pathdata;\n portWrapper.canMeasurePath = true;\n }\n }\n if (changedObject.pathData !== undefined) {\n portWrapper.data = String(changedObject.pathData);\n isMeasure = true;\n }\n if (isMeasure === true) {\n portWrapper.measure(new Size(portWrapper.width, portWrapper.height));\n portWrapper.arrange(portWrapper.desiredSize);\n }\n //this.refresh(); this.refreshDiagramLayer();\n }\n };\n /**\n * updateIcon method \\\n *\n * @returns { void } updateIcon method .\\\n * @param {Node} actualObject - provide the obj value.\n *\n * @private\n */\n Diagram.prototype.updateIcon = function (actualObject) {\n var iconContainer = this.getWrapper(actualObject.wrapper, 'icon_content');\n var diagramId = (this.diagramActions & DiagramAction.Render) ? this.element.id : undefined;\n if (iconContainer) {\n if (this.mode === 'SVG') {\n var icon = getDiagramElement(actualObject.wrapper.id + '_icon_content', diagramId);\n if (icon) {\n var iconRect = getDiagramElement(icon.id + '_rect', diagramId);\n var iconShape = getDiagramElement(icon.id + '_shape', diagramId);\n var nativeContent = getDiagramElement(iconShape.id + '_native_element', diagramId);\n if (nativeContent) {\n nativeContent.parentNode.removeChild(nativeContent);\n }\n iconShape.parentNode.removeChild(iconShape);\n iconRect.parentNode.removeChild(iconRect);\n icon.parentNode.removeChild(icon);\n }\n }\n var index = actualObject.wrapper.children.indexOf(iconContainer);\n actualObject.wrapper.children.splice(index, 1);\n }\n var portContainer = this.getPortContainer(actualObject);\n actualObject.initIcons(this.getDescription, this.layout, portContainer, this.element.id);\n };\n Diagram.prototype.getPortContainer = function (actualObject) {\n if (actualObject.children) {\n for (var i = 0; i < actualObject.wrapper.children.length; i++) {\n if (actualObject.wrapper.children[parseInt(i.toString(), 10)].id === actualObject.id + 'group_container') {\n return actualObject.wrapper.children[parseInt(i.toString(), 10)];\n }\n }\n }\n return actualObject.wrapper;\n };\n Diagram.prototype.updateTooltip = function (actualObject, node) {\n if (node.tooltip.content !== undefined) {\n actualObject.tooltip.content = node.tooltip.content;\n }\n if (node.tooltip.position !== undefined) {\n actualObject.tooltip.position = node.tooltip.position;\n }\n if (node.tooltip.height !== undefined) {\n actualObject.tooltip.height = node.tooltip.height;\n }\n if (node.tooltip.width !== undefined) {\n actualObject.tooltip.width = node.tooltip.width;\n }\n if (node.tooltip.showTipPointer !== undefined) {\n actualObject.tooltip.showTipPointer = node.tooltip.showTipPointer;\n }\n if (node.tooltip.relativeMode !== undefined) {\n actualObject.tooltip.relativeMode = node.tooltip.relativeMode;\n }\n };\n /**\n * updateQuad method \\\n *\n * @returns { void } updateQuad method .\\\n * @param {IElement} obj - provide the obj value.\n *\n * @private\n */\n Diagram.prototype.updateQuad = function (obj) {\n var modified = this.spatialSearch.updateQuad(obj.wrapper);\n if (modified && !this.preventDiagramUpdate) {\n this.updatePage();\n }\n };\n /**\n * removeFromAQuad method \\\n *\n * @returns { void } removeFromAQuad method .\\\n * @param {IElement} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeFromAQuad = function (obj) {\n if (obj.children) {\n var child = void 0;\n var children = obj.children;\n for (var i = 0; i < children.length; i++) {\n child = this.nameTable[children[parseInt(i.toString(), 10)]];\n if (child) {\n this.removeFromAQuad(child);\n }\n }\n }\n this.spatialSearch.removeFromAQuad(obj.wrapper);\n var isSwimLane = obj.shape.type === 'SwimLane' ? true : false;\n var modified = this.spatialSearch.updateBounds(obj.wrapper, isSwimLane);\n if (modified && !this.preventDiagramUpdate) {\n this.updatePage();\n }\n };\n /**\n * updateGroupSize method \\\n *\n * @returns { void } updateGroupSize method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n *\n * @private\n */\n Diagram.prototype.updateGroupSize = function (node) {\n var tempNode;\n if (node.parentId) {\n tempNode = this.nameTable[node.parentId];\n if (tempNode) {\n if (tempNode.parentId) {\n this.updateGroupSize(tempNode);\n }\n else {\n tempNode.wrapper.measure(new Size());\n tempNode.wrapper.arrange(tempNode.wrapper.desiredSize);\n this.updateGroupOffset(tempNode);\n this.updateDiagramObject(tempNode);\n }\n }\n }\n };\n Diagram.prototype.updatePage = function () {\n if ((this.diagramActions & DiagramAction.Render) &&\n !(this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.scroller.updateScrollOffsets();\n this.scroller.setSize();\n //updating overview\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n view.updateView(view);\n }\n }\n }\n if (this.diagramActions & DiagramAction.DragUsingMouse) {\n this.renderPageBreaks();\n // EJ2-826378 - Scroller not updated properly when dragging a node outside the viewport.\n // We need to update the scroller while dragging.\n // If pageSize is defined, we don't need to update the scrollbar.\n // If pageSize is not defined, we need to update the scrollbar because the content is treated as page bounds, and if the content goes beyond the viewport, the scrollbar should be updated.\n if (!(this.pageSettings.width && this.pageSettings.height) || this.pageSettings.multiplePage) {\n this.scroller.updateScrollOffsets();\n this.scroller.setSize();\n }\n }\n };\n /**\n * protectPropertyChange method \\\n *\n * @returns { void } protectPropertyChange method .\\\n * @param {boolean} enable - provide the enable value.\n *\n * @private\n */\n Diagram.prototype.protectPropertyChange = function (enable) {\n this.isProtectedOnChange = enable;\n };\n /**\n * getProtectPropertyChangeValue method \\\n *\n * @returns { boolean } getProtectPropertyChangeValue method .\\\n *\n * @private\n */\n Diagram.prototype.getProtectPropertyChangeValue = function () {\n return this.isProtectedOnChange;\n };\n /**\n * enableServerDataBinding method \\\n *\n * @returns { void } enableServerDataBinding method .\\\n * @param {boolean} enable - provide the node value.\n *\n * @private\n */\n Diagram.prototype.enableServerDataBinding = function (enable) {\n //Removed isBlazor code\n };\n /**\n * updateShadow method \\\n *\n * @returns { void } updateShadow method .\\\n * @param {ShadowModel} nodeShadow - provide the node value.\n * @param {ShadowModel} changedShadow - provide the Node value.\n *\n * @private\n */\n Diagram.prototype.updateShadow = function (nodeShadow, changedShadow) {\n if (changedShadow.angle !== undefined) {\n nodeShadow.angle = changedShadow.angle;\n }\n if (changedShadow.color !== undefined) {\n nodeShadow.color = changedShadow.color;\n }\n if (changedShadow.distance !== undefined) {\n nodeShadow.distance = changedShadow.distance;\n }\n if (changedShadow.opacity !== undefined) {\n nodeShadow.opacity = changedShadow.opacity;\n }\n };\n /**\n * updateMargin method \\\n *\n * @returns { void } updateMargin method .\\\n * @param {Node} node - provide the node value.\n * @param {Node} changes - provide the Node value.\n *\n * @private\n */\n Diagram.prototype.updateMargin = function (node, changes) {\n if (changes.margin.top !== undefined) {\n node.margin.top = changes.margin.top;\n }\n if (changes.margin.bottom !== undefined) {\n node.margin.bottom = changes.margin.bottom;\n }\n if (changes.margin.left !== undefined) {\n node.margin.left = changes.margin.left;\n }\n if (changes.margin.right !== undefined) {\n node.margin.right = changes.margin.right;\n }\n };\n Diagram.prototype.removePreviewChildren = function (preview) {\n if (preview.children && preview.children.length &&\n preview.shape && preview.shape.type === 'SwimLane') {\n for (var z = 0; z < preview.children.length; z++) {\n var previewChildId = preview.children[parseInt(z.toString(), 10)];\n var previewIndex_1 = this.nodes.indexOf(this.nameTable[\"\" + previewChildId]);\n if (previewIndex_1 >= 0) {\n this.nodes.splice(previewIndex_1, 1);\n }\n delete this.nameTable[\"\" + previewChildId];\n }\n var previewIndex = this.nodes.indexOf(this.nameTable[this.currentSymbol.id]);\n if (previewIndex >= 0) {\n this.nodes.splice(previewIndex, 1);\n }\n }\n };\n Diagram.prototype.selectDragedNode = function (newObj, args, selectedSymbol) {\n this.currentSymbol = newObj;\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n this.commandHandler.oldSelectedObjects = cloneSelectedObjects(this);\n this.commandHandler.select(newObj);\n // this.commandHandler.updateBlazorSelector();\n this.eventHandler.mouseDown(args.event);\n this.eventHandler.mouseMove(args.event, args);\n this.preventDiagramUpdate = false;\n this.updatePage();\n selectedSymbol.style.opacity = '0';\n };\n //property changes - end region\n /* tslint:disable */\n Diagram.prototype.initDroppables = function () {\n var _this = this;\n // initiates droppable event\n var childTable = {};\n var entryTable = {};\n var header;\n var lane;\n var selectedSymbols = 'selectedSymbols';\n this.droppable = new Droppable(this.element);\n var dragLeft = 5;\n // this.droppable.accept = '.e-dragclone';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.droppable.over = function (args) {\n //Bug 855292: Swimlane dragging from palette jumps out of viewport when multiple page is set as true.\n // Added below code to prevent the negative x value of swimlane bounds when multiple page and ruler is enabled to prevent swimlane jump.\n if (_this.rulerSettings.showRulers) {\n var vRuler = document.getElementById(_this.element.id + '_vRuler');\n var vRulerWidth = parseFloat(vRuler.style.width);\n dragLeft = vRulerWidth + 1;\n }\n //EJ2-59341- SelectionChange OldValue argument is null\n if (_this.previousSelectedObjects.length === 0 && !_this.currentSymbol) {\n _this.previousSelectedObjects = _this.commandHandler.getSelectedObject();\n }\n _this.commandHandler.PreventConnectorSplit = true;\n if (!_this.currentSymbol) {\n var dragDataHelper = null;\n if (!args.dragData && args.name === 'drag') {\n var helper = document.getElementsByClassName('e-dragclone')[0];\n if (helper) {\n dragDataHelper = helper;\n }\n }\n if (args.dragData || dragDataHelper) {\n var newObj = void 0;\n var isHorizontal = void 0;\n document.getElementById(_this.element.id + 'content').focus();\n var position = _this.eventHandler.getMousePosition(args.event);\n var clonedObject = void 0;\n var selectedSymbol = dragDataHelper || args.dragData.helper;\n var paletteId = selectedSymbol.getAttribute('paletteId');\n var nodeDragSize = void 0;\n var nodePreviewSize = void 0;\n var paletteDragSize = void 0;\n var preview = void 0;\n if (!paletteId && args.dragData) {\n var arg = {\n source: null, element: newObj, cancel: false,\n diagram: _this,\n dragData: args.dragData.draggedElement.ej2_instances[0].dragData,\n dragItem: newObj\n };\n _this.triggerEvent(DiagramEvent.dragEnter, arg);\n var newNode = void 0;\n var newConnector = void 0;\n // EJ2-61664 - Check whether dragItem is returned from dragEnter event or not.\n // If it does not returned means then we do not change the treeview object as node\n if (arg.dragItem) {\n if (arg.dragItem.sourcePoint && arg.dragItem.targetPoint) {\n newConnector = new Connector(_this, 'connectors', arg.dragItem, true);\n }\n else {\n newNode = new Node(_this, 'nodes', arg.dragItem, true);\n }\n newObj = newNode ? newNode : newConnector;\n _this.initObject(newObj, undefined, undefined, true);\n _this['enterObject'] = newObj;\n _this['enterTable'] = entryTable;\n if (newObj instanceof Node) {\n newNode.offsetX = position.x + 5 + (newNode.width) * newNode.pivot.x;\n newNode.offsetY = position.y + (newNode.height) * newNode.pivot.y;\n }\n else if (newObj instanceof Connector) {\n var newObjBounds = Rect.toBounds([newObj.sourcePoint, newObj.targetPoint]);\n var diffx = position.x - newObjBounds.left;\n var diffy = position.y - newObjBounds.top;\n newObj.sourcePoint.x += diffx;\n newObj.sourcePoint.y += diffy;\n newObj.targetPoint.x += diffx;\n newObj.targetPoint.y += diffy;\n }\n _this.preventDiagramUpdate = true;\n _this.currentSymbol = newObj;\n if (_this.mode !== 'SVG') {\n _this.refreshDiagramLayer();\n }\n _this.selectDragedNode(newObj, args, selectedSymbol);\n delete _this['enterObject'];\n delete _this['enterTable'];\n _this.droppable[\"\" + selectedSymbols] = selectedSymbol;\n _this.allowServerDataBinding = true;\n }\n }\n if (paletteId) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sourceElement = document.getElementById(paletteId).ej2_instances[0];\n var source = 'sourceElement';\n _this.droppable[\"\" + source] = sourceElement;\n var childtable = 'childTable';\n if (sourceElement) {\n var obj = sourceElement[\"\" + selectedSymbols];\n _this.allowServerDataBinding = false;\n clonedObject = cloneObject(sourceElement[\"\" + selectedSymbols]);\n childTable = sourceElement[\"\" + childtable];\n var wrapper = obj.wrapper.children[0].children[0];\n preview = getPreviewSize(sourceElement, clonedObject, wrapper);\n if (sourceElement[\"\" + selectedSymbols] instanceof Node) {\n if (obj.shape.shape === 'TextAnnotation') {\n // eslint-disable-next-line max-len\n clonedObject.offsetX = position.x + 11 + (preview.width) * clonedObject.pivot.x;\n // eslint-disable-next-line max-len\n clonedObject.offsetY = position.y + 11 + (preview.height) * clonedObject.pivot.y;\n }\n else {\n // eslint-disable-next-line max-len\n clonedObject.offsetX = position.x + 5 + (preview.width) * clonedObject.pivot.x;\n // eslint-disable-next-line max-len\n clonedObject.offsetY = position.y + (preview.height) * clonedObject.pivot.y;\n }\n var newNode = new Node(_this, 'nodes', clonedObject, true);\n if (newNode.shape.type === 'Bpmn' && newNode.shape.activity.subProcess.processes\n && newNode.shape.activity.subProcess.processes.length) {\n newNode.shape.activity.subProcess.processes = [];\n }\n nodeDragSize = newNode.dragSize;\n nodePreviewSize = newNode.previewSize;\n paletteDragSize = sourceElement['symbolDragSize'];\n var palettePreview = sourceElement['symbolPreview'];\n // eslint-disable-next-line max-len\n newNode.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || palettePreview.width || newNode.width;\n // eslint-disable-next-line max-len\n newNode.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || palettePreview.height || newNode.height;\n if (newNode.shape.type === 'SwimLane') {\n _this.diagramActions |= DiagramAction.PreventHistory;\n if (newNode.shape.isLane) {\n newNode.children = [];\n header = {\n id: 'header' + randomId()\n };\n if (newNode.shape.orientation === 'Horizontal') {\n header.width = newNode.shape.lanes[0].header.width;\n header.height = newNode.shape.lanes[0].height;\n }\n else {\n header.width = newNode.shape.lanes[0].width;\n header.height = newNode.shape.lanes[0].header.height;\n }\n header.style = newNode.shape.lanes[0].header.style;\n header.offsetX = position.x + dragLeft + header.width / 2;\n header.offsetY = position.y + header.height / 2;\n _this.diagramActions |= DiagramAction.PreventCollectionChangeOnDragOver;\n header = _this.add(header);\n lane = {\n id: 'body' + randomId()\n };\n if (newNode.shape.orientation === 'Horizontal') {\n lane.width = newNode.shape.lanes[0].width - header.width;\n lane.height = newNode.shape.lanes[0].height;\n // eslint-disable-next-line max-len\n lane.offsetX = position.x + dragLeft + (newNode.shape.lanes[0].header.width + (lane.width / 2));\n lane.offsetY = position.y + lane.height / 2;\n }\n else {\n lane.width = newNode.shape.lanes[0].width;\n lane.height = newNode.shape.lanes[0].height - header.height;\n lane.offsetX = position.x + dragLeft + lane.width / 2;\n // eslint-disable-next-line max-len\n lane.offsetY = position.y + (newNode.shape.lanes[0].header.height + (lane.height / 2));\n }\n lane.style = newNode.shape.lanes[0].style;\n lane = _this.add(lane);\n var group = {\n id: 'group' + randomId(),\n children: [header.id, lane.id]\n };\n group.shape = newNode.shape;\n group.width = newNode.shape.lanes[0].width;\n group.height = newNode.shape.lanes[0].height;\n group.previewSize = newNode.previewSize;\n group.dragSize = newNode.dragSize;\n group.addInfo = newNode.addInfo;\n newNode = _this.add(group);\n _this.diagramActions &= ~DiagramAction.PreventCollectionChangeOnDragOver;\n }\n _this.diagramActions &= ~DiagramAction.PreventHistory;\n }\n if (newNode.shape.isPhase) {\n isHorizontal = (newNode.shape.orientation === 'Horizontal') ? true : false;\n if (isHorizontal) {\n newNode.offsetX = position.x + dragLeft + (newNode.width || wrapper.actualSize.width) / 2;\n newNode.offsetY = position.y;\n newNode.shape.data =\n 'M' + 20 + ',' + (newNode.height / 2) + ' L' + (newNode.width - 20) + ',' +\n (newNode.height / 2) + 'z';\n newNode.height = 1;\n }\n else {\n newNode.offsetX = position.x + 5;\n newNode.offsetY = position.y + (newNode.height || wrapper.actualSize.height) / 2;\n newNode.shape.data =\n 'M' + (newNode.width / 2) + ',' + 20 + ' L' + (newNode.width / 2) +\n ',' + (newNode.height - 20) + 'z';\n newNode.width = 1;\n }\n }\n if (newNode.shape.type === 'UmlClassifier') {\n //When dragging a node from the palette to the diagram, set the children, width, and height values to undefined to avoid incorrect values.\n newNode.children = newNode.width = newNode.height = undefined;\n clonedObject.children = undefined;\n //An empty child type is added during drag enter for every node if no child types are specified in the palette.\n if (newNode.shape.classifier === 'Class') {\n if (newNode.shape.classShape.methods.length <= 0\n && newNode.shape.classShape.attributes.length <= 0) {\n newNode.shape.classShape.attributes = [\n { name: 'Name', type: 'Type', style: {} }\n ];\n }\n }\n if (newNode.shape.classifier === 'Enumeration') {\n if (newNode.shape.enumerationShape.members.length <= 0) {\n newNode.shape.enumerationShape.members = [\n {\n name: 'Name'\n }\n ];\n }\n }\n if (newNode.shape.classifier === 'Interface') {\n if (newNode.shape.interfaceShape.methods.length <= 0\n && newNode.shape.interfaceShape.attributes.length <= 0) {\n newNode.shape.interfaceShape.attributes = [\n { name: 'Name', type: 'Type', style: {} }\n ];\n }\n }\n }\n newObj = newNode;\n if (clonedObject.children) {\n var parentNode = clonedObject;\n var tempTable = {};\n entryTable = _this.getChildren(parentNode, tempTable, childTable);\n arrangeChild(parentNode, -parentNode.offsetX, -parentNode.offsetY, entryTable, true, _this);\n }\n }\n else if (sourceElement[\"\" + selectedSymbols] instanceof Connector) {\n newObj = new Connector(_this, 'connectors', clonedObject, true);\n var bounds = Rect.toBounds([newObj.sourcePoint, newObj.targetPoint]);\n var tx = position.x - bounds.left;\n var ty = position.y - bounds.top;\n newObj.sourcePoint.x += tx;\n newObj.sourcePoint.y += ty;\n newObj.targetPoint.x += tx;\n newObj.targetPoint.y += ty;\n }\n if (!newObj.shape.isLane) {\n newObj.id += randomId();\n }\n var arg = {\n source: sourceElement, element: newObj, cancel: false,\n diagram: _this, dragData: null, dragItem: newObj\n };\n //Removed isBlazor code\n _this['enterObject'] = newObj;\n _this['enterTable'] = entryTable;\n _this.triggerEvent(DiagramEvent.dragEnter, arg);\n if ((newObj instanceof Node) && newObj.shape.type === 'SwimLane' && newObj.shape.isLane) {\n var swimLaneObj = arg.element;\n var laneObj = swimLaneObj.shape.lanes[0];\n //let child1: NodeModel; let child2: NodeModel;\n isHorizontal = (swimLaneObj.shape.orientation === 'Horizontal') ? true : false;\n var child1 = _this.nameTable[newObj.children[0]];\n var child2 = _this.nameTable[newObj.children[1]];\n nodeDragSize = newObj.dragSize;\n nodePreviewSize = newObj.previewSize;\n paletteDragSize = sourceElement['symbolDragSize'];\n laneObj.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || laneObj.width;\n laneObj.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || laneObj.height;\n if (isHorizontal) {\n header.width = laneObj.header.width;\n header.height = laneObj.height;\n lane.width = laneObj.width - header.width;\n lane.height = laneObj.height;\n lane.offsetX = position.x + dragLeft + (laneObj.header.width + (child2.width / 2));\n lane.offsetY = position.y + child2.height / 2;\n }\n else {\n header.width = laneObj.width;\n header.height = laneObj.header.height;\n lane.width = laneObj.width;\n lane.height = laneObj.height - header.height;\n lane.offsetX = position.x + dragLeft + child2.width / 2;\n lane.offsetY = position.y + (laneObj.header.height + (child2.height / 2));\n }\n header.offsetX = position.x + dragLeft + child1.width / 2;\n header.offsetY = position.y + child1.height / 2;\n newObj.width = laneObj.width;\n newObj.height = laneObj.height;\n }\n if ((newObj instanceof Node) && newObj.shape.isPhase) {\n if (isHorizontal) {\n newObj.height = 1;\n }\n else {\n newObj.width = 1;\n }\n }\n if (!_this.activeLayer.lock && !arg.cancel) {\n _this.preventDiagramUpdate = true;\n if (newObj.children) {\n _this.findChild(newObj, entryTable);\n }\n _this.preventDiagramUpdate = true;\n if (newObj.zIndex !== Number.MIN_VALUE) {\n newObj.zIndex = Number.MIN_VALUE;\n }\n _this.initObject(newObj, undefined, undefined, true);\n if (_this.bpmnModule) {\n for (var i = 0; i < _this.bpmnModule.bpmnTextAnnotationConnector.length; i++) {\n if (_this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)].wrapper === null) {\n _this.initConnectors(_this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)], undefined, true);\n }\n }\n }\n _this.selectDragedNode(newObj, args, selectedSymbol);\n }\n delete _this['enterObject'];\n delete _this['enterTable'];\n }\n _this.droppable[\"\" + selectedSymbols] = selectedSymbol;\n _this.allowServerDataBinding = true;\n }\n }\n }\n else {\n if (args.event.touches && args.event.touches.length) {\n _this.eventHandler.mouseMove(args.event, args.event.touches);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.droppable.drop = function (args) { return __awaiter(_this, void 0, void 0, function () {\n var source, value, isPhase, orientation_2, isConnector, arg, id, clonedObject, nodeId, newObj, arg, clonedObject, id, selectedSymbols, draggableElement, i;\n return __generator(this, function (_a) {\n this.allowServerDataBinding = false;\n source = 'sourceElement';\n if (this.currentSymbol) {\n isPhase = false;\n isConnector = (this.currentSymbol instanceof Connector) ? true : false;\n if (args.event.touches) {\n this.eventHandler.mouseUp(args.event);\n }\n arg = {\n source: this.droppable[\"\" + source],\n element: this.currentSymbol,\n //EJ2-895314: Connector splits while dropping node on diagram, even after moving node away from connector highlighter\n target: this.eventHandler['hoverNode'] ||\n (this.findObjectsUnderMouse(this.eventHandler.getMousePosition(args.event))[0]) || this,\n cancel: false,\n position: { x: this.currentSymbol.wrapper.offsetX, y: this.currentSymbol.wrapper.offsetY }\n };\n // Removed isBlazor code\n this.commandHandler.PreventConnectorSplit = false;\n this.triggerEvent(DiagramEvent.drop, arg);\n id = 'id';\n clonedObject = cloneObject(this.currentSymbol);\n clonedObject['hasTarget'] = this.currentSymbol['hasTarget'];\n this.removeFromAQuad(this.currentSymbol);\n this.removeObjectsFromLayer(this.nameTable[this.currentSymbol.id]);\n this.removeElements(this.currentSymbol);\n //887625-UML class nodes cloned in diagram canvas while dragging nodes outside diagram page\n if ((this.currentSymbol.shape.isLane ||\n this.currentSymbol.shape.isPhase) || this.currentSymbol.shape.type === 'UmlClassifier') {\n this.removeChildInNodes(this.currentSymbol);\n }\n if (arg.cancel) {\n removeChildNodes(this.currentSymbol, this);\n }\n if (this.currentSymbol.shape.isPhase) {\n isPhase = true;\n orientation_2 = this.currentSymbol.shape.orientation;\n clonedObject.shape.phases = this.currentSymbol.shape.phases;\n }\n this.removePreviewChildren(this.currentSymbol);\n delete this.nameTable[this.currentSymbol.id];\n this.currentSymbol = null;\n this.protectPropertyChange(true);\n if (!arg.cancel) {\n this.startGroupAction();\n if (clonedObject && (clonedObject.shape.isLane || isPhase)) {\n if (isPhase) {\n clonedObject.shape.isPhase = isPhase;\n clonedObject.shape.orientation = orientation_2;\n }\n this.eventHandler.addSwimLaneObject(clonedObject);\n }\n //The following condition is designed to ensure that only UML nodes are added to the diagram during the drop operation\n if (clonedObject && clonedObject.shape.type === 'UmlClassifier' && !clonedObject.shape.relationship) {\n clonedObject.children = undefined;\n this.clearSelectorLayer();\n this.add(clonedObject);\n }\n if (clonedObject.shape.type === 'Bpmn' && clonedObject.shape.annotation\n && clonedObject['hasTarget']) {\n nodeId = clonedObject.shape.annotation.nodeId;\n clonedObject.shape.annotation.id = clonedObject.id;\n this.addTextAnnotation(clonedObject.shape.annotation, this.nameTable[\"\" + nodeId]);\n clonedObject.nodeId = '';\n }\n if (!clonedObject.shape.isLane && !isPhase && (clonedObject.type !== undefined || clonedObject.shape.type !== 'UmlClassifier')) {\n if (clonedObject.children) {\n this.addChildNodes(clonedObject);\n }\n //Bug 880814: Adding element to bpmn expanded subprocess located in swimlane throws an exception.\n // isTargetSubProcess is checked.\n if (arg.target && (arg.target instanceof Node) && !isConnector && checkParentAsContainer(this, arg.target)\n && canAllowDrop(arg.target) && !this.commandHandler.isTargetSubProcess(arg.target)) {\n addChildToContainer(this, arg.target, clonedObject);\n }\n else {\n // EJ2-62652 - Added below code to empty the segment collection if connector type is bezier\n if (clonedObject.type === 'Bezier' && clonedObject.segments.length > 0) {\n clonedObject.segments = [];\n }\n value = this.add(clonedObject, true);\n }\n //EJ2-864543 - Added symbols don't get correctly selected in MultipleSelect mode in Diagram\n if ((clonedObject || value) && (canSingleSelect(this) || canMultiSelect(this))) {\n this.select([this.nameTable[clonedObject[\"\" + id]]], false, this.previousSelectedObjects);\n }\n if (arg.target && arg.target instanceof Connector) {\n if (this.enableConnectorSplit === true) {\n if (this.nameTable[clonedObject[\"\" + id]] instanceof Node) {\n this.commandHandler.connectorSplit(this.nameTable[clonedObject[\"\" + id]], arg.target);\n this.commandHandler.PreventConnectorSplit = false;\n }\n }\n }\n }\n }\n else {\n this.clearSelectorLayer();\n }\n this.protectPropertyChange(false);\n newObj = this.nameTable[clonedObject[\"\" + id]];\n if (clonedObject['hasTarget']) {\n clonedObject.nodeId = clonedObject['hasTarget'];\n this.remove(clonedObject);\n }\n if (this.bpmnModule && newObj instanceof Node && clonedObject.processId) {\n newObj.processId = clonedObject.processId;\n this.bpmnModule.dropBPMNchild(this.nameTable[newObj.processId], newObj, this);\n }\n if (!arg.cancel) {\n this.endGroupAction();\n }\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n delete this.droppable[\"\" + source];\n }\n else {\n arg = {\n source: cloneBlazorObject(args.droppedElement),\n element: undefined,\n target: cloneBlazorObject(this.eventHandler['hoverNode'] || (this.eventHandler['lastObjectUnderMouse']) || this), cancel: false,\n position: undefined\n };\n //Removed is Blazor code.\n this.triggerEvent(DiagramEvent.drop, arg);\n clonedObject = void 0;\n id = 'id';\n }\n selectedSymbols = 'selectedSymbols';\n // eslint-disable-next-line max-len\n if (this.droppable[\"\" + selectedSymbols] && this.droppable[\"\" + selectedSymbols].parentNode) {\n remove(this.droppable[\"\" + selectedSymbols]);\n }\n else {\n draggableElement = document.getElementsByClassName('e-dragclone');\n for (i = 0; i < draggableElement.length; i++) {\n draggableElement[parseInt(i.toString(), 10)].remove();\n }\n }\n this.allowServerDataBinding = true;\n this.previousSelectedObjects = [];\n return [2 /*return*/];\n });\n }); };\n this.droppable.out = function (args) {\n // EJ2-57221 - Added the below code to check if we drag the node from symbol palette using touch or mouse.\n if (args.evt.type === 'touchmove') {\n _this.eventHandler.mouseLeave(args.evt);\n }\n if (_this.currentSymbol && (!_this.eventHandler.focus)) {\n _this.unSelect(_this.currentSymbol);\n _this.removeFromAQuad(_this.currentSymbol);\n if (_this.mode !== 'SVG' && _this.currentSymbol.shape.type === 'Native') {\n _this.removeElements(_this.currentSymbol);\n }\n _this.removeObjectsFromLayer(_this.nameTable[_this.currentSymbol.id]);\n if (_this.currentSymbol.shape && _this.currentSymbol.shape.shape === 'TextAnnotation') {\n var con = _this.nameTable[_this.currentSymbol.inEdges[0]];\n _this.removeObjectsFromLayer(_this.nameTable[con.id]);\n _this.removeFromAQuad(con);\n _this.removePreviewChildren(con);\n delete _this.nameTable[con.id];\n var index = _this.connectors.indexOf(con);\n _this.connectors.splice(index, 1);\n _this.removeElements(con);\n }\n _this.removePreviewChildren(_this.currentSymbol);\n delete _this.nameTable[_this.currentSymbol.id];\n var args_1 = {\n element: cloneBlazorObject(_this.currentSymbol),\n diagram: _this\n };\n //Removed is Blazor code\n _this.triggerEvent(DiagramEvent.dragLeave, args_1);\n if (_this.mode !== 'SVG') {\n _this.refreshDiagramLayer();\n }\n else {\n _this.removeElements(_this.currentSymbol);\n //EJ2-833020-To remove the child element from the group node while dragging the group node from palette\n //EJ2-842739- Error When Dragging Swimlane from Palette to Diagram and Exiting Without Dropping\n if (_this.currentSymbol.shape.type !== 'SwimLane' && _this.currentSymbol.children && _this.currentSymbol.children.length > 0) {\n for (var i = 0; i < _this.currentSymbol.children.length; i++) {\n var child = _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]];\n _this.removeElements(child);\n delete _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]];\n }\n }\n }\n _this.currentSymbol = null;\n var selectedSymbols_1 = 'selectedSymbols';\n _this.droppable[\"\" + selectedSymbols_1].style.opacity = '1';\n var source = 'sourceElement';\n delete _this.droppable[\"\" + source];\n _this.diagramRenderer.rendererActions =\n _this.removeConstraints(_this.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n if (_this.previousSelectedObject) {\n _this.select(_this.previousSelectedObject, _this.previousSelectedObject.length > 1 ? true : false);\n }\n _this.previousSelectedObject = null;\n }\n };\n };\n // Removed Blazor getBlazorDragLeaveEventArgs method\n Diagram.prototype.getDropEventArgs = function (arg) {\n if ((this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode'])) {\n var object = this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode'];\n // eslint-disable-next-line max-len\n arg.target = getObjectType(object) === Connector ? { connector: cloneBlazorObject(object) } : { node: cloneBlazorObject(object) };\n }\n else {\n arg.target.diagramId = this.element.id;\n }\n };\n Diagram.prototype.removeChildInNodes = function (node) {\n if (node) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n this.removeChildInNodes(this.nameTable[node.children[parseInt(i.toString(), 10)]]);\n }\n }\n var index = this.nodes.indexOf(node);\n if (index !== -1) {\n this.nodes.splice(index, 1);\n }\n }\n };\n Diagram.prototype.getBlazorDragEventArgs = function (args) {\n args = {\n // eslint-disable-next-line max-len\n source: cloneBlazorObject(args.source), element: getObjectType(args.element) === Connector ? { connector: cloneBlazorObject(args.element) }\n : { node: cloneBlazorObject(args.element) },\n cancel: args.cancel, diagramId: this.element.id\n };\n return args;\n };\n Diagram.prototype.findChild = function (node, childTable) {\n var group;\n var newNode;\n for (var i = 0; i < node.children.length; i++) {\n group = childTable[node.children[parseInt(i.toString(), 10)]];\n if (group) {\n if (group.children) {\n this.findChild(group, childTable);\n }\n group.id = group.id + randomId();\n childTable[group.id] = group;\n node.children[parseInt(i.toString(), 10)] = group.id;\n newNode = new Node(this, 'nodes', group, true);\n this.initObject(newNode, undefined, undefined, true);\n //this.add(group, true);\n }\n }\n };\n Diagram.prototype.getChildren = function (node, entryTable, childTable) {\n var temp;\n for (var i = 0; i < node.children.length; i++) {\n temp = (childTable[node.children[parseInt(i.toString(), 10)]]);\n if (temp) {\n if (temp.children) {\n entryTable = this.getChildren(temp, entryTable, childTable);\n }\n entryTable[temp.id] = cloneObject(temp);\n }\n }\n return entryTable;\n };\n Diagram.prototype.addChildNodes = function (node) {\n var temp;\n for (var i = 0; i < node.children.length; i++) {\n temp = (this.nameTable[node.children[parseInt(i.toString(), 10)]]);\n if (temp) {\n if (temp.children) {\n this.addChildNodes(temp);\n }\n this.add(temp, true);\n }\n }\n };\n Diagram.prototype.moveNode = function (node) {\n var currentLayer = this.commandHandler.getObjectLayer(node.id);\n var index = currentLayer.zIndex;\n var length = currentLayer.objects.length;\n var targetLayer;\n for (var i = 0; i < this.layers.length; i++) {\n if (index === this.layers[parseInt(i.toString(), 10)].zIndex) {\n targetLayer = this.layers[i + 1];\n }\n }\n if (length > 1) {\n // Bug 830365: Exception raised on adding group node in layers dynamically.\n // Added below code to check the group node and iterate its children in layer to find the last object in the layer.\n var num = 2;\n if (node.children && node.children.length > 0) {\n while (node.children.indexOf(currentLayer.objects[length - num]) > -1) {\n num++;\n }\n }\n this.commandHandler.moveSvgNode(node.id, currentLayer.objects[length - num]);\n this.commandHandler.moveSvgNode(currentLayer.objects[length - num], node.id);\n }\n else {\n if (targetLayer) {\n var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[0];\n if (targetObject) {\n this.commandHandler.moveSvgNode(node.id, targetObject);\n this.commandHandler.updateNativeNodeIndex(node.id, targetObject);\n }\n else {\n this.moveObjectsUp(node, currentLayer);\n }\n }\n else {\n this.moveObjectsUp(node, currentLayer);\n }\n }\n };\n /**\n * Moves the node or connector forward within the given layer. \\\n *\n * @returns { void } Moves the node or connector forward within the given layer.\\\n * @param {Node | Connector} node - The node or connector to be moved forward within the layer.\n * @param {LayerModel} currentLayer - representing the layer in which the node or connector should be moved.\n *\n */\n Diagram.prototype.moveObjectsUp = function (node, currentLayer) {\n var targetLayer;\n for (var i = this.layers.length - 1; i >= 0; i--) {\n targetLayer = this.layers[parseInt(i.toString(), 10)];\n if (currentLayer.id !== targetLayer.id) {\n // eslint-disable-next-line max-len\n var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[targetLayer.objects.length - 1];\n if (targetObject) {\n this.commandHandler.moveSvgNode(node.id, targetObject);\n this.commandHandler.moveSvgNode(targetObject, node.id);\n break;\n }\n }\n }\n };\n /**\n * Inserts a newly added element into the database. \\\n *\n * @returns { void } Inserts a newly added element into the database.\\\n * @param {Node | Connector} node - The node or connector to be inserted into the database.\n *\n */\n Diagram.prototype.insertData = function (node) {\n return this.crudOperation(node, 'create', this.getNewUpdateNodes('New'));\n };\n /**\n * Updates user-defined element properties in the existing database. \\\n *\n * @returns { void } Updates user-defined element properties in the existing database.\\\n * @param {Node | Connector} node - The source value representing the element to update.\n *\n */\n Diagram.prototype.updateData = function (node) {\n return this.crudOperation(node, 'update', this.getNewUpdateNodes('Update'));\n };\n /**\n * Removes the user-deleted element from the existing database.\\\n *\n * @returns { void } Removes the user-deleted element from the existing database.\\\n * @param {Node | Connector} node - The node or connector to be removed from the database.\n *\n */\n Diagram.prototype.removeData = function (node) {\n return this.crudOperation(node, 'destroy', this.getDeletedNodes());\n };\n Diagram.prototype.crudOperation = function (node, crud, getNodesCollection) {\n if (node) {\n var data = this.parameterMap(node, node instanceof Connector ? false : true);\n if (data) {\n // eslint-disable-next-line max-len\n var url = node instanceof Connector ? this.dataSourceSettings.connectionDataSource.crudAction[\"\" + crud] : this.dataSourceSettings.crudAction[\"\" + crud];\n this.raiseAjaxPost(JSON.stringify(data), url);\n }\n return data;\n }\n else {\n var newObjects = getNodesCollection;\n // eslint-disable-next-line max-len\n this.processCrudCollection(newObjects, this.dataSourceSettings.crudAction[\"\" + crud], this.dataSourceSettings.connectionDataSource.crudAction[\"\" + crud]);\n return newObjects;\n }\n };\n Diagram.prototype.processCrudCollection = function (newObjects, nodeCrudAction, connectorCrudAction) {\n if (newObjects.nodes) {\n var data = [];\n var i = void 0;\n for (i = 0; i < newObjects.nodes.length; i++) {\n data.push(this.parameterMap(newObjects.nodes[parseInt(i.toString(), 10)], true));\n }\n if (data && data.length > 0) {\n this.raiseAjaxPost(JSON.stringify(data), nodeCrudAction);\n }\n }\n if (newObjects.connectors) {\n var data = [];\n var i = void 0;\n for (i = 0; i < newObjects.connectors.length; i++) {\n data.push(this.parameterMap(newObjects.connectors[parseInt(i.toString(), 10)], false));\n }\n if (data && data.length > 0) {\n this.raiseAjaxPost(JSON.stringify(data), connectorCrudAction);\n }\n }\n };\n Diagram.prototype.parameterMap = function (object, isNode) {\n var mappingObj = {};\n var i;\n var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource;\n if (fields.id) {\n mappingObj[fields.id] = object.id;\n }\n if (fields.sourcePointX && fields.sourcePointY) {\n mappingObj[fields.sourcePointX] = object.sourcePoint.x;\n mappingObj[fields.sourcePointY] = object.sourcePoint.y;\n }\n if (fields.targetPointX && fields.targetPointY) {\n mappingObj[fields.targetPointX] = object.targetPoint.x;\n mappingObj[fields.targetPointY] = object.targetPoint.y;\n }\n if (fields.sourceID) {\n mappingObj[fields.sourceID] = object.sourceID;\n }\n if (fields.targetID) {\n mappingObj[fields.targetID] = object.targetID;\n }\n if (fields.crudAction && fields.crudAction.customFields && fields.crudAction.customFields.length > 0) {\n for (i = 0; i < fields.crudAction.customFields.length; i++) {\n mappingObj[fields.crudAction.customFields[parseInt(i.toString(), 10)]]\n = object[fields.crudAction.customFields[parseInt(i.toString(), 10)]];\n }\n }\n return mappingObj;\n };\n Diagram.prototype.getNewUpdateNodes = function (status) {\n var nodes = [];\n var connectors = [];\n // eslint-disable-next-line guard-for-in\n for (var name_1 in this.nameTable) {\n var node = this.nameTable[\"\" + name_1];\n if (node.status === status) {\n if (node && node instanceof Connector) {\n node.status = 'None';\n connectors.push(node);\n }\n else {\n node.status = 'None';\n nodes.push(node);\n }\n }\n }\n return { nodes: nodes, connectors: connectors };\n };\n Diagram.prototype.getDeletedNodes = function () {\n var nodes = [];\n var connectors = [];\n var i;\n for (i = 0; i < this.crudDeleteNodes.length; i++) {\n var node = this.crudDeleteNodes[parseInt(i.toString(), 10)];\n if (node && node.segments) {\n connectors.push(node);\n }\n else if (node) {\n nodes.push(node);\n }\n }\n this.crudDeleteNodes = [];\n return { nodes: nodes, connectors: connectors };\n };\n Diagram.prototype.raiseAjaxPost = function (value, url) {\n var callback = new Fetch(url, 'POST', 'application/json');\n var data = JSON.stringify(JSON.parse(value));\n callback.send(data).then();\n /* eslint-disable */\n callback.onSuccess = function (data) {\n };\n /* eslint-enable */\n };\n Diagram.prototype.getHiddenItems = function (args) {\n var hiddenItems = [];\n if (this.contextMenuModule) {\n this.contextMenuModule.hiddenItems = [];\n for (var _i = 0, _a = args.items; _i < _a.length; _i++) {\n var item = _a[_i];\n this.contextMenuModule.ensureItems(item, args.event);\n if (item.items && item.items.length) {\n for (var _b = 0, _c = item.items; _b < _c.length; _b++) {\n var newItem = _c[_b];\n this.contextMenuModule.ensureItems(newItem, args.event);\n }\n }\n }\n return this.contextMenuModule.hiddenItems;\n }\n return hiddenItems;\n };\n __decorate([\n Property('100%')\n ], Diagram.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], Diagram.prototype, \"enableConnectorSplit\", void 0);\n __decorate([\n Property('SVG')\n ], Diagram.prototype, \"mode\", void 0);\n __decorate([\n Property('100%')\n ], Diagram.prototype, \"height\", void 0);\n __decorate([\n Property('Circle')\n ], Diagram.prototype, \"segmentThumbShape\", void 0);\n __decorate([\n Property(10)\n ], Diagram.prototype, \"segmentThumbSize\", void 0);\n __decorate([\n Complex({}, ContextMenuSettings)\n ], Diagram.prototype, \"contextMenuSettings\", void 0);\n __decorate([\n Property(DiagramConstraints.Default)\n ], Diagram.prototype, \"constraints\", void 0);\n __decorate([\n Property(DiagramTools.Default)\n ], Diagram.prototype, \"tool\", void 0);\n __decorate([\n Property('Top')\n ], Diagram.prototype, \"bridgeDirection\", void 0);\n __decorate([\n Property('transparent')\n ], Diagram.prototype, \"backgroundColor\", void 0);\n __decorate([\n Complex({}, SnapSettings)\n ], Diagram.prototype, \"snapSettings\", void 0);\n __decorate([\n Complex({}, RulerSettings)\n ], Diagram.prototype, \"rulerSettings\", void 0);\n __decorate([\n Complex({}, PageSettings)\n ], Diagram.prototype, \"pageSettings\", void 0);\n __decorate([\n Complex({}, SerializationSettings)\n ], Diagram.prototype, \"serializationSettings\", void 0);\n __decorate([\n Collection([], Node)\n ], Diagram.prototype, \"nodes\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"drawingObject\", void 0);\n __decorate([\n Collection([], Connector)\n ], Diagram.prototype, \"connectors\", void 0);\n __decorate([\n Property([])\n ], Diagram.prototype, \"basicElements\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Diagram.prototype, \"tooltip\", void 0);\n __decorate([\n Complex({}, DataSource)\n ], Diagram.prototype, \"dataSourceSettings\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"addInfo\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"historyManager\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"nodeTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"annotationTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"userHandleTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"fixedUserHandleTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getNodeDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"nodeDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getConnectorDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"connectorDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"setNodeTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getDescription\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomProperty\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomTool\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomCursor\", void 0);\n __decorate([\n Collection([], CustomCursorAction)\n ], Diagram.prototype, \"customCursor\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"updateSelection\", void 0);\n __decorate([\n Complex({}, DiagramSettings)\n ], Diagram.prototype, \"diagramSettings\", void 0);\n __decorate([\n Complex({}, Selector)\n ], Diagram.prototype, \"selectedItems\", void 0);\n __decorate([\n Complex({}, ScrollSettings)\n ], Diagram.prototype, \"scrollSettings\", void 0);\n __decorate([\n Complex({}, Layout)\n ], Diagram.prototype, \"layout\", void 0);\n __decorate([\n Complex({}, CommandManager)\n ], Diagram.prototype, \"commandManager\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dataLoaded\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragOver\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"historyChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"historyStateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"doubleClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"textEdit\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"scrollChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseWheel\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"selectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"sizeChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"connectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"sourcePointChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"targetPointChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"propertyChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"positionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"keyUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"keyDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"animationComplete\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"rotateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"collectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"fixedUserHandleClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"segmentCollectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onImageLoad\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"expandStateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"load\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseOver\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"elementDraw\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuOpen\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuBeforeItemRender\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"commandExecute\", void 0);\n __decorate([\n Collection([], Layer)\n ], Diagram.prototype, \"layers\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"segmentChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"loaded\", void 0);\n return Diagram;\n}(Component));\nexport { Diagram };\n","/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable @typescript-eslint/no-this-alias */\nimport { Browser } from '@syncfusion/ej2-base';\nimport { CanvasRenderer } from './rendering/canvas-renderer';\nimport { DiagramRenderer } from './rendering/renderer';\nimport { Size } from './primitives/size';\nimport { SnapConstraints } from './enum/enum';\nimport { setAttributeHtml, setAttributeSvg, createHtmlElement } from './utility/dom-util';\nimport { Rect } from './primitives/rect';\nimport { createSvgElement, getHTMLLayer } from './utility/dom-util';\nimport { getDiagramLayerSvg } from './utility/dom-util';\nimport { checkBrowserInfo } from './utility/diagram-util';\nimport { DiagramHtmlElement } from './core/elements/html-element';\nimport { DiagramNativeElement } from './core/elements/native-element';\nimport { LinearGradient } from './core/appearance';\nvar storeFormat;\n/**\n * Print and Export Settings\n */\nvar PrintAndExport = /** @class */ (function () {\n function PrintAndExport(diagram) {\n var _this = this;\n this.printWindow = undefined;\n //833683 - Method for closing the newly opened print window.\n this.closePrintWindow = function () {\n if (_this.printWindow && !_this.printWindow.closed) {\n _this.printWindow.close();\n }\n };\n this.diagram = diagram;\n }\n /**\n * To Export the diagram\n *\n * @private\n */\n PrintAndExport.prototype.exportDiagram = function (options) {\n var fileType;\n var customBounds;\n var content;\n var content1 = '';\n var data = 'data';\n //let mode: string;\n var buffers = [];\n var margin = options.margin || {};\n var region = options && options.region ? options.region : 'Content';\n // isBlazor code removed\n var mode = options && options.mode ? options.mode : 'Download';\n var bounds = this.getDiagramBounds(region, options);\n if (options.bounds) {\n customBounds = true;\n bounds.x = options.bounds.x ? options.bounds.x : bounds.x;\n bounds.y = options.bounds.y ? options.bounds.y : bounds.y;\n bounds.width = options.bounds.width || bounds.width;\n bounds.height = options.bounds.height || bounds.height;\n }\n margin = {\n top: margin.top !== undefined ? margin.top : 25,\n bottom: margin.bottom !== undefined ? margin.bottom : 25,\n right: margin.right !== undefined ? margin.right : 25,\n left: margin.left !== undefined ? margin.left : 25\n };\n var nodes = this.diagram.nodes;\n if (region !== 'PageSettings') {\n bounds.x -= margin.left;\n bounds.y -= margin.top;\n bounds.width += margin.left + margin.right;\n bounds.height += margin.top + margin.bottom;\n }\n var fileName = options.fileName || 'diagram';\n if (options.format !== 'SVG') {\n data = this.setCanvas(options, bounds, margin, mode, customBounds, region, fileName);\n if (data !== null) {\n return data;\n }\n }\n else {\n fileType = options.format;\n options.bounds = bounds;\n options.margin = margin;\n var svg = content = this.diagramAsSvg(options, margin);\n if (mode === 'Data') {\n // isBlazor code removed\n return content;\n }\n var buffer = new XMLSerializer().serializeToString(svg);\n buffers.push(buffer);\n }\n if (mode === 'Download' && data !== null) {\n var browserInfo = void 0;\n // Ensure this for Safari\n // if (Browser.info.name === 'msie' && Number(Browser.info.version) < 10 || Browser.info.name === 'webkit') {\n // let info: string = Browser.info.name === 'webkit' ? 'Safari' : 'IE-9';\n // alert('Downloading option is not supported in ' + info + ', Please use the returned data');\n // return content;\n // } else {\n for (var b = 0; b < buffers.length; b++) {\n var blob = new Blob([buffers[parseInt(b.toString(), 10)]], { type: 'application/octet-stream' });\n if (Browser.info.name === 'msie') {\n window.navigator.msSaveOrOpenBlob(blob, fileName + '.' + fileType);\n }\n else {\n var pom = createHtmlElement('a', { 'download': fileName + '.' + fileType });\n var url = URL.createObjectURL(blob);\n pom.href = url;\n var e = document.createEvent('MouseEvents');\n e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n pom.dispatchEvent(e);\n }\n }\n }\n return null;\n };\n PrintAndExport.prototype.setCanvas = function (options, bounds, margin, mode, customBounds, region, fileName) {\n var content;\n options.bounds = bounds;\n options.region = region;\n var scaleX = 'scaleX';\n var scaleY = 'scaleY';\n var scaleOffsetX = 'scaleOffsetX';\n var scaleOffsetY = 'scaleOffsetY';\n this.setScaleValueforCanvas(options, bounds);\n var canvas = this.diagramAsCanvas({\n bounds: bounds, margin: margin, region: region, scaleX: options[\"\" + scaleX],\n scaleY: options[\"\" + scaleY], scaleOffsetX: options[\"\" + scaleOffsetX], scaleOffsetY: options[\"\" + scaleOffsetY]\n }, customBounds);\n var image;\n if (options.format === 'JPG') {\n image = content = storeFormat = canvas.toDataURL('image/jpeg');\n }\n else if (options.format === 'BMP') {\n image = content = storeFormat = canvas.toDataURL('image/bmp');\n }\n else {\n image = content = storeFormat = canvas.toDataURL();\n }\n if (mode === 'Data') {\n return content;\n }\n this.canvasMultiplePage(options, canvas, margin, image, fileName);\n return null;\n };\n PrintAndExport.prototype.canvasMultiplePage = function (options, canvas, margin, image, fileName) {\n var _this = this;\n var images = [];\n var imageData = image.substring(image.indexOf(':') + 1, image.indexOf(';'));\n var imageFormat = imageData.substring(imageData.indexOf('/') + 1);\n if (imageFormat === 'jpeg') {\n imageFormat = undefined;\n }\n else {\n imageFormat = imageFormat.toUpperCase();\n }\n var fileType = imageFormat || 'JPG';\n if (options.multiplePage) {\n options.pageHeight = options.pageHeight ? options.pageHeight : this.diagram.pageSettings.height;\n options.pageWidth = options.pageWidth ? options.pageWidth : this.diagram.pageSettings.width;\n options.pageHeight = options.pageHeight ? options.pageHeight : canvas.width;\n options.pageWidth = options.pageWidth ? options.pageWidth : canvas.height;\n margin = options.margin || {};\n if (options.pageOrientation) {\n if ((options.pageOrientation === 'Landscape' && options.pageHeight > options.pageWidth) ||\n options.pageOrientation === 'Portrait' && options.pageWidth > options.pageHeight) {\n var temp = options.pageWidth;\n options.pageWidth = options.pageHeight;\n options.pageHeight = temp;\n }\n }\n options.margin = {\n top: !isNaN(margin.top) ? margin.top : 0,\n bottom: !isNaN(margin.bottom) ? margin.bottom : 0,\n left: !isNaN(margin.left) ? margin.left : 0,\n right: !isNaN(margin.right) ? margin.right : 0\n };\n var attr = {\n 'id': this.diagram.element.id + '_printImage',\n 'src': image\n };\n var img_1 = createHtmlElement('img', attr);\n img_1.onload = function () {\n images = _this.getMultipleImage(img_1, options, true);\n _this.exportImage(images, fileName, fileType, image);\n };\n }\n else {\n images = [image];\n this.exportImage(images, fileName, fileType, image);\n }\n };\n PrintAndExport.prototype.exportImage = function (images, fileName, fileType, image) {\n var buffers = [];\n var length = (!(images instanceof HTMLElement)) ? images.length : 0;\n for (var g = 0; g < length; g++) {\n image = images[parseInt(g.toString(), 10)];\n image = image.replace(/^data:[a-z]*;,/, '');\n var image1 = image.split(',');\n var byteString = atob(image1[1]);\n var buffer = new ArrayBuffer(byteString.length);\n var intArray = new Uint8Array(buffer);\n for (var i = 0; i < byteString.length; i++) {\n intArray[parseInt(i.toString(), 10)] = byteString.charCodeAt(i);\n }\n buffers.push(buffer);\n }\n var _loop_1 = function (j) {\n var b = new Blob([buffers[parseInt(j.toString(), 10)]], { type: 'application/octet-stream' });\n if (Browser.info.name === 'msie') {\n window.navigator.msSaveOrOpenBlob(b, fileName + '.' + fileType);\n }\n else {\n var htmlElement_1 = createHtmlElement('a', { 'download': fileName + '.' + fileType });\n var urlLink = URL.createObjectURL(b);\n htmlElement_1.href = urlLink;\n var mouseEvent_1 = document.createEvent('MouseEvents');\n mouseEvent_1.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n setTimeout(function () {\n htmlElement_1.dispatchEvent(mouseEvent_1);\n }, ((j + 1) * 5));\n }\n };\n // Ensure this for safari\n // if (Browser.info.name === 'msie' && Number(Browser.info.version) < 10 || Browser.info.name === 'webkit') {\n // let browserInfo: string = Browser.info.name === 'webkit' ? 'Safari' : 'IE-9';\n // alert('Downloading option is not supported in ' + browserInfo + ', Please use the returned data');\n // return content;\n // } else {\n for (var j = 0; j < buffers.length; j++) {\n _loop_1(j);\n }\n };\n /** @private */\n PrintAndExport.prototype.getObjectsBound = function (options) {\n var nodes = this.diagram.nodes;\n var nodebounds;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (node.visible) {\n if (((options.format !== 'SVG' && !(node instanceof DiagramNativeElement) && !(node instanceof DiagramHtmlElement))\n || (options.format === 'SVG' && !(node instanceof DiagramHtmlElement)))) {\n if (!nodebounds) {\n nodebounds = node.wrapper.outerBounds;\n }\n else {\n nodebounds = nodebounds.uniteRect(node.wrapper.outerBounds);\n }\n }\n }\n }\n var connectors = this.diagram.connectors;\n for (var _a = 0, connectors_1 = connectors; _a < connectors_1.length; _a++) {\n var connector = connectors_1[_a];\n if (connector.visible) {\n if (!nodebounds) {\n nodebounds = connector.wrapper.outerBounds;\n }\n else {\n nodebounds = nodebounds.uniteRect(connector.wrapper.outerBounds);\n }\n }\n }\n return nodebounds || new Rect(0, 0, 0, 0);\n };\n /** @private */\n PrintAndExport.prototype.getDiagramBounds = function (mode, options) {\n var rect = this.getObjectsBound(options);\n var left = rect.left;\n var top = rect.top;\n var right = rect.right - rect.left;\n var bottom = rect.bottom - rect.top;\n if (mode !== 'Content') {\n if (this.diagram.pageSettings && this.diagram.pageSettings.multiplePage) {\n left = rect.left;\n top = rect.top;\n if (this.diagram.pageSettings.width) {\n left = Math.floor(left / this.diagram.pageSettings.width) * this.diagram.pageSettings.width;\n right = Math.ceil(rect.right / this.diagram.pageSettings.width) * this.diagram.pageSettings.width - left;\n }\n if (this.diagram.pageSettings.height) {\n top = Math.floor(top / this.diagram.pageSettings.height) * this.diagram.pageSettings.height;\n bottom = Math.ceil(rect.bottom / this.diagram.pageSettings.height) * this.diagram.pageSettings.height - top;\n }\n if ((rect.width === 0) && this.diagram.pageSettings.width !== null) {\n right = this.diagram.pageSettings.width;\n }\n if ((rect.height === 0) && this.diagram.pageSettings.height !== null) {\n bottom = this.diagram.pageSettings.height;\n }\n }\n else {\n if (this.diagram.pageSettings.width) {\n left = 0;\n right = this.diagram.pageSettings.width;\n }\n if (this.diagram.pageSettings.height) {\n top = 0;\n bottom = this.diagram.pageSettings.height;\n }\n }\n }\n //884801-After zooming and exporting the HTML content, the scroll Padding value is not considered\n if (this.diagram.scrollSettings.padding) {\n var scrollpadding = this.diagram.scrollSettings.padding;\n left -= scrollpadding.left;\n top -= scrollpadding.top;\n right += (scrollpadding.left + scrollpadding.right);\n bottom += (scrollpadding.top + scrollpadding.bottom);\n }\n var svgBounds = new Rect();\n svgBounds.x = left;\n svgBounds.y = top;\n svgBounds.width = right;\n svgBounds.height = bottom;\n return svgBounds;\n };\n PrintAndExport.prototype.setScaleValueforCanvas = function (options, bounds) {\n var scaleX = 'scaleX';\n var scaleY = 'scaleY';\n var scaleOffsetX = 'scaleOffsetX';\n var scaleOffsetY = 'scaleOffsetY';\n options[\"\" + scaleX] = 1;\n options[\"\" + scaleY] = 1;\n options[\"\" + scaleOffsetX] = 0;\n options[\"\" + scaleOffsetY] = 0;\n options.pageHeight = options.pageHeight || this.diagram.pageSettings.height;\n options.pageWidth = options.pageWidth || this.diagram.pageSettings.width;\n var pageOrientation = options.pageOrientation || this.diagram.pageSettings.orientation;\n if (!pageOrientation) {\n pageOrientation = 'Portrait';\n }\n if (pageOrientation === 'Portrait') {\n if (options.pageWidth > options.pageHeight) {\n var temp = options.pageHeight;\n options.pageHeight = options.pageWidth;\n options.pageWidth = temp;\n }\n }\n else {\n if (options.pageHeight > options.pageWidth) {\n var temp = options.pageWidth;\n options.pageWidth = options.pageHeight;\n options.pageHeight = temp;\n }\n }\n if (options.pageWidth && options.pageHeight && !options.multiplePage) {\n options.stretch = 'Meet';\n }\n var height = options.pageHeight || bounds.height;\n var width = options.pageWidth || bounds.width;\n if (options.stretch === 'Stretch' || options.stretch === 'Meet' || options.stretch === 'Slice') {\n options[\"\" + scaleX] = width / bounds.width;\n options[\"\" + scaleY] = height / bounds.height;\n if (options.stretch === 'Meet') {\n options[\"\" + scaleX] = options[\"\" + scaleY] = Math.min(options[\"\" + scaleX], options[\"\" + scaleY]);\n options[\"\" + scaleOffsetY] = (options.pageHeight - bounds.height * options[\"\" + scaleX]) / 2;\n options[\"\" + scaleOffsetX] = (options.pageWidth - bounds.width * options[\"\" + scaleX]) / 2;\n }\n else if (options.stretch === 'Slice') {\n options[\"\" + scaleX] = options[\"\" + scaleY] = Math.max(options[\"\" + scaleX], options[\"\" + scaleY]);\n }\n bounds.width = width;\n bounds.height = height;\n }\n bounds.x *= options[\"\" + scaleX];\n bounds.y *= options[\"\" + scaleY];\n };\n PrintAndExport.prototype.diagramAsSvg = function (options, margin) {\n var svg = this.diagram.createSvg(this.diagram.element.id + '_diagram_svg', options.bounds.width, options.bounds.height);\n document.body.appendChild(svg);\n var g = createSvgElement('g', { 'id': this.diagram.element.id + '_pageBackground' });\n var region = options && options.region ? options.region : 'Content';\n var bounds = this.getDiagramBounds(region, options);\n var left = bounds.x;\n var top = bounds.y;\n var width = bounds.width;\n var height = bounds.height;\n svg.appendChild(g);\n var attr = {\n 'x': String(left),\n 'y': String(top), 'width': String(width), 'height': String(height)\n };\n setAttributeSvg(g, attr);\n this.setTransform(g, options.bounds, margin);\n var gradient = document.getElementById(this.diagram.element.id + 'gradient_pattern');\n if (gradient) {\n // 914031: Export function breaks gradient background of nodes in the diagram\n svg.appendChild(gradient.cloneNode(true));\n }\n attr = {\n 'x': String(left),\n 'y': String(top), 'width': String(width + margin.left + margin.right), 'height': String(height + margin.top + margin.bottom)\n };\n var backimage = document.getElementById(this.diagram.element.id + '_backgroundImageLayer').cloneNode(true);\n setAttributeSvg(backimage, attr);\n svg.appendChild(backimage);\n this.setTransform(backimage, bounds, margin);\n var backRect = document.getElementById(this.diagram.element.id + '_backgroundLayerrect').cloneNode(true);\n setAttributeSvg(backRect, attr);\n svg.appendChild(backRect);\n this.setTransform(backRect, bounds, margin);\n if (this.diagram.mode === 'SVG') {\n var element = void 0;\n var i = void 0;\n var diagramLayerSVG = getDiagramLayerSvg(this.diagram.element.id);\n svg.appendChild(diagramLayerSVG.getElementById(this.diagram.diagramLayer.id).cloneNode(true));\n for (i = 0; i < svg.childNodes.length; i++) {\n element = svg.childNodes[parseInt(i.toString(), 10)];\n if (element.id === this.diagram.element.id + '_diagramLayer') {\n this.setTransform(element, bounds, margin);\n }\n }\n }\n else {\n g = createSvgElement('g', { 'id': this.diagram.element.id + '_diagramLayer' });\n svg.appendChild(g);\n this.setTransform(g, options.bounds, margin);\n //renderLabels\n var renderer = new DiagramRenderer('', null, true);\n var htmlLayer = getHTMLLayer(this.diagram.element.id);\n this.diagram.renderDiagramElements(svg, renderer, htmlLayer, false);\n }\n document.body.removeChild(svg);\n return svg;\n };\n PrintAndExport.prototype.setTransform = function (element, bounds, margin) {\n element.setAttribute('transform', 'translate(' + (-bounds.x + margin.left) + ', ' +\n (-bounds.y + margin.top) + ')');\n };\n PrintAndExport.prototype.diagramAsCanvas = function (options, customBounds) {\n var scaleX = 'scaleX';\n var scaleY = 'scaleY';\n var scaleOffsetX = 'scaleOffsetX';\n var scaleOffsetY = 'scaleOffsetY';\n var element;\n var elements = [];\n var region = options.bounds;\n var margin = options.margin;\n var mode = options.region;\n var pageBounds = this.getDiagramBounds(mode, options);\n var bgColor = this.diagram.pageSettings.background.color;\n var canvas = CanvasRenderer.createCanvas(this.diagram.element.id + '_diagram', options.bounds.width, options.bounds.height);\n //canvas.setAttribute('style', 'position:absolute;top:135px;left:160px;');\n var context = canvas.getContext('2d');\n context.translate(-region.x, -region.y);\n context.save();\n context.fillStyle = (this.diagram.pageSettings.background.color === 'transparent') ? 'white' :\n this.diagram.pageSettings.background.color;\n region = mode === 'Content' ? pageBounds : region;\n context.fillRect(region.x, region.y, region.width, region.height);\n var bgImg = this.diagram.pageSettings.background;\n if (bgImg && bgImg.source) {\n pageBounds = this.getDiagramBounds(mode, options);\n var image = new Image();\n image.src = bgImg.source;\n var proportionX = pageBounds.width / image.width;\n var proportionY = pageBounds.height / image.height;\n var x = pageBounds.x;\n var y = pageBounds.y;\n var width = pageBounds.width;\n var height = pageBounds.height;\n var exportable = this.isImageExportable(bgImg);\n if (bgImg.scale !== 'None' && bgImg.align !== 'None') {\n var proportion = bgImg.scale === 'Meet' ? Math.min(proportionX, proportionY) : Math.max(proportionX, proportionY);\n width = proportion * image.width;\n height = proportion * image.height;\n if (bgImg.align.indexOf('xmid') > -1) {\n x += (pageBounds.width - width) / 2;\n }\n else if (bgImg.align.indexOf('xmax') > -1) {\n x = x + pageBounds.width - width;\n }\n if (bgImg.align.indexOf('ymid') > -1) {\n y += (pageBounds.height - height) / 2;\n }\n else if (bgImg.align.indexOf('ymax') > -1) {\n y = y + pageBounds.height - height;\n }\n if (this.diagram.pageSettings.background.color === 'none' || this.diagram.pageSettings.background.color === 'transparent') {\n context.fillStyle = 'white';\n context.fillRect(pageBounds.x * options[\"\" + scaleX], pageBounds.y * options[\"\" + scaleY], pageBounds.width * options[\"\" + scaleX], pageBounds.height * options[\"\" + scaleY]);\n }\n if (exportable) {\n context.drawImage(image, x, y, proportion * image.width, proportion * image.height);\n }\n }\n else if (exportable) {\n context.drawImage(image, x, y, pageBounds.width, pageBounds.height);\n }\n }\n else {\n context.fillStyle = bgColor === 'transparent' ? 'white' : bgColor;\n context.fillRect((pageBounds.x * options[\"\" + scaleX]) - margin.left, (pageBounds.y * options[\"\" + scaleY]) - margin.top, (pageBounds.width * options[\"\" + scaleX]) + margin.left + margin.right, (options[\"\" + scaleY] * pageBounds.height) + margin.top + margin.bottom);\n }\n var brColor = this.diagram.pageSettings.background.color;\n var brWidth = this.diagram.pageSettings.width;\n if (brWidth) {\n context.strokeStyle = brColor === 'none' ? 'transparent' : brColor;\n context.lineWidth = brWidth;\n context.strokeRect(pageBounds.x * options[\"\" + scaleX], pageBounds.y * options[\"\" + scaleY], pageBounds.width * options[\"\" + scaleX], pageBounds.height * options[\"\" + scaleY]);\n }\n context.restore();\n var htmlLayer = getHTMLLayer(this.diagram.element.id);\n var renderer = new DiagramRenderer('', null, false);\n this.updateObjectValue(options[\"\" + scaleX], options[\"\" + scaleOffsetX], options[\"\" + scaleOffsetY], true);\n this.diagram.renderDiagramElements(canvas, renderer, htmlLayer, false, true);\n this.updateObjectValue(options[\"\" + scaleX], options[\"\" + scaleOffsetX], options[\"\" + scaleOffsetY], false);\n return canvas;\n };\n PrintAndExport.prototype.updateWrapper = function (canvas, value, scaleOffsetX, scaleOffsetY, isExport) {\n if (canvas && canvas.length > 0) {\n for (var j = 0; j < canvas.length; j++) {\n if (canvas[parseInt(j.toString(), 10)].children) {\n this.updateWrapper(canvas[parseInt(j.toString(), 10)].children, value, scaleOffsetX, scaleOffsetY, isExport);\n }\n canvas[parseInt(j.toString(), 10)].exportScaleValue.x = value;\n canvas[parseInt(j.toString(), 10)].exportScaleValue.y = value;\n canvas[parseInt(j.toString(), 10)].exportScaleOffset.x = scaleOffsetX;\n canvas[parseInt(j.toString(), 10)].exportScaleOffset.y = scaleOffsetY;\n canvas[parseInt(j.toString(), 10)].isExport = isExport;\n }\n }\n };\n PrintAndExport.prototype.scaleGradientValue = function (node, scaleValue, isExport) {\n if (node.style.gradient.stops.length > 0) {\n var gradients = node.style.gradient;\n if (node.style.gradient instanceof LinearGradient) {\n gradients.x1 = isExport ? gradients.x1 * scaleValue : gradients.x1 / scaleValue;\n gradients.y1 = isExport ? gradients.y1 * scaleValue : gradients.y1 / scaleValue;\n gradients.x2 = isExport ? gradients.x2 * scaleValue : gradients.x2 / scaleValue;\n gradients.y2 = isExport ? gradients.y2 * scaleValue : gradients.y2 / scaleValue;\n }\n else {\n gradients.fx = isExport ? gradients.fx * scaleValue : gradients.fx / scaleValue;\n gradients.fy = isExport ? gradients.fy * scaleValue : gradients.fy / scaleValue;\n gradients.cx = isExport ? gradients.cx * scaleValue : gradients.cx / scaleValue;\n gradients.cy = isExport ? gradients.cy * scaleValue : gradients.cy / scaleValue;\n gradients.r = isExport ? gradients.r * scaleValue : gradients.r / scaleValue;\n }\n }\n };\n PrintAndExport.prototype.updateObjectValue = function (value, scaleOffsetX, scaleOffsetY, isExport) {\n var wrapper;\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n wrapper = this.diagram.nodes[parseInt(i.toString(), 10)].wrapper;\n this.scaleGradientValue(this.diagram.nodes[parseInt(i.toString(), 10)], value, isExport);\n this.updateWrapper(wrapper.children, value, scaleOffsetX, scaleOffsetY, isExport);\n wrapper.exportScaleValue.x = value;\n wrapper.exportScaleValue.y = value;\n wrapper.exportScaleOffset.x = scaleOffsetX;\n wrapper.exportScaleOffset.y = scaleOffsetY;\n wrapper.isExport = isExport;\n }\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n wrapper = this.diagram.connectors[parseInt(j.toString(), 10)].wrapper;\n for (var k = 0; k < wrapper.children.length; k++) {\n wrapper.children[parseInt(k.toString(), 10)].isExport = isExport;\n if (isExport) {\n wrapper.children[parseInt(k.toString(), 10)].exportScaleValue.x = value;\n wrapper.children[parseInt(k.toString(), 10)].exportScaleValue.y = value;\n wrapper.children[parseInt(k.toString(), 10)].exportScaleOffset.x = scaleOffsetX;\n wrapper.children[parseInt(k.toString(), 10)].exportScaleOffset.y = scaleOffsetY;\n }\n }\n }\n };\n PrintAndExport.prototype.isImageExportable = function (backgroundImage) {\n var state = true;\n var content;\n var canvas;\n if (backgroundImage.source) {\n try {\n canvas = CanvasRenderer.createCanvas(this.diagram.element.id + 'temp_canvas', 100, 100);\n var ctx = canvas.getContext('2d');\n ctx.save();\n var image = new Image();\n image.src = backgroundImage.source;\n ctx.drawImage(image, 0, 0, 100, 100);\n ctx.restore();\n content = canvas.toDataURL();\n }\n catch (e) {\n state = false;\n }\n }\n return state;\n };\n PrintAndExport.prototype.getPrintCanvasStyle = function (img, options) {\n var width = 0;\n var height = 0;\n var size = new Size();\n width = img.width;\n height = img.height;\n if (options.pageHeight || options.pageWidth) {\n height = options.pageHeight ? options.pageHeight : height;\n width = options.pageWidth ? options.pageWidth : width;\n }\n if (options.pageOrientation) {\n if ((options.pageOrientation === 'Landscape' && height > width) || options.pageOrientation === 'Portrait' && width > height) {\n var temp = width;\n width = height;\n height = temp;\n }\n }\n size.height = height;\n size.width = width;\n return size;\n };\n PrintAndExport.prototype.getMultipleImage = function (img, options, isExport) {\n var imageArray = [];\n var div = createHtmlElement('div', {});\n var pageSize = this.getPrintCanvasStyle(img, options);\n //let pageWidth: number;\n //let pageHeight: number;\n var margin = options.margin;\n var mLeft = margin.left;\n var mTop = margin.top;\n var mRight = margin.right;\n var mBottom = margin.bottom;\n var x = 0;\n var y = 0;\n var pageWidth = pageSize.width + x;\n var pageHeight = pageSize.height + y;\n var drawnX = 0;\n var drawnY = 0;\n if (options && options.multiplePage) {\n div.style.height = 'auto';\n div.style.width = 'auto';\n var imgHeight = img.height;\n var imgWidth = img.width;\n //if (img) {\n var i = 0;\n var j = 0;\n var url = void 0;\n var clipWidth = 0;\n var clipHeight = 0;\n var ctx = void 0;\n var canvas = void 0;\n do {\n do {\n clipWidth = pageSize.width;\n clipHeight = pageSize.height;\n if ((drawnX + pageSize.width) >= imgWidth) {\n clipWidth = (imgWidth - drawnX);\n }\n if ((drawnY + pageSize.height) >= imgHeight) {\n clipHeight = (imgHeight - drawnY);\n }\n canvas = CanvasRenderer.createCanvas(this.diagram.element.id + '_multiplePrint', pageSize.width, pageSize.height);\n ctx = canvas.getContext('2d');\n ctx.drawImage(img, x + drawnX + mLeft, y + drawnY + mTop, clipWidth - mRight - mLeft, clipHeight - mBottom - mTop, 0 + mLeft, 0 + mTop, clipWidth - mRight - mLeft, clipHeight - mBottom - mTop);\n if ((drawnX + pageSize.width) >= imgWidth) {\n drawnX -= (drawnX - imgWidth);\n }\n url = canvas.toDataURL();\n ctx.restore();\n drawnX += pageWidth;\n if (isExport) {\n imageArray.push(url);\n }\n else {\n this.printImage(div, url, i + '' + j, pageWidth + 'px;', pageHeight + 'px;');\n }\n i++;\n } while (drawnX < imgWidth);\n j++;\n i = x = drawnX = 0;\n if ((drawnY + pageSize.height) >= imgHeight) {\n drawnY -= (drawnY - imgHeight);\n }\n drawnY += pageHeight;\n } while (drawnY < imgHeight);\n //}\n }\n else {\n var x_1 = 0;\n var y_1 = 0;\n var pageSize_1 = this.getPrintCanvasStyle(img, options);\n ///let pageWidth: number; let pageHeight: number;\n var pageWidth_1 = pageSize_1.width;\n var pageHeight_1 = pageSize_1.height;\n //let ctx: CanvasRenderingContext2D;\n //let canvas: HTMLCanvasElement;\n //let url: string;\n var canvas = CanvasRenderer.createCanvas(this.diagram.element.id + '_diagram', pageWidth_1, pageHeight_1);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, x_1 + mLeft, y_1 + mTop, img.width - (mRight + mLeft), img.height - (mTop + mBottom), 0 + mLeft, 0 + mTop, pageWidth_1 - (mRight + mLeft), pageHeight_1 - (mTop + mBottom));\n var url = canvas.toDataURL();\n ctx.restore();\n if (isExport) {\n imageArray.push(url);\n }\n else {\n this.printImage(div, url, 0);\n }\n }\n if (isExport) {\n return imageArray;\n }\n else {\n return div;\n }\n };\n PrintAndExport.prototype.printImage = function (div, url, i, pageWidth, pageHeight) {\n var attr = { 'class': 'e-diagram-print-page', 'style': 'width:' + pageWidth + 'height:' + pageHeight };\n var img = createHtmlElement('img', attr);\n var innerDiv = createHtmlElement('div', attr);\n attr = { 'id': this.diagram.element.id + '_multiplePrint_img' + i, 'style': 'float:left', 'src': url };\n setAttributeHtml(img, attr);\n innerDiv.appendChild(img);\n div.appendChild(innerDiv);\n };\n /**\n * To print the image\n *\n * @private\n */\n PrintAndExport.prototype.print = function (options) {\n options.mode = 'Data';\n var url = this.exportDiagram(options);\n this.printImages(url, options);\n };\n PrintAndExport.prototype.printImages = function (url, options) {\n var _this = this;\n var attr = {\n 'id': this.diagram.element.id + '_printImage',\n 'src': url\n };\n options.margin = { top: 0, bottom: 0, right: 0, left: 0 };\n var img = createHtmlElement('img', attr);\n img.onload = function () {\n var div = _this.getMultipleImage(img, options);\n // specify window parameters\n var printWind = window.open('');\n _this.printWindow = printWind;\n if (printWind != null) {\n if ((div instanceof HTMLElement)) {\n printWind.document.write('');\n //833683-Need to close print window after closing the parent window\n window.addEventListener('beforeunload', _this.closePrintWindow);\n printWind.addEventListener('load', function () {\n setTimeout(function () {\n printWind.window.print();\n //To close new window once print window is closed\n printWind.close();\n }, 3000);\n });\n printWind.document.write('
' + div.innerHTML + '
');\n printWind.document.close();\n }\n }\n };\n };\n PrintAndExport.prototype.getContent = function (styleSheets) {\n var snapConstraints = this.diagram.snapSettings.constraints;\n this.diagram.snapSettings.constraints = (this.diagram.snapSettings.constraints & ~SnapConstraints.ShowLines);\n this.diagram.dataBind();\n this.diagram.clearSelection();\n styleSheets = styleSheets || document.styleSheets;\n var styleSheetRef = '';\n for (var i = 0; i < styleSheets.length; i++) {\n if (styleSheets[parseInt(i.toString(), 10)].href || typeof styleSheets[parseInt(i.toString(), 10)] === 'string') {\n styleSheetRef += '';\n }\n }\n var htmlData = document.getElementById(this.diagram.element.id + 'content').innerHTML;\n var marginStyle = 'margin-left:' + 0 + 'px;margin-top:' + 0 + 'px;margin-right:'\n + 0 + 'px;margin-bottom:' + 0 + 'px;';\n htmlData = styleSheetRef + '
' + htmlData + '
';\n htmlData = htmlData.replace(/ transform: t/g, ' -webkit-transform: t');\n this.diagram.snapSettings.constraints = snapConstraints;\n this.diagram.dataBind();\n return htmlData;\n };\n /** @private */\n PrintAndExport.prototype.getDiagramContent = function (styleSheets) {\n if (this.diagram.scroller.currentZoom === 1) {\n var htmlData = this.getContent(styleSheets);\n /* tslint:disable */\n // eslint-disable-next-line quotes\n return checkBrowserInfo() ? htmlData.replace(\"url(\" + location.protocol + '//' + location.host + location.pathname + \"#diagram_pattern \", \"url(#diagram_pattern)\") : htmlData;\n /* tslint:enable */\n }\n else {\n var container = document.getElementById(this.diagram.element.id + 'content');\n var scrollerX = container.scrollLeft;\n var scrollerY = container.scrollTop;\n var oldZoom = this.diagram.scrollSettings.currentZoom;\n var oldHorizontalOffset = this.diagram.scroller.horizontalOffset;\n var oldVerticalOffset = this.diagram.scroller.verticalOffset;\n var oldWidth = Number(String(this.diagram.width).split('%')[0]) ?\n container.clientWidth : Number(String(this.diagram.width).split('px')[0]);\n var oldHeight = Number(String(this.diagram.height).split('%')[0]) ?\n container.clientHeight : Number(String(this.diagram.height).split('px')[0]);\n var bounds = this.getDiagramBounds('', {});\n this.diagram.scroller.zoom((1 / oldZoom));\n var scrollX_1 = 0;\n var scrollY_1 = 0;\n scrollX_1 = bounds.x;\n scrollY_1 = bounds.y;\n this.diagram.scroller.transform = {\n tx: -scrollX_1,\n ty: -scrollY_1,\n scale: this.diagram.scroller.currentZoom\n };\n this.diagram.scroller.horizontalOffset = -scrollX_1;\n this.diagram.scroller.verticalOffset = -scrollY_1;\n this.diagram.scroller.setSize();\n this.diagram.setSize(bounds.width, bounds.height);\n var htmlData = this.getContent(styleSheets);\n this.diagram.setSize(oldWidth, oldHeight);\n this.diagram.scroller.zoom(oldZoom / this.diagram.scrollSettings.currentZoom);\n this.diagram.dataBind();\n if (scrollerX || scrollerY) {\n this.diagram.setOffset(scrollerX, scrollerY);\n }\n else {\n this.diagram.scroller.transform = {\n tx: (oldHorizontalOffset) / this.diagram.scroller.currentZoom,\n ty: (oldVerticalOffset) / this.diagram.scroller.currentZoom,\n scale: this.diagram.scroller.currentZoom\n };\n this.diagram.scroller.horizontalOffset = oldHorizontalOffset;\n this.diagram.scroller.verticalOffset = oldVerticalOffset;\n }\n this.diagram.renderSelector(false);\n /* tslint:disable */\n // eslint-disable-next-line quotes\n return checkBrowserInfo() ? htmlData.replace(\"url(\" + location.protocol + '//' + location.host + location.pathname + \"#diagram_pattern \", \"url(#diagram_pattern)\") : htmlData;\n /* tslint:enable */\n }\n };\n /** @private */\n PrintAndExport.prototype.exportImages = function (image, options) {\n var _this = this;\n var region = options && options.region ? options.region : 'Content';\n var margin = options.margin || {};\n margin = {\n top: !isNaN(margin.top) ? margin.top : 0,\n bottom: !isNaN(margin.bottom) ? margin.bottom : 0,\n left: !isNaN(margin.left) ? margin.left : 0,\n right: !isNaN(margin.right) ? margin.right : 0\n };\n var bounds = this.getDiagramBounds(region, {});\n if (options.bounds) {\n bounds.x = (!isNaN(options.bounds.x) ? options.bounds.x : bounds.x);\n bounds.y = (!isNaN(options.bounds.y) ? options.bounds.y : bounds.y);\n bounds.width = (options.bounds.width || bounds.width);\n bounds.height = (options.bounds.height || bounds.height);\n }\n var img = document.createElement('img');\n var attr = {\n 'src': image\n };\n setAttributeHtml(img, attr);\n var context = this;\n img.onload = function () {\n var canvas = CanvasRenderer.createCanvas(context.diagram.element.id + 'innerImage', bounds.width + (margin.left + margin.right), bounds.height + (margin.top + margin.bottom));\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = context.diagram.pageSettings.background.color;\n ctx.fillRect(0, 0, bounds.width + (margin.left + margin.right), bounds.height + (margin.top + margin.bottom));\n ctx.drawImage(img, 0, 0, bounds.width, bounds.height, margin.left, margin.top, bounds.width, bounds.height);\n //898304 - exportImage function export images only in \"png\" format\n if (image && options.format === 'JPG') {\n image = canvas.toDataURL('image/jpeg');\n }\n else {\n image = canvas.toDataURL();\n }\n if (options.printOptions) {\n context.printImages(image, options);\n return;\n }\n ctx.restore();\n var fileName = options.fileName || 'diagram';\n _this.canvasMultiplePage(options, canvas, margin, image, fileName);\n };\n //898304 - exportImage function export images only in \"png\" format\n if (options.format === 'SVG') {\n this.exportDiagram(options);\n }\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n PrintAndExport.prototype.destroy = function () {\n /**\n * Destroys the Print and Export module\n */\n //833683 - unwire beforeunload event on destroy\n window.removeEventListener('beforeunload', this.closePrintWindow);\n this.printWindow = undefined;\n };\n /**\n * Get module name.\n */\n PrintAndExport.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'PrintandExport';\n };\n return PrintAndExport;\n}());\nexport { PrintAndExport };\n","import { Node } from '../objects/node';\nimport { Connector } from '../objects/connector';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { randomId, getFunction } from '../utility/base-util';\nimport { cloneBlazorObject } from '../utility/diagram-util';\nimport { updateDefaultValues } from '../utility/diagram-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * data source defines the basic unit of diagram\n */\nvar DataBinding = /** @class */ (function () {\n /**\n * Constructor for the data binding module.\n * @private\n */\n function DataBinding() {\n /** @private */\n this.dataTable = {};\n //constructs the data binding module\n }\n /**\n * To destroy the data binding module\n *\n * @returns {void}\n * @private\n */\n DataBinding.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n DataBinding.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'DataBinding';\n };\n /**\n * Initialize nodes and connectors when we have a data as JSON\n *\n * @param {DataSourceModel} data\n * @param {Diagram} diagram\n * @private\n */\n DataBinding.prototype.initData = function (data, diagram) {\n var dataSource;\n var dataProp = 'data';\n var jsonProp = 'json';\n var dataManager = data.dataManager || data.dataSource || {};\n dataSource = dataManager[\"\" + dataProp] || dataManager[\"\" + jsonProp] ||\n (dataManager.dataSource ? dataManager.dataSource.json : undefined);\n if (dataSource && dataSource.length === 0 && dataManager.dataSource.data) {\n dataSource = dataManager.dataSource.data;\n }\n if (dataSource && dataSource.length) {\n this.applyDataSource(data, dataSource, diagram);\n diagram.trigger('dataLoaded', { diagram: (isBlazor()) ? null : cloneBlazorObject(diagram) });\n }\n };\n /**\n * Initialize nodes and connector when we have a data as remote url\n *\n * @param {DataSourceModel} data\n * @param {Diagram} diagram\n * @private\n */\n DataBinding.prototype.initSource = function (data, diagram) {\n var _this = this;\n var dataSource = data;\n var result;\n var mapper = data;\n if (dataSource.dataManager instanceof DataManager || dataSource.dataSource instanceof DataManager) {\n var tempObj = mapper.dataManager || mapper.dataSource;\n var query = tempObj.defaultQuery || new Query();\n var dataManager = data.dataManager || data.dataSource;\n dataManager.executeQuery(query).then(function (e) {\n var prop = 'result';\n result = e[\"\" + prop];\n if (!diagram.isDestroyed) {\n diagram.protectPropertyChange(true);\n _this.applyDataSource(data, result, diagram);\n diagram.refreshDiagram();\n diagram.protectPropertyChange(false);\n diagram.trigger('dataLoaded', { diagram: (isBlazor()) ? null : cloneBlazorObject(diagram) });\n }\n });\n }\n };\n DataBinding.prototype.applyDataSource = function (mapper, data, diagram) {\n this.dataTable = {};\n var obj;\n var firstNode;\n var node;\n var rootNodes = [];\n var firstLevel = [];\n var item;\n var nextLevel;\n if (data !== undefined) {\n for (var r = 0; r < data.length; r++) {\n obj = data[parseInt(r.toString(), 10)];\n //832886 - Rendering layout without case sensitivity\n if (obj[mapper.parentId] === undefined || obj[mapper.parentId] === null ||\n typeof obj[mapper.parentId] !== 'object') {\n if (isNaN(obj[mapper.parentId]) && obj[mapper.parentId] !== undefined) {\n if (rootNodes[obj[mapper.parentId] ? obj[mapper.parentId].toLowerCase() : obj[mapper.parentId]] !== undefined) {\n rootNodes[obj[mapper.parentId].toLowerCase()].items.push(obj);\n }\n else {\n rootNodes[obj[mapper.parentId] ? obj[mapper.parentId].toLowerCase() : obj[mapper.parentId]] = { items: [obj] };\n }\n }\n else {\n if (rootNodes[obj[mapper.parentId]] !== undefined) {\n rootNodes[obj[mapper.parentId]].items.push(obj);\n }\n else {\n rootNodes[obj[mapper.parentId]] = { items: [obj] };\n }\n }\n }\n else {\n rootNodes = this.updateMultipleRootNodes(obj, rootNodes, mapper, data);\n }\n if (mapper.root && isNaN(mapper.root) && obj[mapper.id] && isNaN(obj[mapper.id])) {\n if ((mapper.root).toLowerCase() === obj[mapper.id].toLowerCase()) {\n firstNode = { items: [obj] };\n }\n }\n else {\n if (mapper.root === obj[mapper.id]) {\n firstNode = { items: [obj] };\n }\n }\n }\n if (firstNode) {\n firstLevel.push(firstNode);\n }\n else {\n for (var _i = 0, _a = Object.keys(rootNodes); _i < _a.length; _i++) {\n var n = _a[_i];\n if (!n || n === 'undefined' || n === '\\'\\'' || n === 'null') {\n firstLevel.push(rootNodes[\"\" + n]);\n }\n }\n }\n for (var i = 0; i < firstLevel.length; i++) {\n for (var j = 0; j < firstLevel[parseInt(i.toString(), 10)].items.length; j++) {\n item = firstLevel[parseInt(i.toString(), 10)].items[parseInt(j.toString(), 10)];\n node = this.applyNodeTemplate(mapper, item, diagram);\n diagram.nodes.push(node);\n if (isNaN(item[mapper.id]) && item[mapper.id] !== undefined) {\n this.dataTable[item[mapper.id].toLowerCase()] = node;\n }\n else {\n this.dataTable[item[mapper.id]] = node;\n }\n if (isNaN(node.data[mapper.id]) && node.data[mapper.id] !== undefined) {\n nextLevel = rootNodes[node.data[mapper.id].toLowerCase()];\n }\n else {\n nextLevel = rootNodes[node.data[mapper.id]];\n }\n if (nextLevel !== undefined) {\n this.renderChildNodes(mapper, nextLevel, node.id, rootNodes, diagram);\n }\n }\n }\n }\n this.dataTable = null;\n };\n /**\n * updateMultipleRootNodes method is used to update the multiple Root Nodes\n *\n * @param {Object} object\n * @param {Object[]} rootnodes\n * @param {DataSourceModel} mapper\n * @param {Object[]} data\n */\n DataBinding.prototype.updateMultipleRootNodes = function (obj, rootNodes, mapper, data) {\n var parents = obj[mapper.parentId];\n var parent;\n for (var i = 0; i < parents.length; i++) {\n if (parents[parseInt(i.toString(), 10)]) {\n if (isNaN(parents[parseInt(i.toString(), 10)])) {\n parent = (parents[parseInt(i.toString(), 10)]).toLowerCase();\n }\n else {\n parent = (parents[parseInt(i.toString(), 10)]);\n }\n if (rootNodes[\"\" + parent]) {\n rootNodes[\"\" + parent].items.push(obj);\n }\n else {\n rootNodes[\"\" + parent] = { items: [obj] };\n }\n }\n else {\n parent = parents[parseInt(i.toString(), 10)];\n if (rootNodes[\"\" + parent]) {\n rootNodes[\"\" + parent].items.push(obj);\n }\n else {\n rootNodes[\"\" + parent] = { items: [obj] };\n }\n }\n }\n return rootNodes;\n };\n /**\n * Get the node values\\\n *\n * @returns { Node } Get the node values.\\\n * @param {DataSourceModel} mapper - provide the id value.\n * @param {Object} item - provide the id value.\n * @param {Diagram} diagram - provide the id value.\n *\n * @private\n */\n DataBinding.prototype.applyNodeTemplate = function (mapper, item, diagram) {\n //const root: Object = item;\n var id = randomId();\n //const blazor: string = 'Blazor';\n var nodeModel = { id: id, data: item };\n //Task 895538: Flow-chart layout support for EJ2 diagram.\n //Added below code to set node shape and style based on the data.\n if (diagram.layout.type === 'Flowchart') {\n var shape = this.getFlowChartNodeShape(item);\n var style = { fill: item.color ? item.color : 'white',\n strokeColor: item.stroke ? item.stroke : 'black',\n strokeWidth: item.strokeWidth ? item.strokeWidth : 1\n };\n nodeModel.shape = shape;\n nodeModel.style = style;\n nodeModel.annotations = [{ content: item.name ? item.name : '' }];\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n var doBinding = getFunction(mapper.doBinding);\n if (doBinding) {\n doBinding(nodeModel, item, diagram);\n }\n var obj = new Node(diagram, 'nodes', nodeModel, true);\n updateDefaultValues(obj, nodeModel, diagram.nodeDefaults);\n if (mapper.dataMapSettings) {\n var index = void 0;\n var arrayProperty = [];\n var innerProperty = [];\n for (var i = 0; i < mapper.dataMapSettings.length; i++) {\n if (mapper.dataMapSettings[parseInt(i.toString(), 10)].property.indexOf('.') !== -1) {\n innerProperty = this.splitString(mapper.dataMapSettings[parseInt(i.toString(), 10)].property);\n for (var p = 0; p < innerProperty.length; p++) {\n if (innerProperty[parseInt(p.toString(), 10)].indexOf('[') !== -1) {\n index = innerProperty[parseInt(p.toString(), 10)].indexOf('[');\n arrayProperty = innerProperty[parseInt(p.toString(), 10)].split('[');\n }\n }\n if (index) {\n if (innerProperty[2]) {\n obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]][innerProperty[2]] =\n item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n else {\n var value = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]] = value;\n }\n }\n else {\n if (innerProperty[2]) {\n obj[innerProperty[0]][innerProperty[1]][innerProperty[2]]\n = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n else {\n obj[innerProperty[0]][innerProperty[1]] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n }\n }\n else {\n var property = mapper.dataMapSettings[parseInt(i.toString(), 10)].property;\n property = property.charAt(0).toLowerCase() + property.slice(1);\n obj[\"\" + property] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n index = 0;\n arrayProperty = [];\n innerProperty = [];\n }\n }\n if (!this.collectionContains(obj, diagram, mapper.id, mapper.parentId)) {\n return obj;\n }\n else {\n if (item[mapper.id] && isNaN(item[mapper.id])) {\n return this.dataTable[item[mapper.id].toLowerCase()];\n }\n else {\n return this.dataTable[item[mapper.id]];\n }\n }\n };\n DataBinding.prototype.getFlowChartNodeShape = function (data) {\n if (data.shape !== '') {\n switch (data.shape) {\n case 'Rectangle':\n return { type: 'Basic', shape: 'Rectangle' };\n case 'Decision':\n return { type: 'Flow', shape: 'Decision' };\n case 'Hexagon':\n return { type: 'Path', data: 'M 0 0 L 2 -2 L 11 -2 L 13 0 L 11 2 L 2 2 L 0 0' };\n case 'Ellipse':\n return { type: 'Basic', shape: 'Ellipse' };\n case 'Terminator':\n return { type: 'Flow', shape: 'Terminator' };\n case 'PredefinedProcess':\n return { type: 'Flow', shape: 'PreDefinedProcess' };\n case 'Parallelogram':\n return { type: 'Basic', shape: 'Parallelogram' };\n case 'ParallelogramAlt':\n return { type: 'Path', data: 'M 0 0 L 12 0 L 14 2 L 2 2 L 0 0' };\n case 'Trapezoid':\n return { type: 'Path', data: 'M 0 0 L 1 -1 L 5 -1 L 6 0 L 0 0' };\n case 'TrapezoidAlt':\n return { type: 'Path', data: 'M 0 0 L 5 0 L 4 1 L 1 1 L 0 0' };\n case 'DataSource':\n return { type: 'Path', data: 'M 0 1 L 0 6 C 2 7 4 7 6 6 L 6 1 C 5 0 1 0 0 1 C 1 2 5 2 6 1' };\n case 'Asymmetric':\n return { type: 'Path', data: 'M 0 0 L 8 0 L 8 2 L 0 2 L 2 1 L 0 0' };\n case 'DoubleCircle':\n return { type: 'Path', data: 'M 0 0 A 1 1 0 0 0 7 0 A 1 1 0 0 0 0 0 M -1 0 A 1 1 0 0 0 8 0 A 1 1 0 0 0 -1 0' };\n case 'Document':\n return { type: 'Flow', shape: 'Document' };\n case 'PaperTap':\n return { type: 'Flow', shape: 'PaperTap' };\n case 'DirectData':\n return { type: 'Flow', shape: 'DirectData' };\n case 'SequentialData':\n return { type: 'Flow', shape: 'SequentialData' };\n case 'Sort':\n return { type: 'Flow', shape: 'Sort' };\n case 'MultiDocument':\n return { type: 'Flow', shape: 'MultiDocument' };\n case 'Collate':\n return { type: 'Flow', shape: 'Collate' };\n case 'SummingJunction':\n return { type: 'Flow', shape: 'SummingJunction' };\n case 'Or':\n return { type: 'Flow', shape: 'Or' };\n case 'InternalStorage':\n return { type: 'Flow', shape: 'InternalStorage' };\n case 'Extract':\n return { type: 'Flow', shape: 'Extract' };\n case 'ManualOperation':\n return { type: 'Flow', shape: 'ManualOperation' };\n case 'Merge':\n return { type: 'Flow', shape: 'Merge' };\n case 'OffPageReference':\n return { type: 'Flow', shape: 'OffPageReference' };\n case 'SequentialAccessStorage':\n return { type: 'Flow', shape: 'SequentialAccessStorage' };\n case 'Data':\n return { type: 'Flow', shape: 'Data' };\n case 'Card':\n return { type: 'Flow', shape: 'Card' };\n case 'Delay':\n return { type: 'Flow', shape: 'Delay' };\n case 'Preparation':\n return { type: 'Flow', shape: 'Preparation' };\n case 'Display':\n return { type: 'Flow', shape: 'Display' };\n case 'ManualInput':\n return { type: 'Flow', shape: 'ManualInput' };\n case 'LoopLimit':\n return { type: 'Flow', shape: 'LoopLimit' };\n case 'StoredData':\n return { type: 'Flow', shape: 'StoredData' };\n case 'Annotation':\n return { type: 'Flow', shape: 'Annotation' };\n case 'Annotation2':\n return { type: 'Flow', shape: 'Annotation2' };\n default:\n return { type: 'Flow', shape: 'Process' };\n }\n }\n return { type: 'Flow', shape: 'Process' };\n };\n DataBinding.prototype.splitString = function (property) {\n var temp = [];\n temp = property.split('.');\n for (var i = 0; i < temp.length; i++) {\n temp[parseInt(i.toString(), 10)] = temp[parseInt(i.toString(), 10)].charAt(0).toLowerCase()\n + temp[parseInt(i.toString(), 10)].slice(1);\n }\n return temp;\n };\n DataBinding.prototype.renderChildNodes = function (mapper, parent, value, rtNodes, diagram) {\n var child;\n var nextLevel;\n var node;\n for (var j = 0; j < parent.items.length; j++) {\n child = parent.items[parseInt(j.toString(), 10)];\n if (!child[mapper.id]) {\n continue;\n }\n node = this.applyNodeTemplate(mapper, child, diagram);\n var canBreak = false;\n if (!this.collectionContains(node, diagram, mapper.id, mapper.parentId)) {\n if (child[mapper.id] && isNaN(child[mapper.id])) {\n this.dataTable[child[mapper.id].toLowerCase()] = node;\n }\n else {\n this.dataTable[child[mapper.id]] = node;\n }\n diagram.nodes.push(node);\n }\n else {\n canBreak = true;\n }\n if (!this.containsConnector(diagram, value, node.id)) {\n diagram.connectors.push(this.applyConnectorTemplate(value, node.id, diagram));\n }\n if (!canBreak) {\n if (node.data[mapper.id] && isNaN(node.data[mapper.id])) {\n nextLevel = rtNodes[node.data[mapper.id].toLowerCase()];\n }\n else {\n nextLevel = rtNodes[node.data[mapper.id]];\n }\n if (nextLevel !== undefined) {\n this.renderChildNodes(mapper, nextLevel, node.id, rtNodes, diagram);\n }\n }\n }\n };\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n // Replaced for loop with some() method to improve performance.\n DataBinding.prototype.containsConnector = function (diagram, sourceNode, targetNode) {\n if (sourceNode === '' || targetNode === '') {\n return false;\n }\n return diagram.connectors.some(function (connector) {\n return connector !== undefined && connector.sourceID === sourceNode && connector.targetID === targetNode;\n });\n };\n /**\n * collectionContains method is used to check wthear the node is already present in collection or not\n *\n * @param {Node} node\n * @param {Diagram} diagram\n * @param {string} id\n * @param {string} parentId\n */\n DataBinding.prototype.collectionContains = function (node, diagram, id, parentId) {\n var obj;\n if (isNaN(node.data[\"\" + id]) && node.data[\"\" + id]) {\n obj = this.dataTable[node.data[\"\" + id].toLowerCase()];\n }\n else {\n obj = this.dataTable[node.data[\"\" + id]];\n }\n if (obj !== undefined && obj.data[\"\" + id] === node.data[\"\" + id] && obj.data[\"\" + parentId] === node.data[\"\" + parentId]) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Get the Connector values\n *\n * @param {string} sNode\n * @param {string} tNode\n * @param {Diagram} diagram\n */\n DataBinding.prototype.applyConnectorTemplate = function (sNode, tNode, diagram) {\n var connModel = {\n id: randomId(), sourceID: sNode, targetID: tNode\n };\n var arrowType;\n //Task 895538: Flow-chart layout support for EJ2 diagram.\n //Added below code to set connector annotation and style based on the data.\n if (diagram.layout.type === 'Flowchart') {\n var targetNode = diagram.nodes.find(function (node) { return node.id === tNode; });\n if (typeof targetNode.data.label === 'string') {\n connModel.annotations = [{ content: targetNode.data.label }];\n }\n else if (Array.isArray(targetNode.data.label)) {\n var inConnectors = diagram.connectors.filter(function (connector) { return connector.targetID === tNode; });\n var index = 0;\n if (inConnectors.length > 0) {\n index = inConnectors.length;\n }\n connModel.annotations = [{ content: targetNode.data.label[parseInt(index.toString(), 10)] }];\n }\n arrowType = this.getConnectorArrowType(targetNode.data);\n }\n var obj = new Connector(diagram, 'connectors', connModel, true);\n if (arrowType) {\n obj.style.strokeWidth = arrowType.strokeWidth;\n obj.targetDecorator.shape = arrowType.targetDecorator;\n }\n updateDefaultValues(obj, connModel, diagram.connectorDefaults);\n return obj;\n };\n DataBinding.prototype.getConnectorArrowType = function (data) {\n if (data.arrowType !== '') {\n switch (data.arrowType) {\n case 'None':\n return { targetDecorator: 'None', strokeWidth: 1 };\n case 'Arrow':\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n case 'Diamond':\n return { targetDecorator: 'Diamond', strokeWidth: 1 };\n case 'Circle':\n return { targetDecorator: 'Circle', strokeWidth: 1 };\n case 'OpenArrow':\n return { targetDecorator: 'OpenArrow', strokeWidth: 1 };\n case 'Square':\n return { targetDecorator: 'Square', strokeWidth: 1 };\n case 'Fletch':\n return { targetDecorator: 'Fletch', strokeWidth: 1 };\n case 'OpenFetch':\n return { targetDecorator: 'OpenFetch', strokeWidth: 1 };\n case 'IndentedArrow':\n return { targetDecorator: 'IndentedArrow', strokeWidth: 1 };\n case 'OutdentedArrow':\n return { targetDecorator: 'OutdentedArrow', strokeWidth: 1 };\n case 'DoubleArrow':\n return { targetDecorator: 'DoubleArrow', strokeWidth: 1 };\n default:\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n }\n }\n else {\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n }\n };\n return DataBinding;\n}());\nexport { DataBinding };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { remove } from '@syncfusion/ej2-base';\nimport { ContextMenu as Menu } from '@syncfusion/ej2-navigations';\nimport { contextMenuClick, contextMenuOpen, contextMenuBeforeItemRender } from '../enum/enum';\nimport { createHtmlElement } from '../../diagram/utility/dom-util';\n/**\n * @private\n */\nexport var menuClass = {\n content: '.e-diagramcontent',\n copy: 'e-copy',\n paste: 'e-paste',\n undo: 'e-undo',\n redo: 'e-redo',\n cut: 'e-cut',\n selectAll: 'e-selectall',\n grouping: 'e-grouping',\n group: 'e-group',\n unGroup: 'e-ungroup',\n bringToFront: 'e-bringfront',\n sendToBack: 'e-sendback',\n moveForward: 'e-bringforward',\n sendBackward: 'e-sendbackward',\n order: 'e-order'\n};\n/**\n * 'ContextMenu module used to handle context menu actions.'\n *\n * @private\n */\nvar DiagramContextMenu = /** @class */ (function () {\n function DiagramContextMenu(parent, service) {\n this.defaultItems = {};\n /**\n * @private\n */\n this.disableItems = [];\n /**\n * @private\n */\n this.hiddenItems = [];\n this.localeText = this.setLocaleKey();\n this.parent = parent;\n this.serviceLocator = service;\n this.addEventListener();\n }\n /**\n * addEventListener method \\\n *\n * @returns { void } addEventListener method .\\\n *\n * @private\n */\n DiagramContextMenu.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on('initial-load', this.render, this);\n };\n /**\n * removeEventListener method \\\n *\n * @returns { void } removeEventListener method .\\\n *\n * @private\n */\n DiagramContextMenu.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off('initial-load', this.render);\n };\n DiagramContextMenu.prototype.render = function () {\n this.l10n = this.serviceLocator.getService('localization');\n this.element = createHtmlElement('ul', { id: this.parent.element.id + '_contextMenu' });\n this.parent.element.appendChild(this.element);\n var target = '#' + this.parent.element.id;\n this.contextMenu = new Menu({\n items: this.getMenuItems(),\n enableRtl: this.parent.enableRtl,\n enablePersistence: this.parent.enablePersistence,\n locale: this.parent.locale,\n target: target,\n select: this.contextMenuItemClick.bind(this),\n beforeOpen: this.contextMenuBeforeOpen.bind(this),\n onOpen: this.contextMenuOpen.bind(this),\n beforeItemRender: this.BeforeItemRender.bind(this),\n onClose: this.contextMenuOnClose.bind(this),\n cssClass: 'e-diagram-menu',\n animationSettings: { effect: 'None' }\n });\n this.contextMenu.appendTo(this.element);\n };\n DiagramContextMenu.prototype.getMenuItems = function () {\n var menuItems = [];\n var orderItems = [];\n var groupItems = [];\n if (!this.parent.contextMenuSettings.showCustomMenuOnly) {\n for (var _i = 0, _a = this.getDefaultItems(); _i < _a.length; _i++) {\n var item = _a[_i];\n if (item.toLocaleLowerCase().indexOf('group') !== -1) {\n if (item.toLocaleLowerCase() !== 'grouping') {\n groupItems.push(this.buildDefaultItems(item));\n }\n }\n else if (item.toLocaleLowerCase().indexOf('order') !== -1) {\n if (item.toLocaleLowerCase() !== 'order') {\n orderItems.push(this.buildDefaultItems(item));\n }\n }\n else {\n menuItems.push(this.buildDefaultItems(item));\n }\n }\n var groupMenus = this.buildDefaultItems('grouping');\n groupMenus.items = groupItems;\n menuItems.push(groupMenus);\n var orderMenus = this.buildDefaultItems('order');\n orderMenus.items = orderItems;\n menuItems.push(orderMenus);\n }\n if (this.parent.contextMenuSettings.items) {\n for (var _b = 0, _c = this.parent.contextMenuSettings.items; _b < _c.length; _b++) {\n var customItem = _c[_b];\n menuItems.push(customItem);\n }\n }\n return menuItems;\n };\n DiagramContextMenu.prototype.contextMenuOpen = function () {\n this.isOpen = true;\n };\n DiagramContextMenu.prototype.BeforeItemRender = function (args) {\n this.parent.trigger(contextMenuBeforeItemRender, args);\n };\n DiagramContextMenu.prototype.contextMenuItemClick = function (args) {\n document.getElementById(this.parent.element.id + 'content').focus();\n this.parent.trigger(contextMenuClick, args);\n var item = this.getKeyFromId(args.item.id);\n if (!args.cancel) {\n switch (item) {\n case 'cut':\n this.parent.cut();\n break;\n case 'copy':\n this.parent.copy();\n break;\n case 'undo':\n this.parent.undo();\n break;\n case 'redo':\n this.parent.redo();\n break;\n case 'paste':\n this.parent.paste();\n break;\n case 'selectAll':\n this.parent.selectAll();\n break;\n case 'group':\n this.parent.group();\n break;\n case 'unGroup':\n this.parent.unGroup();\n break;\n case 'bringToFrontOrder':\n this.parent.bringToFront();\n break;\n case 'moveForwardOrder':\n this.parent.moveForward();\n break;\n case 'sendToBackOrder':\n this.parent.sendToBack();\n break;\n case 'sendBackwardOrder':\n this.parent.sendBackward();\n break;\n }\n }\n };\n DiagramContextMenu.prototype.contextMenuOnClose = function (args) {\n var parent = 'parentObj';\n if (args.items.length > 0 && args.items[0][\"\" + parent] instanceof Menu) {\n this.updateItemStatus();\n }\n };\n DiagramContextMenu.prototype.getLocaleText = function (item) {\n return this.l10n.getConstant(this.localeText[\"\" + item]);\n };\n DiagramContextMenu.prototype.updateItemStatus = function () {\n this.contextMenu.showItems(this.hiddenItems, true);\n this.contextMenu.enableItems(this.disableItems, false, true);\n this.hiddenItems = [];\n this.disableItems = [];\n this.isOpen = false;\n };\n /**\n * ensureItems method \\\n *\n * @returns { void } ensureItems method .\\\n * @param {MenuItemModel} item - provide the item value.\n * @param {Event} event - provide the event value.\n *\n * @private\n */\n DiagramContextMenu.prototype.ensureItems = function (item, event) {\n var key = this.getKeyFromId(item.id);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var dItem = this.defaultItems[\"\" + key];\n if (this.getDefaultItems().indexOf(key) !== -1) {\n if (item.target && (event || this.parent.checkMenu) &&\n !this.ensureTarget(item)) {\n this.hiddenItems.push(item.id);\n }\n }\n };\n /**\n * refreshItems method \\\n *\n * @returns { void } refreshItems method .\\\n *\n * @private\n */\n DiagramContextMenu.prototype.refreshItems = function () {\n this.updateItems();\n this.contextMenu.refresh();\n };\n DiagramContextMenu.prototype.updateItems = function () {\n var canInsert = true;\n for (var i = 0; i < this.parent.contextMenuSettings.items.length; i++) {\n var items = this.parent.contextMenuSettings.items[parseInt(i.toString(), 10)];\n for (var j = 0; j < this.contextMenu.items.length; j++) {\n if (this.contextMenu.items[parseInt(j.toString(), 10)].text\n === this.parent.contextMenuSettings.items[parseInt(i.toString(), 10)].text) {\n canInsert = false;\n }\n }\n if (canInsert) {\n this.contextMenu.insertAfter([items], this.contextMenu.items[this.contextMenu.items.length - 1].text);\n }\n }\n };\n DiagramContextMenu.prototype.contextMenuBeforeOpen = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var diagramArgs, _i, _a, item, _b, _c, newItem, hidden, contextItems, i, item, i, item;\n return __generator(this, function (_d) {\n if (!this.parent.checkMenu &&\n (window.navigator.userAgent.indexOf('Linux') !== -1 || window.navigator.userAgent.indexOf('X11') !== -1)) {\n this.parent.checkMenu = args.cancel = true;\n }\n if (this.parent.checkMenu) {\n this.hiddenItems = [];\n }\n diagramArgs = args;\n diagramArgs.hiddenItems = [];\n for (_i = 0, _a = args.items; _i < _a.length; _i++) {\n item = _a[_i];\n this.ensureItems(item, args.event);\n if (item.items.length) {\n for (_b = 0, _c = item.items; _b < _c.length; _b++) {\n newItem = _c[_b];\n this.ensureItems(newItem, args.event);\n }\n }\n }\n this.eventArgs = args.event;\n //Removed isBlazor code\n this.parent.trigger(contextMenuOpen, diagramArgs);\n hidden = true;\n this.hiddenItems = this.hiddenItems.concat(diagramArgs.hiddenItems);\n this.contextMenu.enableItems(this.disableItems, false, true);\n contextItems = this;\n for (i = 0; i < args.items.length; i++) {\n item = args.items[parseInt(i.toString(), 10)];\n if (contextItems.hiddenItems.indexOf(item.id) > -1) {\n contextItems.contextMenu.hideItems([item.id], true);\n }\n }\n for (i = 0; i < contextItems.contextMenu.items.length; i++) {\n item = contextItems.contextMenu.items[parseInt(i.toString(), 10)];\n if (contextItems.hiddenItems.indexOf(item.id) === -1) {\n hidden = false;\n contextItems.contextMenu.showItems([item.id], true);\n }\n }\n if (hidden) {\n diagramArgs.cancel = hidden;\n this.hiddenItems = [];\n }\n /* tslint:disable */\n if (this.parent.selectedItems.nodes.length && this.parent.selectedItems.nodes[0].isPhase\n && !this.parent.contextMenuSettings.showCustomMenuOnly) {\n args.cancel = true;\n }\n return [2 /*return*/];\n });\n });\n };\n DiagramContextMenu.prototype.ensureTarget = function (item) {\n var selectedLength = this.parent.selectedItems.nodes.length +\n this.parent.selectedItems.connectors.length;\n var itemText = this.getKeyFromId(item.id);\n var target = false;\n switch (itemText) {\n case 'undo':\n target = this.parent.historyManager && this.parent.historyManager.canUndo ? true : false;\n break;\n case 'redo':\n target = this.parent.historyManager && this.parent.historyManager.canRedo ? true : false;\n break;\n case 'paste':\n target = this.parent.commandHandler.clipboardData.clipObject ? true : false;\n break;\n case 'selectAll':\n target = this.parent.nodes.length + this.parent.connectors.length ? true : false;\n break;\n case 'grouping':\n target = ((selectedLength > 1) || (this.parent.selectedItems.nodes[0] && this.parent.selectedItems.nodes[0].children\n && this.parent.selectedItems.nodes[0].children.length > 1)) ? true : false;\n break;\n case 'group':\n target = selectedLength > 1;\n break;\n case 'unGroup':\n target = ((this.parent.selectedItems.nodes[0] && this.parent.selectedItems.nodes[0].children\n && this.parent.selectedItems.nodes[0].children.length > 1)) ? true : false;\n break;\n case 'cut':\n case 'copy':\n case 'order':\n case 'bringToFrontOrder':\n case 'moveForwardOrder':\n case 'sendToBackOrder':\n case 'sendBackwardOrder':\n target = selectedLength ? true : false;\n break;\n }\n return target;\n };\n /**\n *To destroy the context menu\n *\n * @returns {void} To destroy the context menu\n */\n DiagramContextMenu.prototype.destroy = function () {\n this.contextMenu.destroy();\n remove(this.element);\n this.removeEventListener();\n };\n DiagramContextMenu.prototype.getModuleName = function () {\n return 'contextMenu';\n };\n DiagramContextMenu.prototype.generateID = function (item) {\n return this.parent.element.id + '_contextMenu_' + item;\n };\n DiagramContextMenu.prototype.getKeyFromId = function (id) {\n return id.replace(this.parent.element.id + '_contextMenu_', '');\n };\n DiagramContextMenu.prototype.buildDefaultItems = function (item) {\n var menuItem;\n switch (item) {\n case 'copy':\n menuItem = { target: menuClass.content, iconCss: menuClass.copy };\n break;\n case 'cut':\n menuItem = { target: menuClass.content, iconCss: menuClass.cut };\n break;\n case 'paste':\n menuItem = { target: menuClass.content, iconCss: menuClass.paste };\n break;\n case 'undo':\n menuItem = { target: menuClass.content, iconCss: menuClass.undo };\n break;\n case 'redo':\n menuItem = { target: menuClass.content, iconCss: menuClass.redo };\n break;\n case 'grouping':\n menuItem = { target: menuClass.content };\n break;\n case 'group':\n menuItem = { target: menuClass.content, iconCss: menuClass.group };\n break;\n case 'unGroup':\n menuItem = { target: menuClass.content, iconCss: menuClass.unGroup };\n break;\n case 'order':\n menuItem = { target: menuClass.content, iconCss: menuClass.order };\n break;\n case 'bringToFrontOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.bringToFront };\n break;\n case 'moveForwardOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.moveForward };\n break;\n case 'sendToBackOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.sendToBack };\n break;\n case 'sendBackwardOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.sendBackward };\n break;\n case 'selectAll':\n menuItem = { target: menuClass.content };\n break;\n }\n this.defaultItems[\"\" + item] = {\n text: this.getLocaleText(item), id: this.generateID(item),\n target: menuItem.target, iconCss: menuItem.iconCss ? 'e-icons ' + menuItem.iconCss : ''\n };\n return this.defaultItems[\"\" + item];\n };\n DiagramContextMenu.prototype.getDefaultItems = function () {\n return [\n 'copy',\n 'cut', 'paste', 'undo', 'redo', 'selectAll', 'grouping', 'group', 'unGroup', 'order',\n 'bringToFrontOrder', 'moveForwardOrder', 'sendToBackOrder', 'sendBackwardOrder'\n ];\n };\n DiagramContextMenu.prototype.setLocaleKey = function () {\n return {\n 'copy': 'Copy',\n 'cut': 'Cut',\n 'paste': 'Paste',\n 'undo': 'Undo',\n 'redo': 'Redo',\n 'selectAll': 'SelectAll',\n 'grouping': 'Grouping',\n 'group': 'Group',\n 'unGroup': 'UnGroup',\n 'order': 'Order',\n 'bringToFrontOrder': 'BringToFront',\n 'moveForwardOrder': 'MoveForward',\n 'sendToBackOrder': 'SendToBack',\n 'sendBackwardOrder': 'SendBackward'\n };\n };\n return DiagramContextMenu;\n}());\nexport { DiagramContextMenu };\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Lane } from './../objects/node';\nimport { DiagramElement } from './../core/elements/diagram-element';\nimport { Canvas } from './../core/containers/canvas';\nimport { Container } from './../core/containers/container';\nimport { PathElement } from './../core/elements/path-element';\nimport { TextElement } from './../core/elements/text-element';\nimport { updateStyle } from './../../diagram/utility/diagram-util';\nimport { randomId, cloneObject } from './../utility/base-util';\nimport { Diagram } from './../../diagram/diagram';\nimport { Transform } from '../enum/enum';\nimport { findAngle, getPortDirection } from '../utility/connector';\nimport { Point } from '../primitives/point';\nimport { NodeConstraints } from '../enum/enum';\nimport { PointPort } from './../objects/port';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { getDiagramElement } from '../utility/dom-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { removeElement } from '../utility/dom-util';\n/**\n * BPMN Diagrams contains the BPMN functionalities\n */\nvar BpmnDiagrams = /** @class */ (function () {\n //End size region\n /**\n * Constructor for the BpmnDiagrams module\n *\n * @private\n */\n function BpmnDiagrams() {\n //Code conversion for Bpmn Shapes\n //Start Region\n /** @private */\n this.bpmnTextAnnotationConnector = [];\n //constructs the BpmnDiagrams module\n }\n /** @private */\n BpmnDiagrams.prototype.getSize = function (node, content) {\n var size = new Size(node.width, node.height);\n if (size.width === undefined || size.height === undefined) {\n if (!(content instanceof PathElement)) {\n size.width = size.width || 50;\n size.height = size.height || 50;\n }\n if (content.actualSize.width && content.actualSize.height) {\n return content.actualSize;\n }\n else {\n content.measure(new Size());\n size.width = size.width || content.desiredSize.width;\n size.height = size.height || content.desiredSize.height;\n }\n if (node.maxWidth !== undefined) {\n size.width = Math.min(size.width, node.maxWidth);\n }\n if (node.maxHeight !== undefined) {\n size.height = Math.min(size.height, node.maxHeight);\n }\n if (node.minWidth !== undefined) {\n size.width = Math.max(size.width, node.minWidth);\n }\n if (node.minHeight !== undefined) {\n size.height = Math.max(size.height, node.minHeight);\n }\n }\n return size;\n };\n /** @private */\n BpmnDiagrams.prototype.initBPMNContent = function (content, node, diagram) {\n var shape = node.shape;\n var bpmnShape = node.shape.shape;\n if (bpmnShape === 'Event') {\n content = this.getBPMNEventShape(node, shape.event);\n }\n if (bpmnShape === 'Gateway') {\n content = this.getBPMNGatewayShape(node);\n }\n if (bpmnShape === 'DataObject') {\n content = this.getBPMNDataObjectShape(node);\n }\n if (bpmnShape === 'Message' || bpmnShape === 'DataSource') {\n content = this.getBPMNShapes(node);\n }\n //848061-BPMN Group shape to be function Like Subprocess Node\n if (bpmnShape === 'Group') {\n //854195 - bpmn group serialization issue\n content = this.getBPMNGroup(node, diagram);\n content.style.strokeDashArray = '2 2 6 2';\n content.cornerRadius = 10;\n }\n if (bpmnShape === 'Activity') {\n content = this.getBPMNActivityShape(node);\n }\n //Task 866412: Should revamp BPMN text annotation node.\n if (bpmnShape === 'TextAnnotation') {\n if (node.parentObj instanceof Diagram || node.parentObj instanceof Lane) {\n content = this.getBpmnTextAnnotationShape(node, node.shape, diagram);\n }\n else {\n content = this.getBpmnTextAnnotationSymbol(node, node.shape, diagram);\n }\n }\n return content;\n };\n BpmnDiagrams.prototype.getBpmnTextAnnotationShape = function (textAnnotation, bpmnTextAnnotation, diagram) {\n var annotationsContainer = new Canvas();\n annotationsContainer.measureChildren = false;\n annotationsContainer.offsetX = textAnnotation.offsetX;\n annotationsContainer.offsetY = textAnnotation.offsetY;\n annotationsContainer.float = true;\n annotationsContainer.id = textAnnotation.id + \"_textannotation\";\n annotationsContainer.style.strokeColor = 'transparent';\n annotationsContainer.style.fill = 'transparent';\n annotationsContainer.relativeMode = 'Object';\n annotationsContainer.rotateAngle = 0;\n var width = textAnnotation.width;\n var height = textAnnotation.height;\n var bounds = new Rect(0, 0, 0, 0);\n if (width !== 0 && height !== 0) {\n bounds = new Rect(textAnnotation.offsetX - width / 2, textAnnotation.offsetY - height / 2, width, height);\n }\n var oldIsProtectedOnChange = diagram.isProtectedOnChange;\n diagram.isProtectedOnChange = false;\n this.setAnnotationPath(bounds, annotationsContainer, textAnnotation, bpmnTextAnnotation, bpmnTextAnnotation.textAnnotation.textAnnotationDirection, diagram);\n diagram.isProtectedOnChange = oldIsProtectedOnChange;\n return annotationsContainer;\n };\n //Task 866412: Should revamp BPMN text annotation node. To render text annotation in symbol palette.\n BpmnDiagrams.prototype.getBpmnTextAnnotationSymbol = function (annotation, bpmnTextAnnotation, diagram) {\n var data = 'M33.33,15 L0,43 M39.33,0 L33.33,0 L33.33,30 L39.33,30 M60,0';\n if (bpmnTextAnnotation.textAnnotation.textAnnotationDirection === 'Top') {\n data = 'M15,33.33 L43,0 M0,39.33 L0,33.33 L30,33.33 L30,39.33 M0,60';\n }\n else if (bpmnTextAnnotation.textAnnotation.textAnnotationDirection === 'Right') {\n data = 'M6,15 L39.33,43 M0,0 L6,0 L6,30 L0,30 M-20,0';\n }\n else if (bpmnTextAnnotation.textAnnotation.textAnnotationDirection === 'Bottom') {\n data = 'M15,6 L43,39.33 M0,0 L0,6 L30,6 L30,0 M0,-20';\n }\n var path = new PathElement();\n path.data = data;\n path.style.fill = 'transparent';\n return path;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNShapes = function (node) {\n var bpmnShape = new PathElement();\n //set style\n this.setStyle(bpmnShape, node);\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n bpmnShape.shadow = node.shadow;\n }\n var bpmnShapeData = getBpmnShapePathData(node.shape.shape);\n bpmnShape.data = bpmnShapeData;\n bpmnShape.id = node.id + '_' + node.shape.shape;\n if (node.width !== undefined && node.height !== undefined) {\n bpmnShape.width = node.width;\n bpmnShape.height = node.height;\n }\n return bpmnShape;\n };\n //854195 - Method to add the children as canvas in the Bpmn group node container\n /** @private */\n BpmnDiagrams.prototype.getBPMNGroup = function (node, diagram) {\n var group = new Canvas();\n group.id = node.id + '_group';\n if (!group.children) {\n group.children = [];\n }\n var groupShapeObj = (node.shape.group);\n if (node.shape.group) {\n for (var i = 0; i < groupShapeObj.children.length; i++) {\n var child = diagram.nameTable[groupShapeObj.children[parseInt(i.toString(), 10)]];\n group.children.push(child.wrapper);\n }\n }\n group.width = node.width;\n group.height = node.height;\n return group;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNGatewayShape = function (node) {\n var gatewayshape = new Canvas();\n //childNode0\n var gatewayNode = new PathElement();\n gatewayNode.id = node.id + '_0_gateway';\n gatewayNode.offsetX = node.offsetX;\n gatewayNode.offsetY = node.offsetY;\n gatewayNode.data = 'M 40 20 L 20 40 L 0 20 L 20 0 L 40 20 Z';\n this.setStyle(gatewayNode, node);\n //childNode1\n var gatewayTypeNode = new PathElement();\n gatewayTypeNode.id = node.id + '_1_gatewayType';\n //set style - opacity\n gatewayTypeNode.style.opacity = node.style.opacity;\n gatewayTypeNode.style.strokeColor = node.style.strokeColor;\n gatewayTypeNode.horizontalAlignment = 'Center';\n gatewayTypeNode.verticalAlignment = 'Center';\n gatewayTypeNode.relativeMode = 'Object';\n var shapeType = node.shape.gateway;\n //let gatewayTypeNodeShapeData: string;\n var gatewayTypeNodeShapeData = getBpmnGatewayShapePathData(shapeType.type);\n if (shapeType.type === 'EventBased' || shapeType.type === 'ExclusiveEventBased' || shapeType.type === 'ParallelEventBased') {\n gatewayTypeNode.style.fill = 'white';\n }\n else {\n gatewayTypeNode.style.fill = 'black';\n }\n gatewayTypeNode.data = gatewayTypeNodeShapeData;\n // append child and set style\n gatewayshape.style.fill = 'transparent';\n gatewayshape.style.strokeColor = 'transparent';\n gatewayshape.style.strokeWidth = 0;\n gatewayshape.children = [gatewayNode, gatewayTypeNode];\n var size = this.getSize(node, gatewayNode);\n this.setSizeForBPMNGateway(node.shape.gateway, gatewayshape, size.width, size.height);\n return gatewayshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNDataObjectShape = function (node) {\n var dataObjectshape = new Canvas();\n var shape = node.shape.dataObject;\n //childNode0\n var dataobjNode = new PathElement();\n dataobjNode.id = node.id + '_0_dataobj';\n dataobjNode.data = 'M29.904,5 L7.853,5 L7.853,45 L42.147,45 L42.147,17.242,L29.932,5,L29.932,17.242,L42.147,17.242';\n var size = this.getSize(node, dataobjNode);\n dataobjNode.width = size.width;\n dataobjNode.height = size.height;\n this.setStyle(dataobjNode, node);\n //childNode1\n var dataobjTypeNode = new PathElement();\n dataobjTypeNode.id = node.id + '_1_type';\n dataobjTypeNode.width = 25;\n dataobjTypeNode.height = 20;\n dataobjTypeNode.margin.left = 5;\n dataobjTypeNode.margin.top = 5;\n dataobjTypeNode.data = 'M 3 9.4 l 6 0 v 2.4 l 3.6 -4 L 9 4 v 2.5 H 3 V 9.4 Z';\n //set style - opacity\n dataobjTypeNode.style.opacity = node.style.opacity;\n //childNode2\n var dataobjCollectionNode = new PathElement();\n dataobjCollectionNode.id = node.id + '_2_collection';\n dataobjCollectionNode.width = 7.5;\n dataobjCollectionNode.height = 15;\n dataobjCollectionNode.style.fill = 'black';\n dataobjCollectionNode.visible = true;\n dataobjCollectionNode.horizontalAlignment = 'Center';\n dataobjCollectionNode.verticalAlignment = 'Bottom';\n dataobjCollectionNode.relativeMode = 'Object';\n //set style - opacity\n dataobjCollectionNode.style.opacity = node.style.opacity;\n dataobjCollectionNode.data = 'M 0 0 L 0.1 0 L 0.1 2 L 0 2 Z M 0.4 0 L 0.6 0 L 0.6 2 L0.4 2 Z M 0.9 0 L 1 0 L 1 2 L 0.9 2 Z';\n switch (shape.type) {\n case 'None':\n dataobjTypeNode.visible = false;\n break;\n case 'Input':\n dataobjTypeNode.style.fill = 'white';\n break;\n case 'Output':\n dataobjTypeNode.style.fill = 'black';\n break;\n }\n if (shape.collection === false) {\n dataobjCollectionNode.visible = false;\n }\n //append child and set style\n dataObjectshape.style.fill = 'transparent';\n dataObjectshape.style.strokeColor = 'transparent';\n dataObjectshape.style.strokeWidth = 0;\n dataObjectshape.children = [dataobjNode, dataobjTypeNode, dataobjCollectionNode];\n return dataObjectshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNTaskShape = function (node) {\n var shape = node.shape.activity;\n var task = shape.task;\n var taskShapes = new Canvas();\n //childNode0\n var taskNode = new DiagramElement();\n taskNode.cornerRadius = 10;\n var size = this.getSize(node, taskNode);\n taskNode.id = node.id + '_0_task';\n taskNode.width = size.width;\n taskNode.height = size.height;\n this.setStyle(taskNode, node);\n // if task as call\n if ((task.call !== undefined) && task.call === true) {\n taskNode.style.strokeWidth = 4;\n }\n taskShapes.width = size.width;\n taskShapes.height = size.height;\n var childCount = this.getTaskChildCount(node);\n var x;\n var childSpace = childCount * 12;\n var area = size.width / 2 - childSpace;\n if (childCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (childCount - 1) * 8;\n }\n //childNode1\n var taskTypeNode = new PathElement();\n if (task.type === 'Receive' || task.type === 'Send') {\n taskTypeNode.width = 18;\n taskTypeNode.height = 16;\n }\n else if (task.type === 'Manual') {\n taskTypeNode.width = 16;\n taskTypeNode.height = 11;\n }\n else {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n }\n taskTypeNode.id = node.id + '_1_tasktType';\n taskTypeNode.margin.left = 5;\n taskTypeNode.margin.top = 5;\n var taskTypeNodeData = getBpmnTaskShapePathData(task.type);\n taskTypeNode.data = taskTypeNodeData;\n taskTypeNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n if (task.type === 'Send') {\n taskTypeNode.style.fill = 'black';\n }\n // append child and set style\n taskShapes.style.fill = 'transparent';\n taskShapes.style.strokeColor = 'transparent';\n taskShapes.style.strokeWidth = 0;\n taskShapes.children = [taskNode, taskTypeNode];\n //childnode for service\n if (task.type === 'Service') {\n var taskTypeNodeService = new PathElement();\n taskTypeNodeService.id = node.id + '_1_taskTypeService';\n taskTypeNodeService.data = taskTypeNodeData;\n taskTypeNodeService.margin.left = taskTypeNode.margin.left + 9;\n taskTypeNodeService.margin.top = taskTypeNode.margin.top + 9;\n taskTypeNodeService.style.fill = 'white';\n taskTypeNodeService.style.opacity = node.style.opacity;\n taskShapes.children.push(taskTypeNodeService);\n }\n // if task as loop\n var loopType = task.loop;\n var taskLoopNode = new PathElement(); //let childNode2data: string;\n var childNode2data = getBpmnLoopShapePathData(loopType);\n taskLoopNode.data = childNode2data;\n taskLoopNode.style.fill = 'black';\n if (loopType !== 'None') {\n taskLoopNode.visible = true;\n }\n else {\n taskLoopNode.visible = false;\n }\n if (childCount === 1) {\n x = area + 9;\n }\n //891296: Position of BPMN activity loop node is not proper while save and load\n taskLoopNode.margin.left = x - 3;\n if (taskLoopNode.visible === true) {\n x += 12 + 8;\n }\n taskLoopNode.width = 12;\n taskLoopNode.height = 12;\n taskLoopNode.margin.bottom = 5;\n taskLoopNode.id = node.id + '_2_loop';\n taskLoopNode.horizontalAlignment = 'Left';\n taskLoopNode.verticalAlignment = 'Bottom';\n taskLoopNode.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n taskLoopNode.relativeMode = 'Point';\n taskLoopNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n taskShapes.children.push(taskLoopNode);\n //if task as compensation\n var taskCompNode = new PathElement();\n taskCompNode = this.getBPMNCompensationShape(node, taskCompNode);\n if (task.compensation === true) {\n taskCompNode.visible = true;\n }\n else {\n taskCompNode.visible = false;\n }\n if (childCount === 1) {\n x = area + 9;\n }\n taskCompNode.margin.left = x - 3;\n x += 12 + 6;\n taskShapes.children.push(taskCompNode);\n return taskShapes;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNEventShape = function (node, subEvent, sub, id) {\n var eventshape = new Canvas();\n var event;\n var trigger;\n var width;\n var height;\n id = id || node.id;\n var pathdata = 'M164.1884,84.6909000000001C156.2414,84.6909000000001,149.7764,78.2259000000001,149.7764,70.2769000000001' +\n 'C149.7764,62.3279000000001,156.2414,55.8629000000001,164.1884,55.8629000000001C172.1354,55.8629000000001,178.6024,' +\n '62.3279000000001,178.6024,70.2769000000001C178.6024,78.2259000000001,172.1354,84.6909000000001,164.1884,84.6909000000001';\n var shapeEvent = node.shape.event;\n if ((!isBlazor() && node.shape.shape === 'Event')) {\n event = shapeEvent.event;\n trigger = shapeEvent.trigger;\n }\n width = subEvent.width;\n height = subEvent.height;\n if (sub) {\n width = width || 20;\n height = height || 20;\n }\n else if (subEvent.width === undefined || subEvent.height === undefined) {\n var pathElement = new PathElement();\n pathElement.data = pathdata;\n var size = this.getSize(node, pathElement);\n width = size.width;\n height = size.height;\n }\n var shapeActivity = node.shape.activity;\n if ((!isBlazor() && node.shape.shape === 'Activity')) {\n var subProcess = shapeActivity.subProcess;\n event = subEvent.event;\n trigger = subEvent.trigger;\n }\n //childNode0\n var innerEvtNode = new PathElement();\n innerEvtNode.data = pathdata;\n innerEvtNode.id = id + '_0_event';\n innerEvtNode.width = width;\n innerEvtNode.height = height;\n innerEvtNode.horizontalAlignment = 'Center';\n innerEvtNode.verticalAlignment = 'Center';\n innerEvtNode.relativeMode = 'Object';\n this.setStyle(innerEvtNode, node);\n //childNode1\n var outerEvtNode = new PathElement();\n outerEvtNode.data = pathdata;\n outerEvtNode.id = id + '_1_event';\n outerEvtNode.style.gradient = node.style.gradient;\n outerEvtNode.horizontalAlignment = 'Center';\n outerEvtNode.verticalAlignment = 'Center';\n outerEvtNode.relativeMode = 'Object';\n // set style opacity & strokeColor\n outerEvtNode.style.strokeColor = node.style.strokeColor;\n outerEvtNode.style.opacity = node.style.opacity;\n //childNode2\n var triggerNode = new PathElement();\n var triggerNodeData = getBpmnTriggerShapePathData(trigger);\n triggerNode.data = triggerNodeData;\n triggerNode.id = id + '_2_trigger';\n triggerNode.horizontalAlignment = 'Center';\n triggerNode.verticalAlignment = 'Center';\n triggerNode.relativeMode = 'Object';\n // set style opacity & strokeColor\n triggerNode.style.strokeColor = node.style.strokeColor;\n triggerNode.style.opacity = node.style.opacity;\n switch (event) {\n case 'Start':\n outerEvtNode.visible = false;\n break;\n case 'NonInterruptingStart':\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.visible = false;\n break;\n case 'Intermediate':\n innerEvtNode.style.fill = node.style.fill;\n innerEvtNode.style.gradient = null;\n break;\n case 'NonInterruptingIntermediate':\n innerEvtNode.style.fill = node.style.fill;\n innerEvtNode.style.gradient = null;\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.style.strokeDashArray = '2 3';\n break;\n case 'ThrowingIntermediate':\n case 'End':\n innerEvtNode.style.fill = event !== 'End' ? node.style.fill : node.style.fill !== 'white' ? node.style.fill : 'black';\n innerEvtNode.style.gradient = null;\n triggerNode.style.fill = 'black';\n triggerNode.style.strokeColor = 'white';\n break;\n }\n //append child and set style\n eventshape.style.fill = 'transparent';\n eventshape.style.strokeColor = 'transparent';\n eventshape.style.strokeWidth = 0;\n eventshape.children = [innerEvtNode, outerEvtNode, triggerNode];\n this.setSizeForBPMNEvents(shapeEvent, eventshape, width, height);\n return eventshape;\n };\n BpmnDiagrams.prototype.setEventVisibility = function (node, canvas) {\n var event = node.shape.event.event;\n var innerEvtNode = canvas[0];\n var outerEvtNode = canvas[1];\n var triggerNode = canvas[2];\n switch (event) {\n case 'Start':\n outerEvtNode.visible = false;\n break;\n case 'NonInterruptingStart':\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.visible = false;\n break;\n }\n };\n BpmnDiagrams.prototype.setSubProcessVisibility = function (node) {\n var subProcess = node.shape.activity.subProcess;\n var eventLength = subProcess.events.length;\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n var elementWrapper = node.wrapper.children[0].children[0];\n if (subProcess.adhoc === false) {\n elementWrapper.children[3 + index + eventLength].visible = false;\n }\n if (subProcess.compensation === false) {\n elementWrapper.children[4 + index + eventLength].visible = false;\n }\n if (eventLength > 0) {\n for (var i = 0; i < eventLength; i++) {\n this.setEventVisibility(node, elementWrapper.children[2 + i].children);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubProcessShape = function (node) {\n var subProcessShapes = new Canvas();\n var loopType;\n var events;\n var event;\n var subprocessAdhoc = new PathElement();\n var subProcessEventsShapes = new Canvas();\n var subProcessLoopShapes = new PathElement();\n var shape = node.shape.activity;\n var subProcess = shape.subProcess;\n var subChildCount = this.getSubprocessChildCount(node);\n var x;\n var subprocessNode = new DiagramElement();\n subprocessNode.id = node.id + '_0_Subprocess';\n subprocessNode.style.fill = 'transparent';\n subprocessNode.cornerRadius = 10;\n var size = this.getSize(node, subprocessNode);\n subprocessNode.width = size.width;\n subprocessNode.height = size.height;\n subProcessShapes.children = [subprocessNode];\n if (shape.subProcess.type === 'Transaction') {\n this.getBPMNSubProcessTransaction(node, node.shape, subProcessShapes);\n }\n var iconSpace = 4;\n var subChildSpace = 12;\n var childSpace = subChildCount * subChildSpace;\n var area = size.width / 2;\n if (subChildCount === 1) {\n x = area - (subChildSpace * 0.5);\n }\n else {\n x = area - (childSpace / 2) - ((subChildCount - 1) * iconSpace) / 2;\n }\n //set style\n this.setStyle(subprocessNode, node);\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n subProcessShapes.shadow = node.shadow;\n }\n var collapsedShape = new PathElement();\n collapsedShape.id = node.id + '_0_collapsed';\n collapsedShape.width = 12;\n collapsedShape.height = 12;\n collapsedShape.style.fill = 'black';\n collapsedShape.style.strokeColor = node.style.strokeColor;\n collapsedShape.margin.bottom = 5;\n collapsedShape.style.opacity = node.style.opacity;\n collapsedShape.horizontalAlignment = 'Left';\n collapsedShape.verticalAlignment = 'Bottom';\n collapsedShape.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n collapsedShape.relativeMode = 'Point';\n collapsedShape.data = getBpmnShapePathData('collapsedShape');\n collapsedShape.margin.left = x;\n if (subProcess.collapsed === true && !subProcess.processes) {\n collapsedShape.visible = true;\n }\n else {\n collapsedShape.visible = false;\n }\n if (collapsedShape.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subProcessShapes.children.push(collapsedShape);\n if (subProcess.type === 'Event') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '2 2';\n events = subProcess.events;\n for (var i = 0; i < events.length; i++) {\n event = events[parseInt(i.toString(), 10)];\n this.getBPMNSubEvent(event, node, subProcessShapes);\n }\n }\n // set loop for subprocess\n subProcessLoopShapes = this.getBPMNSubProcessLoopShape(node);\n if (subChildCount === 1) {\n x = area - 6;\n }\n subProcessLoopShapes.margin.left = x;\n if (subProcessLoopShapes.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subProcessLoopShapes.style.opacity = node.style.opacity;\n subProcessShapes.children.push(subProcessLoopShapes);\n // set boundary for subprocess\n subprocessNode.id = node.id + '_boundary';\n if (subProcess.boundary === 'Default') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Call') {\n subprocessNode.style.strokeWidth = 4;\n subprocessNode.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Event') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '2 2';\n }\n //set adhoc for subprocess\n subprocessAdhoc = this.getBPMNAdhocShape(node, subprocessAdhoc, subProcess);\n if (subChildCount === 1) {\n x = area - 6;\n }\n subprocessAdhoc.margin.left = x;\n if (subprocessAdhoc.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subprocessAdhoc.style.opacity = node.style.opacity;\n subProcessShapes.children.push(subprocessAdhoc);\n //set compensation for subprocess\n var subprocessComp = new PathElement();\n if (subProcess.compensation === true) {\n subprocessComp.visible = true;\n }\n else {\n subprocessComp.visible = false;\n }\n subprocessComp = this.getBPMNCompensationShape(node, subprocessComp);\n if (subChildCount === 1) {\n x = area - 6;\n }\n subprocessComp.margin.left = x;\n if (subprocessComp.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subprocessComp.style.opacity = node.style.opacity;\n subProcessShapes.children.push(subprocessComp);\n //set style for subprocess\n subProcessShapes.style.strokeColor = 'transparent';\n subProcessShapes.style.strokeWidth = 0;\n subProcessShapes.style.fill = 'transparent';\n return subProcessShapes;\n };\n BpmnDiagrams.prototype.getBPMNSubEvent = function (event, node, container, id) {\n container.children = container.children || [];\n //let eventContainer: Canvas;\n var eventContainer = this.getBPMNEventShape(node, event, true, id);\n this.getBPMNSubprocessEvent(node, eventContainer, event);\n eventContainer.id = id || (node.id + '_subprocessEvents');\n eventContainer.width = event.width || 20;\n eventContainer.height = event.height || 20;\n // set offset for subevents\n eventContainer.setOffsetWithRespectToBounds(event.offset.x, event.offset.y, 'Fraction');\n eventContainer.relativeMode = 'Point';\n //set margin for subevents\n eventContainer.margin = event.margin;\n //set alignment for subevents\n eventContainer.horizontalAlignment = event.horizontalAlignment;\n eventContainer.verticalAlignment = event.verticalAlignment;\n // set style for subevent\n eventContainer.style.fill = 'transparent';\n eventContainer.style.strokeColor = 'transparent';\n eventContainer.style.strokeWidth = 0;\n container.children.push(eventContainer);\n };\n BpmnDiagrams.prototype.getBPMNSubProcessTransaction = function (node, shape, container) {\n var shapeWidth = container.children[0].width;\n var shapeHeight = container.children[0].height;\n var innerRect = new DiagramElement();\n innerRect.margin = { left: 3, right: 0, top: 3, bottom: 0 };\n innerRect.id = node.id + '_0_Subprocess_innnerRect';\n innerRect.cornerRadius = 10;\n innerRect.width = shapeWidth - 6;\n //EJ2-824711 - Fill color is not applied properly for BPMN transaction subProcess.\n innerRect.style.fill = 'transparent';\n innerRect.height = shapeHeight - 6;\n container.children.push(innerRect);\n var transactionEvents = new Canvas();\n transactionEvents.id = node.id + '_transaction_events';\n transactionEvents.style.gradient = node.style.gradient;\n var transaction = shape.activity.subProcess.transaction;\n this.getBPMNSubEvent(transaction.success, node, transactionEvents, node.id + '_success');\n this.getBPMNSubEvent(transaction.cancel, node, transactionEvents, node.id + '_cancel');\n this.getBPMNSubEvent(transaction.failure, node, transactionEvents, node.id + '_failure');\n this.updateDiagramContainerVisibility(transactionEvents.children[0], transaction.success.visible);\n this.updateDiagramContainerVisibility(transactionEvents.children[1], transaction.cancel.visible);\n this.updateDiagramContainerVisibility(transactionEvents.children[2], transaction.failure.visible);\n transactionEvents.float = true;\n transactionEvents.width = shapeWidth;\n transactionEvents.height = shapeHeight;\n transactionEvents.style.fill = transactionEvents.style.strokeColor = 'transparent';\n container.children.push(transactionEvents);\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubProcessLoopShape = function (node) {\n var shape = node.shape.activity;\n var loopType;\n var subprocessLoop = new PathElement();\n var subprocessLoopData;\n var subProcess = shape.subProcess;\n // eslint-disable-next-line prefer-const\n loopType = subProcess.loop;\n // eslint-disable-next-line prefer-const\n subprocessLoopData = getBpmnLoopShapePathData(loopType);\n if (loopType !== 'None') {\n subprocessLoop.visible = true;\n }\n else {\n subprocessLoop.visible = false;\n }\n subprocessLoop.id = node.id + '_loop';\n subprocessLoop.data = subprocessLoopData;\n subprocessLoop.style.fill = 'black';\n subprocessLoop.width = 12;\n subprocessLoop.height = 12;\n subprocessLoop.horizontalAlignment = 'Left';\n subprocessLoop.verticalAlignment = 'Bottom';\n subprocessLoop.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n subprocessLoop.relativeMode = 'Point';\n subprocessLoop.margin.bottom = 5;\n subprocessLoop.style.fill = 'transparent';\n subprocessLoop.style.strokeColor = node.style.strokeColor;\n return subprocessLoop;\n };\n /** @private */\n BpmnDiagrams.prototype.drag = function (obj, tx, ty, diagram) {\n var node = diagram.nameTable[(obj).processId];\n if (obj.margin.top + ty >= 0) {\n diagram.nodePropertyChange(obj, {}, { margin: { top: obj.margin.top + ty } });\n }\n if (obj.margin.left + tx >= 0) {\n diagram.nodePropertyChange(obj, {}, { margin: { left: obj.margin.left + tx } });\n }\n //const diffX: number = 0;\n //const diffY: number = 0;\n var bound = this.getChildrenBound(node, obj.id, diagram);\n this.updateSubProcessess(bound, obj, diagram);\n node.wrapper.measure(new Size(undefined, undefined));\n node.wrapper.arrange(node.wrapper.desiredSize);\n diagram.refreshCanvasLayers();\n diagram.updateSelector();\n this.updateDocks(obj, diagram);\n };\n /** @private */\n BpmnDiagrams.prototype.dropBPMNchild = function (target, source, diagram) {\n if (source && source.shape.type === 'Bpmn' && target.shape.type === 'Bpmn'\n && (!isBlazor() && source.shape.shape !== 'TextAnnotation')) {\n var subProcess = diagram.nameTable[target.id].shape.activity.subProcess;\n if (diagram.currentSymbol && target.shape.type === 'Bpmn' && !subProcess.collapsed) {\n source.processId = target.id;\n return;\n }\n subProcess.processes = subProcess.processes || [];\n if (subProcess.processes && subProcess.processes.indexOf(source.id) === -1 && !subProcess.collapsed) {\n subProcess.processes.push(source.id);\n // To arrange the process based on zIndex, which cause issue in save and load.\n if (subProcess.processes.length > 1) {\n this.sortProcessOrder(subProcess.processes, diagram);\n }\n var redoElement = cloneObject(source);\n var sources = diagram.nameTable[source.id].wrapper;\n var targetWrapper = diagram.nameTable[target.id].wrapper;\n sources.margin.top = (sources.offsetY - (sources.actualSize.height / 2))\n - (target.offsetY - (target.actualSize.height / 2));\n sources.margin.left = (sources.offsetX - (sources.actualSize.width / 2))\n - (target.offsetX - (target.actualSize.width / 2));\n sources.margin.top = (sources.margin.top < 0) ? 0 : sources.margin.top;\n sources.margin.left = (sources.margin.left < 0) ? 0 : sources.margin.left;\n diagram.nameTable[source.id].processId = target.id;\n targetWrapper.children.push(diagram.nameTable[source.id].wrapper);\n //To identify the processess added at runtime.\n diagram.nameTable[source.id].wrapper.isDroppedProcess = true;\n var bound = this.getChildrenBound(target, source.id, diagram);\n this.updateSubProcessess(bound, source, diagram);\n targetWrapper.measure(new Size(undefined, undefined));\n targetWrapper.arrange(targetWrapper.desiredSize);\n diagram.refreshCanvasLayers();\n diagram.updateSelector();\n // 908136: Node goes behind the subprocess and the connector connected to it is destroyed Issue Fix by commenting these lines\n // let edges: string[] = [];\n // edges = edges.concat((source as Node).outEdges, (source as Node).inEdges);\n // for (let i: number = edges.length - 1; i >= 0; i--) {\n // if (diagram.bpmnModule.bpmnTextAnnotationConnector.indexOf(diagram.nameTable[edges[parseInt(i.toString(), 10)]])\n // === -1) {\n // diagram.remove(diagram.nameTable[edges[parseInt(i.toString(), 10)]]);\n // }\n // }\n var obj = cloneObject(source);\n var entry = {\n type: 'PositionChanged', undoObject: { nodes: [redoElement] },\n redoObject: { nodes: [obj] }, category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n if (diagram.mode === 'SVG') {\n if (source.zIndex < target.zIndex) {\n diagram.updateProcesses(source);\n this.updateSubprocessNodeIndex(source, diagram, target);\n }\n }\n this.updateDocks(source, diagram);\n }\n }\n };\n BpmnDiagrams.prototype.sortProcessOrder = function (processes, diagram) {\n // Sort the process array based on node zIndex\n processes.sort(function (a, b) { return diagram.nameTable[\"\" + a].zIndex - diagram.nameTable[\"\" + b].zIndex; });\n };\n BpmnDiagrams.prototype.updateIndex = function (diagram, source) {\n //let processNode: Node;\n var processNode = source;\n var nodeindex = diagram.getIndex(processNode, processNode.id);\n diagram.nodes.splice(Number(nodeindex), 1);\n processNode.zIndex = diagram.nodes[diagram.nodes.length - 1].zIndex + 1;\n diagram.nodes.push(processNode);\n };\n BpmnDiagrams.prototype.updateSubprocessNodeIndex = function (source, diagram, target) {\n if (source.shape.activity.subProcess.processes\n && source.shape.activity.subProcess.processes.length > 0) {\n for (var i = 0; i < source.shape.activity.subProcess.processes.length; i++) {\n this.updateIndex(diagram, source);\n var processes = source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)];\n if (diagram.nameTable[\"\" + processes].shape.activity.subProcess.processes.length > 0) {\n this.updateSubprocessNodeIndex(diagram.nameTable[\"\" + processes], diagram, target);\n }\n else {\n var node = diagram.nameTable[source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)]];\n this.updateIndex(diagram, node);\n }\n }\n }\n else {\n this.updateIndex(diagram, source);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateDocks = function (obj, diagram) {\n if (obj.shape.type === 'Bpmn' && obj.shape.activity.subProcess.processes &&\n !obj.shape.activity.subProcess.collapsed) {\n var processTable = obj.shape.activity.subProcess.processes;\n for (var _i = 0, processTable_1 = processTable; _i < processTable_1.length; _i++) {\n var i = processTable_1[_i];\n var actualObject = diagram.nameTable[\"\" + i];\n if (actualObject) {\n diagram.updateConnectorEdges(actualObject);\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (actualObject.shape.activity.subProcess.processes\n && actualObject.shape.activity.subProcess.processes.length) {\n this.updateDocks(actualObject, diagram);\n }\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.removeBpmnProcesses = function (currentObj, diagram) {\n var element = diagram.nameTable[currentObj.processId];\n if (currentObj.shape.type === 'Bpmn' && currentObj.shape.activity.subProcess.processes &&\n currentObj.shape.activity.subProcess.processes.length > 0) {\n var processes = currentObj.shape.activity.subProcess.processes;\n for (var j = processes.length - 1; j >= 0; j--) {\n diagram.remove(diagram.nameTable[processes[parseInt(j.toString(), 10)]]);\n }\n }\n if (element) {\n diagram.removeDependentConnector(currentObj);\n var processes = element.shape.activity.subProcess.processes;\n this.removeChildFromBPMN(element.wrapper, currentObj.id, diagram, true);\n var processIndex = processes.indexOf(currentObj.id);\n processes.splice(processIndex, 1);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.removeChildFromBPMN = function (wrapper, name, diagram, isDelete) {\n for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) {\n var i = _a[_i];\n if (i.id === name) {\n wrapper.children.splice(wrapper.children.indexOf(i), 1);\n if (!i.isDroppedProcess && !isDelete) {\n // To remove the child node from subprocess to diagram in DOM.\n this.removeGElement(i.id, diagram);\n }\n }\n else if (i.children) {\n this.removeChildFromBPMN(i, name, diagram, isDelete);\n }\n }\n };\n //Bug 858761: Default Tooltip of sub-process node is not positioned properly after drag and drop the child of subprocess in diagram.\n // To remove the child node from subprocess to diagram in DOM.\n BpmnDiagrams.prototype.removeGElement = function (id, diagram) {\n var element = document.getElementById(id + '_groupElement');\n var diagramLayer = document.getElementById(diagram.element.id + '_diagramLayer');\n var parent = element.parentElement;\n parent.removeChild(element);\n diagramLayer.appendChild(element);\n var node = diagram.nameTable[\"\" + id];\n var subProcess = diagram.nameTable[\"\" + node.processId];\n var beforeIndex = node.zIndex + 1;\n var getNode = this.getNode(beforeIndex, diagram);\n if (getNode.length > 0) {\n var neighborElement_1 = document.getElementById(getNode[0].id + '_groupElement');\n var index = Array.from(diagramLayer.children).findIndex(function (child) { return child === neighborElement_1; });\n var domIndex = index !== -1 ? index : 1;\n // 889550: issue with dragging process nodes of the sub process\n // Remove the adjacent element of the node which z index is lessthan subprocess z index\n if (node.zIndex < subProcess.zIndex) {\n diagramLayer.children[parseInt(domIndex.toString(), 10)].insertAdjacentElement('beforebegin', element);\n }\n }\n };\n BpmnDiagrams.prototype.getNode = function (index, diagram) {\n var getNode = diagram.nodes.filter(function (x) { return x.zIndex === index; });\n if (getNode.length === 0 && index > 0) {\n return this.getNode(index - 1, diagram);\n }\n return getNode;\n };\n /** @private */\n BpmnDiagrams.prototype.removeProcess = function (id, diagram) {\n var node = diagram.nameTable[\"\" + id];\n if (node) {\n var parent_1 = diagram.nameTable[node.processId];\n if (parent_1 && parent_1.shape.type === 'Bpmn') {\n var processes = parent_1.shape.activity.subProcess.processes;\n diagram.removeDependentConnector(node);\n this.removeChildFromBPMN(parent_1.wrapper, id, diagram, true);\n var processIndex = processes.indexOf(id);\n processes.splice(processIndex, 1);\n node.processId = '';\n diagram.refreshDiagramLayer();\n diagram.updateSelector();\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.addProcess = function (process, parentId, diagram) {\n //let id: string;\n process.id = process.id || randomId();\n var id = process.id;\n var node = diagram.nameTable[\"\" + id];\n if (!node) {\n diagram.add(process);\n }\n process.processId = parentId;\n var parentNode = diagram.nameTable[\"\" + parentId];\n var subProcess = parentNode.shape.activity.subProcess;\n if (node && parentNode && parentNode.shape.type === 'Bpmn' && node.shape.type === 'Bpmn' &&\n subProcess.processes) {\n node.processId = parentId;\n var processes = parentNode.shape.activity.subProcess.processes;\n if (processes.indexOf(id) < 0) {\n processes.push(id);\n }\n parentNode.wrapper.children.push(node.wrapper);\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n diagram.bpmnModule.updateDocks(parentNode, diagram);\n diagram.refreshDiagramLayer();\n if (diagram.mode === 'SVG' && (node.shape && node.shape.activity\n && !node.shape.activity.subProcess.processes)) {\n var child = getDiagramElement(parentId + '_groupElement');\n child.appendChild(getDiagramElement(process.id + '_groupElement'));\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getChildrenBound = function (node, excludeChild, diagram) {\n var processes = node.shape.activity.subProcess.processes;\n var bound;\n if (processes && processes.length) {\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var i = processes_1[_i];\n if (excludeChild !== i) {\n if (!bound) {\n bound = diagram.nameTable[\"\" + i].wrapper.bounds;\n }\n else {\n bound = diagram.nameTable[\"\" + i].wrapper.bounds.uniteRect(bound);\n }\n }\n }\n }\n return bound || diagram.nameTable[\"\" + excludeChild].wrapper.bounds;\n };\n /** @private */\n BpmnDiagrams.prototype.updateSubProcessess = function (bound, obj, diagram) {\n var diffX;\n var diffY;\n var node = diagram.nameTable[obj.processId];\n var right;\n var bottom;\n var pivot = { x: 0.5, y: 0.5 };\n if ((node.wrapper.bounds.left + obj.margin.left + obj.width) > (node.wrapper.bounds.right)) {\n right = true;\n }\n if ((node.wrapper.bounds.top + obj.margin.top + obj.height) > (node.wrapper.bounds.bottom)) {\n bottom = true;\n }\n if (right) {\n pivot.x = 0;\n }\n if (bottom) {\n pivot.y = 0;\n }\n var actualSize = node.wrapper.actualSize;\n if (right) {\n diffX = (obj.wrapper.margin.left + obj.wrapper.bounds.width) / actualSize.width;\n }\n if (bottom) {\n diffY = (obj.wrapper.margin.top + obj.wrapper.bounds.height) / actualSize.height;\n }\n if (diffX > 0 || diffY > 0) {\n diagram.commandHandler.scale(diagram.nameTable[obj.processId], diffX || 1, diffY || 1, pivot);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNCompensationShape = function (node, compensationNode) {\n compensationNode.id = node.id + '_0_compensation';\n compensationNode.width = 12;\n compensationNode.height = 12;\n compensationNode.margin.bottom = 5;\n compensationNode.style.fill = 'transparent';\n compensationNode.style.strokeColor = node.style.strokeColor;\n compensationNode.horizontalAlignment = 'Left';\n compensationNode.verticalAlignment = 'Bottom';\n compensationNode.relativeMode = 'Object';\n compensationNode.data = 'M 22.462 18.754 l -6.79 3.92 l 6.79 3.92 V 22.89 l 6.415 3.705 v -7.841 l -6.415 3.705 V 18.754 Z' +\n ' M 28.331 19.701 v 5.947 l -5.149 -2.973 L 28.331 19.701 Z M 21.916 25.647 l -5.15 -2.973 l 5.15 -2.973 V 25.647 Z' +\n ' M 22.275 12.674 c -5.513 0 -9.999 4.486 -9.999 9.999 c 0 5.514 4.486 10.001 9.999 10.001' +\n ' c 5.514 0 9.999 -4.486 9.999 -10.001 C 32.274 17.16 27.789 12.674 22.275 12.674 Z M 22.275 32.127 ' +\n ' c -5.212 0 -9.453 -4.241 -9.453 -9.454 c 0 -5.212 4.241 -9.453 9.453 -9.453 c 5.212 0 9.453 4.241 9.453 9.453' +\n ' C 31.728 27.887 27.487 32.127 22.275 32.127 Z';\n return compensationNode;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNActivityShape = function (node) {\n var eventshape = new Canvas();\n var content;\n var shape = node.shape.activity;\n var task = shape.activity;\n var subProcess = shape.subProcess;\n var activityType = shape.activity;\n if (task === 'Task') {\n content = this.getBPMNTaskShape(node);\n }\n if (task === 'SubProcess' && subProcess) {\n content = this.getBPMNSubProcessShape(node);\n }\n content.id = task + node.id;\n eventshape.children = [content];\n eventshape.style.fill = 'transparent';\n eventshape.style.strokeColor = 'transparent';\n eventshape.style.strokeWidth = 0;\n return eventshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubprocessEvent = function (node, subProcessEventsShapes, events) {\n var annotations;\n var ports;\n if (events.annotations.length !== 0) {\n for (var i = 0; i < events.annotations.length; i++) {\n var annot = events.annotations[parseInt(i.toString(), 10)];\n annotations = node.initAnnotationWrapper(annot);\n annotations.width = events.width;\n annotations.height = events.height;\n subProcessEventsShapes.children.push(annotations);\n }\n }\n if (events.ports.length !== 0) {\n for (var i = 0; i < events.ports.length; i++) {\n var port = events.ports[parseInt(i.toString(), 10)];\n ports = node.initPortWrapper(port);\n subProcessEventsShapes.children.push(ports);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNAdhocShape = function (node, adhocNode, subProcess) {\n adhocNode.id = node.id + '_0_adhoc';\n adhocNode.width = 12;\n adhocNode.height = 8;\n adhocNode.style.fill = 'black';\n adhocNode.style.strokeColor = node.style.strokeColor;\n adhocNode.margin.bottom = 5;\n adhocNode.horizontalAlignment = 'Left';\n adhocNode.verticalAlignment = 'Bottom';\n adhocNode.relativeMode = 'Object';\n adhocNode.data = 'M 49.832 76.811 v -2.906 c 0 0 0.466 -1.469 1.931 -1.5 c 1.465 -0.031 2.331 1.219 2.897 1.688 ' +\n 's 1.06 0.75 1.526 0.75 c 0.466 0 1.548 -0.521 1.682 -1.208 s 0.083 3.083 0.083 3.083 s -0.76 0.969 -1.859 0.969 ' +\n 'c -1.066 0 -1.865 -0.625 -2.464 -1.438 s -1.359 -0.998 -2.064 -0.906 C 50.598 75.467 49.832 76.811 49.832 76.811 Z';\n if (subProcess && subProcess.adhoc === true) {\n adhocNode.visible = true;\n }\n else {\n adhocNode.visible = false;\n }\n return adhocNode;\n };\n // /** @private */\n // public getTextAnnotationWrapper(node: NodeModel, id: string): TextElement {\n // if (node && node.shape.type === 'Bpmn') {\n // const shape: BpmnShapes = (node.shape as BpmnShape).shape;\n // if (shape === 'TextAnnotation') {\n // return node.wrapper.children[1] as TextElement;\n // }\n // }\n // return null;\n // }\n /**\n *\n * @private\n * To modify the text annotation path while dragging the node and set port offset based on dragging.\n */\n BpmnDiagrams.prototype.setAnnotationPath = function (sourceBounds, wrapper, node, bpmnShape, direction, diagram) {\n var pathElement = new PathElement();\n pathElement.id = wrapper.id + '_path';\n pathElement.width = node.width;\n pathElement.height = node.height;\n pathElement.style.fill = 'transparent';\n pathElement.style.strokeColor = ((node.style.strokeColor === 'transparent') ? 'black' : node.style.strokeColor);\n pathElement.style.opacity = node.style.opacity;\n pathElement.relativeMode = 'Object';\n pathElement.horizontalAlignment = 'Stretch';\n pathElement.verticalAlignment = 'Stretch';\n var pointPort = (node.ports.length > 0) ? node.ports[0] : new PointPort(node, 'ports', '', true);\n diagram.protectPropertyChange(true);\n node.ports = [pointPort];\n diagram.protectPropertyChange(false);\n switch (direction) {\n case 'Left':\n pathElement.data = 'M10,20 L0,20 L0,0 L10,0';\n pathElement.width = 10;\n pathElement.horizontalAlignment = 'Left';\n pointPort.offset = { x: 0.0, y: 0.5 };\n break;\n case 'Right':\n pathElement.data = 'M0,0 L10,0 L10,20 L0,20';\n pathElement.width = 10;\n pathElement.horizontalAlignment = 'Right';\n pointPort.offset =\n {\n x: 1.0,\n y: 0.5\n };\n break;\n case 'Top':\n pathElement.data = 'M20,10 L20,0 L0,0 L0,10';\n pathElement.height = 10.0;\n pathElement.verticalAlignment = 'Top';\n pointPort.offset =\n {\n x: 0.5,\n y: 0.0\n };\n break;\n case 'Bottom':\n pathElement.data = 'M0,0 L0,10 L20,10 L20,0';\n pathElement.height = 10;\n pathElement.verticalAlignment = 'Bottom';\n pointPort.offset =\n {\n x: 0.5,\n y: 1.0\n };\n break;\n default:\n //To check the text annotation has parent and update the path element.\n if (bpmnShape.textAnnotation.textAnnotationTarget !== '') {\n if (diagram.nameTable[bpmnShape.textAnnotation.textAnnotationTarget]) {\n var node2 = diagram.nameTable[bpmnShape.textAnnotation.textAnnotationTarget];\n node2.hasTextAnnotation = true;\n var wrapper2 = node2.wrapper;\n if (wrapper2 !== null) {\n var doubleValue = node2.width;\n var doubleValue2 = node2.height;\n var targetBounds = new Rect(0.0, 0.0, 0.0, 0.0);\n if (doubleValue !== 0.0 && doubleValue2 !== 0.0) {\n targetBounds = new Rect(node2.offsetX - doubleValue / 2, node2.offsetY - doubleValue2 / 2, doubleValue, doubleValue2);\n }\n this.setAnnotationPosition(targetBounds, node, sourceBounds, pathElement);\n }\n }\n }\n else if (bpmnShape.textAnnotation.textAnnotationTarget === '') {\n pathElement.data = 'M10,20 L0,20 L0,0 L10,0';\n pathElement.width = 10.0;\n pathElement.horizontalAlignment = 'Left';\n pointPort.offset = {\n x: 0.0,\n y: 0.5\n };\n }\n break;\n }\n wrapper.children = [];\n wrapper.children.push(pathElement);\n };\n //Task 866412: Should revamp BPMN text annotation node. To modifty the port offset and annotation path based on node bounds while dragging.\n BpmnDiagrams.prototype.setAnnotationPosition = function (targetBounds, annotation, annotationBounds, annotationPath) {\n var pointPort = annotation.ports[0];\n var position = { x: annotationBounds.x, y: annotationBounds.y };\n var rotateAngle = this.getAnnotationPathAngle(position, targetBounds);\n if (rotateAngle === 90) {\n annotationPath.data = 'M20,10 L20,0 L0,0 L0,10';\n annotationPath.height = 10.0;\n annotationPath.verticalAlignment = 'Top';\n pointPort.offset =\n {\n x: 0.5,\n y: 0.0\n };\n }\n else if (rotateAngle === 180) {\n annotationPath.data = 'M0,0 L10,0 L10,20 L0,20';\n annotationPath.width = 10.0;\n annotationPath.horizontalAlignment = 'Right';\n pointPort.offset =\n {\n x: 1.0,\n y: 0.5\n };\n }\n else if (rotateAngle === 0) {\n annotationPath.data = 'M10,20 L0,20 L0,0 L10,0';\n annotationPath.width = 10.0;\n annotationPath.horizontalAlignment = 'Left';\n pointPort.offset =\n {\n x: 0.0,\n y: 0.5\n };\n }\n else {\n annotationPath.data = 'M0,0 L0,10 L20,10 L20,0';\n annotationPath.height = 10.0;\n annotationPath.verticalAlignment = 'Bottom';\n pointPort.offset =\n {\n x: 0.5,\n y: 1.0\n };\n }\n };\n // /** @private */\n // public findInteractableObject(obj: ConnectorModel, diagram: Diagram): NodeModel | ConnectorModel {\n // if (obj.targetID) {\n // let targetNode: NodeModel = diagram.nameTable[obj.targetID];\n // if (targetNode.shape.type === 'Bpmn' && (targetNode.shape as BpmnShape).shape === 'TextAnnotation') {\n // return targetNode;\n // }\n // }\n // return obj;\n // }\n /** @private */\n BpmnDiagrams.prototype.getSubprocessChildCount = function (node) {\n var count = 0;\n var shape = node.shape.activity;\n //let loopType: string;\n var subProcess = shape.subProcess;\n var loopType = subProcess.loop;\n if (loopType !== undefined && loopType !== 'None') {\n count++;\n }\n if ((subProcess.compensation !== undefined) &&\n subProcess.compensation === true) {\n count++;\n }\n if ((subProcess.collapsed !== undefined) &&\n subProcess.collapsed === true) {\n count++;\n }\n if ((subProcess.adhoc !== undefined) &&\n subProcess.adhoc === true) {\n count++;\n }\n return count;\n };\n /** @private */\n BpmnDiagrams.prototype.getTaskChildCount = function (node) {\n var count = 0;\n var shape = node.shape.activity;\n var task = shape.task;\n var loopType;\n if ((task.compensation !== undefined) &&\n task.compensation === true) {\n count++;\n }\n if ((task.loop !== undefined) &&\n task.loop !== 'None') {\n count++;\n }\n return count;\n };\n /** @private */\n BpmnDiagrams.prototype.setStyle = function (child, node) {\n //set style\n child.style.fill = node.style.fill;\n child.style.strokeColor = node.style.strokeColor;\n child.style.strokeWidth = node.style.strokeWidth;\n child.style.strokeDashArray = node.style.strokeDashArray;\n child.style.opacity = node.style.opacity;\n child.style.gradient = node.style.gradient;\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n child.shadow = node.shadow;\n }\n };\n //End code conversion region\n //Update BPMN Shapes on NodePropertyChange\n //Start region\n /** @private */\n BpmnDiagrams.prototype.updateBPMN = function (changedProp, oldObject, actualObject, diagram) {\n var newShape = changedProp.shape || {};\n var elementWrapper = actualObject.wrapper.children[0];\n var actualShape = actualObject.shape.shape ||\n (actualObject.shape.bpmnShape);\n //Bug 892767: Unable to update BPMN text annotation direction dynamically\n //To update the text annotation direction and target dynamically.\n if (newShape.textAnnotation && actualShape === 'TextAnnotation') {\n if (newShape.textAnnotation.textAnnotationDirection !== undefined) {\n //Modify text annotation path based on text annotation direction\n this.setAnnotationPath(actualObject.wrapper.bounds, actualObject.wrapper.children[0], actualObject, actualObject.shape, actualObject.shape.textAnnotation.textAnnotationDirection, diagram);\n //Reset the id of path element\n actualObject.wrapper.children[0].children[0].id = actualObject.id + '_textannotation_path';\n var newValue = { ports: { 0: { offset: actualObject.ports[0].offset } } };\n diagram.nodePropertyChange(actualObject, {}, newValue);\n }\n if (newShape.textAnnotation.textAnnotationTarget !== undefined) {\n var sourceNode = diagram.nameTable[newShape.textAnnotation.textAnnotationTarget];\n if (sourceNode && sourceNode.shape.type === 'Bpmn') {\n var textAnnotationConnector = diagram.nameTable[actualObject.inEdges[0]];\n if (textAnnotationConnector) {\n //To modify the sourceID of text annotation connector\n textAnnotationConnector.sourceID = sourceNode.id;\n diagram.connectorPropertyChange(textAnnotationConnector, {}, { sourceID: sourceNode.id });\n }\n }\n else if (newShape.textAnnotation.textAnnotationTarget === '') {\n var textAnnotationConnector = diagram.nameTable[actualObject.inEdges[0]];\n if (textAnnotationConnector) {\n var oldParent = diagram.nameTable[oldObject.shape.textAnnotation.textAnnotationTarget];\n var index = oldParent.outEdges.indexOf(textAnnotationConnector.id);\n oldParent.outEdges.splice(index, 1);\n textAnnotationConnector.sourceID = '';\n diagram.connectorPropertyChange(textAnnotationConnector, {}, { sourceID: '' });\n }\n }\n }\n }\n var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined;\n if ((newShape.shape === 'Gateway') &&\n newShape.gateway) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNGatewayShape(actualObject);\n }\n else if ((newShape.shape === 'DataObject') &&\n newShape.dataObject) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNDataObjectShape(actualObject);\n }\n else if ((newShape.shape === 'Activity') &&\n newShape.activity) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNActivityShape(actualObject);\n }\n /**\n * EJ2-EJ2-60644 - Bpmn event fill color does not applied while changing event in runtime.\n */\n else if (((actualObject.shape.bpmnShape === 'Event' || actualObject.shape.shape === 'Event') || newShape.shape === 'Event') &&\n newShape.event) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n var shapeEvent = newShape.event;\n actualObject.wrapper.children[0] = this.getBPMNEventShape(actualObject, shapeEvent);\n }\n else if ((newShape.shape === 'Message') ||\n (newShape.shape === 'DataSource')) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNShapes(actualObject);\n //}\n // else if (newShape.shape === 'Group') {\n // actualObject.wrapper.children[0] = this.getBPMNGroup(actualObject, diagram);\n }\n else if (newShape.gateway !== undefined || (actualShape === 'Gateway' && sizeChanged)) {\n this.updateBPMNGateway(actualObject, changedProp);\n }\n else if (newShape.dataObject !== undefined || (actualShape === 'DataObject' && sizeChanged)) {\n this.updateBPMNDataObject(actualObject, changedProp, oldObject);\n }\n else if (newShape.activity !== undefined || (actualShape === 'Activity' && sizeChanged)) {\n this.updateBPMNActivity(actualObject, changedProp, oldObject, diagram);\n }\n else if (newShape.event !== undefined || (actualShape === 'Event' && sizeChanged)) {\n this.updateBPMNEvent(actualObject, changedProp, oldObject);\n }\n actualObject.wrapper.children[0].id = actualObject.wrapper.children[0].id || elementWrapper.id;\n if (changedProp.style) {\n updateStyle(changedProp.style, elementWrapper instanceof Container ? ((!isBlazor() && actualObject.shape.shape === 'Activity')) ?\n elementWrapper.children[0].children[0] :\n elementWrapper.children[0] : elementWrapper);\n if (changedProp.style && changedProp.style.strokeColor) {\n //EJ2-844052-BPMN nodes styles are not updated properly at runtime\n if (elementWrapper && elementWrapper.children !== undefined\n && elementWrapper.children.length > 0) {\n if (((!isBlazor() && actualObject.shape.shape === 'Activity')) &&\n actualObject.shape.activity.activity === 'SubProcess') {\n var child = elementWrapper.children[0];\n this.updateBPMNStyle(child, changedProp.style.strokeColor);\n }\n else if (((!isBlazor() && actualObject.shape.shape === 'Gateway')) ||\n ((!isBlazor() && actualObject.shape.shape === 'Event'))) {\n this.updateBPMNStyle(elementWrapper, changedProp.style.strokeColor);\n }\n }\n }\n if (changedProp.style && changedProp.style.opacity !== undefined) {\n this.updateBpmnChildOpacity(actualObject.wrapper, changedProp.style.opacity);\n }\n }\n };\n // To update the opacity of BPMN child\n BpmnDiagrams.prototype.updateBpmnChildOpacity = function (wrapper, opacity) {\n if (wrapper.children && wrapper.children.length > 0) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var child = wrapper.children[parseInt(i.toString(), 10)];\n if (child.children) {\n this.updateBpmnChildOpacity(child, opacity);\n }\n if (!(child instanceof TextElement)) {\n child.style.opacity = opacity;\n }\n }\n }\n };\n /**\n * EJ2-60574 -BPMN shape do not get changed at runtime properly\n */\n BpmnDiagrams.prototype.removeBPMNElementFromDOM = function (actualObject, diagram) {\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNStyle = function (elementWrapper, changedProp) {\n for (var i = 0; i < elementWrapper.children.length; i++) {\n var child = elementWrapper.children[parseInt(i.toString(), 10)];\n updateStyle({ strokeColor: changedProp }, child);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNGateway = function (node, changedProp) {\n var bpmnShape = node.shape;\n var elementWrapper = node.wrapper.children[0];\n if (bpmnShape) {\n updateStyle(node.style, elementWrapper.children[0]);\n var pathData = getBpmnGatewayShapePathData(bpmnShape.gateway.type);\n var dataobjTypeNode = this.updateGatewaySubType(elementWrapper, node, pathData);\n removeElement(elementWrapper.children[1].id);\n elementWrapper.children.splice(1, 1);\n elementWrapper.children.push(dataobjTypeNode);\n }\n if (changedProp.width !== undefined || changedProp.height !== undefined) {\n this.setSizeForBPMNGateway(node.shape.gateway, elementWrapper, changedProp.width || node.width, changedProp.height || node.height);\n }\n };\n /**\n * Used to update Bpmn gateway child in runtime\n * EJ2-60581\n * @param elementWrapper\n * @param node\n * @param pathData\n * @returns\n */\n BpmnDiagrams.prototype.updateGatewaySubType = function (elementWrapper, node, pathData) {\n var dataobjTypeNode = new PathElement();\n dataobjTypeNode.id = node.id + '_1_gatewayType';\n dataobjTypeNode.width = elementWrapper.children[1].width;\n dataobjTypeNode.height = elementWrapper.children[1].height;\n dataobjTypeNode.margin.left = elementWrapper.children[1].margin.left;\n dataobjTypeNode.margin.top = elementWrapper.children[1].margin.top;\n dataobjTypeNode.data = pathData;\n dataobjTypeNode.offsetX = elementWrapper.children[1].offsetX;\n dataobjTypeNode.offsetY = elementWrapper.children[1].offsetY;\n dataobjTypeNode.style = elementWrapper.children[1].style;\n dataobjTypeNode.horizontalAlignment = elementWrapper.children[1].horizontalAlignment;\n dataobjTypeNode.verticalAlignment = elementWrapper.children[1].verticalAlignment;\n dataobjTypeNode.relativeMode = elementWrapper.children[1].relativeMode;\n dataobjTypeNode.transform = elementWrapper.children[1].transform;\n return dataobjTypeNode;\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNDataObject = function (node, newObject, oldObject) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n if (bpmnShape) {\n var elementWrapperChild1 = elementWrapper.children[1];\n var elementWrapperChild2 = elementWrapper.children[2];\n if (newObject.style !== undefined) {\n updateStyle(newObject.style, elementWrapper.children[0]);\n elementWrapperChild1.style.opacity = node.style.opacity;\n elementWrapperChild2.style.opacity = node.style.opacity;\n }\n if (bpmnShape.dataObject) {\n switch (bpmnShape.dataObject.type) {\n case 'None':\n elementWrapperChild1.visible = false;\n break;\n case 'Input':\n elementWrapperChild1.style.fill = 'white';\n break;\n case 'Output':\n elementWrapperChild1.style.fill = 'black';\n break;\n }\n if (oldObject.shape.dataObject.type === 'None') {\n elementWrapperChild1.visible = true;\n }\n if (newObject.shape.dataObject.collection !== undefined) {\n elementWrapperChild2.visible = bpmnShape.dataObject.collection;\n }\n }\n }\n if (newObject.width !== undefined || newObject.height !== undefined) {\n this.setSizeForBPMNDataObjects(node.shape.dataObject, elementWrapper, newObject.width || node.width, newObject.height || node.height);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getEvent = function (node, oldObject, event, child0, child1, child2) {\n switch (event) {\n case 'Start':\n child1.visible = false;\n child0.style.strokeDashArray = '';\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child0.style.fill = 'white';\n break;\n case 'NonInterruptingStart':\n child0.style.strokeDashArray = '2 3';\n child2.style.fill = 'white';\n child0.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child1.visible = false;\n break;\n case 'Intermediate':\n child0.style.strokeDashArray = '';\n child0.style.fill = 'white';\n child1.style.strokeDashArray = '';\n child0.style.gradient = null;\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n this.updateEventVisibility(oldObject, child1);\n break;\n case 'NonInterruptingIntermediate':\n child0.style.fill = 'white';\n child0.style.gradient = null;\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child0.style.strokeDashArray = '2 3';\n child1.style.strokeDashArray = '2 3';\n this.updateEventVisibility(oldObject, child1);\n break;\n case 'ThrowingIntermediate':\n case 'End':\n child0.style.fill = event !== 'End' ? 'white' : 'black';\n child0.style.strokeDashArray = '';\n child1.style.strokeDashArray = '';\n child0.style.gradient = null;\n child2.style.fill = 'black';\n this.updateEventVisibility(oldObject, child1);\n // child2.style.strokeColor = node.style.fill;\n break;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateEventVisibility = function (oldObject, child1) {\n if (oldObject.shape.activity && oldObject.shape.activity.subProcess &&\n oldObject.shape.activity.subProcess.events &&\n oldObject.shape.activity.subProcess.events[0] !== undefined &&\n oldObject.shape.activity.subProcess.events[0].event !== undefined) {\n if (oldObject.shape.activity.subProcess.events[0].event === 'NonInterruptingStart' ||\n oldObject.shape.activity.subProcess.events[0].event === 'Start') {\n child1.visible = true;\n }\n }\n else if (oldObject.shape.event !== undefined) {\n if (oldObject.shape.event.event === 'NonInterruptingStart' ||\n oldObject.shape.event.event === 'Start') {\n child1.visible = true;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNEvent = function (node, newObject, oldObject) {\n var bpmnShape = newObject.shape;\n var trigger;\n var elementWrapper = node.wrapper.children[0];\n // if (bpmnShape) {\n // const elementWrapperChild0: DiagramElement = elementWrapper.children[0];\n // const elementWrapperChild1: DiagramElement = elementWrapper.children[1];\n // const elementWrapperChild2: DiagramElement = elementWrapper.children[2];\n // //let event: string;\n // if (newObject.style !== undefined) {\n // updateStyle(node.style, elementWrapper.children[0]);\n // if (newObject.style.opacity !== undefined || newObject.style.strokeColor !== undefined) {\n // elementWrapperChild1.style.opacity = node.style.opacity;\n // elementWrapperChild1.style.strokeColor = node.style.strokeColor;\n // }\n // }\n // const event: string = bpmnShape.event.event;\n // trigger = bpmnShape.event.trigger;\n // if (event !== undefined) {\n // this.getEvent(node, oldObject, event, elementWrapperChild0, elementWrapperChild1, elementWrapperChild2);\n // }\n // if (trigger !== undefined) {\n // this.updateBPMNEventTrigger(node, newObject);\n // }\n // }\n if (newObject.width !== undefined || newObject.height !== undefined || trigger !== undefined) {\n this.setSizeForBPMNEvents(node.shape.event, elementWrapper, newObject.width || node.width, newObject.height || node.height);\n }\n };\n // /** @private */\n // public updateBPMNEventTrigger(node: Node, newObject: Node): void {\n // const bpmnShape: BpmnShapeModel = node.shape as BpmnShapeModel;\n // const elementWrapper: DiagramElement = (node.wrapper.children[0] as Canvas).children[2];\n // (elementWrapper as PathElement).canMeasurePath = true;\n // if (newObject.style &&\n // (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined)) {\n // updateStyle(node.style, elementWrapper);\n // }\n // const bpmnshapeTriggerdata: string = getBpmnTriggerShapePathData(\n // bpmnShape.event.trigger);\n // (elementWrapper as PathModel).data = bpmnshapeTriggerdata;\n // }\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivity = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n if (elementWrapper && elementWrapper.children && elementWrapper.children.length > 0 && elementWrapper.children[0]) {\n var size = this.getSize(node, elementWrapper.children[0].children[0]);\n if (bpmnShape) {\n var oldProp = oldObject.shape.activity.activity;\n var actualObjectProp = node.shape.activity.activity;\n if ((oldProp === 'SubProcess' || oldProp === 'Task') && (actualObjectProp === 'SubProcess' || actualObjectProp === 'Task')) {\n diagram.removeElements(node);\n node.wrapper.children[0] = this.getBPMNActivityShape(node);\n }\n else {\n if (actualObjectProp === 'Task' && bpmnShape.activity.task !== undefined) {\n this.updateBPMNActivityTask(node, newObject);\n var subChildCount = this.getTaskChildCount(node);\n var x = void 0;\n var childSpace = subChildCount * 12;\n var area = size.width / 2 - childSpace;\n if (subChildCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (subChildCount - 1) * 8;\n }\n if (bpmnShape.activity.task.loop !== undefined) {\n this.updateBPMNActivityTaskLoop(node, newObject, x, subChildCount, area, 2);\n }\n }\n if (actualObjectProp === 'SubProcess' && bpmnShape.activity.subProcess !== undefined) {\n this.updateBPMNActivitySubProcess(node, newObject, oldObject, diagram);\n }\n }\n this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node);\n }\n if (newObject.width !== undefined || newObject.height !== undefined) {\n this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivityTask = function (node, newObject) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var task = bpmnShape.activity.task;\n for (var i = 0; i < elementWrapper.children.length; i++) {\n //EJ2-907764-Changing Loop for Activity node with task type, result in change in task type symbols\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_2_loop') {\n var element = document.getElementById(node.id + '_2_loop');\n element.parentNode.removeChild(element);\n }\n }\n if (task.type !== undefined) {\n var bpmnshapeTaskdata = getBpmnTaskShapePathData(task.type);\n elementWrapper.children[1].data = bpmnshapeTaskdata;\n for (var i = 0; i < elementWrapper.children.length; i++) {\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_tasktType') {\n elementWrapper.children.splice(i, 1);\n var element = document.getElementById(node.id + '_1_tasktType');\n element.parentNode.removeChild(element);\n }\n //EJ2-907764-Changing Loop for Activity node with task type, result in change in task type symbols\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_taskTypeService') {\n elementWrapper.children.splice(i, 1);\n var element = document.getElementById(node.id + '_1_taskTypeService');\n element.parentNode.removeChild(element);\n }\n }\n var taskTypeNode = new PathElement();\n taskTypeNode.id = node.id + '_1_tasktType';\n taskTypeNode.margin.left = 5;\n taskTypeNode.margin.top = 5;\n taskTypeNode.data = bpmnshapeTaskdata;\n taskTypeNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n /**\n * Used to update the Bpmn activity task type at runtime\n * EJ2-60586\n */\n if (task.type === 'Receive' || task.type === 'Send') {\n taskTypeNode.width = 18;\n taskTypeNode.height = 16;\n if (task.type === 'Send') {\n taskTypeNode.style.fill = 'black';\n }\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else if (task.type === 'Manual') {\n taskTypeNode.width = 16;\n taskTypeNode.height = 11;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else if (task.type !== 'Service') {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n var taskTypeNodeService = new PathElement();\n taskTypeNodeService.id = node.id + '_1_taskTypeService';\n taskTypeNodeService.data = bpmnshapeTaskdata;\n taskTypeNodeService.margin.left = elementWrapper.children[1].margin.left + 9;\n taskTypeNodeService.margin.top = elementWrapper.children[1].margin.top + 9;\n taskTypeNodeService.style.fill = 'white';\n taskTypeNodeService.style.opacity = node.style.opacity;\n elementWrapper.children.splice(2, 0, taskTypeNodeService);\n }\n }\n if (bpmnShape.activity.task.call !== undefined) {\n if (bpmnShape.activity.task.call !== false) {\n elementWrapper.children[0].style.strokeWidth = 4;\n }\n else {\n elementWrapper.children[0].style.strokeWidth = 1;\n }\n }\n if (bpmnShape.activity.task.compensation !== undefined) {\n if (bpmnShape.activity.task.compensation === true) {\n elementWrapper.children[3].visible = true;\n }\n else {\n elementWrapper.children[3].visible = false;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivityTaskLoop = function (node, newObject, x, subChildCount, area, start) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var activity = bpmnShape.activity;\n var taskType = node.shape.activity.task.type;\n var loop;\n var index = 0;\n var bpmnshapeLoopdata;\n if (activity.subProcess !== undefined) {\n var subProcess = activity.subProcess;\n index = (activity.subProcess.type === 'Transaction') ? 2 : 0;\n loop = subProcess.loop;\n bpmnshapeLoopdata = getBpmnLoopShapePathData(loop);\n elementWrapper.children[2 + index].data = bpmnshapeLoopdata;\n elementWrapper.children[2 + index].visible = (loop === 'None') ? false : true;\n //EJ2-907764-Changing Loop for Activity node with task type, result in change in task type symbols\n }\n else if (activity.task !== undefined && activity.task.loop !== undefined && taskType !== 'Service') {\n bpmnshapeLoopdata = getBpmnLoopShapePathData(activity.task.loop);\n elementWrapper.children[2].data = bpmnshapeLoopdata;\n elementWrapper.children[2].visible = (activity.task.loop === 'None') ? false : true;\n }\n else if (activity.task !== undefined && activity.task.loop !== undefined && taskType === 'Service') {\n bpmnshapeLoopdata = getBpmnLoopShapePathData(activity.task.loop);\n elementWrapper.children[3].data = bpmnshapeLoopdata;\n elementWrapper.children[3].visible = (activity.task.loop === 'None') ? false : true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, start + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateChildMargin = function (elementWrapper, subChildCount, area, x, start) {\n if (subChildCount === 1) {\n for (var i = start; i < elementWrapper.children.length; i++) {\n if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) {\n elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x;\n x = area + 8;\n }\n }\n }\n else {\n x = area + (subChildCount - 1) * 8;\n for (var i = start; i < elementWrapper.children.length; i++) {\n if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) {\n elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x;\n x += 12 + 8;\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivitySubProcess = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n var size = this.getSize(node, elementWrapper.children[0].children[0]);\n var subProcess = bpmnShape.activity.subProcess;\n var subChildCount = this.getSubprocessChildCount(node);\n var x;\n var childSpace = subChildCount * 12;\n var area = size.width / 2 - childSpace;\n if (subChildCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (subChildCount - 1) * 8;\n }\n updateStyle(node.style, elementWrapper.children[0].children[0]);\n if (subProcess.events !== undefined) {\n this.updateBPMNSubProcessEvent(node, newObject, oldObject, diagram);\n }\n if (subProcess.adhoc !== undefined) {\n this.updateBPMNSubProcessAdhoc(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.boundary !== undefined) {\n this.updateBPMNSubProcessBoundary(node, subProcess);\n }\n if (subProcess.collapsed !== undefined) {\n this.updateBPMNSubProcessCollapsed(node, oldObject, subProcess, x, subChildCount, area, diagram);\n }\n if (subProcess.compensation !== undefined) {\n this.updateBPMNSubProcessCompensation(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.loop !== undefined) {\n this.updateBPMNSubProcessLoop(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.transaction !== undefined) {\n this.updateBPMNSubProcessTransaction(node, newObject, oldObject, diagram);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessEvent = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n var nodeContent = elementWrapper.children[0];\n var index;\n var j = 0;\n var elementWrapperChildLen = elementWrapper.children[0].children.length;\n var subProcess = bpmnShape.activity.subProcess;\n var events;\n var start = 2;\n for (var _i = 0, _a = Object.keys(subProcess.events); _i < _a.length; _i++) {\n var key = _a[_i];\n var eventIndex = Number(key);\n var eventWrapper = nodeContent.children[eventIndex + start];\n var actualEvent = node.shape.activity.subProcess.events[parseInt(eventIndex.toString(), 10)];\n this.updateBPMNSubEvent(node, subProcess.events[parseInt(eventIndex.toString(), 10)], actualEvent, eventWrapper, newObject, oldObject, diagram);\n }\n };\n BpmnDiagrams.prototype.updateBPMNSubEvent = function (node, newEvent, actualEvent, eventWrapper, newObject, oldObject, diagram) {\n var elementWrapper = node.wrapper.children[0];\n var bpmnShape = newObject.shape;\n var child0 = eventWrapper.children[0];\n var child1 = eventWrapper.children[1];\n var child2 = eventWrapper.children[2];\n var eventType;\n var trigger;\n if (newObject.style) {\n if (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined) {\n elementWrapper.children[0].children[1].style.strokeColor = newObject.style.strokeColor;\n elementWrapper.children[0].children[1].style.opacity = newObject.style.opacity;\n }\n }\n if (bpmnShape.activity.subProcess !== undefined) {\n eventType = newEvent.event;\n trigger = newEvent.trigger;\n }\n if (eventType !== undefined) {\n this.getEvent(newObject, oldObject, eventType, child0, child1, child2);\n }\n if (trigger !== undefined) {\n if (newObject.style) {\n updateStyle(newObject.style, elementWrapper.children[0]);\n }\n var bpmnshapeTriggerdata = getBpmnTriggerShapePathData(trigger);\n eventWrapper.children[2].data = bpmnshapeTriggerdata;\n }\n if (newEvent.height !== undefined || newEvent.width !== undefined) {\n this.getEventSize(newEvent, eventWrapper);\n }\n if (newEvent.id !== undefined) {\n eventWrapper.id = newEvent.id;\n }\n if (newEvent.margin !== undefined) {\n eventWrapper.margin = newEvent.margin;\n }\n if (newEvent.horizontalAlignment !== undefined) {\n eventWrapper.horizontalAlignment = newEvent.horizontalAlignment;\n }\n if (newEvent.verticalAlignment !== undefined) {\n eventWrapper.verticalAlignment = newEvent.verticalAlignment;\n }\n if (newEvent.offset !== undefined) {\n eventWrapper.setOffsetWithRespectToBounds(actualEvent.offset.x, actualEvent.offset.y, 'Fraction');\n eventWrapper.relativeMode = 'Point';\n }\n if (newEvent.annotations !== undefined) {\n var annotations = void 0;\n var annotation = elementWrapper.children[0].children[2];\n if (eventWrapper.children[3] && eventWrapper.children.length > 3) {\n annotations = eventWrapper.children[3];\n diagram.updateAnnotation(newEvent.annotations[0], annotations, annotation);\n }\n }\n if (newEvent.ports !== undefined) {\n var ports = void 0;\n var port = elementWrapper.children[0].children[2];\n if (eventWrapper.children[4] && eventWrapper.children.length > 4) {\n ports = eventWrapper.children[4];\n diagram.updatePort(newEvent.ports[0], ports, port);\n }\n }\n if (newEvent.visible !== undefined) {\n this.updateDiagramContainerVisibility(eventWrapper, newEvent.visible);\n }\n };\n BpmnDiagrams.prototype.updateBPMNSubProcessTransaction = function (node, newObject, oldObject, diagram) {\n var transaction = newObject.shape.activity.subProcess.transaction;\n var eventContainer = node.wrapper.children[0].children[0].children[2];\n var actualEvent;\n if (transaction.success !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.success;\n this.updateBPMNSubEvent(node, transaction.success, actualEvent, eventContainer.children[0], newObject, oldObject, diagram);\n }\n if (transaction.cancel !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.cancel;\n this.updateBPMNSubEvent(node, transaction.cancel, actualEvent, eventContainer.children[1], newObject, oldObject, diagram);\n }\n if (transaction.failure !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.failure;\n this.updateBPMNSubEvent(node, transaction.failure, actualEvent, eventContainer.children[2], newObject, oldObject, diagram);\n }\n for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n var connector = diagram.nameTable[\"\" + edge];\n switch (connector.sourcePortID) {\n case 'success':\n if (transaction.success && transaction.success.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'success' });\n }\n break;\n case 'cancel':\n if (transaction.cancel && transaction.cancel.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'cancel' });\n }\n break;\n case 'failure':\n if (transaction.failure && transaction.failure.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'failure' });\n }\n break;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getEventSize = function (events, wrapperChild) {\n if (events.height !== undefined) {\n wrapperChild.height = events.height;\n wrapperChild.children[0].height = events.height;\n wrapperChild.children[1].height = events.height * 0.85;\n wrapperChild.children[2].height = events.height * 0.54;\n }\n if (events.width !== undefined) {\n wrapperChild.width = events.width;\n wrapperChild.children[0].width = events.width;\n wrapperChild.children[1].width = events.width * 0.85;\n wrapperChild.children[2].width = events.width * 0.54;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessAdhoc = function (node, oldObject, subProcess, x, subChildCount, area) {\n var shape = node.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n if (subProcess.adhoc === false) {\n elementWrapper.children[3 + index].visible = false;\n }\n else {\n elementWrapper.children[3 + index].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessBoundary = function (node, subProcess) {\n var shape = node.shape;\n var elementWrapper = (node.wrapper.children[0].children[0].children[0]);\n if (subProcess.boundary === 'Default') {\n elementWrapper.style.strokeWidth = 1;\n elementWrapper.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Call') {\n elementWrapper.style.strokeWidth = 4;\n elementWrapper.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Event') {\n elementWrapper.style.strokeWidth = 1;\n elementWrapper.style.strokeDashArray = '2 2';\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateElementVisibility = function (node, visible, diagram) {\n if (node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length > 0) {\n var processes = node.shape.activity.subProcess.processes;\n for (var j = processes.length - 1; j >= 0; j--) {\n var currentNode = diagram.nameTable[processes[parseInt(j.toString(), 10)]];\n currentNode.visible = visible;\n diagram.updateElementVisibility(currentNode.wrapper, currentNode, visible);\n if (visible) {\n if ((!isBlazor() && currentNode.shape.shape === 'Event')) {\n this.setEventVisibility(currentNode, currentNode.wrapper.children[0].children);\n }\n if (currentNode.shape.activity.activity === 'SubProcess') {\n this.setSubProcessVisibility(currentNode);\n }\n }\n var connectors = currentNode.inEdges.concat(currentNode.outEdges);\n for (var i = connectors.length - 1; i >= 0; i--) {\n var connector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]];\n connector.visible = visible;\n diagram.updateElementVisibility(connector.wrapper, connector, visible);\n }\n }\n }\n if (visible) {\n if (!isBlazor() && node.shape.shape === 'Event') {\n this.setEventVisibility(node, node.wrapper.children[0].children);\n }\n if (node.shape.activity.activity === 'SubProcess') {\n this.setSubProcessVisibility(node);\n }\n if (node.shape.activity.activity === 'Task' &&\n (!isBlazor() && node.shape.shape === 'Activity')\n && node.shape.activity.subProcess.loop === 'None') {\n node.wrapper.children[0].children[0].children[3].visible = false;\n }\n //(EJ2-843861) - BPMN node subtype visibles whiles changing the node visibility\n if (node.shape.shape === 'DataObject') {\n if (node.shape.dataObject.collection === false && node.shape.dataObject.type === 'None') {\n for (var i = node.wrapper.children[0].children.length - 1; i > 0; i--) {\n node.wrapper.children[0].children[parseInt(i.toString(), 10)].visible = false;\n }\n }\n else if (node.shape.dataObject.collection === true && node.shape.dataObject.type === 'None') {\n node.wrapper.children[0].children[1].visible = false;\n }\n else if (node.shape.dataObject.collection === false && (node.shape.dataObject.type === 'Input' || node.shape.dataObject.type === 'Output')) {\n node.wrapper.children[0].children[2].visible = false;\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessCollapsed = function (node, oldObject, subProcess, x, subChildCount, area, diagram) {\n var eventLength = node.shape.activity.subProcess.events.length;\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 3 : 1;\n if (subProcess.collapsed === false) {\n this.updateElementVisibility(node, true, diagram);\n elementWrapper.children[index + eventLength].visible = false;\n }\n else {\n this.updateElementVisibility(node, false, diagram);\n elementWrapper.children[index + eventLength].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + eventLength);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessCompensation = function (node, oldObject, subProcess, x, subChildCount, area) {\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n if (subProcess.compensation === false) {\n elementWrapper.children[4 + index].visible = false;\n }\n else {\n elementWrapper.children[4 + index].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 4 + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessLoop = function (node, oldObject, subProcess, x, subChildCount, area) {\n this.updateBPMNActivityTaskLoop(node, node, x, subChildCount, area, 1);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNConnector = function (actualObject, oldObject, connection, diagram) {\n var flowType = connection.shape;\n //EJ2-66905 - Changing BPMN flow connectors at runtime is not working properly.\n var flow = actualObject.shape.flow;\n if ((flowType.flow === 'Sequence' || flowType.sequence) && flow === 'Sequence') {\n actualObject = this.getSequence(actualObject, oldObject, connection, diagram);\n }\n if ((flowType.flow === 'Association' || flowType.association) && flow === 'Association') {\n actualObject = this.getAssociation(actualObject, oldObject, connection, diagram);\n }\n if ((flowType.flow === 'Message' || flowType.message) && flow === 'Message') {\n actualObject = this.getMessage(actualObject, oldObject, connection, diagram);\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getSequence = function (actualObject, oldObject, connection, diagram) {\n if ((connection.shape.sequence) === 'Normal' || actualObject.shape.sequence === 'Normal') {\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'None' },\n style: { strokeDashArray: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.sequence) === 'Default' || actualObject.shape.sequence === 'Default') {\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: 'None' },\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'None' }\n });\n var segment = new PathElement();\n var pathseq = new PathElement();\n var pathseqData = void 0;\n segment = actualObject.getSegmentElement(actualObject, segment);\n var anglePoints = actualObject.intermediatePoints;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n // eslint-disable-next-line no-global-assign\n length = length + actualObject.distance(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n pathseqData = actualObject.findPath(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n }\n var content = new PathElement();\n content.data = pathseqData[0];\n content.id = actualObject.id + '_' + connection.shape.sequence || actualObject.shape.sequence;\n content.offsetX = pathseqData[1].x;\n content.offsetY = pathseqData[1].y;\n content.rotateAngle = 45;\n content.transform = Transform.Self;\n this.removeDomElement(actualObject, diagram, content);\n }\n if ((connection.shape.sequence) === 'Conditional' || actualObject.shape.sequence === 'Conditional') {\n actualObject.sourceDecorator.shape = 'Diamond';\n actualObject.sourceDecorator.width = 20;\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'white';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.shape = 'Arrow';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: 'None' },\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'Diamond', width: 20, height: 10, style: { fill: 'white' } }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getAssociation = function (actualObject, oldObject, connection, diagram) {\n if ((connection.shape.association) === 'Default' || actualObject.shape.association === 'Default') {\n actualObject.sourceDecorator.shape = 'None';\n actualObject.targetDecorator.shape = 'None';\n actualObject.style.strokeDashArray = '2 2';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'None' },\n sourceDecorator: { shape: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.association) === 'Directional' || actualObject.shape.association === 'Directional') {\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = '2 2';\n actualObject.targetDecorator.shape = 'OpenArrow';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 },\n sourceDecorator: { shape: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.association) === 'BiDirectional' || actualObject.shape.association === 'BiDirectional') {\n actualObject.sourceDecorator.shape = 'OpenArrow';\n actualObject.targetDecorator.shape = 'OpenArrow';\n actualObject.sourceDecorator.width = 10;\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'black';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 },\n sourceDecorator: { shape: 'OpenArrow', width: 10, height: 10, style: { fill: 'black' } }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getMessage = function (actualObject, oldObject, connection, diagram) {\n var segmentOffset = 0.5;\n var angle;\n var pt;\n actualObject.sourceDecorator.shape = 'Circle';\n actualObject.sourceDecorator.width = 10;\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'White';\n actualObject.targetDecorator.style.fill = 'White';\n diagram.connectorPropertyChange(actualObject, oldObject, { sourceDecorator: { shape: 'Circle', style: { fill: 'White' }, width: 10, height: 10 }, targetDecorator: { shape: 'Arrow', style: { fill: 'white' } } });\n var anglePoints = actualObject.intermediatePoints;\n var length = 0;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n /* eslint-disable */\n length = length + actualObject.distance(anglePoints[j], anglePoints[j + 1]);\n /* eslint-enable */\n var offLength = length * segmentOffset;\n if (length >= offLength) {\n angle = findAngle(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n pt = Point.transform(anglePoints[parseInt(j.toString(), 10)], angle, offLength);\n }\n }\n var content = new PathElement();\n actualObject.wrapper.children[0].style.strokeDashArray = ' 4 4';\n actualObject.style.strokeDashArray = '4 4';\n content.id = actualObject.id + '_' + connection.shape.message || actualObject.shape.message;\n content.width = 25;\n content.height = 15;\n content.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0';\n content.horizontalAlignment = 'Center';\n content.verticalAlignment = 'Center';\n content.transform = Transform.Self;\n content.style.fill = connection.shape.message === 'NonInitiatingMessage' ?\n 'lightgrey' : 'white';\n content.offsetX = pt.x;\n content.offsetY = pt.y;\n if ((connection.shape.message !== 'Default' && connection.shape.message !== undefined) || actualObject.shape.message !== 'Default') {\n content.style.fill = (connection.shape.message || actualObject.shape.message) === 'NonInitiatingMessage' ?\n 'lightgrey' : 'white';\n }\n else {\n content.visible = false;\n }\n this.removeDomElement(actualObject, diagram, content);\n return actualObject;\n };\n // To remove old wrapper element from dom.\n BpmnDiagrams.prototype.removeDomElement = function (actualObject, diagram, content) {\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n removeElement(actualObject.id + '_content_groupElement', elementId);\n removeElement(actualObject.id + '_html_element', elementId);\n }\n actualObject.wrapper.children.splice(3, 1);\n actualObject.wrapper.children.splice(3, 0, content);\n };\n //End update Region\n //size updation\n BpmnDiagrams.prototype.setSizeForBPMNEvents = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n //child node 1 - event node\n var eventNode = wrapper.children[1];\n eventNode.width = width * 0.85;\n eventNode.height = height * 0.85;\n var triggerNode = wrapper.children[2];\n if (event.trigger === 'Message') {\n triggerNode.width = width * 0.54;\n triggerNode.height = height * 0.4;\n }\n else {\n triggerNode.width = width * 0.5;\n triggerNode.height = height * 0.5;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateAnnotationDrag = function (node, diagram, tx, ty) {\n if (node.processId) {\n this.drag(node, tx, ty, diagram);\n return true;\n }\n return false;\n };\n BpmnDiagrams.prototype.getAnnotationPathAngle = function (point, bounds) {\n var direction = getPortDirection(point, bounds, bounds, false);\n var rotateAngle = 0;\n switch (direction) {\n case 'Right':\n rotateAngle = 0;\n break;\n case 'Left':\n rotateAngle = 180;\n break;\n case 'Bottom':\n rotateAngle = 90;\n break;\n case 'Top':\n rotateAngle = 270;\n break;\n }\n return rotateAngle;\n };\n BpmnDiagrams.prototype.setSizeForBPMNGateway = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n wrapper.children[1].width = width * 0.45;\n wrapper.children[1].height = height * 0.45;\n };\n BpmnDiagrams.prototype.setSizeForBPMNDataObjects = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n };\n BpmnDiagrams.prototype.setSizeForBPMNActivity = function (activity, wrapper, width, height, node) {\n //child node 1 - event node\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n wrapper.children[0].children[0].width = width;\n wrapper.children[0].children[0].height = height;\n if (activity.subProcess.type === 'Transaction') {\n wrapper.children[0].children[1].width = Math.max(width - 6, 1);\n wrapper.children[0].children[1].height = Math.max(height - 6, 1);\n wrapper.children[0].children[2].width = width;\n wrapper.children[0].children[2].height = height;\n }\n var taskNode = new DiagramElement();\n var x;\n var size = this.getSize(node, taskNode);\n var childCount;\n var iconSpace = 4;\n if (activity.activity === 'Task') {\n childCount = this.getTaskChildCount(node);\n }\n else {\n childCount = this.getSubprocessChildCount(node);\n }\n var childSpace = childCount * 12;\n var area = (width || size.width) / 2;\n if (childCount === 1) {\n x = area - 6;\n }\n else {\n x = area - (childSpace / 2) - ((childCount - 1) * iconSpace) / 2;\n }\n for (var i = 0; i < wrapper.children[0].children.length; i++) {\n if (wrapper.children[0].children[parseInt(i.toString(), 10)].visible &&\n (wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_loop') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_compensation') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_adhoc') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_collapsed') > -1)) {\n wrapper.children[0].children[parseInt(i.toString(), 10)].margin.left = x;\n x += wrapper.children[0].children[parseInt(i.toString(), 10)].actualSize.width + iconSpace;\n }\n }\n };\n BpmnDiagrams.prototype.updateDiagramContainerVisibility = function (element, visible) {\n if (element instanceof Container) {\n for (var i = 0; i < element.children.length; i++) {\n this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible);\n }\n }\n element.visible = visible;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n BpmnDiagrams.prototype.destroy = function () {\n /**\n * Destroys the BpmnDiagrams module\n */\n };\n /**\n * Get module name.\n *\n * @returns {string} Get module name.\n */\n BpmnDiagrams.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Bpmn';\n };\n return BpmnDiagrams;\n}());\nexport { BpmnDiagrams };\n/**\n * getBpmnShapePathData method \\\n *\n * @returns { string } getBpmnShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnShapePathData(shape) {\n return bpmnShapes[shape.toString()];\n}\n/**\n * getBpmnTriggerShapePathData method \\\n *\n * @returns { string } getBpmnTriggerShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnTriggerShapePathData(shape) {\n return bpmnTriggerShapes[shape.toString()];\n}\n/**\n * getBpmnGatewayShapePathData method \\\n *\n * @returns { string } getBpmnGatewayShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnGatewayShapePathData(shape) {\n return bpmnGatewayShapes[shape.toString()];\n}\n/**\n * getBpmnTaskShapePathData method \\\n *\n * @returns { string } getBpmnTaskShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnTaskShapePathData(shape) {\n return bpmnTaskShapes[shape.toString()];\n}\n/**\n * getBpmnLoopShapePathData method \\\n *\n * @returns { string } getBpmnLoopShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnLoopShapePathData(shape) {\n return bpmnLoopShapes[shape.toString()];\n}\nvar bpmnShapes = {\n 'Event': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z',\n 'Message': 'M0,0L19.8,12.8L40,0L0,0L0,25.5L40,25.5L40,0z',\n 'DataSource': 'M 0 10.6 c 0 5.9 16.8 10.6 37.5 10.6 S 75 16.4 75 10.6 v 0 v 68.9 v -0.1 C 75 85.3 58.2 90 37.5 90 ' +\n 'S 0 85.3 0 79.4 l 0 0.1 V 56 V 40.6 L 0 10.6 C 0 4.7 16.8 0 37.5 0 S 75 4.7 75 10.6 S 58.2 21.2 37.5 21.2' +\n 'S 0 16.5 0 10.6 l 0 6.7 v -0.2 c 0 5.9 16.8 10.6 37.5 10.6 S 75 22.9 75 17.1 v 6.8 v -0.1 ' +\n 'c 0 5.9 -16.8 10.6 -37.5 10.6 S 0 29.6 0 23.8',\n 'SubProcess': 'M100,100 h200 a20,20 0 0 1 20,20 v200 a20,20 0 0 1 -20,20 h-200 ' +\n 'a20,20 0 0 1 -20,-20 v-200 a20,20 0 0 1 20,-20 z',\n 'collapsedShape': 'M 8.13789 15 H 0 V 0 H 8.13789 V 15 Z M 0.625991 13.75 H 7.51189 V 1.25 H 0.625991 V 13.75 Z ' +\n 'M 2.18095 7.03125 L 5.95631 7.03125 L 5.95631 7.46875 L 2.18095 7.46875 Z M 3.8342 3.73 ' +\n 'L 4.30369 3.73 L 4.30369 11.2687 L 3.8342 11.2687 Z'\n};\nvar bpmnTriggerShapes = {\n // 'None': '',\n 'Message': 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0',\n 'Timer': 'M40,20c0,8.654-5.496,16.024-13.189,18.81' +\n 'C24.685,39.58,22.392,40,20,40C8.954,40,0,31.046,0,20S8.954,0,20,0S40,8.954,40,20z M20,0 L20,2.583 L20,5.283 M10.027,2.681' +\n 'L11.659,5.507 L12.669,7.257 M2.731,9.989 L6.014,11.885 L7.307,12.631 M0.067,19.967 L2.667,19.967 L5.35,19.967' +\n 'M2.748,29.939 L5.731,28.217 L7.323,27.298 M10.056,37.236 L11.292,35.095 L12.698,32.66 M20.033,39.9 L20.033,36.417 L20.033,34.617' +\n 'M30.006,37.219 L28.893,35.292 L27.364,32.643 M37.302,29.911 L34.608,28.355 L32.727,27.269' +\n 'M39.967,19.933 L37.417,19.933 L34.683,19.933 M37.286,9.961 L34.583,11.521 L32.71,12.602 M29.977,2.664 L28.653,4.957 L27.336,' +\n '7.24 M22.104,8.5 L19.688,20 L24.75,20 L31.604,20 L24.75,20 L19.688,20z',\n 'Error': 'M 23.77 18.527 l -7.107 27.396 l 8.507 -17.247 L 36.94 40.073 l 6.394 -25.997 l -8.497 15.754 L 23.77 18.527 Z',\n 'Escalation': 'M 30.001 8.098 L 11.842 43.543 l 18.159 -18.882 l 18.162 18.882 L 30.001 8.098 Z ',\n 'Cancel': 'M 3.5 16 L 0 12.6 L 4.6 8 L 0 3.5 L 3.4 0 L 8 4.6 l 4.5 -4.5 L 16 3.5 L 11.5 8 l 4.5 4.5 l -3.4 3.5 L 8 11.4 L 3.5 16 Z',\n 'Compensation': 'M 25.7086 0 L 0 25 L 25.7086 50 V 26.3752 L 50 50 V 0 L 25.7086 23.6248 V 0 Z ',\n 'Conditional': 'M 0 0 H 16 V 16 H 0 z M 1.14 3.2 H 14.85 M 1.14 6.4 H 14.85 M 1.14 9.6 H 14.85 M 1.14 12.8 H 14.85',\n 'Link': 'M 32.014 19.258 v 5.992 H 9.373 v 9.504 h 22.641 v 5.988 L 50.622 30 L 32.014 19.258 Z',\n 'Signal': 'M 50 50 H 0 L 25.0025 0 L 50 50 Z',\n 'Terminate': 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25 C 50 38.79 38.78 50 25 50',\n 'Multiple': 'M 17.784 48.889 H 42.21 l 7.548 -23.23 L 29.997 11.303 L 10.236 25.658 L 17.784 48.889 Z',\n 'Parallel': 'M 27.276 49.986 h 5.58 v -17.15 h 17.146 V 27.17 h -17.15 l 0.004 -17.15 h -5.58 l -0.004 17.15 ' +\n 'H 9.994 v 5.666 h 17.278 L 27.276 49.986 Z'\n};\nvar bpmnGatewayShapes = {\n 'None': '',\n //exclusive\n 'Exclusive': 'M 11.196 29.009 l 6.36 -9.712 l -5.764 -8.899 h 4.393 l 3.732 5.979 l 3.656 -5.979 h 4.354 l -5.789 9.039' +\n 'l 6.36 9.572 h -4.532 l -4.126 -6.437 l -4.139 6.437 H 11.196 Z',\n //inclusive\n 'Inclusive': 'M 20.323 31.333 c -6.625 0 -12.015 -5.39 -12.015 -12.015 s 5.39 -12.015 12.015 -12.015 ' +\n 's 12.016 5.39 12.016 12.015 S 26.948 31.333 20.323 31.333 Z M 20.323 9.303 c -5.522 0 -10.015 4.493 -10.015 10.015 ' +\n 's 4.492 10.015 10.015 10.015 s 10.016 -4.493 10.016 -10.015 S 25.846 9.303 20.323 9.303 Z',\n //parallel\n 'Parallel': 'M 18.394 29.542 v -8.833 H 9.626 v -3.691 h 8.768 V 8.251 h 3.734 v 8.767 h 8.768 v 3.691 h -8.768 v 8.833 H 18.394 Z',\n //complex\n 'Complex': 'M29.198,19.063L23.089,19.063L27.794,14.358L26.38,12.944L21.223,18.101L21.223,10.443L19.223,10.443L19.223,17.976' +\n 'L14.022,12.776L12.608,14.19L17.48,19.063L10.365,19.063L10.365,21.063L18.261,21.063L12.392,26.932L13.806,28.346' +\n 'L19.223,22.929L19.223,30.225L21.223,30.225L21.223,22.805L25.925,27.507L27.339,26.093L22.309,21.063L29.198,21.063z',\n //eventbased\n 'EventBased': 'M 20.322 29.874 c -5.444 0 -9.873 -4.43 -9.873 -9.874 s 4.429 -9.874 9.873 -9.874 s 9.874 4.429 9.874 9.874 ' +\n 'S 25.767 29.874 20.322 29.874 Z M 20.322 32.891 c -7.107 0 -12.89 -5.783 -12.89 -12.891 c 0 -7.107 5.782 -12.89 12.89 -12.89 ' +\n 'c 7.108 0 12.891 5.783 12.891 12.89 C 33.213 27.108 27.431 32.891 20.322 32.891 Z M 24.191 25.386 ' +\n 'h -7.984 l -2.469 -7.595 l 6.461 -4.693 l 6.461 4.693 L 24.191 25.386 Z',\n //exclusive event based\n 'ExclusiveEventBased': 'M 30 15 C 30 23.28 23.28 30 15 30 S 0 23.28 0 15 S 6.72 0 15 0 S 30 6.72 30 15 z M 15 5 ' +\n 'L 5 12.5 L 8 22.5 H 22 L 25 12.5 z',\n //parallel event based\n 'ParallelEventBased': 'M 35 17.5 C 35 27.16 27.16 35 17.5 35 S 0 27.16 0 17.5 S 7.84 0 17.5 0 S 35 7.84 35 17.5 z M 14.58 5.83 ' +\n 'V 14.58 H 5.83 V 20.42 H 14.58 V 29.17 H 20.42 V 20.42 H 29.17 V 14.58 H 20.42 V 5.83 z'\n};\nvar bpmnTaskShapes = {\n 'None': '',\n 'Service': 'M 32.699 20.187 v -4.005 h -3.32 c -0.125 -0.43 -0.292 -0.83 -0.488 -1.21 l 2.373 -2.375 ' +\n 'l -2.833 -2.83 l -2.333 2.333 c -0.44 -0.253 -0.9 -0.448 -1.387 -0.595 v -3.32 h -4.003 v 3.32 c -0.46 0.137 -0.89' +\n '0.322 -1.3 0.537 l -2.285 -2.275 l -2.833 2.83 l 2.285 2.278 c -0.235 0.42 -0.41 0.847 -0.547 1.307 h -3.33 v 4.005 h 3.33 ' +\n 'c 0.148 0.488 0.343 0.955 0.588 1.395 l -2.325 2.325 l 2.822 2.832 l 2.373 -2.382 c 0.392 0.205 0.792 0.37 1.212 0.497 v 3.33 ' +\n 'h 4.003 v -3.33 c 0.46 -0.138 0.89 -0.323 1.3 -0.547 l 2.43 2.432 l 2.822 -2.832 l -2.42 -2.422 c 0.222 -0.41 0.4 -0.85 0.535' +\n '-1.297 H 32.699 Z M 22.699 21.987 c -2.1 0 -3.803 -1.703 -3.803 -3.803 c 0 -2.1 1.703 -3.803 3.803 -3.803 c 2.1 0 3.803 ' +\n '1.703 3.803 3.803 C 26.502 20.285 24.8 21.987 22.699 21.987 Z',\n 'Receive': 'M 12.217 12.134 v 13.334 h 20 V 12.134 H 12.217 Z M 30.44 13.007 l -8.223 5.35 l -8.223 -5.35 H 30.44 Z M 13.09' +\n ' 24.594 V 13.459 l 9.127 5.94 l 9.127 -5.94 v 11.135 H 13.09 Z',\n 'Send': 'M0,1.2260086 L8.0000002,8.3380068 16,1.2260086 16,12.000007 0,12.000007 z M1.6300015,0 L14.371001,0 8.0000055,5.662 z',\n 'InstantiatingReceive': 'M 16.306 17.39 v 8.79 h 13.198 v -8.79 H 16.306 Z M 28.375 17.946 l -5.47 3.558 l -5.47 -3.558 ' +\n 'H 28.375 Z M 28.948 25.625 H 16.861 v -7.389 l 6.043 3.931 l 6.043 -3.931 V 25.625 Z M 22.905 11.785' +\n 'c -5.514 0 -9.999 4.486 -9.999 10 c 0 5.514 4.485 10 9.999 10 s 9.999 -4.486 9.999 -10 ' +\n 'C 32.904 16.272 28.419 11.785 22.905 11.785 Z M 22.905 31.239 c -5.212 0 -9.453 -4.241 -9.453 -9.454' +\n 'c 0 -5.212 4.241 -9.453 9.453 -9.453 s 9.452 4.241 9.452 9.453 C 32.357 26.998 28.117 31.239 22.905 31.239 Z',\n 'Manual': 'M9.21 612 L5.82 612 L1.07 612 a1.07317 1 -180 0 1 -1.07317 -1 L0 604.75 A3.42007 1.59344 -180 0 0 1.61 604 L2.6 604 L5.99 604 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L2.6 605.34 a0.48818 0.183302 -90 0 0 0.0837073 0.342385 L5.63 605.69 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.28 605.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 607.01 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 607.35 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.01 607.33 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 608.67 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 609.01 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.47 608.99 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 610.34 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 610.68 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.21 610.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672',\n 'BusinessRule': 'M 32.844 13.245 h -0.089 v 0 H 13.764 v -0.015 h -1.009 v 16.989 h 0.095 v 0.011 h 19.716 v -0.011 h 0.278 ' +\n 'V 13.245 Z M 31.844 14.229 v 4.185 h -18.08 v -4.185 H 31.844 Z M 18.168 25.306 v 3.938 h -4.404 v -3.938 H 18.168 Z ' +\n 'M 13.764 24.322 v -4.923 h 4.404 v 4.923 H 13.764 Z M 19.177 25.306 h 12.667 v 3.938 H 19.177 V 25.306 Z M 19.177 24.322' +\n 'v -4.923 h 12.667 v 4.923 H 19.177 Z',\n 'User': 'M8.6751149,13.75 L10.79009,18.703003 11.664047,18.696991 13.792084,13.75 13.824066,13.75 C18.177001,13.75 21.709022,' +\n '17.259003 21.748998,21.60199 21.748998,21.649994 21.743993,21.700012 21.735021,21.747009 21.137981,24.774994 18.775997,' +\n '27.144989 15.74904,27.75 L6.7491024,27.75 C3.7231224,27.144989 1.3601628,24.774994 0.76312089,21.747009 0.75414884,21.700012 0.74914402,' +\n '21.649994 0.75012076,21.60199 0.78912175,17.259003 4.3221171,13.75 8.6751149,13.75 z M11.249014,0.75 C14.287014,0.75 16.749015,' +\n '3.2119999 16.749015,6.25 16.749015,9.2880001 14.287014,11.75 11.249014,11.75 8.211015,11.75 5.7490147,9.2880001 5.7490147,6.25 5.7490147,3.2119999 8.211015,0.75 11.249014,0.75 z',\n 'Script': 'M22.3,80.4 A82.9529,77.0159,-180,0,0,10.3,46.7 A69.8467,64.8477,0,0,1,0,19.7 A27.6207,25.6439,0,0,1,12.1,0 L84.7,0 A37.4124,34.7347,-180,0,0,77.7,19.6 A82.8871,76.9547,' +\n '-180,0,0,89.7,53.3 A69.8146,64.81790000000001,0,0,1,100,80.3 A27.603399999999997,25.6278,0,0,1,87.9,100 L15.3,100 A37.4265,34.7479,-180,0,0,22.3,80.4 M12.5,28.6 L67.3,28.6 M18.3,42.9 L72.1,42.9 M80.8,' +\n '57.1 L26,57.1 M85.6,71.4 L32.6,71.4'\n};\nvar bpmnLoopShapes = {\n 'None': '',\n 'Standard': 'M 52.002 73.379 c -2.494 -2.536 -6.55 -2.534 -9.043 0 c -1.208 1.228 -1.874 2.861 -1.874 4.598 ' +\n 'c 0 1.225 0.337 2.395 0.957 3.411 l -1.167 1.186 l 2.071 0.458 l 2.071 0.458 l -0.45 -2.106 l -0.45 -2.106 l -1.292 1.314' +\n 'c -1.119 -2.065 -0.842 -4.709 0.877 -6.458 c 2.084 -2.119 5.475 -2.117 7.557 0 c 2.083 2.119 2.083 5.565 0 7.685' +\n 'c -0.976 0.992 -2.272 1.557 -3.65 1.59 l 0.025 1.068 c 1.65 -0.041 3.2 -0.716 4.368 -1.903 ' +\n 'c 1.208 -1.228 1.874 -2.861 1.874 -4.597 C 53.875 76.24 53.209 74.607 52.002 73.379 Z',\n 'ParallelMultiInstance': 'M 51.5,69.5 L52.5,69.5 L52.5,84.5 L51.5 84.5 Z M 46.5,69.5 L47.5,69.5 L47.5,84.5 L46.5 84.5 Z' +\n ' M 41.5,69.5 L42.5,69.5 L42.5,84.5 L41.5 84.5 Z ',\n 'SequenceMultiInstance': 'M 40.375,71.5 L 55.375,71.5 L 55.375,72.5 L 40.375,72.5 Z M 40.375,76.5 L 55.375,76.5 ' +\n 'L 55.375,77.5 L 40.375,77.5 Z M 40.375,76.5 L 55.375,76.5 L 55.375,77.5 L 40.375,77.5 Z M 40.375,81.5 L 55.375,81.5' +\n 'L 55.375,82.5 L 40.375,82.5 Z'\n};\n","/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\nimport { Point } from '../primitives/point';\nimport { Rect } from '../primitives/rect';\nimport { intersect2 } from '../utility/diagram-util';\nimport { canBridge } from '../utility/constraints-util';\n/**\n * ConnectorBridging defines the bridging behavior\n */\n/** @private */\nvar ConnectorBridging = /** @class */ (function () {\n /**\n * Constructor for the bridging module\n *\n * @private\n */\n function ConnectorBridging() {\n //constructs the bridging module\n }\n /**\n * @param {Connector}conn - provide the target value.\n * @param {Diagram}diagram - provide the target value.\n * @private\n */\n ConnectorBridging.prototype.updateBridging = function (conn, diagram) {\n var lastBridge = [];\n var bounds;\n conn.bridges = [];\n if (canBridge(conn, diagram)) {\n // if (this.canBridge(conn, diagram)) {\n var points1 = this.getPoints(conn);\n bounds = Rect.toBounds(points1);\n var bridgeSpacing = conn.bridgeSpace;\n var bgedir = diagram.bridgeDirection;\n var count = -1;\n var quads = diagram.connectors;\n for (var q = 0; q < quads.length; q++) {\n var connector1 = quads[parseInt(q.toString(), 10)];\n //EJ2-868564- Bridging is enabled when connector visibility is set to False\n if (conn && connector1 && conn.id !== connector1.id && connector1.visible) {\n var points2 = this.getPoints(connector1);\n var bounds1 = Rect.toBounds(points2);\n if (this.intersectsRect(bounds, bounds1)) {\n var intersectPts = this.intersect(points1, points2, false, bgedir, true);\n if (intersectPts.length > 0) {\n for (var i = 0; i < intersectPts.length; i++) {\n var fullLength = 0;\n var length_1 = 0;\n var segmentIndex = 0;\n var pointIndex = 0;\n var obj = this.getLengthAtFractionPoint(conn, intersectPts[parseInt(i.toString(), 10)]);\n if (obj.pointIndex !== -1) {\n length_1 = obj.lengthFractionIndex;\n fullLength = obj.fullLength;\n segmentIndex = obj.segmentIndex;\n pointIndex = obj.pointIndex;\n var stBridge = this.getPointAtLength((length_1 - (bridgeSpacing / 2)), points1);\n var enBridge = this.getPointAtLength((length_1 + (bridgeSpacing / 2)), points1);\n var fractLength = (length_1 - (bridgeSpacing / 2)) / fullLength;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fractLength = (length_1 + (bridgeSpacing / 2)) / fullLength;\n if (this.isEmptyPoint(enBridge)) {\n enBridge = stBridge;\n }\n var end = void 0;\n var start = conn.sourcePoint;\n if (conn.type === 'Straight') {\n end = conn.targetPoint;\n }\n else {\n end = conn.intermediatePoints[parseInt(pointIndex.toString(), 10)];\n }\n var angle = this.angleCalculation(start, end);\n if (lastBridge.length) {\n var fixedPoint = conn.sourcePoint;\n var fix = Math.abs(this.lengthCalculation(fixedPoint, enBridge));\n var var1 = 0;\n var insertAt = -1;\n count = -1;\n for (var k = 0; k < lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.length; k++) {\n count++;\n var arcSeg = lastBridge[parseInt(segmentIndex.toString(), 10)].bridges[parseInt(k.toString(), 10)];\n var1 = Math.abs(this.lengthCalculation(fixedPoint, arcSeg.endPoint));\n if (fix < var1) {\n insertAt = count;\n break;\n }\n }\n if (insertAt >= 0) {\n //let paths: ArcSegment;\n // eslint-disable-next-line max-len\n var paths = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram);\n paths.target = connector1.id;\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.splice(insertAt, 0, paths);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.join();\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.splice(insertAt, 0, stBridge);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.join();\n lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex;\n }\n else {\n //let paths: ArcSegment;\n // eslint-disable-next-line max-len\n var paths = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram);\n paths.target = connector1.id;\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.push(paths);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.push(stBridge);\n lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex;\n }\n }\n else {\n if (!isNaN(stBridge.x) && !isNaN(stBridge.y) && !this.isEmptyPoint(enBridge)) {\n //let arcs: ArcSegment;\n var bges = [];\n var bgept = [];\n // eslint-disable-next-line max-len\n var arcs = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram);\n var bgseg = {\n bridges: bges, bridgeStartPoint: bgept, segmentIndex: segmentIndex\n };\n arcs.target = connector1.id;\n var stPoints = [];\n var edPoints = [];\n stPoints.push(stBridge);\n edPoints.push(enBridge);\n lastBridge[parseInt(segmentIndex.toString(), 10)] = bgseg;\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.push(arcs);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint = stPoints;\n lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex;\n }\n }\n }\n }\n }\n }\n }\n }\n if (lastBridge.length !== 0) {\n this.firstBridge(lastBridge, conn, bridgeSpacing);\n }\n }\n };\n /**\n * @param {BridgeSegment[]}bridgeList - provide the bridgeList value.\n * @param {Connector}connector - provide the connector value.\n * @param {number}bridgeSpacing - provide the bridgeSpacing value.\n * @private\n */\n ConnectorBridging.prototype.firstBridge = function (bridgeList, connector, bridgeSpacing) {\n for (var i = 0; i < bridgeList.length; i++) {\n var bridge = bridgeList[parseInt(i.toString(), 10)];\n for (var k = 1; k < bridge.bridges.length; k++) {\n if (Point.findLength(bridge.bridges[parseInt(k.toString(), 10)].endPoint, bridge.bridges[k - 1].endPoint) < bridgeSpacing) {\n bridge.bridges[k - 1].endPoint = bridge.bridges[parseInt(k.toString(), 10)].endPoint;\n var subBridge = bridge.bridges[k - 1];\n var arc = this.createBridgeSegment(subBridge.startPoint, subBridge.endPoint, subBridge.angle, bridgeSpacing, subBridge.sweep);\n bridge.bridges[k - 1].path = arc;\n bridge.bridges.splice(k, 1);\n bridge.bridgeStartPoint.splice(k, 1);\n k--;\n }\n }\n var pre = connector.sourcePoint;\n for (var j = 0; j < bridge.bridges.length; j++) {\n var subBridge = bridge.bridges[parseInt(j.toString(), 10)]; //const preventChecking: boolean = true;\n pre = subBridge.endPoint;\n connector.bridges.push(subBridge);\n }\n }\n };\n /**\n * @returns { ArcSegment } checkSourcePointInTarget method .\\\n * @param {PointModel}st- provide the st value.\n * @param {PointModel}end- provide the end value.\n * @param {number}angle- provide the angle value.\n * @param {BridgeDirection}direction- provide the direction value.\n * @param {number}index- provide the index value.\n * @param {Connector}conn- provide the conn value.\n * @param {Diagram} diagram- provide the diagram value.\n * @private\n */\n ConnectorBridging.prototype.createSegment = function (st, end, angle, direction, index, conn, diagram) {\n //let arc: string;\n //let sweep: number;\n var path = {\n angle: 0, endPoint: { x: 0, y: 0 }, target: '', path: '',\n segmentPointIndex: -1, startPoint: { x: 0, y: 0 }, sweep: 1, rendered: false\n };\n var sweep = this.sweepDirection(angle, direction, conn, diagram);\n var arc = this.createBridgeSegment(st, end, angle, conn.bridgeSpace, sweep);\n path.path = arc;\n path.startPoint = st;\n path.endPoint = end;\n path.angle = angle;\n path.segmentPointIndex = index;\n path.sweep = sweep;\n return path;\n };\n /**\n * @param {PointModel}startPt- provide the startPt value.\n * @param {PointModel}endPt- provide the endPt value.\n * @param {number}angle- provide the angle value.\n * @param {number}bridgeSpace- provide the bridgeSpace value.\n * @param {number}sweep- provide the sweep value.\n * @private\n */\n ConnectorBridging.prototype.createBridgeSegment = function (startPt, endPt, angle, bridgeSpace, sweep) {\n var path = 'A ' + bridgeSpace / 2 + ' ' + bridgeSpace / 2 + ' ' + angle + ' , 1 ' + sweep + ' ' + endPt.x + ',' + endPt.y;\n return path;\n };\n /**\n * @param {number}angle- provide the source value.\n * @param {BridgeDirection}bridgeDirection- provide the source value.\n * @param {Connector}connector- provide the source value.\n * @param {Diagram}diagram- provide the source value.\n * @private\n */\n ConnectorBridging.prototype.sweepDirection = function (angle, bridgeDirection, connector, diagram) {\n var angle1 = Math.abs(angle);\n var sweep;\n switch (bridgeDirection) {\n case 'Top':\n case 'Bottom':\n sweep = 1;\n if (angle1 >= 0 && angle1 <= 90) {\n sweep = 0;\n }\n break;\n case 'Left':\n case 'Right':\n sweep = 1;\n if (angle < 0 && angle >= -180) {\n sweep = 0;\n }\n break;\n }\n if (bridgeDirection === 'Right' || bridgeDirection === 'Bottom') {\n if (sweep === 0) {\n sweep = 1;\n }\n else {\n sweep = 0;\n }\n }\n return sweep;\n };\n /** @private */\n ConnectorBridging.prototype.getPointAtLength = function (length, pts) {\n var run = 0;\n var pre;\n var found = { x: 0, y: 0 };\n for (var i = 0; i < pts.length; i++) {\n var pt = pts[parseInt(i.toString(), 10)];\n if (!pre) {\n pre = pt;\n continue;\n }\n else {\n var l = this.lengthCalculation(pre, pt);\n if (run + l > length) {\n var r = length - run;\n var deg = Point.findAngle(pre, pt);\n var x = r * Math.cos(deg * Math.PI / 180);\n var y = r * Math.sin(deg * Math.PI / 180);\n found = { x: pre.x + x, y: pre.y + y };\n break;\n }\n else {\n run += l;\n }\n }\n pre = pt;\n }\n return found;\n };\n /**\n * @param {PointModel[]}connector- provide the source value.\n * @private\n */\n ConnectorBridging.prototype.getPoints = function (connector) {\n var points = [];\n if (connector.intermediatePoints && (connector.type === 'Straight' || connector.type === 'Orthogonal')) {\n for (var j = 0; j < connector.intermediatePoints.length; j++) {\n points.push(connector.intermediatePoints[parseInt(j.toString(), 10)]);\n }\n }\n return points;\n };\n ConnectorBridging.prototype.intersectsRect = function (rect1, rect2) {\n return ((((rect2.x < (rect1.x + rect1.width)) && (rect1.x < (rect2.x + rect2.width)))\n && (rect2.y < (rect1.y + rect1.height))) && (rect1.y < (rect2.y + rect2.height)));\n };\n /**\n * @param {PointModel[]}points1- provide the source value.\n * @param {PointModel[]}points2- provide the source value.\n * @param {boolean}self- provide the source value.\n * @param {BridgeDirection}bridgeDirection- provide the source value.\n * @param {PointModel[]}zOrder- provide the source value.\n * @private\n */\n ConnectorBridging.prototype.intersect = function (points1, points2, self, bridgeDirection, zOrder) {\n if (self && points2.length >= 2) {\n points2.splice(0, 1);\n points2.splice(0, 1);\n }\n var points = [];\n for (var i = 0; i < points1.length - 1; i++) {\n var pt = this.inter1(points1[parseInt(i.toString(), 10)], points1[i + 1], points2, zOrder, bridgeDirection);\n if (pt.length > 0) {\n for (var k = 0; k < pt.length; k++) {\n points.push(pt[parseInt(k.toString(), 10)]);\n }\n }\n if (self && points2.length >= 1) {\n points2.splice(0, 1);\n }\n }\n return points;\n };\n /**\n * @param {PointModel}startPt- provide the target value.\n * @param {PointModel}endPt- provide the target value.\n * @param {PointModel[]}pts- provide the target value.\n * @param {boolean}zOrder- provide the target value.\n * @param {BridgeDirection}bridgeDirection- provide the target value.\n * @private\n */\n ConnectorBridging.prototype.inter1 = function (startPt, endPt, pts, zOrder, bridgeDirection) {\n var points1 = [];\n for (var i = 0; i < pts.length - 1; i++) {\n var point = intersect2(startPt, endPt, pts[parseInt(i.toString(), 10)], pts[i + 1]);\n if (!this.isEmptyPoint(point)) {\n var angle = this.angleCalculation(startPt, endPt);\n var angle1 = this.angleCalculation(pts[parseInt(i.toString(), 10)], pts[i + 1]);\n angle = this.checkForHorizontalLine(angle);\n angle1 = this.checkForHorizontalLine(angle1);\n switch (bridgeDirection) {\n case 'Left':\n case 'Right':\n if (angle > angle1) {\n points1.push(point);\n }\n break;\n case 'Top':\n case 'Bottom':\n if (angle < angle1) {\n points1.push(point);\n }\n break;\n }\n if (angle === angle1 && zOrder) {\n points1.push(point);\n }\n }\n }\n return points1;\n };\n ConnectorBridging.prototype.checkForHorizontalLine = function (angle) {\n var temp = 0;\n var roundedAngle = Math.abs(angle);\n if (roundedAngle > 90) {\n temp = 180 - roundedAngle;\n }\n else {\n temp = roundedAngle;\n }\n return temp;\n };\n ConnectorBridging.prototype.isEmptyPoint = function (point) {\n return point.x === 0 && point.y === 0;\n };\n ConnectorBridging.prototype.getLengthAtFractionPoint = function (connector, pointAt) {\n var confirm = 100;\n var pointIndex = -1;\n var fullLength = 0;\n var segmentIndex = -1;\n var count = 0;\n var lengthAtFractionPt = 0;\n var pt1 = connector.sourcePoint;\n var previouspt2 = pt1;\n var points = [];\n for (var i = 0; i < connector.intermediatePoints.length; i++) {\n var point2 = connector.intermediatePoints[parseInt(i.toString(), 10)];\n points.push(point2);\n }\n for (var j = 0; j < points.length; j++) {\n var pt2 = points[parseInt(j.toString(), 10)];\n var suspect = this.getSlope(pt2, pt1, pointAt, connector);\n if (suspect < confirm) {\n confirm = suspect;\n lengthAtFractionPt = fullLength + this.lengthCalculation(pointAt, previouspt2);\n segmentIndex = count;\n pointIndex = j;\n }\n fullLength += Point.findLength(pt2, pt1);\n pt1 = pt2;\n previouspt2 = pt2;\n }\n count++;\n var lengthFraction = {\n lengthFractionIndex: lengthAtFractionPt, fullLength: fullLength,\n segmentIndex: segmentIndex, pointIndex: pointIndex\n };\n return lengthFraction;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ConnectorBridging.prototype.getSlope = function (startPt, endPt, point, connector) {\n var three = 3.0;\n var delX = Math.abs(startPt.x - endPt.x);\n var delY = Math.abs(startPt.y - endPt.y);\n var lhs = ((point.y - startPt.y) / (endPt.y - startPt.y));\n var rhs = ((point.x - startPt.x) / (endPt.x - startPt.x));\n if (!isFinite(lhs) || !isFinite(rhs) || isNaN(lhs) || isNaN(rhs)) {\n if (startPt.x === endPt.x) {\n if (startPt.y === endPt.y) {\n return 10000;\n }\n else if (((startPt.y > point.y) && (point.y > endPt.y)) || ((startPt.y < point.y) && (point.y < endPt.y))) {\n return Math.abs(startPt.x - point.x);\n }\n }\n else if (startPt.y === endPt.y) {\n if (((startPt.x > point.x) && (point.x > endPt.x)) || ((startPt.x < point.x) && (point.x < endPt.x))) {\n return Math.abs(startPt.y - point.y);\n }\n }\n }\n else {\n if ((startPt.x >= point.x && point.x >= endPt.x) || (startPt.x <= point.x && point.x <= endPt.x) || delX < three) {\n if ((startPt.y >= point.y && point.y >= endPt.y) || (startPt.y <= point.y && point.y <= endPt.y) || delY < three) {\n return Math.abs(lhs - rhs);\n }\n }\n }\n return 10000;\n };\n /**\n * @param {PointModel}startPt- provide the target value.\n * @param {PointModel}endPt- provide the target value.\n * @private\n */\n ConnectorBridging.prototype.angleCalculation = function (startPt, endPt) {\n var xDiff = startPt.x - endPt.x;\n var yDiff = startPt.y - endPt.y;\n return Math.atan2(yDiff, xDiff) * (180 / Math.PI);\n };\n ConnectorBridging.prototype.lengthCalculation = function (startPt, endPt) {\n //removed a try catch from here\n var len = Math.sqrt(((startPt.x - endPt.x) * (startPt.x - endPt.x)) + ((startPt.y - endPt.y) * (startPt.y - endPt.y)));\n return len;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n ConnectorBridging.prototype.destroy = function () {\n /**\n * Destroys the bridging module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n ConnectorBridging.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Bridging';\n };\n return ConnectorBridging;\n}());\nexport { ConnectorBridging };\n","import { Rect } from '../primitives/rect';\nimport { PathElement } from '../core/elements/path-element';\nimport { SnapConstraints } from '../enum/enum';\nimport { Connector } from './connector';\nimport { Selector } from '../objects/node';\nimport { getBounds } from './../utility/base-util';\nimport { randomId } from './../utility/base-util';\nimport { isSelected } from '../interaction/actions';\nimport { TextElement } from '../core/elements/text-element';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\n/**\n * Snapping\n */\nvar Snapping = /** @class */ (function () {\n function Snapping(diagram) {\n this.line = [];\n this.diagram = diagram;\n }\n /** @private */\n Snapping.prototype.canSnap = function () {\n return (this.diagram.snapSettings.constraints\n & (SnapConstraints.SnapToObject | SnapConstraints.SnapToLines)) !== 0;\n };\n Snapping.prototype.getWrapperObject = function (selectedObject, nameTable) {\n if (selectedObject.nodes && selectedObject.nodes.length > 0\n && (this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines || this.diagram.snapSettings.constraints\n & SnapConstraints.SnapToObject)) {\n for (var i = 0; i < selectedObject.nodes.length; i++) {\n if (((selectedObject.nodes[parseInt(i.toString(), 10)].shape.type === 'SwimLane' || selectedObject.nodes[parseInt(i.toString(), 10)].isLane)\n || selectedObject.nodes[parseInt(i.toString(), 10)].parentId !== ''\n && nameTable[(selectedObject.nodes[parseInt(i.toString(), 10)].parentId)]\n && nameTable[(selectedObject.nodes[parseInt(i.toString(), 10)].parentId)].isLane) && nameTable['helper']) {\n return nameTable['helper'].wrapper;\n }\n else {\n return selectedObject.wrapper;\n }\n }\n }\n return selectedObject.wrapper;\n };\n Snapping.prototype.setSnapLineColor = function () {\n return this.diagram.snapSettings.snapLineColor;\n };\n /**\n * Snap to object\n *\n * @private\n */\n Snapping.prototype.snapPoint = function (diagram, selectedObject, towardsLeft, towardsTop, delta, startPoint, endPoint) {\n var snapSettings = this.diagram.snapSettings;\n var zoomFactor = this.diagram.scroller.currentZoom;\n var offset = { x: 0, y: 0 };\n var wrapper = this.getWrapperObject(selectedObject, diagram.nameTable);\n var bounds = getBounds(wrapper);\n var horizontallysnapped = { snapped: false, offset: 0 };\n var verticallysnapped = { snapped: false, offset: 0 };\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) {\n //let snapLine: SVGElement;\n var snapLine = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n snapLine.setAttribute('id', '_SnappingLines');\n snapLine.setAttribute('shapeRendering', 'crispEdges');\n this.getAdornerLayerSvg().appendChild(snapLine);\n this.snapObject(diagram, selectedObject, snapLine, horizontallysnapped, verticallysnapped, delta, startPoint === endPoint);\n }\n //original position\n var left = bounds.x + delta.x;\n var top = bounds.y + delta.y;\n var right = bounds.x + bounds.width + delta.x;\n var bottom = bounds.y + bounds.height + delta.y;\n var scaledIntervals = snapSettings.verticalGridlines.scaledIntervals;\n //snapped positions\n var roundedRight = this.round(right, scaledIntervals, zoomFactor);\n var roundedLeft = this.round(left, scaledIntervals, zoomFactor);\n scaledIntervals = snapSettings.horizontalGridlines.scaledIntervals;\n var roundedTop = this.round(top, scaledIntervals, zoomFactor);\n var roundedBottom = this.round(bottom, scaledIntervals, zoomFactor);\n //currentposition\n var currentright = bounds.x + bounds.width;\n var currentbottom = bounds.y + bounds.height;\n if (!horizontallysnapped.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToVerticalLines) {\n if (Math.abs(delta.x) >= 1) {\n if (towardsLeft) {\n if (Math.abs(roundedRight - currentright) > Math.abs(roundedLeft - bounds.x)) {\n offset.x += roundedLeft - bounds.x;\n }\n else {\n offset.x += roundedRight - currentright;\n }\n }\n else {\n if (Math.abs(roundedRight - currentright) < Math.abs(roundedLeft - bounds.x)) {\n offset.x += roundedRight - currentright;\n }\n else {\n offset.x += roundedLeft - bounds.x;\n }\n }\n }\n }\n else {\n offset.x = endPoint.x - startPoint.x;\n }\n }\n else {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) {\n offset.x = horizontallysnapped.offset;\n }\n else {\n offset.x = endPoint.x - startPoint.x;\n }\n }\n if (!verticallysnapped.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToHorizontalLines) {\n if (Math.abs(delta.y) >= 1) {\n if (towardsTop) {\n if (Math.abs(roundedBottom - currentbottom) > Math.abs(roundedTop - bounds.y)) {\n offset.y += roundedTop - bounds.y;\n }\n else {\n offset.y += roundedBottom - currentbottom;\n }\n }\n else {\n if (Math.abs(roundedBottom - currentbottom) < Math.abs(roundedTop - bounds.y)) {\n offset.y += roundedBottom - currentbottom;\n }\n else {\n offset.y += roundedTop - bounds.y;\n }\n }\n }\n }\n else {\n offset.y = endPoint.y - startPoint.y;\n }\n }\n else {\n offset.y = verticallysnapped.offset;\n }\n return offset;\n };\n /**\n * @private\n */\n Snapping.prototype.round = function (value, snapIntervals, scale) {\n if (scale === 1) {\n scale = Math.pow(2, Math.floor(Math.log(scale) / Math.log(2)));\n }\n else {\n scale = scale;\n }\n var cutoff = 0;\n var i = 0;\n for (i = 0; i < snapIntervals.length; i++) {\n cutoff += snapIntervals[parseInt(i.toString(), 10)];\n }\n cutoff /= scale;\n var quotient = Math.floor(Math.abs(value) / cutoff);\n var bal = value % cutoff;\n var prev = quotient * cutoff;\n if (prev !== value) {\n if (value >= 0) {\n for (i = 0; i < snapIntervals.length; i++) {\n if (bal <= snapIntervals[parseInt(i.toString(), 10)] / scale) {\n return prev + (bal < (snapIntervals[parseInt(i.toString(), 10)] / (2 * scale))\n ? 0 : snapIntervals[parseInt(i.toString(), 10)] / scale);\n }\n else {\n prev += snapIntervals[parseInt(i.toString(), 10)] / scale;\n bal -= snapIntervals[parseInt(i.toString(), 10)] / scale;\n }\n }\n }\n else {\n prev = prev * -1;\n for (i = snapIntervals.length - 1; i >= 0; i--) {\n if (Math.abs(bal) <= snapIntervals[parseInt(i.toString(), 10)] / scale) {\n return prev - (Math.abs(bal) < (snapIntervals[parseInt(i.toString(), 10)] / (2 * scale))\n ? 0 : snapIntervals[parseInt(i.toString(), 10)] / scale);\n }\n else {\n prev -= snapIntervals[parseInt(i.toString(), 10)] / scale;\n bal += snapIntervals[parseInt(i.toString(), 10)] / scale;\n }\n }\n }\n }\n return value;\n };\n //Snap to Object\n Snapping.prototype.snapObject = function (diagram, selectedObject, g, horizontalSnap, verticalSnap, delta, ended) {\n var lengthX = null;\n var lengthY;\n var hTarget;\n var vTarget;\n var scroller = this.diagram.scroller;\n var snapSettings = this.diagram.snapSettings;\n var objectsAtLeft = [];\n var objectsAtRight = [];\n var objectsAtTop = [];\n var objectsAtBottom = [];\n var wrapper = this.getWrapperObject(selectedObject, diagram.nameTable);\n var bounds = getBounds(wrapper);\n var scale = diagram.scroller.currentZoom;\n var hoffset = -scroller.horizontalOffset;\n var voffset = -scroller.verticalOffset;\n var snapObjDistance = snapSettings.snapObjectDistance / scale;\n var viewPort = new Rect(0, 0, scroller.viewPortWidth, scroller.viewPortHeight);\n var hIntersectRect = new Rect(hoffset / scale, (bounds.y - snapObjDistance - 5), viewPort.width / scale, (bounds.height + 2 * snapObjDistance + 10));\n var vIntersectRect = new Rect((bounds.x - snapObjDistance - 5), voffset / scale, (bounds.width + 2 * snapObjDistance + 10), viewPort.height / scale);\n viewPort = new Rect(hoffset / scale, voffset / scale, viewPort.width / scale, viewPort.height / scale);\n var nodes = this.findNodes(diagram.spatialSearch, selectedObject, vIntersectRect, viewPort);\n var i;\n var target;\n var targetBounds;\n var nameTable = diagram.nameTable;\n for (i = 0; i < nodes.length; i++) {\n target = nodes[parseInt(i.toString(), 10)];\n if (this.canBeTarget(diagram, target)) {\n if (!(this.diagram.nameTable[target.id] instanceof Connector) && this.canConsider(nameTable, selectedObject, target)) {\n targetBounds = target.bounds;\n if (targetBounds.height + targetBounds.y < delta.y + bounds.y) {\n objectsAtTop.push({\n obj: target, distance: Math.abs(bounds.y + delta.y - targetBounds.y - targetBounds.height)\n });\n }\n else if (targetBounds.y > bounds.y + delta.y + bounds.height) {\n objectsAtBottom.push({ obj: target, distance: Math.abs(bounds.y + delta.y + bounds.height - targetBounds.y) });\n }\n if (lengthX == null || lengthX > Math.abs(targetBounds.y - bounds.y - delta.y)) {\n if (Math.abs(targetBounds.x + targetBounds.width / 2 - (bounds.x + bounds.width / 2 + delta.x)) <=\n snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'centerX');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x + targetBounds.width - (bounds.x + bounds.width + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'right');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x - (bounds.x + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'left');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x - (bounds.x + bounds.width + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'rightLeft');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x + targetBounds.width - (bounds.x + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'leftRight');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n }\n }\n }\n }\n nodes = this.findNodes(diagram.spatialSearch, selectedObject, hIntersectRect, viewPort);\n for (var j = 0; j < nodes.length; j++) {\n target = nodes[parseInt(j.toString(), 10)];\n if (this.canBeTarget(diagram, target)) {\n if (!(this.diagram.nameTable[target.id] instanceof Connector) && this.canConsider(nameTable, selectedObject, target)) {\n targetBounds = target.bounds;\n if (targetBounds.x + targetBounds.width < bounds.x + delta.x) {\n objectsAtLeft[objectsAtLeft.length] = {\n obj: target, distance: Math.abs((bounds.x + delta.x) - targetBounds.x - targetBounds.width)\n };\n }\n if (targetBounds.x > bounds.x + delta.x + bounds.width) {\n objectsAtRight[objectsAtRight.length] = {\n obj: target, distance: Math.abs(bounds.x + delta.x + bounds.width - targetBounds.x)\n };\n }\n if (lengthY == null || lengthY > Math.abs(targetBounds.x - bounds.x - delta.x)) {\n if (Math.abs(targetBounds.y + targetBounds.height / 2 - (bounds.y + bounds.height / 2 + delta.y))\n <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'centerY');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y - bounds.y - delta.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'top');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y + targetBounds.height - (bounds.y + bounds.height + delta.y)) <=\n snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'bottom');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y + targetBounds.height - bounds.y - delta.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'topBottom');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y - (bounds.y + bounds.height + delta.y)) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'bottomTop');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n }\n }\n }\n }\n this.createGuidelines(diagram, hTarget, vTarget, g, horizontalSnap, verticalSnap, ended);\n if (!horizontalSnap.snapped) {\n this.createHSpacingLines(diagram, g, selectedObject, objectsAtLeft, objectsAtRight, horizontalSnap, verticalSnap, ended, delta, snapObjDistance);\n }\n if (!verticalSnap.snapped) {\n this.createVSpacingLines(diagram, g, selectedObject, objectsAtTop, objectsAtBottom, horizontalSnap, verticalSnap, ended, delta, snapObjDistance);\n }\n };\n /**\n * @private\n */\n Snapping.prototype.snapConnectorEnd = function (point) {\n var snapSettings = this.diagram.snapSettings;\n var zoomFactor = this.diagram.scroller.currentZoom;\n if (snapSettings.constraints & SnapConstraints.SnapToLines) {\n point.x = this.round(point.x, snapSettings.verticalGridlines.scaledIntervals, zoomFactor);\n point.y = this.round(point.y, snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n }\n return point;\n };\n Snapping.prototype.canBeTarget = function (diagram, node) {\n node = this.diagram.nameTable[node.id];\n return !(isSelected(this.diagram, node, false));\n };\n Snapping.prototype.snapSize = function (diagram, horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, selectedObject, ended) {\n var lengthX;\n var lengthY;\n var snapSettings = this.diagram.snapSettings;\n var scroller = this.diagram.scroller;\n var hTarget;\n var vTarget;\n var bounds = getBounds(selectedObject.wrapper);\n var nameTable = diagram.nameTable;\n var sameWidth = [];\n var sameHeight = [];\n var scale = diagram.scroller.currentZoom;\n var hoffset = -scroller.horizontalOffset;\n var voffset = -scroller.verticalOffset;\n var snapObjDistance = snapSettings.snapObjectDistance / scale;\n var viewPort = new Rect(0, 0, scroller.viewPortWidth, scroller.viewPortHeight);\n var hintersectedrect = new Rect(hoffset / scale, (bounds.y - 5) / scale, viewPort.width / scale, (bounds.height + 10) / scale);\n var vintersectedrect = new Rect((bounds.x - 5) / scale, voffset / scale, (bounds.width + 10) / scale, viewPort.height / scale);\n viewPort = new Rect(hoffset / scale, voffset / scale, viewPort.width / scale, viewPort.height / scale);\n var nodesInView = [];\n var nodes = this.findNodes(diagram.spatialSearch, selectedObject, vintersectedrect, viewPort, nodesInView);\n var i;\n var target;\n var targetBounds;\n for (i = 0; i < nodes.length; i++) {\n target = nodes[parseInt(i.toString(), 10)];\n if (this.canConsider(nameTable, selectedObject, target) && !(this.diagram.nameTable[target.id] instanceof Connector)) {\n targetBounds = target.bounds;\n if (lengthX == null || lengthX > Math.abs(targetBounds.y - bounds.y)) {\n if (horizontalSnap.left) {\n if (Math.abs(bounds.x + deltaX - targetBounds.x) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'left');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(bounds.x + deltaX - targetBounds.x - targetBounds.width) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'leftRight');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n }\n else if (horizontalSnap.right) {\n if (Math.abs(bounds.x + deltaX + bounds.width - targetBounds.x - targetBounds.width) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'right');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(bounds.x + deltaX + bounds.width - targetBounds.x) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'rightLeft');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n }\n }\n }\n }\n nodes = this.findNodes(diagram.spatialSearch, selectedObject, hintersectedrect, viewPort);\n for (var i_1 = 0; i_1 < nodes.length; i_1++) {\n var target_1 = nodes[parseInt(i_1.toString(), 10)];\n if (this.canConsider(nameTable, selectedObject, target_1) && !(this.diagram.nameTable[target_1.id] instanceof Connector)) {\n var targetBounds_1 = target_1.bounds;\n if (lengthY == null || lengthY > Math.abs(targetBounds_1.x - bounds.x)) {\n if (verticalSnap.top) {\n if (Math.abs(bounds.y + deltaY - targetBounds_1.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'top');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n else if (Math.abs(bounds.y + deltaY - targetBounds_1.y - targetBounds_1.height) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'topBottom');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n }\n else if (verticalSnap.bottom) {\n if (Math.abs(bounds.y + bounds.height + deltaY - targetBounds_1.y - targetBounds_1.height) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'bottom');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n else if (Math.abs(bounds.y + bounds.height + deltaY - targetBounds_1.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'bottomTop');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n }\n }\n }\n }\n for (i = 0; i < nodesInView.length; i++) {\n target = nodesInView[parseInt(i.toString(), 10)];\n if (this.canConsider(nameTable, selectedObject, target)) {\n var targetBounds_2 = target.bounds;\n var delta = horizontalSnap.left ? -deltaX : deltaX;\n var difference = Math.abs(bounds.width + delta - targetBounds_2.width);\n var actualDiff = void 0;\n if (difference <= snapObjDistance) {\n actualDiff = horizontalSnap.left ? -targetBounds_2.width + bounds.width : targetBounds_2.width - bounds.width;\n sameWidth[sameWidth.length] = { source: target, difference: difference, offset: actualDiff };\n }\n delta = verticalSnap.top ? -deltaY : deltaY;\n var dify = Math.abs(bounds.height + delta - targetBounds_2.height);\n if (dify <= snapObjDistance) {\n actualDiff = verticalSnap.top ? -targetBounds_2.height + bounds.height : targetBounds_2.height - bounds.height;\n sameHeight[sameHeight.length] = { source: target, difference: dify, offset: actualDiff };\n }\n }\n }\n var g;\n if (!diagram.getTool) {\n var g_1 = this.createGuidelines(diagram, hTarget, vTarget, snapLine, horizontalSnap, verticalSnap, ended);\n }\n if (!horizontalSnap.snapped && sameWidth.length > 0 && (horizontalSnap.left || horizontalSnap.right)) {\n this.addSameWidthLines(diagram, snapLine, sameWidth, horizontalSnap, ended, selectedObject);\n }\n if (!verticalSnap.snapped && sameHeight.length > 0 && (verticalSnap.top || verticalSnap.bottom)) {\n this.addSameHeightLines(diagram, snapLine, sameHeight, verticalSnap, ended, selectedObject);\n }\n };\n /**\n * Snap to object on top\n *\n * @private\n */\n Snapping.prototype.snapTop = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBoundsT) {\n var dify = deltaY;\n verticalSnap.top = true;\n var y;\n horizontalSnap.left = horizontalSnap.right = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n //let initialBoundsT: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n y = initialBoundsT.y - initialBoundsT.height * shape.pivot.y + deltaY - (shape.offsetY - shape.height * shape.pivot.y);\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, deltaX, y, this.diagram.selectedItems, ended);\n }\n if (!verticalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToHorizontalLines) {\n var top_1 = initialBoundsT.y - initialBoundsT.height * shape.pivot.y;\n var actualTop = top_1 + deltaY;\n var roundedTop = this.round(actualTop, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n dify = roundedTop - top_1;\n }\n }\n else {\n dify = (deltaY - y) + verticalSnap.offset;\n }\n return dify;\n };\n /**\n * Snap to object on right\n *\n * @private\n */\n Snapping.prototype.snapRight = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBound) {\n var difx = deltaX;\n var x;\n horizontalSnap.right = true;\n verticalSnap.top = verticalSnap.bottom = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n //let initialBound: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n x = initialBound.x + initialBound.width * (1 - shape.pivot.x) + deltaX - (shape.offsetX + shape.width * (1 - shape.pivot.x));\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, x, deltaY, this.diagram.selectedItems, ended);\n }\n if (!horizontalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToVerticalLines) {\n var right = initialBound.x + initialBound.width * (1 - shape.pivot.x);\n var actualRight = right + deltaX;\n var roundedRight = this.round(actualRight, this.diagram.snapSettings.verticalGridlines.scaledIntervals, zoomFactor);\n difx = roundedRight - right;\n }\n }\n else {\n difx = (deltaX - x) + horizontalSnap.offset;\n }\n return difx;\n };\n /**\n * Snap to object on left\n *\n * @private\n */\n Snapping.prototype.snapLeft = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBoundsB) {\n var difx = deltaX;\n var x = 0;\n horizontalSnap.left = true;\n verticalSnap.top = verticalSnap.bottom = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n //let initialBoundsB: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n x = initialBoundsB.x - initialBoundsB.width * shape.pivot.x + deltaX - (shape.offsetX - shape.width * shape.pivot.x);\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, x, deltaY, this.diagram.selectedItems, ended);\n }\n if (!horizontalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToVerticalLines) {\n var left = initialBoundsB.x - initialBoundsB.width * shape.pivot.x;\n var actualLeft = left + deltaX;\n var roundedLeft = this.round(actualLeft, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n difx = roundedLeft - left;\n }\n }\n else {\n difx = (deltaX - x) + horizontalSnap.offset;\n }\n return difx;\n };\n /**\n * Snap to object on bottom\n *\n * @private\n */\n Snapping.prototype.snapBottom = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialRect) {\n var dify = deltaY;\n verticalSnap.bottom = true;\n horizontalSnap.left = horizontalSnap.right = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n var y = 0;\n //let initialRect: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n y = initialRect.y + initialRect.height * (1 - shape.pivot.y) + deltaY - (shape.offsetY + shape.height * (1 - shape.pivot.y));\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, deltaX, y, this.diagram.selectedItems, ended);\n }\n // eslint-disable-next-line max-len\n var bounds = ((shape instanceof TextElement) || (shape instanceof DiagramHtmlElement)) ? getBounds(shape) :\n getBounds(shape.wrapper);\n if (!verticalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToHorizontalLines) {\n var bottom = initialRect.y + initialRect.height * (1 - shape.pivot.y);\n var actualBottom = bottom + deltaY;\n var roundedBottom = this.round(actualBottom, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n dify = roundedBottom - bottom;\n }\n }\n else {\n dify = (deltaY - y) + verticalSnap.offset;\n }\n return dify;\n };\n //To create the same width and same size lines\n Snapping.prototype.createGuidelines = function (diagram, hTarget, vTarget, snapLine, horizontalSnap, verticalSnap, ended) {\n if (hTarget) {\n horizontalSnap.offset = hTarget.offsetX;\n horizontalSnap.snapped = true;\n if (!ended) {\n if (hTarget.type === 'sideAlign') {\n this.renderAlignmentLines(hTarget.start, hTarget.end, snapLine, diagram.scroller.transform);\n }\n else {\n this.renderAlignmentLines(hTarget.start, hTarget.end, snapLine, diagram.scroller.transform);\n }\n }\n }\n if (vTarget) {\n verticalSnap.offset = vTarget.offsetY;\n verticalSnap.snapped = true;\n if (!ended) {\n if (vTarget.type === 'sideAlign') {\n this.renderAlignmentLines(vTarget.start, vTarget.end, snapLine, diagram.scroller.transform);\n }\n else {\n this.renderAlignmentLines(vTarget.start, vTarget.end, snapLine, diagram.scroller.transform);\n }\n }\n }\n return snapLine;\n };\n //To create the alignment lines\n Snapping.prototype.renderAlignmentLines = function (start, end, svg, transform) {\n start = {\n x: (start.x + transform.tx) * transform.scale,\n y: (start.y + transform.ty) * transform.scale\n };\n end = {\n x: (end.x + transform.tx) * transform.scale,\n y: (end.y + transform.ty) * transform.scale\n };\n var line1 = {\n stroke: this.setSnapLineColor(), strokeWidth: 1, startPoint: { x: start.x, y: start.y },\n endPoint: { x: end.x, y: end.y }, fill: this.setSnapLineColor(), dashArray: '', width: 1,\n x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId()\n };\n var i = 0;\n this.line.push(line1);\n for (i = 0; i < this.line.length; i++) {\n this.diagram.diagramRenderer.drawLine(svg, this.line.pop());\n }\n };\n //To create Horizontal spacing lines\n Snapping.prototype.createHSpacingLines = function (diagram, g, shape, objectsAtLeft, objectsAtRight, horizontalSnap, verticalSnap, ended, delta, snapObjDistance) {\n var top = 0;\n this.sortByDistance(objectsAtLeft, 'distance', true);\n this.sortByDistance(objectsAtRight, 'distance', true);\n var equallySpaced = [];\n var bounds;\n if (diagram.selectedObject.helperObject) {\n bounds = getBounds(diagram.selectedObject.helperObject.wrapper);\n }\n else {\n bounds = getBounds(shape.wrapper);\n }\n var nearestleft;\n var nearestright;\n var targetBounds;\n var equaldistance;\n if (objectsAtLeft.length > 0) {\n equallySpaced[equallySpaced.length] = objectsAtLeft[0];\n nearestleft = ((objectsAtLeft[0].obj).bounds);\n top = nearestleft.y;\n if (objectsAtLeft.length > 1) {\n targetBounds = ((objectsAtLeft[1].obj).bounds);\n equaldistance = nearestleft.x - targetBounds.x - targetBounds.width;\n if (Math.abs(equaldistance - objectsAtLeft[0].distance) <= snapObjDistance) {\n top = this.findEquallySpacedNodesAtLeft(objectsAtLeft, equaldistance, top, equallySpaced);\n }\n else {\n equaldistance = objectsAtLeft[0].distance;\n }\n }\n else {\n equaldistance = objectsAtLeft[0].distance;\n }\n }\n this.sortByDistance(equallySpaced, 'distance');\n equallySpaced[equallySpaced.length] = { obj: shape, distance: 0 };\n top = bounds.y < top || !top ? bounds.y : top;\n if (objectsAtRight.length > 0) {\n var dist = void 0;\n nearestright = ((objectsAtRight[0].obj).bounds);\n top = nearestright.y < top ? nearestright.y : top;\n if (objectsAtRight.length > 1) {\n targetBounds = ((objectsAtRight[1].obj).bounds);\n dist = targetBounds.x - nearestright.x - nearestright.width;\n }\n if (objectsAtLeft.length > 0) {\n if (Math.abs(objectsAtRight[0].distance - objectsAtLeft[0].distance) <= snapObjDistance) {\n var adjustablevalue = Math.abs(objectsAtRight[0].distance - objectsAtLeft[0].distance) / 2;\n (objectsAtRight[0].distance < objectsAtLeft[0].distance) ?\n equaldistance -= adjustablevalue : equaldistance += adjustablevalue;\n equallySpaced[equallySpaced.length] = objectsAtRight[0];\n }\n else if (objectsAtLeft.length === 1) {\n nearestleft = undefined;\n equallySpaced.splice(0, 1);\n equallySpaced[equallySpaced.length] = objectsAtRight[0];\n equaldistance = dist;\n }\n }\n else {\n equaldistance = dist;\n equallySpaced[equallySpaced.length] = objectsAtRight[0];\n }\n if (objectsAtRight.length > 1 && nearestright.x + nearestright.width < targetBounds.x) {\n top = this.findEquallySpacedNodesAtRight(objectsAtRight, dist, top, equallySpaced, snapObjDistance);\n }\n }\n if (equallySpaced.length > 2) {\n this.addHSpacingLines(diagram, g, equallySpaced, ended, top);\n var deltaHorizontal = 0;\n if (ended) {\n deltaHorizontal = delta.x;\n }\n if (nearestleft) {\n horizontalSnap.offset = equaldistance - Math.abs(bounds.x + deltaHorizontal - nearestleft.x - nearestleft.width)\n + deltaHorizontal;\n }\n else if (nearestright) {\n horizontalSnap.offset = Math.abs(bounds.x + bounds.width + deltaHorizontal - nearestright.x)\n - equaldistance + deltaHorizontal;\n }\n horizontalSnap.snapped = true;\n }\n };\n //To create vertical spacing lines\n Snapping.prototype.createVSpacingLines = function (diagram, g, shape, objectsAtTop, objectsAtBottom, horizontalSnap, verticalSnap, ended, delta, snapObjDistance) {\n var right = 0;\n this.sortByDistance(objectsAtTop, 'distance', true);\n this.sortByDistance(objectsAtBottom, 'distance', true);\n var equallySpaced = [];\n var wrapper = this.getWrapperObject(shape, diagram.nameTable);\n var bounds = getBounds(wrapper);\n var nearesttop;\n var nearestbottom;\n var targetBounds;\n var equaldistance;\n if (objectsAtTop.length > 0) {\n equallySpaced[equallySpaced.length] = objectsAtTop[0];\n nearesttop = ((objectsAtTop[0].obj).bounds);\n right = nearesttop.x + nearesttop.width;\n if (objectsAtTop.length > 1) {\n targetBounds = ((objectsAtTop[1].obj).bounds);\n equaldistance = nearesttop.y - targetBounds.y - targetBounds.height;\n if (Math.abs(equaldistance - objectsAtTop[0].distance) <= snapObjDistance) {\n right = this.findEquallySpacedNodesAtTop(objectsAtTop, equaldistance, right, equallySpaced);\n }\n else {\n equaldistance = objectsAtTop[0].distance;\n }\n }\n else {\n equaldistance = objectsAtTop[0].distance;\n }\n }\n this.sortByDistance(equallySpaced, 'distance');\n equallySpaced[equallySpaced.length] = { obj: shape, distance: 0 };\n right = bounds.x + bounds.width > right || !right ? bounds.x + bounds.width : right;\n var dist;\n if (objectsAtBottom.length > 0) {\n nearestbottom = ((objectsAtBottom[0].obj).bounds);\n right = nearestbottom.x + nearestbottom.width > right ? nearestbottom.x + nearestbottom.width : right;\n if (objectsAtBottom.length > 1) {\n targetBounds = ((objectsAtBottom[1].obj).bounds);\n dist = targetBounds.y - nearestbottom.y - nearestbottom.height;\n }\n if (objectsAtTop.length > 0) {\n if (Math.abs(objectsAtBottom[0].distance - objectsAtTop[0].distance) <= snapObjDistance) {\n var adjustablevalue = Math.abs(objectsAtBottom[0].distance - objectsAtTop[0].distance) / 2;\n (objectsAtBottom[0].distance < objectsAtTop[0].distance) ?\n equaldistance -= adjustablevalue : equaldistance += adjustablevalue;\n equallySpaced[equallySpaced.length] = objectsAtBottom[0];\n }\n else if (objectsAtTop.length === 1) {\n nearesttop = undefined;\n equallySpaced.splice(0, 1);\n equallySpaced[equallySpaced.length] = objectsAtBottom[0];\n equaldistance = dist;\n }\n }\n else {\n equaldistance = dist;\n equallySpaced[equallySpaced.length] = objectsAtBottom[0];\n }\n if (objectsAtBottom.length > 1 && targetBounds.y > nearestbottom.y + nearestbottom.height) {\n right = this.findEquallySpacedNodesAtBottom(objectsAtBottom, dist, right, equallySpaced, snapObjDistance);\n }\n }\n if (equallySpaced.length > 2) {\n this.addVSpacingLines(diagram, g, equallySpaced, ended, right);\n var deltaVertical = 0;\n if (ended) {\n deltaVertical = delta.y;\n }\n if (nearesttop) {\n verticalSnap.offset = equaldistance - Math.abs(bounds.y + deltaVertical - nearesttop.y - nearesttop.height) + deltaVertical;\n }\n else if (nearestbottom) {\n verticalSnap.offset = Math.abs(bounds.y + bounds.height + deltaVertical - nearestbottom.y) - equaldistance + deltaVertical;\n }\n verticalSnap.snapped = true;\n }\n };\n //Add the Horizontal spacing lines\n Snapping.prototype.addHSpacingLines = function (diagram, g, equallySpaced, ended, top) {\n var i;\n var start;\n var end;\n if (!ended) {\n for (i = 0; i < equallySpaced.length - 1; i++) {\n var crnt = equallySpaced[parseInt(i.toString(), 10)].obj instanceof Selector ?\n getBounds((equallySpaced[parseInt(i.toString(), 10)].obj).wrapper)\n : ((equallySpaced[parseInt(i.toString(), 10)].obj).bounds);\n var next = equallySpaced[i + 1].obj instanceof Selector ?\n getBounds((equallySpaced[i + 1].obj).wrapper) : ((equallySpaced[i + 1].obj).bounds);\n start = { x: crnt.x + crnt.width, y: top - 15 };\n end = { x: next.x, y: top - 15 };\n this.renderSpacingLines(start, end, g, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n };\n //Add the vertical spacing lines\n Snapping.prototype.addVSpacingLines = function (diagram, g, equallySpacedObjects, ended, right) {\n var start;\n var end;\n if (!ended) {\n for (var i = 0; i < equallySpacedObjects.length - 1; i++) {\n var crnt = equallySpacedObjects[parseInt(i.toString(), 10)].obj instanceof Selector ?\n getBounds((equallySpacedObjects[parseInt(i.toString(), 10)].obj).wrapper)\n : ((equallySpacedObjects[parseInt(i.toString(), 10)].obj).bounds);\n var next = equallySpacedObjects[i + 1].obj instanceof Selector ?\n getBounds((equallySpacedObjects[i + 1].obj).wrapper) :\n ((equallySpacedObjects[i + 1].obj).bounds);\n start = { x: right + 15, y: crnt.y + crnt.height };\n end = { x: right + 15, y: next.y };\n this.renderSpacingLines(start, end, g, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n };\n //To add same width lines\n Snapping.prototype.addSameWidthLines = function (diagram, snapLine, sameWidths, horizontalSnap, ended, shape) {\n this.sortByDistance(sameWidths, 'offset');\n var bounds = getBounds(shape.wrapper);\n var target = sameWidths[0];\n var startPt;\n var endPt;\n var targetBounds = (target.source).bounds;\n var sameSizes = [];\n sameSizes.push(sameWidths[0]);\n var i;\n var crntbounds;\n for (i = 1; i < sameWidths.length; i++) {\n crntbounds = (sameWidths[parseInt(i.toString(), 10)].source).bounds;\n if (crntbounds.width === targetBounds.width) {\n sameSizes.push(sameWidths[parseInt(i.toString(), 10)]);\n }\n }\n if (!ended) {\n startPt = { x: bounds.x + target.offset, y: bounds.y - 15 };\n endPt = { x: bounds.x + bounds.width + target.offset, y: bounds.y - 15 };\n this.renderSpacingLines(startPt, endPt, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n for (i = 0; i < sameSizes.length; i++) {\n bounds = (sameSizes[parseInt(i.toString(), 10)].source).bounds;\n startPt = { x: bounds.x, y: bounds.y - 15 };\n endPt = { x: bounds.x + bounds.width, y: bounds.y - 15 };\n this.renderSpacingLines(startPt, endPt, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n horizontalSnap.offset = target.offset;\n horizontalSnap.snapped = true;\n };\n //To add same height lines\n Snapping.prototype.addSameHeightLines = function (diagram, snapLine, sameHeights, verticalSnap, ended, shape) {\n this.sortByDistance(sameHeights, 'offset');\n var bounds = getBounds(shape.wrapper);\n var target = sameHeights[0];\n var targetBounds = (target.source).bounds;\n var start;\n var end;\n var sameSizes = [];\n sameSizes.push(sameHeights[0]);\n var i;\n var crntbounds;\n for (i = 0; i < sameHeights.length; i++) {\n crntbounds = (sameHeights[parseInt(i.toString(), 10)].source).bounds;\n if (crntbounds.height === targetBounds.height) {\n sameSizes.push(sameHeights[parseInt(i.toString(), 10)]);\n }\n }\n if (!ended) {\n start = { x: bounds.x + bounds.width + 15, y: bounds.y + target.offset };\n end = { x: bounds.x + bounds.width + 15, y: bounds.y + target.offset + bounds.height };\n this.renderSpacingLines(start, end, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n for (i = 0; i < sameSizes.length; i++) {\n bounds = (sameSizes[parseInt(i.toString(), 10)].source).bounds;\n start = { x: bounds.x + bounds.width + 15, y: bounds.y };\n end = { x: bounds.x + bounds.width + 15, y: bounds.y + bounds.height };\n this.renderSpacingLines(start, end, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n verticalSnap.offset = target.offset;\n verticalSnap.snapped = true;\n };\n //Render spacing lines\n Snapping.prototype.renderSpacingLines = function (start, end, snapLine, svg, transform) {\n var d;\n var d1;\n var line1;\n var element = new PathElement();\n var options = {};\n start = {\n x: (start.x + transform.tx) * transform.scale,\n y: (start.y + transform.ty) * transform.scale\n };\n end = {\n x: (end.x + transform.tx) * transform.scale,\n y: (end.y + transform.ty) * transform.scale\n };\n if (start.x === end.x) {\n d = 'M' + (start.x - 5) + ' ' + (start.y + 5) + 'L' + start.x + ' ' + start.y +\n 'L' + (start.x + 5) + ' ' + (start.y + 5) + 'z' + 'M' + (end.x - 5) + ' ' +\n (end.y - 5) + ' L' + end.x + ' ' + end.y + ' L' +\n (end.x + 5) + ' ' + (end.y - 5) + 'z';\n line1 = {\n startPoint: { x: start.x - 8, y: start.y - 1 },\n endPoint: { x: start.x + 8, y: start.y - 1 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId()\n };\n element.data = d;\n options.data = element.data;\n options.angle = 0;\n options.pivotX = 0;\n options.pivotY = 0;\n options.x = 0;\n options.y = 0;\n options.height = 0;\n options.width = 1;\n options.id = randomId();\n this.diagram.diagramRenderer.drawPath(snapLine, options);\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n line1 = {\n startPoint: { x: end.x - 8, y: end.y + 1 },\n endPoint: { x: end.x + 8, y: end.y + 1 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: this.getAdornerLayerSvg().id + 'spacing'\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n }\n else {\n d = 'M' + (start.x + 5) + ' ' + (start.y + 5) + ' L' + start.x + ' ' + start.y +\n ' L' + (start.x + 5) + ' ' + (start.y - 5) + 'z' + 'M' + (end.x - 5) + ' ' +\n (end.y - 5) + ' L' + end.x + ' ' + end.y +\n ' L' + (end.x - 5) + ' ' + (end.y + 5) + 'z';\n element.data = d;\n options.data = d;\n options.angle = 0;\n options.pivotX = 0;\n options.pivotY = 0;\n options.x = 0;\n options.y = 0;\n options.height = 0;\n options.width = 1;\n options.id = randomId();\n this.diagram.diagramRenderer.drawPath(snapLine, options);\n line1 = {\n visible: true, opacity: 1, id: randomId(),\n startPoint: { x: start.x - 1, y: start.y - 8 },\n endPoint: { x: start.x - 1, y: start.y + 8 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '0', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n line1 = {\n width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId(),\n startPoint: { x: end.x + 1, y: end.y - 8 },\n endPoint: { x: end.x + 1, y: end.y + 8 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '0'\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n }\n line1 = {\n startPoint: { x: start.x, y: start.y },\n endPoint: { x: end.x, y: end.y }, stroke: this.setSnapLineColor(), strokeWidth: 1, fill: this.setSnapLineColor(),\n dashArray: '0', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId()\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n };\n /**\n * To Create Snap object with position, initial bounds, and final bounds \\\n *\n * @returns { void } To Create Snap object with position, initial bounds, and final bounds .\\\n * @param {Diagram} targetBounds - provide the targetBounds value.\n * @param {Rect} bounds - provide the angle value.\n * @param {string} snap - provide the angle value.\n * @private\n */\n Snapping.prototype.createSnapObject = function (targetBounds, bounds, snap) {\n var snapObject;\n switch (snap) {\n case 'left':\n snapObject = {\n start: { x: (targetBounds.x), y: Math.min(targetBounds.y, bounds.y) },\n end: { x: (targetBounds.x), y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) },\n offsetX: targetBounds.x - bounds.x, offsetY: 0, type: 'sideAlign'\n };\n break;\n case 'right':\n snapObject = {\n type: 'sideAlign',\n start: { x: (targetBounds.x + targetBounds.width), y: Math.min(targetBounds.y, bounds.y) },\n offsetX: targetBounds.x + targetBounds.width - bounds.x - bounds.width,\n offsetY: 0,\n end: {\n x: (targetBounds.x + targetBounds.width),\n y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height)\n }\n };\n break;\n case 'top':\n snapObject = {\n offsetY: targetBounds.y - bounds.y, offsetX: 0, type: 'sideAlign',\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y },\n end: { x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), y: targetBounds.y }\n };\n break;\n case 'bottom':\n snapObject = {\n type: 'sideAlign', offsetY: targetBounds.y + targetBounds.height - bounds.y - bounds.height, offsetX: 0,\n end: {\n x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)),\n y: targetBounds.y + targetBounds.height\n },\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height }\n };\n break;\n case 'topBottom':\n snapObject = {\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height },\n end: {\n x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)),\n y: targetBounds.y + targetBounds.height\n },\n offsetY: targetBounds.y + targetBounds.height - bounds.y, offsetX: 0, type: 'sideAlign'\n };\n break;\n case 'bottomTop':\n snapObject = {\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y },\n end: { x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), y: targetBounds.y },\n offsetY: targetBounds.y - bounds.y - bounds.height, offsetX: 0, type: 'sideAlign'\n };\n break;\n case 'leftRight':\n snapObject = {\n start: { x: (targetBounds.x + targetBounds.width), y: Math.min(targetBounds.y, bounds.y) },\n end: {\n x: (targetBounds.x + targetBounds.width),\n y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height)\n },\n offsetX: targetBounds.x + targetBounds.width - bounds.x, offsetY: 0, type: 'sideAlign'\n };\n break;\n case 'rightLeft':\n snapObject = {\n start: { x: (targetBounds.x), y: (Math.min(targetBounds.y, bounds.y)) },\n end: { x: (targetBounds.x), y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) },\n offsetX: targetBounds.x - bounds.x - bounds.width, offsetY: 0, type: 'sideAlign'\n };\n break;\n case 'centerX':\n snapObject = {\n start: { x: (targetBounds.x + targetBounds.width / 2), y: (Math.min(targetBounds.y, bounds.y)) },\n end: {\n x: (targetBounds.x + targetBounds.width / 2),\n y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height)\n },\n offsetX: targetBounds.x + targetBounds.width / 2 - (bounds.x + bounds.width / 2), offsetY: 0, type: 'centerAlign'\n };\n break;\n case 'centerY':\n snapObject = {\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height / 2 },\n end: {\n x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)),\n y: targetBounds.y + targetBounds.height / 2\n },\n offsetY: targetBounds.y + targetBounds.height / 2 - (bounds.y + bounds.height / 2), offsetX: 0, type: 'centerAlign'\n };\n break;\n }\n return snapObject;\n };\n /**\n * Calculate the snap angle \\\n *\n * @returns { void } Calculate the snap angle .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {number} angle - provide the angle value.\n * @private\n */\n Snapping.prototype.snapAngle = function (diagram, angle) {\n var snapSettings = this.diagram.snapSettings;\n var snapAngle = snapSettings.snapAngle;\n var width = angle % (snapAngle || 0);\n if (width >= (snapAngle / 2)) {\n return angle + snapAngle - width;\n }\n else {\n return angle - width;\n }\n };\n //Check whether the node to be snapped or not.\n Snapping.prototype.canConsider = function (nameTable, selectedObject, target) {\n var consider = false;\n if (this.diagram.selectedItems.nodes.length && this.diagram.selectedItems.nodes[0].id === target.id) {\n return false;\n }\n else {\n return true;\n }\n };\n //Find the total number of nodes in diagram using SpatialSearch\n Snapping.prototype.findNodes = function (spatialSearch, node, child, viewPort, nodesInView) {\n var nodes = [];\n var nd;\n var bounds;\n var quads = spatialSearch.findQuads(nodesInView ? viewPort : child);\n for (var i = 0; i < quads.length; i++) {\n var quad = quads[parseInt(i.toString(), 10)];\n if (quad.objects.length > 0) {\n for (var j = 0; j < quad.objects.length; j++) {\n nd = quad.objects[parseInt(j.toString(), 10)];\n if (!(this.diagram.nameTable[nd.id] instanceof Connector) && nd.visible\n && !(this.diagram.nameTable[nd.id].shape.type === 'SwimLane') && !(this.diagram.nameTable[nd.id].isLane) &&\n !(this.diagram.nameTable[nd.id].isPhase) && !(this.diagram.nameTable[nd.id].isHeader) && nd.id !== 'helper') {\n bounds = getBounds(nd);\n if (nodes.indexOf(nd) === -1 && this.intersectsRect(child, bounds)) {\n nodes.push(nd);\n }\n if (nodesInView && nodesInView.indexOf(nd) && this.intersectsRect(viewPort, bounds)) {\n nodesInView.push(nd);\n }\n }\n }\n }\n }\n return nodes;\n };\n Snapping.prototype.intersectsRect = function (child, bounds) {\n return ((((bounds.x < (child.x + child.width)) && (child.x < (bounds.x + bounds.width)))\n && (bounds.y < (child.y + child.height))) && (child.y < (bounds.y + bounds.height)));\n };\n Snapping.prototype.getAdornerLayerSvg = function () {\n return this.diagram.diagramRenderer.adornerSvgLayer;\n };\n /**\n * To remove grid lines on mouse move and mouse up \\\n *\n * @returns { void } To remove grid lines on mouse move and mouse up .\\\n * @param {Diagram} diagram - provide the source value.\n * @private\n */\n Snapping.prototype.removeGuidelines = function (diagram) {\n var selectionRect = this.getAdornerLayerSvg().getElementById('_SnappingLines');\n var line = this.getAdornerLayerSvg().getElementById('pivotLine');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n if (line) {\n line.parentNode.removeChild(line);\n }\n };\n //Sort the objects by its distance\n Snapping.prototype.sortByDistance = function (obj, value, ascending) {\n var i;\n var j;\n var temp;\n if (ascending) {\n for (i = 0; i < obj.length; i++) {\n for (j = i + 1; j < obj.length; j++) {\n if (obj[parseInt(i.toString(), 10)][\"\" + value] > obj[parseInt(j.toString(), 10)][\"\" + value]) {\n temp = obj[parseInt(i.toString(), 10)];\n obj[parseInt(i.toString(), 10)] = obj[parseInt(j.toString(), 10)];\n obj[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n else {\n for (i = 0; i < obj.length; i++) {\n for (j = i + 1; j < obj.length; j++) {\n if (obj[parseInt(i.toString(), 10)][\"\" + value] < obj[parseInt(j.toString(), 10)][\"\" + value]) {\n temp = obj[parseInt(i.toString(), 10)];\n obj[parseInt(i.toString(), 10)] = obj[parseInt(j.toString(), 10)];\n obj[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n };\n //To find nodes that are equally placed at left of the selected node\n Snapping.prototype.findEquallySpacedNodesAtLeft = function (objectsAtLeft, equalDistance, top, equallySpaced) {\n var prevBounds;\n var targetBounds;\n var dist;\n var i;\n for (i = 1; i < objectsAtLeft.length; i++) {\n prevBounds = ((objectsAtLeft[i - 1].obj).bounds);\n targetBounds = ((objectsAtLeft[parseInt(i.toString(), 10)].obj).bounds);\n dist = prevBounds.x - targetBounds.x - targetBounds.width;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtLeft[parseInt(i.toString(), 10)];\n if (targetBounds.y < top) {\n top = targetBounds.y;\n }\n }\n else {\n break;\n }\n }\n return top;\n };\n //To find nodes that are equally placed at right of the selected node\n Snapping.prototype.findEquallySpacedNodesAtRight = function (objectsAtRight, equalDistance, top, equallySpaced, snapObjDistance) {\n var actualDistance = objectsAtRight[0].distance;\n var target;\n var targetBounds;\n var prevBounds;\n var dist;\n if (Math.abs(equalDistance - actualDistance) <= snapObjDistance) {\n for (var i = 0; i < objectsAtRight.length - 1; i++) {\n target = objectsAtRight[parseInt(i.toString(), 10)].obj;\n targetBounds = ((objectsAtRight[i + 1].obj).bounds);\n prevBounds = (target.bounds);\n dist = targetBounds.x - prevBounds.x - prevBounds.width;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtRight[i + 1];\n if (prevBounds.y < top) {\n top = prevBounds.y;\n }\n }\n else {\n break;\n }\n }\n }\n return top;\n };\n Snapping.prototype.findEquallySpacedNodesAtTop = function (objectsAtTop, equalDistance, right, equallySpaced) {\n var prevBounds;\n var targetBounds;\n var dist;\n for (var i = 1; i < objectsAtTop.length; i++) {\n prevBounds = ((objectsAtTop[i - 1].obj).bounds);\n targetBounds = ((objectsAtTop[parseInt(i.toString(), 10)].obj).bounds);\n dist = prevBounds.y - targetBounds.y - targetBounds.height;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtTop[parseInt(i.toString(), 10)];\n if (targetBounds.x + targetBounds.width > right) {\n right = targetBounds.x + targetBounds.width;\n }\n }\n else {\n break;\n }\n }\n return right;\n };\n //To find nodes that are equally placed at bottom of the selected node\n Snapping.prototype.findEquallySpacedNodesAtBottom = function (objectsAtBottom, equalDistance, right, equallySpaced, snapObjDistance) {\n var actualDistance = objectsAtBottom[0].distance;\n var target;\n var targetBounds;\n var prevBounds;\n var dist;\n if (Math.abs(equalDistance - actualDistance) <= snapObjDistance) {\n for (var i = 0; i < objectsAtBottom.length - 1; i++) {\n target = objectsAtBottom[parseInt(i.toString(), 10)].obj;\n targetBounds = ((objectsAtBottom[i + 1].obj).bounds);\n prevBounds = (target.bounds);\n dist = targetBounds.y - prevBounds.y - prevBounds.height;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtBottom[i + 1];\n if (prevBounds.x + prevBounds.width > right) {\n right = prevBounds.x + prevBounds.width;\n }\n }\n else {\n break;\n }\n }\n }\n return right;\n };\n /**\n * To get Adoner layer to draw snapLine\n *\n * @private\n */\n Snapping.prototype.getLayer = function () {\n var snapLine;\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) {\n snapLine = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n snapLine.setAttribute('id', '_SnappingLines');\n snapLine.setAttribute('shapeRendering', 'crispEdges');\n this.getAdornerLayerSvg().appendChild(snapLine);\n }\n return snapLine;\n };\n /**\n * Constructor for the snapping module\n *\n * @private\n */\n // constructor() {\n // //constructs the snapping module\n // }\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n Snapping.prototype.destroy = function () {\n /**\n * Destroys the snapping module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Snapping.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Snapping';\n };\n return Snapping;\n}());\nexport { Snapping };\n","import { Node } from './node';\nimport { Connector } from './connector';\nimport { DiagramAction } from '../enum/enum';\nimport { removeItem, getObjectType } from '../utility/diagram-util';\nimport { cloneObject, getFunction } from '../utility/base-util';\nimport { findAnnotation, findPort } from '../utility/diagram-util';\nimport { Size, addChildToContainer } from '../index';\nimport { swimLaneMeasureAndArrange, laneInterChanged, findLaneIndex, updateSwimLaneObject, pasteSwimLane } from '../utility/swim-lane-util';\nimport { DiagramEvent } from '../enum/enum';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * Undo redo function used for revert and restore the changes\n */\nvar UndoRedo = /** @class */ (function () {\n /**\n * Constructor for the undo redo module\n *\n * @private\n */\n function UndoRedo() {\n this.groupUndo = false;\n this.childTable = [];\n this.historyCount = 0;\n this.hasGroup = false;\n this.groupCount = 0;\n this.undoOffsets = [];\n //constructs the undo redo module\n }\n /**\n * initHistory method \\\n *\n * @returns { void } initHistory method .\\\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\n UndoRedo.prototype.initHistory = function (diagram) {\n diagram.historyManager = {\n canRedo: false, canUndo: false, currentEntry: null,\n push: diagram.addHistoryEntry.bind(diagram), undo: Function, redo: Function,\n startGroupAction: diagram.startGroupAction.bind(diagram), endGroupAction: diagram.endGroupAction.bind(diagram),\n canLog: null, undoStack: [], redoStack: [], stackLimit: diagram.historyManager ? diagram.historyManager.stackLimit : undefined\n };\n };\n /**\n * addHistoryEntry method \\\n *\n * @returns { void } addHistoryEntry method .\\\n * @param {HistoryEntry} entry - provide the points value.\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\n UndoRedo.prototype.addHistoryEntry = function (entry, diagram) {\n // Bug: 903791-remove StartGroup & EndGroup entry when no actual changes wrapped between them.\n if (entry.type === 'EndGroup' && diagram.historyManager.currentEntry.type === 'StartGroup') {\n if (diagram.historyManager.currentEntry.previous) {\n diagram.historyManager.currentEntry.previous.next = undefined;\n }\n diagram.historyManager.currentEntry = diagram.historyManager.currentEntry.previous;\n // when cancelled change startGroup is only entry in history manager\n if (!diagram.historyManager.currentEntry) {\n diagram.historyManager.canUndo = false;\n }\n return false;\n }\n var entryObject = null;\n var nextEntry = null;\n if (diagram.historyManager.canLog) {\n var hEntry = diagram.historyManager.canLog(entry);\n if (hEntry.cancel === true) {\n return false;\n }\n }\n if (diagram.historyManager && diagram.historyManager.canUndo && diagram.historyManager.currentEntry) {\n entryObject = diagram.historyManager.currentEntry;\n if (entryObject.next) {\n if (entryObject.previous) {\n nextEntry = entryObject.next;\n nextEntry.previous = null;\n entryObject.next = entry;\n entry.previous = entryObject;\n }\n }\n else {\n entryObject.next = entry;\n entry.previous = entryObject;\n }\n }\n diagram.historyManager.currentEntry = entry;\n if (diagram.historyManager.stackLimit) {\n if (entry.type === 'StartGroup' || entry.type === 'EndGroup') {\n var value = entry.type === 'EndGroup' ? true : false;\n this.setEntryLimit(value);\n }\n if (!this.hasGroup && this.groupCount === 0) {\n if (this.historyCount < diagram.historyManager.stackLimit) {\n this.historyCount++;\n }\n else {\n this.applyLimit(diagram.historyManager.currentEntry, diagram.historyManager.stackLimit, diagram);\n }\n }\n }\n this.getHistoryList(diagram);\n diagram.historyManager.canUndo = true;\n diagram.historyManager.canRedo = false;\n return true;\n };\n /**\n * applyLimit method \\\n *\n * @returns { void } applyLimit method .\\\n * @param {HistoryEntry} list - provide the list value.\n * @param {number} stackLimit - provide the list value.\n * @param {Diagram} diagram - provide the list value.\n * @param {boolean} limitHistory - provide the list value.\n *\n * @private\n */\n UndoRedo.prototype.applyLimit = function (list, stackLimit, diagram, limitHistory) {\n if (list && list.previous) {\n if (list.type === 'StartGroup' || list.type === 'EndGroup') {\n var value = list.type === 'StartGroup' ? true : false;\n this.setEntryLimit(value);\n }\n if (!this.hasGroup && this.groupCount === 0) {\n stackLimit--;\n }\n if (stackLimit === 0) {\n if (limitHistory) {\n this.limitHistoryStack(list.previous, diagram);\n }\n if (diagram.historyManager.stackLimit < this.historyCount) {\n this.historyCount = diagram.historyManager.stackLimit;\n }\n delete list.previous;\n }\n else if (list.previous) {\n this.applyLimit(list.previous, stackLimit, diagram, limitHistory);\n }\n }\n this.groupCount = 0;\n };\n /**\n * clearHistory method \\\n *\n * @returns { void } clearHistory method .\\\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\n UndoRedo.prototype.clearHistory = function (diagram) {\n var hList = diagram.historyManager;\n hList.currentEntry = undefined;\n hList.canUndo = false;\n hList.canRedo = false;\n this.historyCount = 0;\n this.groupCount = 0;\n diagram.historyManager.undoStack = [];\n diagram.historyManager.redoStack = [];\n };\n UndoRedo.prototype.setEntryLimit = function (value) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n value ? this.groupCount-- : this.groupCount++;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n value ? this.hasGroup = !value : this.hasGroup = value;\n };\n UndoRedo.prototype.limitHistoryStack = function (list, diagram) {\n if (list.type !== 'StartGroup' && list.type !== 'EndGroup') {\n this.removeFromStack(diagram.historyManager.undoStack, list);\n this.removeFromStack(diagram.historyManager.redoStack, list);\n }\n if (list.previous) {\n this.limitHistoryStack(list.previous, diagram);\n }\n };\n UndoRedo.prototype.removeFromStack = function (entyList, list) {\n if (entyList.length) {\n for (var i = 0; i <= entyList.length; i++) {\n if (entyList[parseInt(i.toString(), 10)].undoObject === list.undoObject\n && entyList[parseInt(i.toString(), 10)].redoObject === list.redoObject) {\n entyList.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * undo method \\\n *\n * @returns { void } undo method .\\\n * @param {Diagram} diagram - provide the diagram value.\n *\n * @private\n */\n UndoRedo.prototype.undo = function (diagram) {\n var entry = this.getUndoEntry(diagram);\n var endGroupActionCount = 0;\n if (entry) {\n if (entry.category === 'Internal') {\n if (entry.type === 'EndGroup') {\n endGroupActionCount++;\n this.groupUndo = true;\n //Removed isBlazor code\n }\n else {\n this.undoEntry(entry, diagram);\n }\n if (this.groupUndo) {\n this.undoGroupAction(entry, diagram, endGroupActionCount);\n this.groupUndo = false;\n }\n }\n else {\n if (!isBlazor()) {\n diagram.historyManager.undo(entry);\n }\n var arg = {\n entryType: 'undo', oldValue: entry.undoObject, newValue: entry.redoObject\n };\n // Removed isBlazor code\n diagram.triggerEvent(DiagramEvent.historyStateChange, arg);\n }\n }\n };\n // Removed getHistoryChangeEvent method as it is not used anywhere\n UndoRedo.prototype.getHistoryList = function (diagram) {\n var undoStack = [];\n var redoStack = [];\n var currEntry = diagram.historyManager.currentEntry;\n var undoObj;\n var redoObj;\n currEntry = diagram.historyManager.currentEntry;\n if (diagram.historyManager.canUndo || diagram.historyManager.undoStack.length === 0) {\n this.getHistroyObject(undoStack, currEntry);\n }\n else {\n this.getHistroyObject(redoStack, currEntry);\n }\n while (currEntry && currEntry.previous) {\n undoObj = currEntry.previous;\n this.getHistroyObject(undoStack, undoObj);\n currEntry = currEntry.previous;\n }\n currEntry = diagram.historyManager.currentEntry;\n while (currEntry && currEntry.next) {\n redoObj = currEntry.next;\n this.getHistroyObject(redoStack, redoObj);\n currEntry = currEntry.next;\n }\n diagram.historyManager.undoStack = undoStack;\n diagram.historyManager.redoStack = redoStack;\n };\n UndoRedo.prototype.getHistroyObject = function (list, obj) {\n if (obj && obj.type !== 'StartGroup' && obj.type !== 'EndGroup') {\n list.push({\n redoObject: obj.redoObject ? obj.redoObject : null,\n undoObject: obj.undoObject ? obj.undoObject : null,\n type: obj.type ? obj.type : null,\n category: obj.category ? obj.category : null\n });\n }\n };\n UndoRedo.prototype.undoGroupAction = function (entry, diagram, endGroupActionCount) {\n while (endGroupActionCount !== 0) {\n this.undoEntry(entry, diagram);\n entry = this.getUndoEntry(diagram);\n if (entry.type === 'StartGroup') {\n endGroupActionCount--;\n }\n else if (entry.type === 'EndGroup') {\n endGroupActionCount++;\n }\n }\n endGroupActionCount = 0;\n };\n UndoRedo.prototype.undoEntry = function (entry, diagram) {\n var obj;\n var nodeObject;\n if (entry.type !== 'PropertyChanged' && entry.type !== 'CollectionChanged' && entry.type !== 'LabelCollectionChanged') {\n obj = entry.undoObject ? entry.undoObject : (entry.previous.undoObject);\n nodeObject = obj;\n }\n if (entry.type !== 'StartGroup' && entry.type !== 'EndGroup') {\n if (diagram.historyManager.undoStack.length > 0) {\n var addObject = diagram.historyManager.undoStack.splice(0, 1);\n diagram.historyManager.redoStack.splice(0, 0, addObject[0]);\n nodeObject = (entry.undoObject);\n }\n }\n diagram.protectPropertyChange(true);\n diagram.diagramActions |= DiagramAction.UndoRedo;\n //Removed isBlazor code\n switch (entry.type) {\n case 'PositionChanged':\n case 'Align':\n case 'Distribute':\n this.recordPositionChanged(obj, diagram);\n break;\n case 'SizeChanged':\n case 'Sizing':\n this.recordSizeChanged(obj, diagram, entry);\n break;\n case 'RotationChanged':\n this.recordRotationChanged(obj, diagram, entry, 'undo');\n break;\n case 'ConnectionChanged':\n this.recordConnectionChanged(obj, diagram);\n break;\n case 'PropertyChanged':\n this.recordPropertyChanged(entry, diagram, false);\n break;\n case 'CollectionChanged':\n if (entry && entry.next && entry.next.type === 'AddChildToGroupNode' && entry.next.changeType === 'Insert') {\n var group = diagram.getObject(entry.next.undoObject.id);\n diagram.insertValue(cloneObject(group), true);\n }\n entry.isUndo = true;\n this.recordCollectionChanged(entry, diagram);\n entry.isUndo = false;\n if (entry && entry.next && entry.next.type === 'AddChildToGroupNode' && entry.next.changeType === 'Insert') {\n var group = diagram.getObject(entry.next.undoObject.id);\n group.wrapper.measure(new Size());\n group.wrapper.arrange(group.wrapper.desiredSize);\n diagram.updateDiagramObject(group);\n }\n break;\n case 'LabelCollectionChanged':\n entry.isUndo = true;\n this.recordLabelCollectionChanged(entry, diagram);\n entry.isUndo = false;\n break;\n case 'PortCollectionChanged':\n entry.isUndo = true;\n this.recordPortCollectionChanged(entry, diagram);\n entry.isUndo = false;\n break;\n case 'Group':\n this.unGroup(entry, diagram);\n break;\n case 'UnGroup':\n this.group(entry, diagram);\n break;\n case 'SegmentChanged':\n this.recordSegmentChanged(obj, diagram);\n break;\n case 'PortPositionChanged':\n this.recordPortChanged(entry, diagram, false);\n break;\n case 'AnnotationPropertyChanged':\n this.recordAnnotationChanged(entry, diagram, false);\n break;\n case 'ChildCollectionChanged':\n this.recordChildCollectionChanged(entry, diagram, false);\n break;\n case 'StackChildPositionChanged':\n this.recordStackPositionChanged(entry, diagram, false);\n break;\n case 'RowHeightChanged':\n this.recordGridSizeChanged(entry, diagram, false, true);\n break;\n case 'ColumnWidthChanged':\n this.recordGridSizeChanged(entry, diagram, false, false);\n break;\n case 'LanePositionChanged':\n this.recordLanePositionChanged(entry, diagram, false);\n break;\n case 'LaneCollectionChanged':\n case 'PhaseCollectionChanged':\n entry.isUndo = true;\n this.recordLaneOrPhaseCollectionChanged(entry, diagram, false);\n entry.isUndo = false;\n break;\n case 'SendToBack':\n case 'SendForward':\n case 'SendBackward':\n case 'BringToFront':\n this.recordOrderCommandChanged(entry, diagram, false);\n break;\n case 'AddChildToGroupNode':\n this.recordAddChildToGroupNode(entry, diagram, false);\n break;\n case 'RemoveChildFromGroupNode':\n this.recordRemoveChildFromGroupNode(entry, diagram, false);\n break;\n case 'ExternalEntry':\n //EJ2-848643 - Need to consider custom entries in start and end group action\n diagram.historyManager.undo(entry);\n break;\n }\n diagram.diagramActions &= ~DiagramAction.UndoRedo;\n diagram.protectPropertyChange(false);\n diagram.historyChangeTrigger(entry, 'Undo');\n if (nodeObject) {\n var object = this.checkNodeObject(nodeObject, diagram);\n if (object) {\n var getnodeDefaults = getFunction(diagram.updateSelection);\n if (getnodeDefaults) {\n getnodeDefaults(object, diagram);\n }\n }\n }\n };\n UndoRedo.prototype.checkNodeObject = function (value, diagram) {\n var object;\n if (!value.id) {\n if ((value.nodes && value.nodes.length > 0) ||\n (value.connectors && value.connectors.length > 0)) {\n var undoNode = value.nodes.length > 0 ?\n value.nodes : value.connectors;\n for (var _i = 0, undoNode_1 = undoNode; _i < undoNode_1.length; _i++) {\n object = undoNode_1[_i];\n object = diagram.nameTable[object.id];\n }\n }\n else {\n var knownNode = value.nodes ?\n value.nodes : value.connectors;\n if (knownNode) {\n for (var _a = 0, _b = Object.keys(knownNode); _a < _b.length; _a++) {\n var key = _b[_a];\n var index = Number(key);\n object = value.nodes ? diagram.nodes[parseInt(index.toString(), 10)]\n : diagram.connectors[parseInt(index.toString(), 10)];\n }\n }\n }\n }\n else {\n object = diagram.nameTable[value.id];\n }\n return object;\n };\n UndoRedo.prototype.group = function (historyEntry, diagram) {\n diagram.add(historyEntry.undoObject);\n };\n UndoRedo.prototype.unGroup = function (entry, diagram) {\n //const i: number = 0;\n entry.redoObject = cloneObject(entry.undoObject);\n var node = entry.undoObject;\n diagram.commandHandler.unGroup(node);\n };\n UndoRedo.prototype.ignoreProperty = function (key) {\n if (key === 'zIndex' || key === 'wrapper' || key === 'parentObj' || key === 'controlParent') {\n return true;\n }\n return false;\n };\n UndoRedo.prototype.getProperty = function (collection, property) {\n for (var _i = 0, _a = Object.keys(property); _i < _a.length; _i++) {\n var key = _a[_i];\n if (collection) {\n if (!this.ignoreProperty(key)) {\n if (property[\"\" + key] instanceof Object) {\n this.getProperty(collection[\"\" + key], property[\"\" + key]);\n }\n else {\n collection[\"\" + key] = property[\"\" + key];\n }\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n UndoRedo.prototype.recordLaneOrPhaseCollectionChanged = function (entry, diagram, isRedo) {\n var node = entry.redoObject;\n var obj = entry.undoObject;\n var changeType;\n if (entry.isUndo) {\n if (entry.changeType === 'Insert') {\n changeType = 'Remove';\n }\n else {\n changeType = 'Insert';\n }\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n diagram.remove(node);\n }\n else {\n if (node.isPhase) {\n var swimlane = diagram.nameTable[node.parentId];\n diagram.addPhases(swimlane, [obj]);\n }\n else {\n var swimlane = diagram.nameTable[node.parentId];\n var laneIndex = findLaneIndex(swimlane, node);\n diagram.addLanes(swimlane, [obj], laneIndex);\n }\n }\n diagram.clearSelection();\n };\n UndoRedo.prototype.recordAnnotationChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n if (diagram.canEnableBlazorObject) {\n var node = cloneObject(diagram.nameTable[entryObject.id]);\n diagram.insertValue(node, node instanceof Node ? true : false);\n }\n var oldElement = findAnnotation(entryObject, entry.objectId);\n var undoChanges = diagram.commandHandler.getAnnotationChanges(diagram.nameTable[entryObject.id], oldElement);\n var currentObject = diagram.nameTable[entryObject.id];\n var currentElement = findAnnotation(currentObject, entry.objectId);\n currentElement.offset = oldElement.offset;\n currentElement.margin = oldElement.margin;\n currentElement.width = oldElement.width;\n currentElement.height = oldElement.height;\n currentElement.rotateAngle = oldElement.rotateAngle;\n currentElement.margin = oldElement.margin;\n if (currentObject instanceof Node) {\n diagram.nodePropertyChange(currentObject, {}, undoChanges);\n }\n else {\n diagram.connectorPropertyChange(currentObject, {}, undoChanges);\n }\n };\n UndoRedo.prototype.recordChildCollectionChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n var parentNode = diagram.nameTable[entryObject.parentId];\n var actualObject = diagram.nameTable[entryObject.id];\n if (parentNode) {\n addChildToContainer(diagram, parentNode, actualObject, !isRedo, entry.historyAction === 'AddNodeToLane');\n }\n else {\n if (actualObject.parentId) {\n parentNode = diagram.nameTable[actualObject.parentId];\n parentNode.children.splice(parentNode.children.indexOf(actualObject.id), 1);\n parentNode.wrapper.children.splice(parentNode.wrapper.children.indexOf(actualObject.wrapper), 1);\n }\n if (entryObject.parentId && entryObject.parentId !== '') {\n parentNode = diagram.nameTable[entryObject.parentId];\n parentNode.children.push(entryObject.id);\n parentNode.wrapper.children.push(actualObject.wrapper);\n }\n actualObject.parentId = entryObject.parentId;\n diagram.removeElements(actualObject);\n diagram.updateDiagramObject(actualObject);\n }\n };\n UndoRedo.prototype.recordStackPositionChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n if (entryObject.source) {\n var parent_1 = diagram.nameTable[entryObject.source.parentId];\n if (parent_1) {\n if (entryObject.target) {\n parent_1.wrapper.children.splice(entryObject.targetIndex, 1);\n parent_1.wrapper.children.splice(entryObject.sourceIndex, 0, entryObject.source.wrapper);\n }\n else {\n if (entryObject.sourceIndex !== undefined) {\n if (!diagram.nameTable[entryObject.source.id]) {\n diagram.add(entryObject.source);\n }\n parent_1.wrapper.children.splice(entryObject.sourceIndex, 0, diagram.nameTable[entryObject.source.id].wrapper);\n diagram.nameTable[entryObject.source.id].parentId = parent_1.id;\n }\n else {\n parent_1.wrapper.children.splice(parent_1.wrapper.children.indexOf(diagram.nameTable[entryObject.source.id].wrapper), 1);\n diagram.nameTable[entryObject.source.id].parentId = '';\n }\n }\n if (isRedo && parent_1.shape.type === 'UmlClassifier') {\n diagram.remove(entryObject.source);\n }\n parent_1.wrapper.measure(new Size());\n parent_1.wrapper.arrange(parent_1.wrapper.desiredSize);\n diagram.updateDiagramObject(parent_1);\n diagram.updateSelector();\n }\n }\n };\n UndoRedo.prototype.recordGridSizeChanged = function (entry, diagram, isRedo, isRow) {\n var obj = (isRedo) ? entry.redoObject : entry.undoObject;\n var node = (!isRedo) ? entry.redoObject : entry.undoObject;\n if (obj.parentId) {\n var swimlane = diagram.nameTable[obj.parentId];\n var actualObject = diagram.nameTable[obj.id];\n var x = swimlane.wrapper.bounds.x;\n var y = swimlane.wrapper.bounds.y;\n if (swimlane.shape.type === 'SwimLane') {\n var grid = swimlane.wrapper.children[0];\n var padding = swimlane.shape.padding;\n updateSwimLaneObject(diagram, node, swimlane, obj);\n if (isRow) {\n grid.updateRowHeight(obj.rowIndex, obj.wrapper.actualSize.height, true, padding);\n swimlane.height = swimlane.wrapper.height = grid.height;\n }\n else {\n grid.updateColumnWidth(obj.columnIndex, obj.wrapper.actualSize.width, true, padding);\n swimlane.width = swimlane.wrapper.width = grid.width;\n if (obj.isPhase) {\n actualObject.maxWidth = actualObject.wrapper.maxWidth = obj.wrapper.actualSize.width;\n }\n }\n swimLaneMeasureAndArrange(swimlane);\n var tx = x - swimlane.wrapper.bounds.x;\n var ty = y - swimlane.wrapper.bounds.y;\n diagram.drag(swimlane, tx, ty);\n diagram.clearSelection();\n diagram.updateDiagramObject(swimlane);\n }\n }\n };\n UndoRedo.prototype.recordLanePositionChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n if (entryObject.source) {\n var parent_2 = diagram.nameTable[entryObject.source.parentId];\n if (parent_2 && parent_2.shape.type === 'SwimLane') {\n laneInterChanged(diagram, entryObject.target, entryObject.source);\n diagram.clearSelection();\n }\n }\n };\n UndoRedo.prototype.recordPortChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject.nodes[0] :\n entry.undoObject.nodes[0]);\n if (diagram.canEnableBlazorObject) {\n var node = cloneObject(diagram.nameTable[entryObject.id]);\n diagram.insertValue(node, true);\n }\n var oldElement = findPort(entryObject, entry.objectId);\n var undoChanges = diagram.commandHandler.getPortChanges(diagram.nameTable[entryObject.id], oldElement);\n var currentObject = diagram.nameTable[entryObject.id];\n var currentElement = findPort(currentObject, entry.objectId);\n currentElement.offset = oldElement.offset;\n diagram.nodePropertyChange(currentObject, {}, undoChanges);\n if (currentObject.parentId) {\n diagram.updateConnectorEdges(diagram.nameTable[currentObject.parentId]);\n }\n };\n UndoRedo.prototype.recordPropertyChanged = function (entry, diagram, isRedo) {\n var redoObject = entry.redoObject;\n var undoObject = entry.undoObject;\n //Removed isBlazor code\n this.getProperty(diagram, (isRedo ? redoObject : undoObject));\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n isRedo ? diagram.onPropertyChanged(redoObject, undoObject) : diagram.onPropertyChanged(undoObject, redoObject);\n diagram.diagramActions = diagram.diagramActions | DiagramAction.UndoRedo;\n };\n UndoRedo.prototype.recordOrderCommandChanged = function (entry, diagram, isRedo) {\n var redoObject = entry.redoObject;\n var undoObject = entry.undoObject;\n diagram.commandHandler.orderCommands(isRedo, (isRedo ? redoObject : undoObject), entry.type);\n diagram.diagramActions = diagram.diagramActions | DiagramAction.UndoRedo;\n };\n UndoRedo.prototype.recordAddChildToGroupNode = function (entry, diagram, isRedo) {\n var group = diagram.nameTable[entry.undoObject.id];\n var child = diagram.nameTable[entry.objectId];\n if (isRedo && entry.changeType === 'Insert') {\n diagram.addChildToGroup(group, child.id);\n }\n else {\n diagram.removeChildFromGroup(group, child.id);\n }\n };\n UndoRedo.prototype.recordRemoveChildFromGroupNode = function (entry, diagram, isRedo) {\n var group = diagram.nameTable[entry.undoObject.id];\n var child = diagram.nameTable[entry.objectId];\n if (isRedo && entry.changeType === 'Remove') {\n diagram.removeChildFromGroup(group, child.id);\n }\n else {\n diagram.addChildToGroup(group, child.id);\n }\n };\n UndoRedo.prototype.recordSegmentChanged = function (obj, diagram) {\n var i = 0;\n //let node: NodeModel;\n var connector;\n if (obj.connectors && obj.connectors.length > 0) {\n for (i = 0; i < obj.connectors.length; i++) {\n connector = obj.connectors[parseInt(i.toString(), 10)];\n this.segmentChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.segmentChanged = function (connector, diagram) {\n var conn = diagram.nameTable[connector.id];\n conn.segments = connector.segments;\n diagram.commandHandler.updateEndPoint(conn);\n };\n UndoRedo.prototype.recordPositionChanged = function (obj, diagram) {\n var i = 0;\n var node;\n var connector;\n if (obj.nodes && obj.nodes.length > 0) {\n for (i = 0; i < obj.nodes.length; i++) {\n if (diagram.bpmnModule) {\n diagram.isPositionUndo = true;\n }\n node = obj.nodes[parseInt(i.toString(), 10)];\n this.positionChanged(node, diagram);\n }\n diagram.isPositionUndo = false;\n }\n if (obj.connectors && obj.connectors.length > 0) {\n for (i = 0; i < obj.connectors.length; i++) {\n connector = obj.connectors[parseInt(i.toString(), 10)];\n this.connectionChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.positionChanged = function (obj, diagram) {\n var node = diagram.nameTable[obj.id];\n if (obj.processId && !node.processId) {\n diagram.addProcess(obj, obj.processId);\n }\n if (!obj.processId && node.processId) {\n diagram.removeProcess(obj.id);\n }\n if (node.processId) {\n var tx = obj.margin.left - node.margin.left;\n var ty = obj.margin.top - node.margin.top;\n diagram.drag(node, tx, ty);\n }\n else {\n if (node.parentId) {\n var parent_3 = diagram.nameTable[node.parentId];\n if (parent_3.isLane) {\n obj.wrapper.offsetX = (obj.width / 2) + (parent_3.wrapper.bounds.x + obj.margin.left);\n obj.wrapper.offsetY = (obj.height / 2) + (parent_3.wrapper.bounds.y + obj.margin.top);\n }\n }\n var tx = obj.wrapper.offsetX - node.offsetX;\n var ty = obj.wrapper.offsetY - node.offsetY;\n diagram.drag(node, tx, ty);\n }\n if (diagram.bpmnModule) {\n diagram.bpmnModule.updateDocks(node, diagram);\n }\n };\n UndoRedo.prototype.recordSizeChanged = function (obj, diagram, entry) {\n var i = 0;\n var connector;\n var node;\n if (obj && obj.nodes && obj.nodes.length > 0) {\n for (i = 0; i < obj.nodes.length; i++) {\n node = obj.nodes[parseInt(i.toString(), 10)];\n if (node.children && !node.container) {\n var elements = [];\n var nodes = diagram.commandHandler.getAllDescendants(node, elements);\n for (var i_1 = 0; i_1 < nodes.length; i_1++) {\n var tempNode = entry.childTable[nodes[parseInt(i_1.toString(), 10)].id];\n if ((getObjectType(tempNode) === Node)) {\n this.sizeChanged(tempNode, diagram, entry);\n this.positionChanged(tempNode, diagram);\n }\n else {\n this.connectionChanged(tempNode, diagram, entry);\n }\n }\n }\n else {\n if (diagram.bpmnModule) {\n diagram.sizeUndo = true;\n }\n this.sizeChanged(node, diagram);\n this.positionChanged(node, diagram);\n if (diagram.bpmnModule) {\n diagram.sizeUndo = false;\n }\n }\n }\n }\n if (obj && obj.connectors && obj.connectors.length > 0) {\n var connectors = obj.connectors;\n for (i = 0; i < connectors.length; i++) {\n connector = connectors[parseInt(i.toString(), 10)];\n this.connectionChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.sizeChanged = function (obj, diagram, entry) {\n var node = diagram.nameTable[obj.id];\n var scaleWidth = obj.wrapper.actualSize.width / node.wrapper.actualSize.width;\n var scaleHeight = obj.wrapper.actualSize.height / node.wrapper.actualSize.height;\n if (entry && entry.childTable) {\n entry.childTable[obj.id] = cloneObject(node);\n }\n diagram.scale(node, scaleWidth, scaleHeight, {\n x: obj.wrapper.offsetX / node.wrapper.offsetX,\n y: obj.wrapper.offsetY / node.wrapper.offsetY\n });\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n UndoRedo.prototype.recordRotationChanged = function (obj, diagram, entry, type) {\n var i = 0;\n var node;\n var connector;\n var selectorObj = diagram.selectedItems;\n selectorObj.rotateAngle = obj.rotateAngle;\n if (selectorObj && selectorObj.wrapper) {\n selectorObj.wrapper.rotateAngle = obj.rotateAngle;\n }\n diagram.fromUndo = true;\n if (obj && obj.nodes && obj.nodes.length > 0) {\n for (i = 0; i < obj.nodes.length; i++) {\n node = obj.nodes[parseInt(i.toString(), 10)];\n // Bug 832864: Undo redo not working properly for group node with connectors.\n // This code is executed only for group nodes with connectors when the connector is not connected to a node either as a source or target.\n var isConnect = false;\n if (node.children && node.children.length > 0) {\n for (var j = 0; j < node.children.length; j++) {\n var child = diagram.nameTable[node.children[parseInt(j.toString(), 10)]];\n if (!(getObjectType(child) === Node)) {\n if (child.sourceID === '' || child.targetID === '') {\n isConnect = true;\n break;\n }\n }\n }\n if (isConnect && Object.keys(entry.childTable).length > 0) {\n var elements = [];\n var nodes = diagram.commandHandler.getAllDescendants(node, elements);\n for (var i2 = 0; i2 < nodes.length; i2++) {\n var tempNode = entry.childTable[nodes[parseInt(i2.toString(), 10)].id];\n if ((getObjectType(tempNode) === Node)) {\n var object = { id: '', rotateAngle: 0, wrapper: { offsetX: 0, offsetY: 0 } };\n if (type === 'redo') {\n object.id = tempNode.id;\n object.rotateAngle = node.rotateAngle;\n }\n else {\n object = tempNode;\n }\n this.rotationChanged(object, diagram);\n if (type === 'undo') {\n var offNode = diagram.nameTable[object.id];\n this.undoOffsets.push({ id: offNode.id, offsetX: offNode.offsetX, offsetY: offNode.offsetY });\n }\n else {\n var lastIndex = -1;\n for (var i_2 = this.undoOffsets.length - 1; i_2 >= 0; i_2--) {\n if (this.undoOffsets[parseInt(i_2.toString(), 10)].id === object.id) {\n object.wrapper = this.undoOffsets[parseInt(i_2.toString(), 10)];\n lastIndex = i_2;\n break;\n }\n }\n if (lastIndex !== -1) {\n this.undoOffsets.splice(lastIndex, 1);\n }\n }\n this.positionChanged(object, diagram);\n }\n else {\n this.connectionChanged(tempNode, diagram, entry);\n }\n }\n var nd = diagram.nameTable[node.id];\n nd.rotateAngle = obj.rotateAngle;\n diagram.updateSelector();\n this.rotationChanged(node, diagram);\n }\n else {\n this.rotationChanged(node, diagram);\n this.positionChanged(node, diagram);\n }\n }\n else {\n this.rotationChanged(node, diagram);\n this.positionChanged(node, diagram);\n }\n }\n }\n diagram.fromUndo = false;\n if (obj && obj.connectors && obj.connectors.length > 0) {\n for (i = 0; i < obj.connectors.length; i++) {\n connector = obj.connectors[parseInt(i.toString(), 10)];\n this.connectionChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.rotationChanged = function (obj, diagram) {\n var node = diagram.nameTable[obj.id];\n diagram.rotate(node, obj.rotateAngle - node.rotateAngle);\n };\n UndoRedo.prototype.recordConnectionChanged = function (obj, diagram) {\n var connector;\n if (obj && obj.connectors) {\n connector = obj.connectors[0];\n }\n else {\n connector = obj;\n }\n if (connector.sourceID && diagram.nameTable[connector.sourceID]) {\n diagram.insertValue(diagram.nameTable[connector.sourceID], true);\n }\n if (connector.targetID && diagram.nameTable[connector.targetID]) {\n diagram.insertValue(diagram.nameTable[connector.targetID], true);\n }\n if (connector instanceof Connector || connector.shape.type === 'None') {\n this.connectionChanged(connector, diagram);\n }\n };\n UndoRedo.prototype.connectionChanged = function (obj, diagram, entry) {\n var connector = diagram.nameTable[obj.id];\n var node;\n if (obj.sourcePortID !== connector.sourcePortID) {\n diagram.removePortEdges(diagram.nameTable[connector.sourceID], connector.sourcePortID, connector.id, false);\n connector.sourcePortID = obj.sourcePortID;\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: obj.sourcePortID });\n }\n if (obj.targetPortID !== connector.targetPortID) {\n diagram.removePortEdges(diagram.nameTable[connector.targetID], connector.targetPortID, connector.id, true);\n connector.targetPortID = obj.targetPortID;\n diagram.connectorPropertyChange(connector, {}, { targetPortID: obj.targetPortID });\n }\n if (obj.sourceID !== connector.sourceID) {\n if (obj.sourceID === '') {\n node = diagram.nameTable[connector.sourceID];\n removeItem(node.outEdges, obj.id);\n }\n else {\n node = diagram.nameTable[obj.sourceID];\n node.outEdges.push(obj.id);\n diagram.updatePortEdges(node, obj, false);\n }\n connector.sourceID = obj.sourceID;\n diagram.connectorPropertyChange(connector, {}, { sourceID: obj.sourceID });\n }\n if (obj.targetID !== connector.targetID) {\n if (obj.targetID === '') {\n node = diagram.nameTable[connector.targetID];\n removeItem(node.inEdges, obj.id);\n }\n else {\n node = diagram.nameTable[obj.targetID];\n node.inEdges.push(obj.id);\n diagram.updatePortEdges(node, obj, true);\n }\n connector.targetID = obj.targetID;\n diagram.connectorPropertyChange(connector, {}, { targetID: obj.targetID });\n }\n if (entry && entry.childTable) {\n entry.childTable[obj.id] = cloneObject(connector);\n }\n var sx = obj.sourcePoint.x - connector.sourcePoint.x;\n var sy = obj.sourcePoint.y - connector.sourcePoint.y;\n if (sx !== 0 || sy !== 0) {\n diagram.dragSourceEnd(connector, sx, sy);\n }\n var tx = obj.targetPoint.x - connector.targetPoint.x;\n var ty = obj.targetPoint.y - connector.targetPoint.y;\n if (tx !== 0 || ty !== 0) {\n diagram.dragTargetEnd(connector, tx, ty);\n }\n diagram.updateSelector();\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n };\n UndoRedo.prototype.recordCollectionChanged = function (entry, diagram) {\n var obj = entry.undoObject;\n if (entry && entry.changeType) {\n var changeType = void 0;\n if (entry.isUndo) {\n if (entry.changeType === 'Insert') {\n changeType = 'Remove';\n }\n else {\n changeType = 'Insert';\n }\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n if (obj.nodeId) {\n diagram.remove(diagram.nameTable[obj.nodeId + '_textannotation_' + obj.id]);\n }\n else {\n diagram.remove(obj);\n diagram.clearSelectorLayer();\n }\n }\n else {\n diagram.clearSelectorLayer();\n if (obj.parentId) {\n var parentNode = diagram.nameTable[obj.parentId];\n if (parentNode) {\n diagram.addChild(parentNode, obj);\n }\n else {\n diagram.add(obj);\n }\n }\n else if (obj.nodeId) {\n diagram.addTextAnnotation(obj, diagram.nameTable[obj.nodeId]);\n }\n else {\n if (!diagram.nameTable[obj.id]) {\n if (obj && obj.shape && obj.shape.type === 'SwimLane' && entry.isUndo) {\n pasteSwimLane(obj, undefined, undefined, undefined, undefined, true);\n }\n diagram.add(obj);\n }\n }\n if (obj.processId && diagram.nameTable[obj.processId]) {\n diagram.addProcess(obj, obj.processId);\n }\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n }\n };\n UndoRedo.prototype.recordLabelCollectionChanged = function (entry, diagram) {\n var label = entry.undoObject;\n var obj = entry.redoObject;\n var node = diagram.nameTable[obj.id];\n if (entry && entry.changeType) {\n var changeType = void 0;\n if (entry.isUndo) {\n changeType = (entry.changeType === 'Insert') ? 'Remove' : 'Insert';\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n diagram.removeLabels(node, [label]);\n diagram.clearSelectorLayer();\n }\n else {\n diagram.clearSelectorLayer();\n diagram.addLabels(node, [label]);\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n }\n };\n UndoRedo.prototype.recordPortCollectionChanged = function (entry, diagram) {\n var port = entry.undoObject;\n var obj = entry.redoObject;\n var node = diagram.nameTable[obj.id];\n if (entry && entry.changeType) {\n var changeType = void 0;\n if (entry.isUndo) {\n changeType = (entry.changeType === 'Insert') ? 'Remove' : 'Insert';\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n diagram.removePorts(node, [port]);\n diagram.clearSelectorLayer();\n }\n else {\n diagram.clearSelectorLayer();\n diagram.addPorts(node, [port]);\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * redo method \\\n *\n * @returns { void } redo method .\\\n * @param {Diagram} diagram - provide the diagram value.\n *\n * @private\n */\n UndoRedo.prototype.redo = function (diagram) {\n var entry = this.getRedoEntry(diagram);\n var startGroupActionCount = 0;\n if (entry) {\n if (entry.category === 'Internal') {\n if (entry.type === 'StartGroup') {\n startGroupActionCount++;\n this.groupUndo = true;\n //Removed isBlazor code\n }\n else {\n this.redoEntry(entry, diagram);\n }\n if (this.groupUndo) {\n this.redoGroupAction(entry, diagram, startGroupActionCount);\n this.groupUndo = false;\n }\n }\n else {\n if (!isBlazor()) {\n diagram.historyManager.redo(entry);\n }\n var arg = {\n entryType: 'redo', oldValue: entry.redoObject, newValue: entry.undoObject\n };\n //Removed isBlazor code\n diagram.triggerEvent(DiagramEvent.historyStateChange, arg);\n }\n }\n };\n UndoRedo.prototype.redoGroupAction = function (entry, diagram, startGroupActionCount) {\n while (startGroupActionCount !== 0) {\n this.redoEntry(entry, diagram);\n entry = this.getRedoEntry(diagram);\n if (entry.type === 'EndGroup') {\n startGroupActionCount--;\n }\n else if (entry.type === 'StartGroup') {\n startGroupActionCount++;\n }\n }\n startGroupActionCount = 0;\n };\n UndoRedo.prototype.redoEntry = function (historyEntry, diagram) {\n var redoObject;\n var redovalue;\n if (historyEntry.type !== 'PropertyChanged' && historyEntry.type !== 'CollectionChanged') {\n redoObject = (historyEntry.redoObject);\n redovalue = (historyEntry.redoObject);\n }\n diagram.diagramActions |= DiagramAction.UndoRedo;\n if (historyEntry.type !== 'StartGroup' && historyEntry.type !== 'EndGroup') {\n if (diagram.historyManager.redoStack.length > 0) {\n var addObject = diagram.historyManager.redoStack.splice(0, 1);\n diagram.historyManager.undoStack.splice(0, 0, addObject[0]);\n redovalue = (historyEntry.redoObject);\n }\n }\n diagram.protectPropertyChange(true);\n //Removed isBlazor code\n switch (historyEntry.type) {\n case 'PositionChanged':\n case 'Align':\n case 'Distribute':\n this.recordPositionChanged(redoObject, diagram);\n break;\n case 'SizeChanged':\n case 'Sizing':\n this.recordSizeChanged(redoObject, diagram, historyEntry);\n break;\n case 'RotationChanged':\n this.recordRotationChanged(redoObject, diagram, historyEntry, 'redo');\n break;\n case 'ConnectionChanged':\n this.recordConnectionChanged(redoObject, diagram);\n break;\n case 'PropertyChanged':\n this.recordPropertyChanged(historyEntry, diagram, true);\n break;\n case 'CollectionChanged':\n this.recordCollectionChanged(historyEntry, diagram);\n break;\n case 'LabelCollectionChanged':\n this.recordLabelCollectionChanged(historyEntry, diagram);\n break;\n case 'PortCollectionChanged':\n this.recordPortCollectionChanged(historyEntry, diagram);\n break;\n case 'Group':\n this.group(historyEntry, diagram);\n break;\n case 'UnGroup':\n this.unGroup(historyEntry, diagram);\n break;\n case 'SegmentChanged':\n this.recordSegmentChanged(redoObject, diagram);\n break;\n case 'PortPositionChanged':\n this.recordPortChanged(historyEntry, diagram, true);\n break;\n case 'AnnotationPropertyChanged':\n this.recordAnnotationChanged(historyEntry, diagram, true);\n break;\n case 'ChildCollectionChanged':\n this.recordChildCollectionChanged(historyEntry, diagram, true);\n break;\n case 'StackChildPositionChanged':\n this.recordStackPositionChanged(historyEntry, diagram, true);\n break;\n case 'RowHeightChanged':\n this.recordGridSizeChanged(historyEntry, diagram, true, true);\n break;\n case 'ColumnWidthChanged':\n this.recordGridSizeChanged(historyEntry, diagram, true, false);\n break;\n case 'LanePositionChanged':\n this.recordLanePositionChanged(historyEntry, diagram, true);\n break;\n case 'LaneCollectionChanged':\n case 'PhaseCollectionChanged':\n this.recordLaneOrPhaseCollectionChanged(historyEntry, diagram, true);\n break;\n case 'SendToBack':\n case 'SendForward':\n case 'SendBackward':\n case 'BringToFront':\n this.recordOrderCommandChanged(historyEntry, diagram, true);\n break;\n case 'AddChildToGroupNode':\n this.recordAddChildToGroupNode(historyEntry, diagram, true);\n break;\n case 'RemoveChildFromGroupNode':\n this.recordRemoveChildFromGroupNode(historyEntry, diagram, true);\n break;\n case 'ExternalEntry':\n //EJ2-848643 - Need to consider custom entries in start and end group action\n diagram.historyManager.redo(historyEntry);\n break;\n }\n diagram.protectPropertyChange(false);\n diagram.diagramActions &= ~DiagramAction.UndoRedo;\n diagram.historyChangeTrigger(historyEntry, 'Redo');\n if (redovalue) {\n var value = this.checkNodeObject(redovalue, diagram);\n if (value) {\n var getnodeDefaults = getFunction(diagram.updateSelection);\n if (getnodeDefaults) {\n getnodeDefaults(value, diagram);\n }\n }\n }\n };\n UndoRedo.prototype.getUndoEntry = function (diagram) {\n var undoEntry = null;\n var currentObject;\n var hList = diagram.historyManager;\n if (hList.canUndo) {\n undoEntry = hList.currentEntry;\n currentObject = hList.currentEntry.previous;\n if (currentObject) {\n hList.currentEntry = currentObject;\n if (!hList.canRedo) {\n hList.canRedo = true;\n }\n }\n else {\n hList.canRedo = true;\n hList.canUndo = false;\n }\n }\n return undoEntry;\n };\n UndoRedo.prototype.getRedoEntry = function (diagram) {\n var redoEntry = null;\n var entryCurrent;\n var hList = diagram.historyManager;\n if (hList.canRedo) {\n if (!hList.currentEntry.previous && !hList.canUndo) {\n entryCurrent = hList.currentEntry;\n }\n else {\n entryCurrent = hList.currentEntry.next;\n }\n if (entryCurrent) {\n hList.currentEntry = entryCurrent;\n if (!hList.canUndo) {\n hList.canUndo = true;\n }\n if (!entryCurrent.next) {\n hList.canRedo = false;\n hList.canUndo = true;\n }\n }\n redoEntry = hList.currentEntry;\n }\n return redoEntry;\n };\n /**\n * To destroy the undo redo module\n *\n * @returns {void}\n * @private\n */\n UndoRedo.prototype.destroy = function () {\n /**\n * Destroys the undo redo module\n */\n };\n /**\n * @returns { string } toBounds method .\\\n * Get getModuleName name.\n */\n UndoRedo.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'UndoRedo';\n };\n return UndoRedo;\n}());\nexport { UndoRedo };\n","import { Container } from '../core/containers/container';\nimport { DiagramEvent, RealAction, DiagramConstraints } from '../enum/enum';\nimport { cloneObject as clone } from '../utility/base-util';\nimport { cloneBlazorObject } from '../utility/diagram-util';\n/**\n * Layout Animation function to enable or disable layout animation\n */\nvar LayoutAnimation = /** @class */ (function () {\n function LayoutAnimation() {\n this.protectChange = false;\n this.setIntervalObject = [];\n }\n /**\n * Layout expand function for animation of expand and collapse \\\n *\n * @returns { void } Layout expand function for animation of expand and collapse .\\\n * @param {boolean} animation - provide the angle value.\n * @param {ILayout} objects - provide the angle value.\n * @param {Node} node - provide the angle value.\n * @param {Diagram} diagram - provide the angle value.\n * @private\n */\n LayoutAnimation.prototype.expand = function (animation, objects, node, diagram) {\n var _this = this;\n var setIntervalObject = {};\n var i = 0;\n var j = 0;\n diagram.realActions = diagram.realActions | RealAction.AnimationClick;\n this.setIntervalObject[parseInt(i.toString(), 10)] = setInterval(function () {\n j++;\n return _this.layoutAnimation(objects, _this.setIntervalObject, j === 6, diagram, node);\n }, 20);\n if (node.isExpanded) {\n var opacity_1 = .2;\n diagram.protectPropertyChange(false);\n //let objects: ILayout = diagram.doLayout();\n var setIntervalObjects_1 = {};\n var x = 0;\n if (animation) {\n this.updateOpacity(node, opacity_1, diagram);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var current = this;\n setIntervalObjects_1[parseInt(x.toString(), 10)] = setInterval(function () {\n diagram.allowServerDataBinding = false;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n opacity_1 <= 1 ? _this.updateOpacity(node, opacity_1, diagram) : clearInterval(setIntervalObjects_1[0]);\n opacity_1 += .2;\n diagram.allowServerDataBinding = true;\n }, 20);\n }\n }\n };\n // Bug 877226: Nodes overlapped while changing isExpanded property with Layout Animation.\n // To stop the and clear the existing setinterval object\n // Added this to stop the existing setinterval object when the layout animation is called for multiple nodes.\n LayoutAnimation.prototype.stopCurrentAnimation = function (objValue, diagram, node) {\n clearInterval(this.setIntervalObject[0]);\n this.setIntervalObject = [];\n for (var k = 0; k < objValue.objects.length; k++) {\n var node1 = diagram.nameTable[objValue.objects[parseInt(k.toString(), 10)].id];\n node1.offsetX += objValue.objects[parseInt(k.toString(), 10)].differenceX\n - (objValue.objects[parseInt(k.toString(), 10)].differenceX / 5);\n node1.offsetY += objValue.objects[parseInt(k.toString(), 10)].differenceY\n - (objValue.objects[parseInt(k.toString(), 10)].differenceY / 5);\n }\n diagram.realActions = diagram.realActions & RealAction.AnimationClick;\n diagram.refreshCanvasLayers();\n diagram.protectPropertyChange(true);\n diagram.triggerEvent(DiagramEvent.animationComplete, undefined);\n diagram.layout.fixedNode = '';\n diagram.protectPropertyChange(this.protectChange);\n var arg = {\n element: cloneBlazorObject(clone(node)), state: (node.isExpanded) ? true : false\n };\n diagram.triggerEvent(DiagramEvent.expandStateChange, arg);\n if (diagram.lineRoutingModule && diagram.constraints & DiagramConstraints.LineRouting) {\n diagram.resetSegments();\n }\n };\n /**\n * Setinterval and Clear interval for layout animation \\\n *\n * @returns { void } Setinterval and Clear interval for layout animation .\\\n * @param {ILayout} objValue - provide the angle value.\n * @param {Object} layoutTimer - provide the angle value.\n * @param {ILayout} stop - provide the angle value.\n * @param {Diagram} diagram - provide the angle value.\n * @param {NodeModel} node - provide the angle value.\n * @private\n */\n LayoutAnimation.prototype.layoutAnimation = function (objValue, layoutTimer, stop, diagram, node) {\n if (!stop) {\n for (var k = 0; k < objValue.objects.length; k++) {\n var node_1 = diagram.nameTable[objValue.objects[parseInt(k.toString(), 10)].id];\n node_1.offsetX += objValue.objects[parseInt(k.toString(), 10)].differenceX / 5;\n node_1.offsetY += objValue.objects[parseInt(k.toString(), 10)].differenceY / 5;\n }\n }\n if (stop) {\n clearInterval(layoutTimer[0]);\n this.setIntervalObject = [];\n diagram.realActions = diagram.realActions & ~RealAction.AnimationClick;\n diagram.refreshCanvasLayers();\n diagram.protectPropertyChange(true);\n diagram.triggerEvent(DiagramEvent.animationComplete, undefined);\n diagram.organizationalChartModule.isAnimation = false;\n diagram.layout.fixedNode = '';\n diagram.protectPropertyChange(this.protectChange);\n var arg = {\n element: cloneBlazorObject(clone(node)), state: (node.isExpanded) ? true : false\n };\n diagram.triggerEvent(DiagramEvent.expandStateChange, arg);\n if (diagram.lineRoutingModule && diagram.constraints & DiagramConstraints.LineRouting) {\n diagram.resetSegments();\n }\n }\n };\n /**\n *update the node opacity for the node and connector once the layout animation starts \\\n *\n * @returns { void } update the node opacity for the node and connector once the layout animation starts .\\\n * @param {Node} source - provide the source value.\n * @param {number} value - provide the value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\n LayoutAnimation.prototype.updateOpacity = function (source, value, diagram) {\n for (var i = 0; i < source.outEdges.length; i++) {\n var connector = diagram.nameTable[source.outEdges[parseInt(i.toString(), 10)]];\n var target = diagram.nameTable[connector.targetID];\n connector.style.opacity = value;\n for (var j = 0; j < connector.wrapper.children.length; j++) {\n connector.wrapper.children[parseInt(j.toString(), 10)].style.opacity = value;\n target.style.opacity = value;\n if (target.wrapper instanceof Container) {\n diagram.updateNodeProperty(target.wrapper, undefined, value);\n }\n }\n this.updateOpacity(target, value, diagram);\n }\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n LayoutAnimation.prototype.destroy = function () {\n /**\n * Destroys the LayoutAnimate module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n LayoutAnimation.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LayoutAnimate';\n };\n return LayoutAnimation;\n}());\nexport { LayoutAnimation };\n","import { OrthogonalSegment } from '../objects/connector';\nimport { findDistance, findPort, getConnectorDirection } from '../utility/diagram-util';\nimport { randomId } from '../utility/base-util';\nimport { Point } from '../primitives/point';\nimport { PointPort } from '../objects/port';\nimport { Size } from '../primitives/size';\n/**\n * Line Distribution\n * @private\n */\nvar LineDistribution = /** @class */ (function () {\n ///** @private */\n //public edgeMapper: EdgeMapperObject[];\n /**\n * Constructor for the line distribution module\n * @private\n */\n function LineDistribution() {\n //constructs the line distribution module\n }\n /**\n * To destroy the line distribution module\n * @returns {void}\n * @private\n */\n LineDistribution.prototype.destroy = function () {\n /**\n * Destroys the line distribution module\n */\n };\n ///**\n // * Get the diagram instance.\n // */\n //private diagram: Diagram;\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n LineDistribution.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LineDistribution';\n };\n /** @private */\n LineDistribution.prototype.initLineDistribution = function (graph, diagram) {\n var srcDirection = 'Bottom';\n //this.diagram = diagram;\n if (diagram.layout.connectionPointOrigin === 'DifferentPoint' || diagram.layout.enableRouting) {\n var tarDirection = 'Top';\n if (graph.orientation === 'BottomToTop') {\n srcDirection = 'Top';\n tarDirection = 'Bottom';\n }\n else if (graph.orientation === 'RightToLeft') {\n srcDirection = 'Left';\n tarDirection = 'Right';\n }\n else if (graph.orientation === 'LeftToRight') {\n srcDirection = 'Right';\n tarDirection = 'Left';\n }\n var graphnodes = diagram.nodes;\n if (graphnodes.length > 0) {\n for (var i = 0; i < graphnodes.length; i++) {\n var node = diagram.nameTable[graphnodes[parseInt(i.toString(), 10)].id];\n this.addDynamicPortandDistrrbuteLine(graph, node, srcDirection, tarDirection, diagram);\n }\n }\n }\n };\n LineDistribution.prototype.ObstacleSegment = function (options) {\n options.direction = getConnectorDirection(options.startpt, options.endpt);\n options.distance = Point.findLength(options.startpt, options.endpt);\n options.orientation = options.direction === 'Left' || options.direction === 'Right' ? 'horizontal' : 'vertical';\n // eslint-disable-next-line no-self-assign\n options.id = options.id;\n if (options.orientation === 'horizontal') {\n options.coord = options.startpt.y;\n if (options.direction === 'Left') {\n options.start = options.endpt.x;\n options.end = options.startpt.x;\n }\n else {\n options.start = options.startpt.x;\n options.end = options.endpt.x;\n }\n }\n else {\n options.coord = options.startpt.x;\n if (options.direction === 'Top') {\n options.start = options.endpt.y;\n options.end = options.startpt.y;\n }\n else {\n options.start = options.startpt.y;\n options.end = options.endpt.y;\n }\n }\n return options;\n };\n /** @private */\n LineDistribution.prototype.distributeLines = function (layout, diagram) {\n var isHorizontal = layout.orientation === 'LeftToRight'\n || layout.orientation === 'RightToLeft';\n var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing;\n var srcdecoratorSize = 8.0;\n var obstacleCollection = 'obstaclePointCollection';\n var tardecoratorSize = 10.0;\n var avaibaleSpace = inversespacing - srcdecoratorSize - tardecoratorSize;\n var graph = [];\n var connectorObstacles = [];\n var globalConnectors = diagram.connectors;\n for (var i = 0; i < globalConnectors.length; i++) {\n var connector = globalConnectors[parseInt(i.toString(), 10)];\n var pts = [];\n for (var key = 0; key < connector.segments.length; key++) {\n var seg = connector.segments[parseInt(key.toString(), 10)];\n for (var k = 0; k < seg.points.length; k++) {\n var pt = seg.points[parseInt(k.toString(), 10)];\n if (pts.length === 0 || !(Point.equals(pt, pts[pts.length - 1]))) {\n pts.push(pt);\n }\n }\n }\n var obssegments = [];\n for (var j = 1; j < pts.length; j++) {\n var obstacle = this.ObstacleSegment({\n startpt: pts[j - 1], endpt: pts[parseInt(j.toString(), 10)], id: connector.id\n });\n obssegments.push(obstacle);\n }\n var connectorObstacle = { wrapper: connector, segments: obssegments };\n var segments = [];\n if (!isHorizontal) {\n for (var key = 0; key < connectorObstacle.segments.length; key++) {\n var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)];\n if (obstacle.orientation === 'horizontal') {\n segments.push(obstacle);\n }\n }\n }\n else {\n for (var key = 0; key < connectorObstacle.segments.length; key++) {\n var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)];\n if (obstacle.orientation === 'vertical') {\n segments.push(obstacle);\n }\n }\n }\n for (var j = 0; j < segments.length; j++) {\n var obstacleSegment = segments[parseInt(j.toString(), 10)];\n if (!this.containsValue(graph, obstacleSegment.coord)) {\n graph.push({ key: obstacleSegment.coord, value: [] });\n }\n var index = void 0;\n for (var k = 0; k < graph.length; k++) {\n var key = graph[parseInt(k.toString(), 10)].key;\n if (Number(key) === obstacleSegment.coord) {\n index = k;\n break;\n }\n }\n graph[parseInt(index.toString(), 10)].value.push(obstacleSegment);\n }\n connectorObstacles.push(connectorObstacle);\n }\n this.sortConnectors(graph, diagram);\n var modifiedgrap = [];\n for (var m = 0; m < graph.length; m++) {\n var row = graph[parseInt(m.toString(), 10)];\n var sortedrow = row.value;\n sortedrow.sort();\n var groupby = void 0;\n groupby = [];\n var index = 0;\n var maxEnd = Number.MIN_VALUE;\n groupby.push([]);\n for (var n = 0; n < sortedrow.length; n++) {\n var obstacleSegment = sortedrow[parseInt(n.toString(), 10)];\n if (!(groupby[parseInt(index.toString(), 10)].length > 0) || maxEnd >= obstacleSegment.start) {\n groupby[parseInt(index.toString(), 10)].push(obstacleSegment);\n maxEnd = Math.max(maxEnd, groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end);\n }\n else {\n index++;\n groupby.push([]);\n groupby[parseInt(index.toString(), 10)].push(obstacleSegment);\n maxEnd = groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end;\n }\n }\n for (var n = 0; n < groupby.length; n++) {\n var group = groupby[parseInt(n.toString(), 10)];\n var sortedGroup = [];\n for (var j = 0; j < group.length; j++) {\n var e = group[parseInt(j.toString(), 10)];\n if (e.start) {\n sortedGroup.push(e);\n }\n }\n var comparingDir = isHorizontal ? 'Bottom' : 'Right';\n var directed = [];\n for (var j = 0; j < sortedGroup.length; j++) {\n var e = sortedGroup[parseInt(j.toString(), 10)];\n if (e.direction === comparingDir) {\n directed.push(e);\n }\n }\n var reversedirected = [];\n for (var j = 0; j < sortedGroup.length; j++) {\n var e = sortedGroup[parseInt(j.toString(), 10)];\n if (e.direction !== comparingDir) {\n reversedirected.push(e);\n }\n }\n var mutual = [];\n if (directed.length > 0) {\n var temp = directed[0].start;\n var j = 0;\n while (j < reversedirected.length) {\n if (reversedirected[parseInt(j.toString(), 10)].end > temp) {\n mutual.push(reversedirected[parseInt(j.toString(), 10)]);\n reversedirected.splice(j, 1);\n }\n else {\n j++;\n }\n }\n }\n var mutualRow = [];\n mutualRow = this.updateSegmentRow(mutual, mutualRow);\n var directedRow = [];\n directedRow = [];\n directedRow = this.updateSegmentRow(reversedirected, directedRow);\n directed.reverse();\n directedRow = this.updateSegmentRow(directed, directedRow);\n if (!(mutualRow[mutualRow.length - 1].length > 0)) {\n mutualRow.splice(mutualRow.length - 1, 1);\n }\n if (!(directedRow[directedRow.length - 1].length > 0)) {\n directedRow.splice(directedRow.length - 1, 1);\n }\n var subrow = [];\n var descAdding = mutual.length > 0 && (sortedGroup[sortedGroup.length - 1].direction\n === mutual[mutual.length - 1].direction\n || sortedGroup[0].direction === mutual[0].direction);\n if (descAdding) {\n subrow = directedRow;\n for (var p = 0; p < mutualRow.length; p++) {\n var obj = mutualRow[parseInt(p.toString(), 10)];\n subrow[subrow.length] = obj;\n }\n }\n else {\n subrow = mutualRow;\n for (var p = 0; p < directedRow.length; p++) {\n var obj = directedRow[parseInt(p.toString(), 10)];\n subrow[subrow.length] = obj;\n }\n }\n if (subrow.length > 1) {\n var directionModifier = 1;\n if (layout.orientation === 'BottomToTop'\n || layout.orientation === 'RightToLeft') {\n directionModifier = -1;\n }\n var startCoord = row.key - (directionModifier * avaibaleSpace / 2.0);\n var diff = avaibaleSpace / subrow.length;\n for (var i = 0; i < subrow.length; i++) {\n var newcoord = startCoord + (i * diff * directionModifier);\n for (var p = 0; p < subrow[parseInt(i.toString(), 10)].length; p++) {\n var obstacleSegment = subrow[parseInt(i.toString(), 10)][parseInt(p.toString(), 10)];\n obstacleSegment.coord = newcoord;\n if (!this.containsValue(modifiedgrap, obstacleSegment.coord)) {\n modifiedgrap.push({ key: obstacleSegment.coord, value: [] });\n }\n var index_1 = void 0;\n for (var k = 0; k < modifiedgrap.length; k++) {\n var keyCheck = modifiedgrap[parseInt(k.toString(), 10)].key;\n if (keyCheck === obstacleSegment.coord) {\n index_1 = k;\n break;\n }\n }\n modifiedgrap[parseInt(index_1.toString(), 10)].value.push(obstacleSegment);\n }\n }\n }\n }\n }\n for (var m = 0; m < connectorObstacles.length; m++) {\n var connectorObstacle = connectorObstacles[parseInt(m.toString(), 10)];\n var pts = [];\n for (var i = 0; i < connectorObstacle.segments.length; i++) {\n if (i === 0) {\n pts.push(this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]));\n }\n else if (isHorizontal) {\n if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'vertical') {\n pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]);\n }\n }\n else if (!isHorizontal) {\n if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'horizontal') {\n pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]);\n }\n }\n pts.push(this.getObstacleEndPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]));\n }\n /* tslint:disable */\n connectorObstacle.wrapper[\"\" + obstacleCollection] = [];\n for (var j = 0; j < pts.length; j++) {\n var point = pts[parseInt(j.toString(), 10)];\n if (j === 0 || (j > 0 && !(Point.equals(point, pts[j - 1])))) {\n connectorObstacle.wrapper[\"\" + obstacleCollection].push(this.getPointvalue(point.x, point.y));\n }\n }\n /* tslint:enable */\n //EJ2-70198 - The layout ConnectionPointOrigin DifferentPoint property is not working for bezier connector\n //Bug 851920: Connector overlaps the node in complex hierarchical tree layout. Here the below condition is modified to check connector type.\n if (connectorObstacle.wrapper.type === 'Orthogonal') {\n this.resetConnectorPoints(connectorObstacle.wrapper, diagram);\n }\n }\n };\n //Bug 862601: Connectors are not rendered properly with lineRouting and lineDistribution enables during doLayout process.\n //To sort the connectors order in graph based on its target point and orientation to avoid connector segments path in same line.\n LineDistribution.prototype.sortConnectors = function (graph, diagram) {\n for (var i = 0; i < graph.length; i++) {\n for (var j = 0; j < graph[parseInt(i.toString(), 10)].value.length; j++) {\n if (graph[parseInt(i.toString(), 10)].value.length > 1) {\n if (diagram.layout.orientation === 'LeftToRight' || diagram.layout.orientation === 'RightToLeft') {\n graph[parseInt(i.toString(), 10)].value.sort(function (a, b) {\n var connectorA = diagram.nameTable[\"\" + a.id];\n var connectorB = diagram.nameTable[\"\" + b.id];\n return connectorA.targetPoint.y - connectorB.targetPoint.y;\n });\n }\n else if (diagram.layout.orientation === 'TopToBottom' || diagram.layout.orientation === 'BottomToTop') {\n graph[parseInt(i.toString(), 10)].value.sort(function (a, b) {\n var connectorA = diagram.nameTable[\"\" + a.id];\n var connectorB = diagram.nameTable[\"\" + b.id];\n return connectorA.targetPoint.x - connectorB.targetPoint.x;\n });\n }\n }\n }\n }\n };\n //private inflate(rect: Rect, x: number, y: number): Rect {\n // rect.x -= x;\n // rect.y -= y;\n // rect.width += 2 * x;\n // rect.height += 2 * y;\n // return rect;\n //}\n //private updateConnectorPoints(\n // connectorPoints: Point[], startSegmentSize: number, intermediatePoint: Point, bounds: object, orientation: string):\n // Point[] {\n // const layoutBounds: Rect = bounds as Rect;\n // const isHorizontal: boolean = orientation === 'LeftToRight' || orientation === 'RightToLeft';\n // const pts: Point[] = connectorPoints;\n // if (pts.length > 2) {\n // const newPt: Point = Point.transform(pts[0], Point.findAngle(pts[0], pts[1]), startSegmentSize) as Point;\n // const nextPt: Point = Point.transform(newPt, Point.findAngle(pts[1], pts[2]), Point.findLength(pts[1], pts[2])) as Point;\n // pts.splice(1, 2, newPt, nextPt);\n // if (intermediatePoint != null) {\n // const index: number = 2;\n // const ptsCount: number = pts.length;\n // const newPt1: Point = Point.transform(\n // pts[ptsCount - 1],\n // Point.findAngle(pts[ptsCount - 1], pts[ptsCount - 2]),\n // startSegmentSize) as Point;\n // pts.splice(ptsCount - 1, 0, newPt1);\n // while (index < (pts.length - 2)) {\n // pts.splice(index, 1);\n // }\n // const edgePt: Point = intermediatePoint;\n // this.inflate((layoutBounds as Rect), (layoutBounds as Rect).width, layoutBounds.height);\n // const line1: Point[] = [];\n // line1[0] = this.getPointvalue(edgePt.x, layoutBounds.y) as Point;\n // line1[1] = this.getPointvalue(edgePt.x, layoutBounds.y + layoutBounds.height) as Point;\n // const line2: Point[] = [];\n // line2[0] = this.getPointvalue(layoutBounds.x, pts[1].y) as Point;\n // line2[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, pts[1].y) as Point;\n // const line3: Point[] = [];\n // line3[0] = this.getPointvalue(layoutBounds.x, newPt1.y) as Point;\n // line3[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, newPt1.y) as Point;\n // if (isHorizontal) {\n // line1[0] = this.getPointvalue(layoutBounds.x, edgePt.y) as Point;\n // line1[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, edgePt.y) as Point;\n // line2[0] = this.getPointvalue(pts[1].x, layoutBounds.y) as Point;\n // line2[1] = this.getPointvalue(pts[1].x, layoutBounds.y + layoutBounds.height) as Point;\n // line3[0] = this.getPointvalue(newPt1.x, layoutBounds.y) as Point;\n // line2[1] = this.getPointvalue(newPt1.x, layoutBounds.y + layoutBounds.height) as Point;\n // }\n // const intercepts1: Point[] = [intersect2(\n // line1[0] as Point,\n // line1[1] as Point, line2[0] as Point, line2[1] as Point)] as Point[];\n // const intercepts2: Point[] = [intersect2(\n // line1[0] as Point, line1[1] as Point,\n // line3[0] as Point, line3[1] as Point)] as Point[];\n // if (intercepts2.length > 0) {\n // pts.splice(2, 0, intercepts2[0]);\n // }\n // if (intercepts1.length > 0) {\n // pts.splice(2, 0, intercepts1[0]);\n // }\n // }\n // }\n // let i: number = 1;\n // while (i < pts.length - 1) {\n // if (Point.equals(pts[i - 1], pts[parseInt(i.toString(), 10)])) {\n // pts.splice(i, 1);\n // } else if (Point.findAngle(pts[i - 1], pts[parseInt(i.toString(), 10)])\n // === Point.findAngle(pts[parseInt(i.toString(), 10)], pts[i + 1])) {\n // pts.splice(i, 1);\n // } else {\n // i++;\n // }\n // }\n // return pts;\n //}\n /* tslint:disable */\n LineDistribution.prototype.resetConnectorPoints = function (edge, diagram) {\n var obstacleCollection = 'obstaclePointCollection';\n if (edge.segments[0].points\n && edge.segments[0].points.length > 0 && edge[\"\" + obstacleCollection]) {\n var connector = edge;\n connector.sourcePoint = edge[\"\" + obstacleCollection][0];\n connector.targetPoint = edge[\"\" + obstacleCollection][edge[\"\" + obstacleCollection].length - 1];\n var segments = void 0;\n segments = [];\n for (var i = 0; i < edge[\"\" + obstacleCollection].length - 1; i++) {\n var point1 = edge[\"\" + obstacleCollection][parseInt(i.toString(), 10)];\n var point2 = edge[\"\" + obstacleCollection][i + 1];\n var length_1 = findDistance(point1, point2);\n var direction = getConnectorDirection(point1, point2);\n if (i === edge[\"\" + obstacleCollection].length - 2) {\n if ((diagram.layout.orientation === 'RightToLeft' && direction === 'Left')\n || (diagram.layout.orientation === 'LeftToRight' && direction === 'Right')\n || (diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom')\n || (diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) {\n length_1 = length_1 / 2;\n }\n }\n /* tslint:enable */\n var tempSegment = new OrthogonalSegment(edge, 'segments', { type: 'Orthogonal' }, true);\n tempSegment.length = length_1;\n tempSegment.direction = direction;\n segments.push(tempSegment);\n }\n connector.segments = segments;\n connector.type = 'Orthogonal';\n diagram.connectorPropertyChange(connector, {}, {\n type: 'Orthogonal',\n segments: connector.segments\n });\n }\n };\n LineDistribution.prototype.getObstacleEndPoint = function (segment) {\n if (segment.orientation === 'horizontal') {\n if (segment.direction === 'Left') {\n return this.getPointvalue(segment.start, segment.coord);\n }\n return this.getPointvalue(segment.end, segment.coord);\n }\n if (segment.direction === 'Top') {\n return this.getPointvalue(segment.coord, segment.start);\n }\n return this.getPointvalue(segment.coord, segment.end);\n };\n LineDistribution.prototype.getObstacleStartPoint = function (segment) {\n if (segment.orientation === 'horizontal') {\n if (segment.direction === 'Left') {\n return this.getPointvalue(segment.end, segment.coord);\n }\n return this.getPointvalue(segment.start, segment.coord);\n }\n if (segment.direction === 'Top') {\n return this.getPointvalue(segment.coord, segment.end);\n }\n return this.getPointvalue(segment.coord, segment.start);\n };\n LineDistribution.prototype.updateSegmentRow = function (obstacleSegments, segmentRow) {\n var k = 0;\n if (!(segmentRow.length > 0)) {\n segmentRow[0] = [];\n }\n for (var i = 0; i < obstacleSegments.length; i++) {\n var obstacleSegment = obstacleSegments[parseInt(i.toString(), 10)];\n while (k < segmentRow.length) {\n if (k === segmentRow.length - 1) {\n segmentRow[k + 1] = [];\n }\n if (!(segmentRow[parseInt(k.toString(), 10)].length > 0)\n || segmentRow[parseInt(k.toString(), 10)][segmentRow[parseInt(k.toString(), 10)].length - 1].end\n < obstacleSegment.start) {\n segmentRow[parseInt(k.toString(), 10)].push(obstacleSegment);\n break;\n }\n k++;\n }\n }\n return segmentRow;\n };\n LineDistribution.prototype.portOffsetCalculation = function (port, length, direction, i) {\n if (direction === 'Top') {\n port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 0 };\n }\n if (direction === 'Bottom') {\n port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 1 };\n }\n if (direction === 'Left') {\n port.offset = { x: 0, y: (i + 1) * (1.0 / (length + 1)) };\n }\n if (direction === 'Right') {\n port.offset = { x: 1, y: (i + 1) * (1.0 / (length + 1)) };\n }\n };\n LineDistribution.prototype.addDynamicPortandDistrrbuteLine = function (layout, node, sourceDirection, targetDirection, diagram) {\n if ((node.ports && node.ports.length > 0)) {\n var port = node.ports;\n diagram.removePorts(node, port);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var existingPorts = node.ports;\n var outConnectors = node.outEdges;\n var inConnectors = node.inEdges;\n this.initPort(outConnectors, diagram, node, sourceDirection, false);\n this.initPort(inConnectors, diagram, node, targetDirection, true);\n };\n /* tslint:disable */\n LineDistribution.prototype.initPort = function (connectors, diagram, node, targetDirection, inConnectors) {\n var obstacleCollection = 'obstaclePointCollection';\n var objects = connectors;\n // EJ2-61463 - Added below code to sort the objects based on the source node offset position\n if (connectors.length > 1 && inConnectors) {\n connectors = this.sortObjects(objects, inConnectors, diagram);\n }\n for (var i = 0; i <= connectors.length - 1; i++) {\n var internalConnector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]];\n internalConnector[\"\" + obstacleCollection] = [];\n var newPort = findPort(node, inConnectors ? internalConnector.targetPortID : internalConnector.sourcePortID);\n var direction = targetDirection;\n if (newPort === undefined) {\n newPort = new PointPort(node, 'ports', '', true);\n newPort.id = randomId() + '_LineDistribution';\n if (inConnectors) {\n internalConnector.targetPortID = newPort.id;\n }\n else {\n internalConnector.sourcePortID = newPort.id;\n }\n }\n this.portOffsetCalculation(newPort, connectors.length, direction, i);\n node.ports.push(newPort);\n var portWrapper = node.initPortWrapper(node.ports[node.ports.length - 1]);\n node.wrapper.children.push(portWrapper);\n // EJ2-66867 - Exception occurs on calling doLayout while injecting Linerouting module\n // nodes portWrapper bouds is updated below\n node.wrapper.measure(new Size(node.width, node.height), node.id);\n node.wrapper.arrange(node.wrapper.desiredSize);\n diagram.connectorPropertyChange(internalConnector, inConnectors ? { targetPortID: '' } : { sourcePortID: '' }, \n // eslint-disable-next-line\n inConnectors ? { targetPortID: newPort.id } : { sourcePortID: newPort.id });\n }\n };\n /* tslint:enable */\n //EJ2-61463 - Method used to sort the connectors based on the source node offset position\n LineDistribution.prototype.sortObjects = function (objects, inConnectors, diagram) {\n var temp;\n for (var i = 0; i < objects.length; i++) {\n for (var j = i + 1; j < objects.length; j++) {\n var internalConnector = diagram.nameTable[objects[parseInt(i.toString(), 10)]];\n var internalConnector2 = diagram.nameTable[objects[parseInt(j.toString(), 10)]];\n if (inConnectors) {\n var childNode = diagram.nameTable[internalConnector.sourceID];\n var childNode2 = diagram.nameTable[internalConnector2.sourceID];\n // For LeftToRight and RightToLeft we want to consider source node offsetY position\n if (diagram.layout.orientation === 'LeftToRight' || diagram.layout.orientation === 'RightToLeft') {\n if (childNode.offsetY > childNode2.offsetY) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n else {\n // For TopToBottom or BottomToTop means we want to consider source node offsetX position\n if (childNode.offsetX > childNode2.offsetX) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n }\n return objects;\n };\n //private shiftMatrixCells(\n // value: number, startingCell: MatrixCellGroupObject, shiftChildren: boolean,\n // parentCell: MatrixCellGroupObject, matrixModel: MatrixModelObject):\n // void {\n // if (!(value === 0)) {\n // const matrix: MatrixObject[] = matrixModel.matrix;\n // const matrixRow: MatrixCellGroupObject[] = matrix[startingCell.level].value;\n // const index: number = matrixRow.indexOf(startingCell);\n // for (let i: number = index; i < matrixRow.length; i++) {\n // matrixRow[parseInt(i.toString(), 10)].offset += value;\n // }\n // if (shiftChildren) {\n // if (startingCell.visitedChildren.length > 0) {\n // this.shiftMatrixCells(\n // value,\n // startingCell.visitedChildren[0],\n // true,\n // startingCell,\n // matrixModel);\n // } else {\n // let i: number = 1;\n // let nextSibilingwithChild: MatrixCellGroupObject = null;\n // while (index + i < matrixRow.length) {\n // const nextCell: MatrixCellGroupObject = matrixRow[index + i];\n // if (parentCell != null && this.containsValue(nextCell.visitedParents, parentCell)) {\n // if (nextCell.visitedChildren.length > 0) {\n // nextSibilingwithChild = nextCell;\n // } else {\n // i++;\n // continue;\n // }\n // }\n // break;\n // }\n // if (nextSibilingwithChild != null) {\n // this.shiftMatrixCells(\n // value,\n // nextSibilingwithChild.visitedChildren[0],\n // true,\n // nextSibilingwithChild,\n // matrixModel);\n // }\n // }\n // }\n // }\n //}\n //private arrangeMatrix(cell: MatrixCellGroupObject, parent: MatrixCellGroupObject, matrixModel: MatrixModelObject): void {\n // const layoutSettings: LayoutProp = matrixModel.model.layout;\n // const isHorizontal: boolean = layoutSettings.orientation === 'LeftToRight'\n // || layoutSettings.orientation === 'RightToLeft';\n // const spacing: number = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // const matrix: MatrixObject[] = matrixModel.matrix;\n // const matrixRow: MatrixCellGroupObject[] = matrix[cell.level].value;\n // const matrixIndex: number = matrixRow.indexOf(cell);\n // if (cell.visitedParents.length > 0) {\n // if (cell.visitedParents.length === 1) {\n // cell.initialOffset = cell.offset;\n // }\n // if (matrixIndex + 1 < matrixRow.length) {\n // const nextCell: MatrixCellGroupObject = matrixRow[matrixIndex + 1];\n // if (nextCell.visitedParents.length > 0) {\n // if (!this.containsValue(cell.visitedParents, parent)) {\n // cell.visitedParents.push(parent);\n // parent.ignoredChildren.push(cell);\n // return;\n // }\n // }\n // }\n // }\n // if (!(cell.children.length > 0)) {\n // let validOffset: number = cell.offset;\n // if (matrixIndex > 0) {\n // const prevCell: MatrixCellGroupObject = matrixRow[matrixIndex - 1];\n // validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n // }\n // this.shiftMatrixCells(validOffset - cell.offset, cell, false, null, matrixModel);\n // } else {\n // for (let i: number = 0; i < cell.children.length; i++) {\n // const matrixCellChild: MatrixCellGroupObject = cell.children[parseInt(i.toString(), 10)];\n // if (!this.containsValue(cell.visitedChildren, matrixCellChild)) {\n // this.arrangeMatrix(matrixCellChild, cell, matrixModel);\n // cell.visitedChildren.push(matrixCellChild);\n // }\n // }\n // if (cell.visitedChildren.length > 0) {\n // const children: MatrixCellGroupObject[] = cell.visitedChildren.slice();\n // for (let i: number = 0; i < cell.ignoredChildren.length; i++) {\n // //let cellIgnoredChild: MatrixCellGroupObject = cell.ignoredChildren[i];\n // children.splice(0, 1);\n // cell.visitedChildren.splice(0, 1);\n // }\n // if (children.length > 0) {\n // const firstChild: MatrixCellGroupObject = cell.visitedChildren[0];\n // const lastChild: MatrixCellGroupObject = cell.visitedChildren[cell.visitedChildren.length - 1];\n // const x1: number = firstChild.offset - (firstChild.size / 2);\n // const x2: number = lastChild.offset + (lastChild.size / 2);\n // const newoffset: number = (x1 + x2) / 2;\n // if (newoffset < cell.offset) {\n // this.shiftMatrixCells(cell.offset - newoffset, firstChild, true, cell, matrixModel);\n // } else if (newoffset > cell.offset) {\n // this.shiftMatrixCells(newoffset - cell.offset, cell, false, null, matrixModel);\n // }\n // }\n // }\n // }\n // if (!this.containsValue(cell.visitedParents, parent)) {\n // cell.visitedParents.push(parent);\n // }\n //}\n /** @private */\n LineDistribution.prototype.resetConnectorSegments = function (connector) {\n var segements = connector.segments;\n for (var i = segements.length; i > 0; i--) {\n segements.splice(i - 1, 1);\n }\n };\n /* tslint:disable */\n /** @private */\n LineDistribution.prototype.resetRoutingSegments = function (connector, diagram, points) {\n if (connector['levelSkip']) {\n //Bug 877799: Optimize the routing segment distance while using enableRouting in layout.\n var sourceLevel = void 0;\n var targetLevel = void 0;\n var collection = diagram.layout.ranks.reverse();\n //To find the source level and target level of the level skip connector\n for (var i = 0; i < collection.length; i++) {\n for (var j = 0; j < collection[parseInt(i.toString(), 10)].length; j++) {\n if (connector.sourceID === collection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].id) {\n sourceLevel = i;\n }\n if (connector.targetID === collection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].id) {\n targetLevel = i;\n }\n }\n }\n // To find the overlapping collection between the source and target level\n var overlappCollection = [];\n if (sourceLevel < targetLevel) {\n for (var i = 0; i < collection.length; i++) {\n if (i > sourceLevel && i < targetLevel) {\n overlappCollection.push(collection[parseInt(i.toString(), 10)]);\n }\n }\n }\n else {\n for (var i = 0; i < collection.length; i++) {\n if (i < sourceLevel && i > targetLevel) {\n overlappCollection.push(collection[parseInt(i.toString(), 10)]);\n }\n }\n }\n // To find the overlapping nodes between the source and target level\n var overLapNodesCollection = [];\n for (var i = 0; i < overlappCollection.length; i++) {\n for (var j = 0; j < overlappCollection[parseInt(i.toString(), 10)].length; j++) {\n if (overlappCollection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].edges === undefined) {\n var node = diagram.nameTable[overlappCollection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].id];\n overLapNodesCollection.push(node);\n }\n }\n }\n var isInsideBounds = false;\n if (!diagram.routingConnectors) {\n diagram.routingConnectors = [];\n }\n //To find whether the connector is overlapping with the nodes in the overlapping collection.\n // eslint-disable-next-line no-labels\n overlapping: for (var count = 0; count < overLapNodesCollection.length; count++) {\n var bounds = overLapNodesCollection[parseInt(count.toString(), 10)].wrapper.bounds;\n for (var i = 0; i < connector.segments.length; i++) {\n var points_1 = connector.segments[parseInt(i.toString(), 10)].points;\n for (var j = 0; j < points_1.length; j++) {\n var lineStart = points_1[parseInt(j.toString(), 10)];\n var lineEnd = points_1[j + 1];\n if (lineEnd) {\n var connectorPoints = this.pointsAlongLine(lineStart, lineEnd);\n isInsideBounds = this.pointInsideBounds(connectorPoints, bounds);\n if (isInsideBounds) {\n diagram.routingConnectors.push(connector);\n // eslint-disable-next-line no-labels\n break overlapping;\n }\n }\n }\n }\n }\n }\n };\n /**\n * Calculates points along a line between two given points.\n * @param start The starting point of the line.\n * @param end The ending point of the line.\n * @return An array of points along the line.\n */\n LineDistribution.prototype.pointsAlongLine = function (start, end) {\n var granularity = 1;\n var dx = end.x - start.x;\n var dy = end.y - start.y;\n var length = Math.sqrt(dx * dx + dy * dy);\n var stepX = (dx / length) * granularity;\n var stepY = (dy / length) * granularity;\n var points = [];\n for (var i = 0; i <= length; i += granularity) {\n points.push({ x: start.x + stepX * i, y: start.y + stepY * i });\n }\n return points;\n };\n /**\n *\n * Checks if any of the given points fall inside the specified bounding rectangle.\n * @param points An array of points to be checked.\n * @param bounds The bounding rectangle to check against.\n * @return True if any point is inside the bounds, false otherwise.\n */\n LineDistribution.prototype.pointInsideBounds = function (points, bounds) {\n var padding = 10;\n for (var _i = 0, points_2 = points; _i < points_2.length; _i++) {\n var point = points_2[_i];\n if (bounds.right > point.x &&\n bounds.left < point.x &&\n bounds.top < point.y &&\n bounds.bottom > point.y) {\n return true;\n }\n }\n return false;\n };\n /* tslint:enable */\n /** @private */\n //public arrangeElements(matrixModel: MatrixModelObject, layout: Layout): void {\n // const layoutSettings: LayoutProp = matrixModel.model.layout;\n // let isHorizontal: boolean;\n // if (layout.orientation === 'LeftToRight' || layout.orientation === 'RightToLeft') {\n // isHorizontal = true;\n // } else {\n // isHorizontal = false;\n // }\n // const spacing: number = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // //let spacingInverse: number = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // // Need to group element before\n // this.groupLayoutCells(matrixModel);\n // this.createMatrixCells(matrixModel);\n // for (let j: number = 0; j < matrixModel.matrix.length; j++) {\n // const matrixKey: number = matrixModel.matrix[parseInt(j.toString(), 10)].key;\n // const matrixrow: MatrixCellGroupObject[] = matrixModel.matrix[parseInt(matrixKey.toString(), 10)].value;\n // for (let i: number = 1; i < matrixrow.length; i++) {\n // const cell: MatrixCellGroupObject = matrixrow[parseInt(i.toString(), 10)];\n // const prevCell: MatrixCellGroupObject = matrixrow[i - 1];\n // cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n // }\n // }\n // for (let j: number = 0; j < matrixModel.matrix[0].value.length; j++) {\n // const root: MatrixCellGroupObject = matrixModel.matrix[0].value[parseInt(j.toString(), 10)];\n // this.arrangeMatrix(root, null, matrixModel);\n // }\n // for (let k: number = 0; k < matrixModel.matrix.length; k++) {\n // const row: MatrixCellGroupObject[] = matrixModel.matrix[parseInt(k.toString(), 10)].value;\n // for (let i: number = 0; i < row.length; i++) {\n // const cell: MatrixCellGroupObject = row[parseInt(i.toString(), 10)];\n // if (cell.visitedParents.length > 1) {\n // let firstParent: MatrixCellGroupObject = cell.visitedParents[0];\n // let lastParent: MatrixCellGroupObject = cell.visitedParents[cell.visitedParents.length - 1];\n // const firstVertexParent: MatrixCellGroupObject = this.findParentVertexCellGroup(firstParent);\n // const lastVertexParent: MatrixCellGroupObject = this.findParentVertexCellGroup(lastParent);\n // if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) {\n // firstParent = firstVertexParent;\n // }\n // if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) {\n // lastParent = firstVertexParent;\n // }\n // const newoffset: number = (firstParent.offset + lastParent.offset) / 2;\n // const availOffsetMin: number = cell.initialOffset;\n // const availOffsetMax: number = cell.offset;\n // if (!(availOffsetMax === availOffsetMin)) {\n // if (newoffset >= availOffsetMin && newoffset <= availOffsetMax) {\n // this.translateMatrixCells(newoffset - cell.offset, cell);\n // } else if (newoffset < availOffsetMin) {\n // this.translateMatrixCells(availOffsetMin - cell.offset, cell);\n // }\n // }\n // }\n // }\n // }\n // this.setXYforMatrixCell(matrixModel);\n //}\n //private findParentVertexCellGroup(cell: MatrixCellGroupObject): MatrixCellGroupObject {\n // if (cell.cells[0]) {\n // return cell;\n // }\n // if (cell.parents.length > 0) {\n // return this.findParentVertexCellGroup(cell.parents[0]);\n // }\n // return cell;\n //}\n //private setXYforMatrixCell(matrixModel: MatrixModelObject): void {\n // const layoutSettings: LayoutProp = matrixModel.model.layout;\n // const isHorizontal: boolean = layoutSettings.orientation === 'LeftToRight'\n // || layoutSettings.orientation === 'RightToLeft';\n // const spacing: number = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // for (let i: number = 0; i < matrixModel.matrix.length; i++) {\n // const matrixrow1: MatrixCellGroupObject[] = matrixModel.matrix[parseInt(i.toString(), 10)].value;\n // for (let j: number = 0; j < matrixrow1.length; j++) {\n // const matrixCell: MatrixCellGroupObject = matrixrow1[parseInt(j.toString(), 10)];\n // let start: number = matrixCell.offset - (matrixCell.size / 2);\n // for (let k: number = 0; k < (matrixCell.cells as CellObject[]).length; k++) {\n // const cell: CellObject = matrixCell.cells[parseInt(k.toString(), 10)];\n // const type: string = this.getType(cell.type);\n // if (type === 'internalVertex') {\n // const internalVertex: CellObject = cell;\n // const width: number = internalVertex.cell.geometry.width;\n // const height: number = internalVertex.cell.geometry.height;\n // if (isHorizontal) {\n // internalVertex.cell.geometry = new Rect(\n // matrixModel.rowOffset[matrixCell.level] - (width / 2),\n // start,\n // width,\n // height) as Rect;\n // } else {\n // internalVertex.cell.geometry = new Rect(\n // start,\n // matrixModel.rowOffset[matrixCell.level] - (height / 2),\n // width,\n // height) as Rect;\n // }\n // start += (isHorizontal ? height : width) + spacing;\n // } else if (type === 'internalEdge') {\n // const internalEdges: CellObject = cell;\n // const parent: MatrixCellGroupObject = matrixCell.visitedParents[0];\n // let isContainSibilingVertex: boolean = false;\n // if (parent) {\n // for (let l: number = 0; l < parent.visitedChildren.length; l++) {\n // const children: MatrixCellGroupObject = parent.visitedChildren[parseInt(l.toString(), 10)];\n // const cells: CellObject[] = [];\n // for (let m: number = 0; m < (children.cells as CellObject[]).length; m++) {\n // const cell: CellObject = children.cells[parseInt(m.toString(), 10)];\n // const type: string = this.getType(cell.type);\n // if (type === 'internalVertex') {\n // cells.push(cell);\n // }\n // }\n // if (cells.length > 0) {\n // isContainSibilingVertex = true;\n // break;\n // }\n // }\n // }\n // // Need to updated line width\n // const lineWidth: number = 1;\n // const edgeSpacing: number = 5;\n // for (let m: number = 0; m < internalEdges.edges.length; m++) {\n // const internalConnector: Connector = internalEdges.edges[parseInt(m.toString(), 10)];\n // let pt: Point = this.getPointvalue(start + (lineWidth / 2.0), matrixModel.rowOffset[matrixCell.level]) as Point;\n // if (isHorizontal) {\n // pt = this.getPointvalue(matrixModel.rowOffset[matrixCell.level], start + (lineWidth / 2.0)) as Point;\n // }\n // if (this.containsValue((this.getEdgeMapper() as EdgeMapperObject[]), internalConnector)) {\n // let key: number;\n // for (let l: number = 0; l < this.getEdgeMapper().length; l++) {\n // if ((this.getEdgeMapper())[parseInt(l.toString(), 10)].key === internalConnector) {\n // key = l;\n // break;\n // }\n // }\n // (this.getEdgeMapper())[parseInt(key.toString(), 10)].value.push(pt as Point);\n // }\n // start += lineWidth + edgeSpacing;\n // }\n // start += spacing;\n // }\n // }\n // }\n // }\n //}\n //private getEdgeMapper(): EdgeMapperObject[] {\n // return this.edgeMapper;\n //}\n ///** @private */\n //public setEdgeMapper(value: EdgeMapperObject): void {\n // this.edgeMapper.push(value);\n //}\n //private translateMatrixCells(value: number, cell: MatrixCellGroupObject): void {\n // if (!(value === 0)) {\n // cell.offset += value;\n // if (cell.visitedChildren.length > 0) {\n // for (let i: number = 0; i < cell.visitedChildren.length; i++) {\n // let cellVisitedChild: MatrixCellGroupObject = cell.visitedChildren[parseInt(i.toString(), 10)];\n // this.translateMatrixCells(value, cellVisitedChild);\n // }\n // }\n // }\n //}\n //private groupLayoutCells(matrixModel: MatrixModelObject): void {\n // let ranks: IVertex[][] = matrixModel.model.ranks;\n // for (let j: number = ranks.length - 1; j >= 0; j--) {\n // let vertices: IVertex[] = [];\n // for (let v: number = 0; v < ranks[parseInt(j.toString(), 10)].length; v++) {\n // let rank: IVertex = ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)];\n // let type: string = this.getType(rank.type);\n // if (type === 'internalVertex') {\n // vertices.push(ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)]);\n // }\n // }\n // let edges: IVertex[] = [];\n // for (let e: number = 0; e < ranks[parseInt(j.toString(), 10)].length; e++) {\n // let rank: IVertex = ranks[parseInt(j.toString(), 10)][parseInt(e.toString(), 10)];\n // let type: string = this.getType(rank.type);\n // if (type === 'internalEdge') {\n // edges.push(rank);\n // }\n // }\n // while (vertices.length > 1) {\n // const vertex1: IVertex = vertices[0];\n // const parentset1: string[] = this.selectIds(vertex1.connectsAsTarget, true);\n // const childset1: string[] = this.selectIds(vertex1.connectsAsSource, false);\n // while (vertices.length > 1) {\n // const vertex2: IVertex = vertices[1];\n // const parentset2: string[] = this.selectIds(vertex2.connectsAsTarget, true);\n // const childset2: string[] = this.selectIds(vertex2.connectsAsSource, false);\n // const parentequals: boolean = this.compareLists(parentset1, parentset2);\n // const childequals: boolean = this.compareLists(childset1, childset2);\n // if (parentequals && childequals) {\n // this.updateMutualSharing(vertices[0], vertex2.id);\n // this.updateMutualSharing(vertices[1], vertex1.id);\n // vertices.splice(1, 1);\n // continue;\n // }\n // break;\n // }\n // vertices.splice(0, 1);\n // }\n // while (edges.length > 1) {\n // const internalEdge: IVertex = edges[0];\n // const parentset: IVertex = internalEdge.source;\n // const childset: IVertex = internalEdge.target;\n // if (parentset.identicalSibiling != null) {\n // const groupedges: IVertex[] = [];\n // for (let i: number = 0; i < edges.length; i++) {\n // const edge: IVertex = edges[parseInt(i.toString(), 10)];\n // if (edge.target === childset) {\n // groupedges.push(edge);\n // }\n // }\n // for (let i: number = 0; i < groupedges.length; i++) {\n // const internalEdgese: IVertex = groupedges[parseInt(i.toString(), 10)];\n // if (this.containsValue(parentset.identicalSibiling, internalEdgese.source.id)) {\n // internalEdgese.source.identicalSibiling = null;\n // }\n // }\n // internalEdge.source.identicalSibiling = null;\n // }\n // edges.splice(0, 1);\n // }\n // }\n //}\n //private getType(type: string): string {\n // if (type === 'internalVertex') {\n // return 'internalVertex';\n // } else {\n // return 'internalEdge';\n // }\n //}\n //private selectIds(node: IEdge[], source: boolean): string[] {\n // const returnIds: string[] = [];\n // for (let i: number = 0; i < node.length; i++) {\n // const connector: IEdge = node[parseInt(i.toString(), 10)];\n // if (source) {\n // {\n // returnIds.push(connector.source.id);\n // }\n // } else {\n // returnIds.push(connector.target.id);\n // }\n // }\n // return returnIds;\n //}\n //private compareLists(list1: string[], list2: string[]): boolean {\n // const newList1: string[] = list1.slice();\n // const newList2: string[] = list2.slice();\n // if (newList1.length === newList2.length) {\n // if (newList1.length === 0) {\n // return true;\n // } else {\n // let isSame: boolean = true;\n // for (let i: number = 0; i < newList2.length; i++) {\n // const o: string = newList2[parseInt(i.toString(), 10)];\n // // EJ2-63944 - Nodes overlapping in Complex hierarchical tree layout in linear arrangement.\n // if (newList1.indexOf(o) === -1)\n // {\n // isSame = false;\n // break;\n // }\n // }\n // return isSame;\n // }\n // }\n // return false;\n //}\n //private updateMutualSharing(cell: IVertex, id: string): void {\n // if (cell.identicalSibiling != null) {\n // cell.identicalSibiling.push(id);\n // } else {\n // cell.identicalSibiling = [];\n // cell.identicalSibiling.push(id);\n // }\n //}\n //private matrixCellGroup(options: MatrixCellGroupObject): MatrixCellGroupObject {\n // options.level = options.level;\n // options.parents = options.parents;\n // options.children = options.children;\n // options.visitedChildren = options.visitedChildren;\n // options.visitedParents = options.visitedParents;\n // options.ignoredChildren = options.ignoredChildren;\n // options.cells = options.cells;\n // options.offset = options.offset;\n // options.initialOffset = options.initialOffset;\n // return options;\n //}\n LineDistribution.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n LineDistribution.prototype.containsValue = function (list, keyValue) {\n for (var i = 0; i < list.length; i++) {\n if (list[parseInt(i.toString(), 10)] === keyValue) {\n return true;\n }\n }\n return false;\n };\n return LineDistribution;\n}());\nexport { LineDistribution };\n///** @private */\n//interface ConnectsAsSourceObject {\n// id: string[];\n// source: ConnectsAsSourceObject;\n// target: ConnectsAsSourceObject;\n// temp: number[];\n// x: number[];\n// y: number[];\n//}\n","import { DiagramAction } from '../enum/enum';\nimport { Rect } from '../primitives/rect';\nimport { BezierSegment, OrthogonalSegment } from '../objects/connector';\nimport { getFunction } from '../utility/base-util';\nimport { Point } from '../primitives/point';\nimport { updateLayoutValue } from '../utility/diagram-util';\n/**\n * Hierarchical Tree and Organizational Chart\n */\nvar HierarchicalTree = /** @class */ (function () {\n /**\n * Constructor for the organizational chart module.\n *\n * @private\n */\n function HierarchicalTree() {\n /**\n * Defines the layout animation\n *\n */\n this.isAnimation = false;\n //constructs the layout module\n }\n /**\n * To destroy the organizational chart\n *\n * @returns {void}\n * @private\n */\n HierarchicalTree.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Get module name.\n */\n HierarchicalTree.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n */\n return 'OrganizationalChart';\n };\n /**\n * @param nodes\n * @param nameTable\n * @param layoutProp\n * @param viewport\n * @param uniqueId\n * @param action\n * @private\n */\n HierarchicalTree.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewport, uniqueId, action) {\n var layout = {\n type: layoutProp.type,\n connectionPointOrigin: layoutProp.connectionPointOrigin,\n nameTable: nameTable, anchorX: 0, anchorY: 0,\n firstLevelNodes: [], centerNode: null, levels: [], maxLevel: 0, graphNodes: {},\n orientation: layoutProp.orientation,\n horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing,\n verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment,\n fixedNode: layoutProp.fixedNode, getLayoutInfo: getFunction(layoutProp.getLayoutInfo),\n layoutInfo: layoutProp.layoutInfo, margin: layoutProp.margin,\n bounds: layoutProp.bounds, objects: [], root: layoutProp.root\n };\n this.doLayout(layout, nodes, viewport, uniqueId, action);\n return layout;\n };\n HierarchicalTree.prototype.doLayout = function (layout, nodes, viewport, uniqueId, action) {\n var node;\n var i;\n var layoutInfo = {};\n var shape;\n var rootNodes = [];\n if (layout.nameTable[layout.root]) {\n layout.firstLevelNodes.push(layout.nameTable[layout.root]);\n }\n for (i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (!node.excludeFromLayout) {\n layoutInfo = layout.graphNodes[node.id] = this.setUpLayoutInfo(layout, node);\n layoutInfo.tree.hasSubTree = false;\n if (!layout.nameTable[layout.root]) {\n if (!node.inEdges || !node.inEdges.length) {\n var parentId = 'parentId';\n var processId = 'processId';\n if (!node[\"\" + parentId] && !node[\"\" + processId]) {\n rootNodes.push(node);\n }\n if (node.data && String(node.data[\"\" + uniqueId]) === layout.root) {\n layout.firstLevelNodes.push(node);\n }\n }\n }\n }\n }\n if (layout.firstLevelNodes.length === 0) {\n layout.firstLevelNodes = rootNodes;\n }\n //Update relationship(parent and children)\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n node = layout.firstLevelNodes[parseInt(i.toString(), 10)];\n //let check: boolean;\n this.updateEdges(layout, node, 1, action, nodes);\n }\n if (layout.firstLevelNodes.length > 0) {\n layout.rootNode = layout.firstLevelNodes[0];\n var x = 0;\n var y = 0;\n var minX = void 0;\n var maxY = void 0;\n var maxX = void 0;\n var minY = void 0;\n //let j: number;\n var bounds = void 0;\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n bounds = this.updateTree(layout, x, y, layout.firstLevelNodes[parseInt(i.toString(), 10)], 0, layout.firstLevelNodes[i - 1]);\n var rootInfo = layout.graphNodes[layout.firstLevelNodes[parseInt(i.toString(), 10)].id];\n bounds.y = Math.min(bounds.y, rootInfo.y);\n bounds.x = Math.min(bounds.x, rootInfo.x);\n if (layout.orientation.indexOf('Left') !== -1) {\n y = bounds.right + layout.horizontalSpacing;\n }\n else {\n x = bounds.right + layout.horizontalSpacing;\n }\n if (i === 0) {\n minX = bounds.x;\n minY = bounds.y;\n maxX = bounds.right;\n maxY = bounds.bottom;\n }\n else {\n minX = Math.min(minX, bounds.x);\n minY = Math.min(minY, bounds.y);\n maxX = Math.max(maxX, bounds.right);\n maxY = Math.max(maxY, bounds.bottom);\n }\n }\n this.updateAnchor(layout, { x: minX, y: minY, right: maxX, bottom: maxY }, viewport);\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n this.updateNodes(layout, layout.firstLevelNodes[parseInt(i.toString(), 10)], 0);\n }\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n this.updateConnectors(layout, layout.firstLevelNodes[parseInt(i.toString(), 10)], 1);\n }\n }\n };\n HierarchicalTree.prototype.getBounds = function (node) {\n var x = node.offsetX - node.actualSize.width * node.pivot.x;\n var y = node.offsetY - node.actualSize.height * node.pivot.y;\n return new Rect(x, y, node.actualSize.width, node.actualSize.height);\n };\n HierarchicalTree.prototype.updateTree = function (layout, x, y, shape, level, prev, dontupdate) {\n //let dimensions: Dimensions;\n var info = {};\n var lev;\n var obj;\n //let hasChild: number;\n var dimensions = this.getDimensions(layout, shape, x, y, level);\n info = layout.graphNodes[shape.id];\n var firstChild;\n //Set maximum level of layout\n layout.maxLevel = Math.max(layout.maxLevel, level);\n lev = level;\n var hasChild = this.hasChild(layout, shape);\n if (!hasChild && !info.tree.assistants.length) {\n //update leaf nodes\n shape.treeBounds = this.updateLeafNode(layout, shape, prev, dimensions, level, dontupdate);\n return shape.treeBounds;\n }\n else {\n var treeBounds = void 0;\n var shapeBounds = void 0;\n var levelBounds = void 0;\n var d = void 0;\n var asstBounds = void 0;\n var space = void 0;\n var bottom = void 0;\n bottom = dimensions.y + dimensions.height + layout.verticalSpacing;\n if (info.tree.assistants.length) {\n //Vertically place assistants\n obj = this.setDepthSpaceForAssitants(layout, shape, bottom, dimensions.height, level, layout.verticalSpacing);\n lev = obj.level;\n bottom = obj.bottom;\n }\n if (!info.tree.assistants.length && info.tree.orientation !== 'Horizontal') {\n bottom = dimensions.y + dimensions.height + layout.verticalSpacing / 2;\n }\n if (info.tree.children.length) {\n if (info.tree.orientation === 'Horizontal' && (info.tree.type !== 'Balanced' || info.tree.children.length === 1)) {\n treeBounds = this.updateHorizontalTree(layout, shape, prev, dimensions.x, bottom, lev);\n }\n else if (info.tree.type === 'Balanced') {\n treeBounds = this.updateHorizontalTreeWithMultipleRows(layout, shape, prev, dimensions.x, bottom, lev);\n }\n else {\n treeBounds = this.updateVerticalTree(layout, shape, dimensions.x, bottom, lev, dontupdate);\n }\n }\n if (!(info.y && info.y > dimensions.y)) {\n info.y = dimensions.y;\n }\n // 919520: Leaf node position does not align correctly for subTreeAlignment 'Center'\n if (info.mid !== undefined) {\n x = info.mid;\n }\n if (info.tree.assistants.length) {\n //Set breadth space for assistants\n space = x !== undefined ? x : dimensions.x;\n asstBounds = this.setBreadthSpaceForAssistants(layout, shape, dimensions, space, bottom, level);\n if (!hasChild) {\n levelBounds = treeBounds = asstBounds;\n x = (levelBounds.x + levelBounds.right) / 2 - dimensions.width / 2;\n treeBounds = levelBounds;\n }\n d = asstBounds ? asstBounds.canMoveBy : undefined;\n }\n info.x = x;\n if (!info.translate) {\n info.treeWidth = treeBounds.right - treeBounds.x;\n }\n {\n shapeBounds = { x: x, y: dimensions.y, right: x + dimensions.width, bottom: dimensions.y + dimensions.height };\n }\n var translateInfo = {\n layout: layout, shape: shape, shapeBounds: shapeBounds, treeBounds: treeBounds,\n dim: dimensions, level: level\n };\n this.translateSubTree(translateInfo, d, prev !== undefined, dontupdate);\n if (info.firstChild && typeof info.firstChild !== 'string') {\n info.firstChild.x += info.subTreeTranslation;\n }\n shape.treeBounds = treeBounds;\n return treeBounds;\n }\n };\n HierarchicalTree.prototype.updateLeafNode = function (layout, shape, prev, dimensions, level, dontupdate) {\n //let bounds: Bounds;\n var info = layout.graphNodes[shape.id];\n info.x = dimensions.x;\n if (!(info.y && info.y > dimensions.y)) {\n info.y = dimensions.y;\n info.maxLevel = Math.max(level, info.maxLevel || 0);\n }\n // eslint-disable-next-line max-len\n var bounds = { x: dimensions.x, y: dimensions.y, right: dimensions.x + dimensions.width, bottom: dimensions.y + dimensions.height };\n info.maxLevel = Math.max(info.maxLevel || 0, level);\n var translateInfo = {\n layout: layout, shape: shape, shapeBounds: bounds, treeBounds: bounds,\n dim: dimensions, level: level\n };\n this.translateSubTree(translateInfo, undefined, prev !== undefined, dontupdate);\n return { x: info.x, y: info.y, right: info.x + dimensions.width, bottom: info.y + dimensions.height };\n };\n HierarchicalTree.prototype.setUpLayoutInfo = function (layout, item) {\n var info = {};\n info.subTreeTranslation = 0;\n if (layout.type === 'OrganizationalChart') {\n info.tree = { orientation: 'Vertical', type: 'Alternate', offset: 20, enableRouting: true };\n }\n else {\n info.tree = { orientation: 'Horizontal', type: 'Center', enableRouting: true };\n }\n info.tree.children = [];\n info.tree.assistants = [];\n info.tree.level = 0;\n info.translate = true;\n return info;\n };\n HierarchicalTree.prototype.translateSubTree = function (translateInfo, asstDif, translate, dontupdate) {\n var layout = translateInfo.layout;\n var shape = translateInfo.shape;\n var shapeBounds = translateInfo.shapeBounds;\n var treeBounds = translateInfo.treeBounds;\n var level = translateInfo.level;\n var dim = translateInfo.dim;\n var info = layout.graphNodes[shape.id];\n var firstChild = layout.nameTable[info.firstChild ? info.firstChild.child : info.tree.children[0]];\n var firstChildInfo = firstChild ? layout.graphNodes[firstChild.id] : null;\n var hasChild = this.hasChild(layout, shape);\n var intersect = this.findIntersectingLevels(layout, shapeBounds, level, info.actualLevel);\n var treeIntersect = this.findIntersectingLevels(layout, treeBounds, level, info.actualLevel);\n var levelBounds = [];\n //const diff: number;\n if (intersect.length && info.translate) {\n info.intersect = intersect;\n this.spaceLeftFromPrevSubTree(layout, shape, shapeBounds);\n info.canMoveBy = info.diff;\n if (asstDif !== undefined) {\n info.canMoveBy = Math.min(asstDif, info.canMoveBy);\n }\n if (firstChild && firstChildInfo.canMoveBy !== undefined) {\n if (firstChildInfo.canMoveBy >= info.canMoveBy) {\n info.translated = true;\n }\n info.canMoveBy = Math.min(info.canMoveBy, firstChildInfo.canMoveBy);\n }\n if (translate) {\n info.x -= info.canMoveBy;\n info.subTreeTranslation -= info.canMoveBy;\n if (hasChild) {\n this.shiftSubordinates(layout, treeIntersect, info.canMoveBy);\n treeBounds.x = Math.min(treeBounds.x, info.x);\n treeBounds.right = Math.max(treeBounds.right, info.x + dim.width);\n treeBounds.bottom = Math.max(treeBounds.bottom, info.y + dim.height);\n treeBounds.x -= info.canMoveBy;\n treeBounds.right -= info.canMoveBy;\n }\n if (firstChild && firstChildInfo.canMoveBy > info.canMoveBy) {\n info.canMoveBy = firstChildInfo.canMoveBy - info.canMoveBy;\n }\n else if (firstChild && info.canMoveBy !== undefined) {\n info.canMoveBy = 0;\n }\n }\n }\n else {\n if (hasChild) {\n treeBounds.x = Math.min(treeBounds.x, shapeBounds.x);\n treeBounds.right = Math.max(treeBounds.right, shapeBounds.x + dim.width);\n treeBounds.bottom = Math.max(treeBounds.bottom, info.y + dim.height);\n }\n if (!info.translate) {\n info.canMoveBy = 0;\n info.subTreeTranslation = 0;\n }\n }\n if (!dontupdate) {\n shapeBounds = { x: info.x, y: dim.y, right: info.x + dim.width, bottom: dim.y + dim.height };\n levelBounds.push({ rBounds: shapeBounds });\n this.updateRearBounds(layout, shape, levelBounds, level);\n }\n };\n HierarchicalTree.prototype.updateRearBounds = function (layout, shape, levelBounds, level, intersect) {\n var bnds;\n var index;\n var isLastLeaf = true;\n var i;\n var info = {};\n //let firstLevel: Bounds;\n //let lastLevel: Bounds;\n var bottom;\n if (shape) {\n info = layout.graphNodes[shape.id];\n intersect = info.intersect;\n isLastLeaf = !info.tree.children.length && !info.tree.assistants.length;\n }\n var firstLevel = levelBounds[0].rBounds;\n var lastLevel = levelBounds[levelBounds.length - 1].rBounds;\n if (intersect && intersect.length) {\n bnds = layout.levels[intersect[0]].rBounds;\n bottom = bnds.bottom;\n if (bnds.y < firstLevel.y) {\n bnds.bottom = firstLevel.y;\n levelBounds.splice(0, 0, { rBounds: bnds });\n }\n if (bottom > lastLevel.bottom) {\n levelBounds.push({ rBounds: { x: bnds.x, right: bnds.right, y: firstLevel.bottom, bottom: bottom } });\n }\n else {\n bnds = layout.levels[intersect[intersect.length - 1]].rBounds;\n if (isLastLeaf && bnds.bottom > lastLevel.bottom) {\n bnds.y = lastLevel.bottom;\n levelBounds.push({ rBounds: bnds });\n }\n }\n index = intersect[0];\n for (i = levelBounds.length - 1; i >= 0; i--) {\n layout.levels.splice(index, 0, levelBounds[parseInt(i.toString(), 10)]);\n }\n index += levelBounds.length;\n layout.levels.splice(index, intersect.length);\n }\n else {\n index = this.findLevel(layout, levelBounds[levelBounds.length - 1].rBounds, level);\n for (i = levelBounds.length - 1; i >= 0; i--) {\n layout.levels.splice(index, 0, levelBounds[parseInt(i.toString(), 10)]);\n }\n }\n };\n HierarchicalTree.prototype.shiftSubordinates = function (layout, intersect, diff) {\n var i;\n //Shift the sublevels by the distance diff\n if (diff !== 0) {\n for (i = 0; i < intersect.length; i++) {\n if (layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds) {\n layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds.x -= diff;\n layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds.right -= diff;\n }\n }\n }\n };\n HierarchicalTree.prototype.setDepthSpaceForAssitants = function (layout, shape, bottom, height, lev, vSpace) {\n var info = layout.graphNodes[shape.id];\n var asst = {};\n var asstHeight;\n var i;\n var asstElement;\n var max;\n max = bottom;\n //Vertically place the assistants as alternate layout(alternatively at both right and left sides of parent)\n for (i = 0; i < info.tree.assistants.length; i++) {\n asst = layout.graphNodes[info.tree.assistants[parseInt(i.toString(), 10)]];\n if (asst) {\n asst.tree.children = asst.tree.assistants = [];\n asst.y = bottom;\n asstElement = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]];\n asstHeight = asstElement.actualSize.height;\n if (layout.orientation.indexOf('Left') !== -1) {\n asstHeight = asstElement.actualSize.width;\n }\n max = bottom + asstHeight + vSpace / 2;\n layout.maxLevel = lev + 1;\n if (i % 2 === 1 && i !== info.tree.assistants.length - 1) {\n bottom = max;\n lev++;\n }\n }\n }\n return { level: layout.maxLevel, bottom: bottom + asstHeight + vSpace };\n };\n HierarchicalTree.prototype.setBreadthSpaceForAssistants = function (layout, shape, dim, space, bottom, level) {\n var asst = {};\n var asstWidth;\n //let prevBounds: number;\n var bounds;\n var asstElement;\n var i;\n var info = layout.graphNodes[shape.id];\n //let max: number = bottom;\n var lev = level;\n var left;\n var diff;\n var intersect;\n var levelBounds = { x: 0, y: 0, right: 0, bottom: 0 };\n for (i = 0; i < info.tree.assistants.length; i++) {\n asst = layout.graphNodes[info.tree.assistants[parseInt(i.toString(), 10)]];\n //Arrange assistants at both left and right sides of parent(like alternate layout)\n //Check - By default, distance to be left between parent and child nodes is assumed as 20.\n //It can be modified/customized later.\n if (asst) {\n asstElement = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]];\n asstWidth = asstElement.actualSize.width;\n if (layout.orientation.indexOf('Left') !== -1) {\n asstWidth = asstElement.actualSize.height;\n }\n if (i % 2 === 0) {\n left = space + dim.width / 2 - 20 - asstWidth;\n }\n else {\n left = space + dim.width / 2 + 20;\n }\n //Check - What will happen if update leaf node is called? Since assistants don't have children\n bounds = this.updateTree(layout, left, asst.y, layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]], lev + 1);\n if (!this.hasChild(layout, shape)) {\n if (i === 0) {\n levelBounds = bounds;\n }\n else {\n this.uniteRects(levelBounds, bounds);\n }\n }\n if (i % 2 === 0 && asst.prevBounds) {\n if (diff === undefined) {\n diff = asst.canMoveBy;\n }\n else {\n diff = Math.min(diff, asst.canMoveBy);\n }\n }\n if (i % 2 === 1 || i === info.tree.assistants.length - 1) {\n intersect = this.findIntersectingLevels(layout, bounds, lev + 1);\n //Update rightmost positions of known layout levels\n this.updateRearBounds(layout, null, [{ rBounds: bounds }], lev + 1, intersect);\n lev++;\n }\n }\n }\n if (levelBounds) {\n levelBounds.canMoveBy = diff;\n }\n return levelBounds;\n };\n HierarchicalTree.prototype.getDimensions = function (layout, shape, x, y, level) {\n var width;\n width = shape.actualSize.width;\n var height;\n height = shape.actualSize.height;\n if (layout.orientation.indexOf('Left') !== -1) {\n if (!level) {\n //let temp: number;\n var temp = x;\n x = y;\n y = temp;\n }\n height = shape.actualSize.width;\n width = shape.actualSize.height;\n }\n return { x: x, y: y, width: width, height: height };\n };\n HierarchicalTree.prototype.hasChild = function (layout, shape) {\n //Check whether the node has children\n var shape1 = layout.graphNodes[shape.id];\n return shape1 ? shape1.tree.children && shape1.tree.children.length : 0;\n };\n HierarchicalTree.prototype.updateHorizontalTree = function (layout, shape, prev, x, y, level) {\n //Get dimensions with respect to layout orientations\n //let dimensions: Dimensions;\n var dimensions = this.getDimensions(layout, shape, x, y, level);\n var info = {};\n info = layout.graphNodes[shape.id];\n var side = info.tree.type;\n //let lev: number;\n var lev = level;\n var right = 0;\n right = x;\n var bottom = y;\n var width;\n var height;\n var child;\n var childBounds;\n var childWidth;\n var childHeight;\n //let prevBounds: Bounds;\n var bounds;\n var actBounds;\n var maxLevel;\n var translateSibilingsBy;\n var canMoveBy;\n var oldActBounds;\n var i;\n var childInfo;\n var firstChildInfo;\n var prevLayoutLevels = layout.levels.slice(0, layout.levels.length);\n if (this.hasChild(layout, shape)) {\n //let h: boolean;\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n for (i = 0; i < info.tree.children.length; i++) {\n child = layout.nameTable[info.tree.children[parseInt(i.toString(), 10)]];\n width = child.actualSize.width;\n height = child.actualSize.height;\n childWidth = h ? height : width;\n childHeight = h ? width : height;\n var prevBounds = layout.levels[lev + 1] ? layout.levels[lev + 1].rBounds : null;\n //Update sub tree\n childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[info.tree.children[i - 1]]);\n childInfo = layout.graphNodes[child.id];\n info.maxLevel = Math.max(info.maxLevel || 0, childInfo.maxLevel || 0);\n actBounds = { x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth, bottom: childInfo.y + childHeight };\n if (i === 0) {\n //Compare with previous(right most) subtree\n bounds = {\n x: Math.min(childInfo.x, childBounds.x), y: Math.min(childInfo.y, childBounds.y),\n right: childBounds.right, bottom: childBounds.bottom\n };\n firstChildInfo = childInfo;\n }\n if (!oldActBounds) {\n oldActBounds = actBounds;\n }\n else {\n oldActBounds.x = actBounds.x;\n oldActBounds.y = actBounds.y;\n if (actBounds.right > oldActBounds.right) {\n oldActBounds.right = actBounds.right;\n }\n oldActBounds.bottom = actBounds.bottom;\n //oldActBounds = actBounds;\n }\n //Compare with previous subtree if level of the child is greater than the level of previous sub tree\n //Check - what will happen if level of second child is greater than current child\n if (i === 0) {\n info.firstChild = { x: childInfo.x, canMoveBy: childInfo.canMoveBy, child: child.id };\n }\n if (this.hasChild(layout, child)) {\n if (!info.firstChild || info.firstChild.x >= childInfo.firstChild.x) {\n if (childInfo.firstChild && info.firstChild.canMoveBy < childInfo.canMoveBy) {\n canMoveBy = info.firstChild.canMoveBy;\n childInfo.canMoveBy = canMoveBy;\n layout.graphNodes[info.firstChild.child].canMoveBy = canMoveBy;\n info.firstChild.canMoveBy = canMoveBy;\n }\n var canMoveValue = canMoveBy !== undefined ? canMoveBy : childInfo.canMoveBy;\n info.firstChild = { x: childInfo.firstChild.x, canMoveBy: canMoveValue, child: child.id };\n }\n else if (childInfo.firstChild && childInfo.translated && info.firstChild.canMoveBy > childInfo.canMoveBy) {\n info.firstChild.canMoveBy = layout.graphNodes[info.firstChild.child].canMoveBy = childInfo.canMoveBy;\n }\n }\n maxLevel = maxLevel ? Math.max(childInfo.maxLevel, maxLevel) : childInfo.maxLevel;\n this.uniteRects(bounds, childBounds);\n if (i !== 0 && !this.hasChild(layout, child) && childInfo.subTreeTranslation < 0) {\n right = childBounds.right - childInfo.subTreeTranslation + layout.horizontalSpacing;\n }\n else {\n right = childBounds.right + layout.horizontalSpacing;\n }\n }\n if (!isNaN(translateSibilingsBy)) {\n firstChildInfo.canMoveBy = translateSibilingsBy;\n }\n info.mid = (firstChildInfo.x + oldActBounds.right) / 2 - dimensions.width / 2;\n //Set parent based on the chart type\n if (side === 'Left') {\n info.mid = actBounds.right - dimensions.width;\n }\n else if (side === 'Right') {\n info.mid = x;\n }\n }\n return bounds;\n };\n /* eslint-disable */\n HierarchicalTree.prototype.updateHorizontalTreeWithMultipleRows = function (layout, shape, prev, x, y, level) {\n //declarations\n var child;\n var childInfo;\n var childBounds;\n var childWidth;\n var childHeight;\n var firstChildInfo;\n var maxLevel;\n var bounds;\n var rowBounds;\n var width;\n var height;\n var diff;\n var translateSibilingsBy;\n var fchild;\n var maxRowWidth;\n var j;\n var i;\n var k;\n var max;\n var leftCenter;\n var rightCenter;\n //Get dimensions with respect to layout orientations\n var dimensions = this.getDimensions(layout, shape, x, y, level);\n var info = layout.graphNodes[shape.id];\n var side = info.tree.type;\n var lev = level;\n var right = x;\n var bottom = y;\n var prevLayoutLevels = layout.levels.slice(0, layout.levels.length);\n var minTranslation = 0;\n if (this.hasChild(layout, shape)) {\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n var align = void 0;\n var rows = this.splitChildrenInRows(layout, shape);\n var unique = info.tree.children.length === 5 && rows[0].length === 3;\n var leftTree = [];\n var rightTree = [];\n if (!unique) {\n this.splitRows(rows, leftTree, rightTree);\n }\n else {\n rightTree = rows;\n }\n var treeInfo = { leftTree: leftTree, rows: rows, rightTree: rightTree, dimensions: dimensions };\n var rightMost = this.updateLeftTree(layout, treeInfo, shape, x, bottom, lev);\n bounds = treeInfo.bounds;\n var rightX = void 0;\n var center = (rightMost || 0) + (rightMost !== undefined ? (layout.horizontalSpacing / 2) : 0);\n if (rightMost !== undefined) {\n info.mid = center - dimensions.width / 2;\n rightX = rightMost + layout.horizontalSpacing;\n }\n bottom = y;\n var rightBounds = void 0;\n rightBounds = [];\n for (i = 0; i < rightTree.length; i++) {\n if (rows[i].length % 2 === 1 && i === rightTree.length - 1 || unique) {\n right = x;\n }\n else {\n right = rightX || x;\n }\n if (i !== 0) {\n bottom = rightBounds[i - 1].bottom + layout.verticalSpacing;\n }\n for (j = 0; j < rightTree[i].length; j++) {\n child = layout.nameTable[rightTree[i][j]];\n width = child.actualSize.width;\n height = child.actualSize.height;\n childWidth = h ? height : width;\n childHeight = h ? width : height;\n //Update sub tree\n childInfo = layout.graphNodes[child.id];\n childInfo.actualLevel = lev + 1 + i;\n if (j === 0 && leftTree[i] && leftTree[i].length) {\n childInfo.translate = false;\n }\n if (unique && i === 1) {\n if (j === 0 && leftCenter + childWidth + layout.horizontalSpacing <= rightCenter) {\n align = true;\n right = leftCenter - childWidth / 2;\n }\n if (align && j === 1) {\n right = rightCenter - childWidth / 2;\n }\n }\n childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[rightTree[i][j - 1]]);\n if (unique && j <= 2 && i === 0) {\n if (j === 1) {\n leftCenter = childBounds.x - layout.horizontalSpacing / 2;\n rightCenter = childBounds.x + childWidth + layout.horizontalSpacing / 2;\n }\n }\n if (j === 0) {\n rightBounds[i] = { x: childBounds.x, y: childBounds.y, right: childBounds.right, bottom: childBounds.bottom };\n }\n else {\n this.uniteRects(rightBounds[i], childBounds);\n }\n if (!bounds) {\n bounds = {\n x: rightBounds[i].x, y: rightBounds[i].y, right: rightBounds[i].right,\n bottom: rightBounds[i].bottom\n };\n }\n this.uniteRects(bounds, rightBounds[i]);\n right = childBounds.right + layout.horizontalSpacing;\n if (!info.firstChild || ((i === rightTree.length - 1 && rows[i].length % 2 === 1) || unique)\n && j === 0 && childInfo.canMoveBy !== undefined && minTranslation > childInfo.canMoveBy) {\n minTranslation = Math.min(minTranslation, childInfo.canMoveBy || 0);\n info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy };\n }\n treeInfo.leftCenter = leftCenter;\n treeInfo.rightCenter = rightCenter;\n treeInfo.align = align;\n treeInfo.level = lev;\n treeInfo.rightBounds = rightBounds;\n this.alignRowsToCenter(layout, i, shape, treeInfo, rightX);\n }\n }\n }\n return bounds;\n };\n /* eslint-enable */\n HierarchicalTree.prototype.updateLeftTree = function (layout, treeInfo, shape, x, bottom, lev) {\n var leftTree = treeInfo.leftTree;\n var info = layout.graphNodes[shape.id];\n var right;\n var leftBounds = [];\n var minTranslation;\n var rightMost;\n var childBounds;\n var bounds;\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n //Arrange left side\n for (var i = 0; i < leftTree.length && leftTree[parseInt(i.toString(), 10)].length; i++) {\n right = x;\n if (leftBounds[i - 1]) {\n bottom = leftBounds[i - 1].bottom + layout.verticalSpacing;\n }\n for (var j = 0; j < leftTree[parseInt(i.toString(), 10)].length; j++) {\n var child = layout.nameTable[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]];\n var childWidth = h ? child.actualSize.height : child.actualSize.width;\n var childHeight = h ? child.actualSize.width : child.actualSize.height;\n //Update sub tree\n var childInfo = layout.graphNodes[child.id];\n childInfo.actualLevel = lev + 1 + i;\n childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[leftTree[parseInt(i.toString(), 10)][j - 1]]);\n if (j === 0) {\n leftBounds[parseInt(i.toString(), 10)] = {\n x: childBounds.x, y: childBounds.y, right: childBounds.right, bottom: childBounds.bottom\n };\n }\n else {\n this.uniteRects(leftBounds[parseInt(i.toString(), 10)], childBounds);\n }\n if (i === 0 && j === 0) {\n minTranslation = childInfo.canMoveBy;\n info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy };\n }\n else if (j === 0 && childInfo.canMoveBy !== undefined && minTranslation > childInfo.canMoveBy) {\n minTranslation = Math.min(minTranslation, childInfo.canMoveBy || 0);\n info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy };\n }\n right = childBounds.right + layout.horizontalSpacing;\n }\n if (i === 0) {\n rightMost = leftBounds[parseInt(i.toString(), 10)].right;\n }\n else {\n rightMost = Math.max(rightMost, leftBounds[parseInt(i.toString(), 10)].right);\n }\n }\n //Translate to same positions\n for (var i = 0; i < leftTree.length && leftTree[parseInt(i.toString(), 10)].length; i++) {\n if (rightMost !== leftBounds[parseInt(i.toString(), 10)].right) {\n var diff = rightMost - leftBounds[parseInt(i.toString(), 10)].right;\n for (var j = 0; j < leftTree[parseInt(i.toString(), 10)].length; j++) {\n var element = layout.nameTable[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]];\n var elementInfo = layout.graphNodes[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]];\n elementInfo.x += diff;\n }\n //leftBounds[i].x += diff;\n //leftBounds[i].right += diff;\n }\n if (i === 0) {\n bounds = { x: leftBounds[0].x, y: leftBounds[0].y, right: leftBounds[0].right, bottom: leftBounds[0].bottom };\n }\n else {\n this.uniteRects(bounds, leftBounds[parseInt(i.toString(), 10)]);\n }\n }\n treeInfo.bounds = bounds;\n return rightMost;\n };\n HierarchicalTree.prototype.alignRowsToCenter = function (layout, i, shape, treeInfo, rightX) {\n var max;\n var centered;\n var diff;\n var info = layout.graphNodes[shape.id];\n var rows = treeInfo.rows;\n var rightTree = treeInfo.rightTree;\n var leftCenter = treeInfo.leftCenter;\n var rightCenter = treeInfo.rightCenter;\n var align = treeInfo.align;\n var rightBounds = treeInfo.rightBounds;\n var dimensions = treeInfo.dimensions;\n var lev = treeInfo.level;\n var unique = info.tree.children.length === 5 && rows[0].length === 3;\n if (unique && i === 1) {\n max = (rightBounds[0].right - rightBounds[0].x) >= (rightBounds[1].right - rightBounds[1].x) ? 0 : 1;\n }\n if (i === rows.length - 1) {\n if (rows[parseInt(i.toString(), 10)].length % 2 === 1 || unique && i === 1) {\n centered = rightTree[parseInt(i.toString(), 10)][Math.floor(rightTree[parseInt(i.toString(), 10)].length / 2)];\n //let centerObjct: INode;\n var centerObjct = layout.nameTable[\"\" + centered];\n //let childDimension: Dimensions;\n var centeredX = layout.graphNodes[\"\" + centered].x;\n var centeredY = layout.graphNodes[\"\" + centered].y;\n var childDimension = this.getDimensions(layout, centerObjct, centeredX, centeredY, lev + 1);\n diff = undefined;\n if (!align && unique) {\n if (max === 1) {\n i = 0;\n }\n diff = (rightBounds[parseInt(max.toString(), 10)].x + rightBounds[parseInt(max.toString(), 10)].right) / 2\n - (rightBounds[parseInt(i.toString(), 10)].x\n + rightBounds[parseInt(i.toString(), 10)].right) / 2;\n if (i === 0) {\n info.mid += diff;\n }\n }\n else if (!unique && rightX !== undefined) {\n diff = rightX - layout.horizontalSpacing / 2 - (centeredX + childDimension.width / 2);\n }\n if (diff !== undefined) {\n this.updateRearBoundsOfTree(layout, rightTree[parseInt(i.toString(), 10)], diff, dimensions);\n }\n if (unique) {\n info.mid = (rightCenter + leftCenter) / 2 + (i === 0 ? diff : 0) - dimensions.width / 2;\n }\n if (info.mid === undefined && layout.graphNodes[\"\" + centered]) {\n info.mid = centeredX;\n }\n align = false;\n i++;\n }\n }\n };\n HierarchicalTree.prototype.updateRearBoundsOfTree = function (layout, rightTree, diff, dimensions) {\n for (var j = 0; j < rightTree.length; j++) {\n var childInfo = layout.graphNodes[rightTree[parseInt(j.toString(), 10)]];\n //let child: INode = layout.nameTable[rightTree[j]];\n childInfo.x += diff;\n childInfo.canMoveBy += diff;\n if (j === rightTree.length - 1) {\n //removed child dimensions call calculation, since that is not used\n var childBnds = {\n x: childInfo.x, y: childInfo.y, right: childInfo.x +\n dimensions.width, bottom: childInfo.y + dimensions.height\n };\n var intersect = this.findIntersectingLevels(layout, childBnds, childInfo.actualLevel);\n this.updateRearBounds(layout, null, [{ rBounds: childBnds }], childInfo.actualLevel, intersect);\n }\n }\n };\n HierarchicalTree.prototype.splitRows = function (rows, leftTree, rightTree) {\n for (var i = 0; i < rows.length; i++) {\n leftTree[parseInt(i.toString(), 10)] = [];\n rightTree[parseInt(i.toString(), 10)] = [];\n var half = void 0;\n half = rows[parseInt(i.toString(), 10)].length;\n if (rows[parseInt(i.toString(), 10)].length % 2 !== 1) {\n half = Math.ceil(rows[parseInt(i.toString(), 10)].length / 2);\n for (var k = 0; k < half; k++) {\n leftTree[parseInt(i.toString(), 10)].push(rows[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)]);\n }\n }\n for (var j = leftTree[parseInt(i.toString(), 10)].length; j < rows[parseInt(i.toString(), 10)].length; j++) {\n rightTree[parseInt(i.toString(), 10)].push(rows[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]);\n }\n }\n };\n HierarchicalTree.prototype.updateVerticalTree = function (layout, shape, x, y, level, dontUpdate) {\n //declarations\n var child;\n var childInfo;\n var childBounds;\n var childWidth;\n var childHeight;\n var prevBounds;\n var bounds;\n var actBounds;\n var oddBounds;\n var evenBounds;\n //let dimensions: Dimensions = this.getDimensions(layout, shape, x, y, level);\n var info = layout.graphNodes[shape.id];\n var firstChild = layout.nameTable[info.tree.children[0]];\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n var factor = info.tree.type === 'Left' ? -1 : 0;\n var right = x;\n var bottom = y;\n var lev = level;\n var i;\n var intersect;\n var type;\n var levels = [];\n var oddLevels = [];\n var canMoveBy; //let diff: number;\n for (i = 0; i < info.tree.children.length; i++) {\n if (info.tree.type === 'Alternate') {\n //arrange at both left and right\n type = (i % 2 === 0 && info.tree.children.length > 2) ? 'Left' : 'Right';\n factor = (i % 2 === 0 && info.tree.children.length > 2) ? -1 : 0;\n }\n right = x + this.findOffset(layout, shape, info, type);\n child = layout.nameTable[info.tree.children[parseInt(i.toString(), 10)]];\n childWidth = h ? child.actualSize.height : child.actualSize.width;\n childHeight = h ? child.actualSize.width : child.actualSize.height;\n //Update sub tree\n childBounds = this.updateTree(layout, right + factor * childWidth, bottom, child, level + 1, undefined, true);\n childInfo = layout.graphNodes[child.id];\n actBounds = { x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth, bottom: childInfo.y + childHeight };\n if (i === 0) {\n this.uniteRects(childBounds, actBounds);\n bounds = childBounds;\n }\n else {\n this.uniteRects(bounds, childBounds);\n }\n //Check and adjust the space left from previous subtree/sibling\n if (childInfo.prevBounds && !(info.tree.type === 'Alternate' && i % 2 === 1 && info.tree.children.length > 2)) {\n canMoveBy = canMoveBy !== undefined ? Math.min(childInfo.canMoveBy, canMoveBy) : childInfo.canMoveBy;\n }\n //Max level of the subtree node\n info.maxLevel = Math.max(info.maxLevel || 0, childInfo.maxLevel || 0);\n if (!(info.tree.type === 'Alternate' && info.tree.children.length > 2 && i % 2 === 0)) {\n if (info.tree.type === 'Alternate' && info.tree.children.length > 2) {\n //alternate - arrange children with even index(0,2,4,6,..) at the next level\n bottom = Math.max(childBounds.bottom, prevBounds.bottom) + layout.verticalSpacing / 2;\n }\n else {\n // left/right - arrange next child at the nect level(bottom)\n bottom = childBounds.bottom + layout.verticalSpacing / 2;\n }\n level = info.maxLevel;\n levels.push({ rBounds: actBounds });\n if (!evenBounds) {\n evenBounds = {\n x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth,\n bottom: childInfo.y + childHeight\n };\n }\n else {\n this.uniteRects(evenBounds, actBounds);\n }\n if (childInfo.levelBounds) {\n levels = levels.concat(childInfo.levelBounds);\n }\n }\n else {\n if (i !== 0) {\n bottom = prevBounds.bottom + layout.verticalSpacing / 2;\n }\n oddLevels.push({ rBounds: actBounds });\n if (childInfo.levelBounds) {\n oddLevels = oddLevels.concat(childInfo.levelBounds);\n }\n }\n if (i === 0) {\n info.firstChild = { x: childInfo.x, canMoveBy: childInfo.canMoveBy, child: child.id };\n }\n if (this.hasChild(layout, child)) {\n if (!info.firstChild || info.firstChild.x >= childInfo.firstChild.x) {\n if (childInfo.firstChild && info.firstChild.canMoveBy < childInfo.canMoveBy) {\n var canMoveBy_1 = info.firstChild.canMoveBy;\n childInfo.canMoveBy = canMoveBy_1;\n layout.graphNodes[info.firstChild.child].canMoveBy = canMoveBy_1;\n info.firstChild.canMoveBy = canMoveBy_1;\n }\n info.firstChild = {\n x: childInfo.firstChild.x, canMoveBy: canMoveBy !== undefined ? canMoveBy : childInfo.canMoveBy,\n child: child.id\n };\n }\n else if (childInfo.firstChild && childInfo.translated && info.firstChild.canMoveBy > childInfo.canMoveBy) {\n info.firstChild.canMoveBy = layout.graphNodes[info.firstChild.child].canMoveBy = childInfo.canMoveBy;\n }\n }\n prevBounds = actBounds;\n }\n //To set level bounds(right most position of levels)\n if (!dontUpdate) {\n if (info.tree.type === 'Alternate' && info.tree.children.length > 2) {\n oddBounds = {\n x: oddLevels[0].rBounds.x, y: oddLevels[0].rBounds.y,\n right: oddLevels[oddLevels.length - 1].rBounds.right, bottom: oddLevels[oddLevels.length - 1].rBounds.bottom\n };\n intersect = this.findIntersectingLevels(layout, oddBounds, lev + 1);\n this.updateRearBounds(layout, null, oddLevels, lev + 1, intersect);\n }\n intersect = this.findIntersectingLevels(layout, evenBounds || bounds, lev + 1);\n this.updateRearBounds(layout, null, evenBounds ? levels : [{ rBounds: bounds }], lev + 1, intersect);\n }\n else {\n info.levelBounds = levels;\n }\n if (!isNaN(canMoveBy)) {\n layout.graphNodes[firstChild.id].canMoveBy = canMoveBy;\n }\n info.childBounds = bounds;\n info.mid = x;\n return bounds;\n };\n HierarchicalTree.prototype.splitChildrenInRows = function (layout, shape) {\n //let info: LayoutInfo;\n var info = layout.graphNodes[shape.id];\n var column;\n column = 4;\n var rows = [];\n var childNodes;\n childNodes = info.tree.children.length;\n var children = this.extend(info.tree.children);\n if (info.tree.rows) {\n //let count: number;\n var count = info.tree.children.length;\n //let columns: number;\n var columns = info.tree.rows;\n if (columns % 2 === 0) {\n column = columns;\n }\n else {\n column = columns - 1;\n }\n }\n else if (info.tree.children.length === 3 || info.tree.children.length === 4) {\n column = 2;\n }\n else if (info.tree.children.length === 5) {\n column = 3;\n }\n while (childNodes > 0) {\n rows[rows.length] = children.splice(0, column);\n childNodes -= column;\n if (childNodes < column) {\n if (childNodes % 2 === 0) {\n column = childNodes;\n }\n else if (childNodes !== 1) {\n column = childNodes - 1;\n }\n if (childNodes < column) {\n column = childNodes;\n }\n }\n }\n return rows;\n };\n HierarchicalTree.prototype.extend = function (temp) {\n var i;\n var dummy = [];\n for (i = 0; i < temp.length; i++) {\n dummy[parseInt(i.toString(), 10)] = temp[parseInt(i.toString(), 10)];\n }\n return dummy;\n };\n HierarchicalTree.prototype.findOffset = function (layout, shape, info, type) {\n var offset = 0;\n var space = (layout.orientation.indexOf('Left') !== -1) ? shape.actualSize.height :\n shape.actualSize.width;\n var treeType = type ? type : info.tree.type;\n offset = info.tree.offset || 20;\n if (info.tree.type === 'Alternate') {\n if (offset >= layout.horizontalSpacing) {\n offset = layout.horizontalSpacing / 2;\n }\n }\n switch (treeType) {\n case 'Left':\n offset = space / 2 - offset;\n break;\n case 'Right':\n offset = offset + space / 2;\n break;\n }\n return offset;\n };\n HierarchicalTree.prototype.uniteRects = function (rect1, rect2) {\n //Unite two rects\n rect1.x = Math.min(rect1.x, rect2.x);\n rect1.right = Math.max(rect1.right, rect2.right);\n rect1.bottom = Math.max(rect1.bottom, rect2.bottom);\n };\n HierarchicalTree.prototype.spaceLeftFromPrevSubTree = function (layout, shape, bounds) {\n //let info: LayoutInfo;\n var info = layout.graphNodes[shape.id];\n var dif;\n var prevBounds; //let intersect: number[]; let k: number;\n //let space: number;\n var space = layout.horizontalSpacing;\n //Find the minimum distance to move towards previous sub tree\n for (var k = 0; k < info.intersect.length; k++) {\n prevBounds = layout.levels[info.intersect[parseInt(k.toString(), 10)]].rBounds;\n dif = bounds.x - (prevBounds.right + space);\n if (info.diff === undefined || dif < info.diff) {\n info.diff = dif;\n info.prevBounds = layout.levels[info.intersect[parseInt(k.toString(), 10)]].rBounds;\n }\n }\n };\n HierarchicalTree.prototype.findIntersectingLevels = function (layout, bounds, level, actualLevel) {\n //intersecting with exact Level\n //let bnds: Bounds;\n var bnds = { x: bounds.x, y: bounds.y, right: bounds.right, bottom: bounds.bottom };\n bnds.y -= layout.verticalSpacing / 2;\n bnds.bottom += layout.verticalSpacing / 2;\n //let intersectingLevels: number[];\n var intersectingLevels = [];\n var rBounds;\n var l;\n l = actualLevel !== undefined ? actualLevel : level;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n //Performance - We can consider only the intersecting levels\n do {\n if (rBounds && ((bnds.y < rBounds.y && bnds.bottom > rBounds.y)\n || (bnds.y < rBounds.bottom && rBounds.bottom < bnds.bottom) ||\n bnds.y >= rBounds.y &&\n bnds.bottom <= rBounds.bottom || bnds.y < rBounds.y && bnds.bottom > rBounds.bottom)) {\n var index = 0;\n intersectingLevels.splice(index, 0, l);\n }\n else if (rBounds && rBounds.bottom < bnds.y) {\n break;\n }\n l--;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n } while (l >= 0);\n l = (actualLevel !== undefined ? actualLevel : level) + 1;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n do {\n if (rBounds && ((bnds.y < rBounds.y && bnds.bottom > rBounds.y) ||\n (bnds.y < rBounds.bottom && rBounds.bottom < bnds.bottom) ||\n bnds.y >= rBounds.y && bnds.bottom <= rBounds.bottom || bnds.y < rBounds.y && bnds.bottom > rBounds.bottom)) {\n intersectingLevels.push(l);\n }\n else if (rBounds && rBounds.y > bnds.bottom) {\n break;\n }\n l++;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n } while (l <= layout.levels.length);\n return intersectingLevels;\n };\n HierarchicalTree.prototype.findLevel = function (layout, bounds, level) {\n //let bnds: Bounds;\n var bnds = bounds;\n var l;\n l = 0;\n var rBounds;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n while (l < layout.levels.length) {\n if (rBounds && bnds.bottom < rBounds.y) {\n return l;\n }\n else {\n l++;\n }\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n }\n return l;\n };\n HierarchicalTree.prototype.getParentNode = function (layout, node) {\n //Return the first parent node\n return layout.nameTable[layout.nameTable[node.inEdges[0]].sourceID];\n };\n HierarchicalTree.prototype.updateEdges = function (layout, node, depth, action, nodes) {\n //let layoutInfo: LayoutInfo;\n var layoutInfo = layout.graphNodes[node.id];\n var j;\n if (node.outEdges && node.outEdges.length && (node.isExpanded || (action === DiagramAction.Render))) {\n for (j = 0; j < node.outEdges.length; j++) {\n //let edge: INode;\n var edge = layout.nameTable[layout.nameTable[node.outEdges[parseInt(j.toString(), 10)]].targetID];\n if (edge && !edge.excludeFromLayout) {\n if (layoutInfo.tree.children.indexOf(edge.id) === -1) {\n layoutInfo.tree.children.push(edge.id);\n }\n if (edge.outEdges && edge.outEdges.length && edge.isExpanded) {\n layoutInfo.tree.hasSubTree = true;\n }\n this.updateEdges(layout, edge, depth + 1, action, nodes);\n }\n }\n }\n //set level info\n layoutInfo.tree.level = depth;\n //By default, orientation is horizontal for nested trees\n if (layoutInfo.tree.hasSubTree) {\n layoutInfo.tree.orientation = 'Horizontal';\n layoutInfo.tree.type = 'Center';\n }\n //Customizing assistants and children collection\n //Performance-Instead of reading the method everytime, we can set once and can reuse that\n if ((layout.getLayoutInfo || layout.layoutInfo) && layout.type === 'OrganizationalChart') {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n layout.getLayoutInfo ?\n layout.getLayoutInfo(node, layoutInfo.tree) : updateLayoutValue(layoutInfo.tree, layout.layoutInfo, nodes, node);\n if (layoutInfo.tree.type === 'Balanced' && layoutInfo.tree.hasSubTree) {\n layoutInfo.tree.type = 'Center';\n layoutInfo.tree.orientation = 'Horizontal';\n }\n }\n if (layout.level && layoutInfo.tree.type !== 'Alternate' && depth >= layout.level) {\n layoutInfo.tree.hasSubTree = false;\n }\n };\n /* eslint-disable */\n HierarchicalTree.prototype.updateAnchor = function (layout, bounds, viewPort) {\n var node;\n var fixedNode;\n var width = 0;\n var height = 0;\n var mod = 0;\n var yValue = 0;\n var viewPortBounds = new Rect(0, 0, viewPort.x, viewPort.y); //let layoutBounds: Rect;\n var layoutBounds = layout.bounds ? layout.bounds : viewPortBounds;\n var orientation = layout.orientation;\n //Anchor based on fixed nodes\n if (layout.fixedNode) {\n fixedNode = layout.nameTable[layout.fixedNode];\n width = fixedNode.actualSize.width;\n height = fixedNode.actualSize.height;\n layout.anchorX = fixedNode.offsetX;\n layout.anchorY = fixedNode.offsetY;\n var pivot = fixedNode.pivot;\n layout.anchorX += layout.orientation === 'RightToLeft' ? width * pivot.x : -width * pivot.x;\n layout.anchorY += layout.orientation === 'BottomToTop' ? height * pivot.y : -height * pivot.y;\n node = fixedNode;\n mod = 0;\n while (node.inEdges.length) {\n node = this.getParentNode(layout, node);\n mod += layout.graphNodes[node.id].subTreeTranslation || 0;\n }\n if (layout.orientation.indexOf('Left') !== -1) {\n yValue = layout.graphNodes[fixedNode.id].y;\n // eslint-disable-next-line\n orientation === 'LeftToRight' ? layout.anchorX -= yValue : layout.anchorX += yValue;\n layout.anchorY -= layout.graphNodes[fixedNode.id].x + mod;\n }\n else {\n yValue = layout.graphNodes[fixedNode.id].y;\n // eslint-disable-next-line\n layout.anchorX -= layout.graphNodes[fixedNode.id].x + mod;\n orientation === 'TopToBottom' ? layout.anchorY -= yValue : layout.anchorY += yValue;\n }\n }\n else {\n if (orientation === 'TopToBottom' || orientation === 'BottomToTop') {\n switch (layout.horizontalAlignment) {\n case 'Left':\n layout.anchorX = (layoutBounds.x - bounds.x) + layout.margin.left;\n break;\n case 'Right':\n layout.anchorX = layoutBounds.x + layoutBounds.width - layout.margin.right - bounds.right;\n break;\n case 'Auto':\n case 'Center':\n layout.anchorX = layoutBounds.x + layoutBounds.width / 2 - (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layout.verticalAlignment) {\n case 'Auto':\n case 'Top':\n var top_1;\n top_1 = layoutBounds.y + layout.margin.top;\n layout.anchorY = orientation === 'TopToBottom' ? top_1 : bounds.bottom + top_1;\n break;\n case 'Bottom':\n var bottom = void 0;\n bottom = layoutBounds.y + layoutBounds.height - layout.margin.bottom;\n layout.anchorY = orientation === 'TopToBottom' ? bottom - bounds.bottom : bottom;\n break;\n case 'Center':\n var center = void 0;\n center = layoutBounds.y + layoutBounds.height / 2;\n layout.anchorY = layout.orientation === 'TopToBottom' ?\n center - (bounds.y + bounds.bottom) / 2 : center + (bounds.y + bounds.bottom) / 2;\n break;\n }\n }\n else {\n switch (layout.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n var left = void 0;\n left = layoutBounds.x + layout.margin.left;\n layout.anchorX = orientation === 'LeftToRight' ? left : bounds.bottom + left;\n break;\n case 'Right':\n var right = void 0;\n right = layoutBounds.x + layoutBounds.width - layout.margin.right;\n layout.anchorX = orientation === 'LeftToRight' ? right - bounds.bottom : right;\n break;\n case 'Center':\n var center = void 0;\n center = layoutBounds.width / 2 + layoutBounds.x;\n layout.anchorX = layout.orientation === 'LeftToRight' ?\n center - (bounds.y + bounds.bottom) / 2 : center + (bounds.y + bounds.bottom) / 2;\n break;\n }\n switch (layout.verticalAlignment) {\n case 'Top':\n layout.anchorY = layoutBounds.y + layout.margin.top - bounds.x;\n break;\n case 'Auto':\n case 'Center':\n layout.anchorY = layoutBounds.y + layoutBounds.height / 2 - (bounds.right + bounds.x) / 2;\n break;\n case 'Bottom':\n layout.anchorY = layoutBounds.y + layoutBounds.height - layout.margin.bottom - bounds.right;\n break;\n }\n }\n }\n };\n /* eslint-enable */\n HierarchicalTree.prototype.updateConnectors = function (layout, node, level) {\n var i;\n //let info: LayoutInfo;\n //let nodeWidth: number; let nodeHeight: number; let targetWidth: number; let targetHeight: number;\n //let length: number; let offsetLen: number; let points: PointModel[];\n //let segments: ConnSegments;\n var target;\n var conn;\n //Route out edges\n var info = layout.graphNodes[node.id];\n var direction;\n if (node.outEdges.length) {\n for (i = 0; i < node.outEdges.length; i++) {\n conn = layout.nameTable[node.outEdges[parseInt(i.toString(), 10)]];\n conn.points = [];\n target = layout.nameTable[conn.targetID];\n if (conn.visible) {\n conn.visited = true;\n if (layout.getConnectorSegments) {\n var segments = layout.getConnectorSegments(conn);\n }\n else {\n if (info && info.tree.children.indexOf(conn.targetID) !== -1) {\n if (conn.type === 'Bezier' && layout.connectionPointOrigin === 'SamePoint') {\n conn.segments = [];\n (conn.segments).push(new BezierSegment(conn, 'segments', { type: 'Bezier' }, true));\n }\n if (layout.type === 'OrganizationalChart' && conn.type === 'Orthogonal') {\n conn.segments = [];\n this.updateSegments(layout, conn, node, target, i);\n }\n }\n }\n if (target && (target.isExpanded || this.hasChild(layout, target))) {\n this.updateConnectors(layout, target, level + 1);\n }\n }\n }\n }\n if (info && info.tree.assistants.length) {\n //In-Edge routing of assistant nodes\n for (i = 0; i < info.tree.assistants.length; i++) {\n target = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]];\n conn = layout.nameTable[target.inEdges[0]];\n this.get3Points(layout, node, target, conn);\n if (target.isExpanded || this.hasChild(layout, target)) {\n this.updateConnectors(layout, target, level + 1);\n }\n }\n }\n };\n HierarchicalTree.prototype.updateSegments = function (layout, conn, node, target, i) {\n var info = layout.graphNodes[node.id];\n //Connector routing - Horizontal layout orientation\n if (info.tree.assistants.length) {\n //Route in-edge of child node, if the parent has assistant\n this.updateSegmentsForHorizontalOrientation(layout, node, target, conn);\n }\n else {\n //Route in-edge of child node\n if (info.tree.orientation === 'Horizontal' && info.tree.type === 'Balanced') {\n this.updateSegmentsForBalancedTree(layout, conn, node, target, i);\n }\n else {\n if (info.tree.orientation === 'Horizontal') {\n this.updateSegmentsForHorizontalOrientation(layout, node, target, conn);\n }\n else {\n if (info.tree.offset < 5) {\n this.get5Points(layout, node, target, conn);\n }\n else {\n this.get3Points(layout, node, target, conn);\n }\n }\n }\n }\n };\n HierarchicalTree.prototype.updateSegmentsForBalancedTree = function (layout, connector, node, target, i) {\n var info = layout.graphNodes[node.id];\n var center;\n var relative;\n if (info.tree.children.length === 5 && i > 2) {\n relative = info.tree.children[1];\n if (isNaN(layout.graphNodes[\"\" + relative].treeWidth)) {\n layout.graphNodes[\"\" + relative].treeWidth = layout.nameTable[\"\" + relative].actualSize.width;\n }\n var factor = i !== 3 ? 1 : -1;\n if (layout.orientation.indexOf('Left') !== -1) {\n center = layout.nameTable[\"\" + relative].offsetY - layout.graphNodes[\"\" + relative].treeWidth / 2 -\n (layout.verticalSpacing * factor / 2);\n }\n else {\n var center_1 = layout.nameTable[\"\" + relative].offsetX +\n layout.graphNodes[\"\" + relative].treeWidth / 2 + (layout.horizontalSpacing * factor) / 2;\n }\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n else {\n if (info.tree.children.length > 5) {\n if (i < 4 || i < info.tree.rows) {\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n else {\n this.updateSegmentsForHorizontalOrientation(layout, node, target, connector);\n }\n }\n else if (info.tree.children.length === 4) {\n if (i < 2 || i < info.tree.rows) {\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n else {\n this.updateSegmentsForHorizontalOrientation(layout, node, target, connector);\n }\n }\n else {\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n }\n };\n HierarchicalTree.prototype.get3Points = function (layout, node, target, connector) {\n var points = [];\n var nodeBounds = this.getBounds(node);\n var targetBounds = this.getBounds(target);\n if (layout.orientation.indexOf('Top') !== -1) {\n var startingPoint = layout.orientation.indexOf('Top') === 0 ? nodeBounds.bottomCenter :\n nodeBounds.topCenter;\n var endPoint = node.offsetX > target.offsetX ? targetBounds.middleRight : targetBounds.middleLeft;\n points.push(startingPoint, { x: nodeBounds.bottomCenter.x, y: endPoint.y }, endPoint);\n }\n else {\n var startingPoint = layout.orientation.indexOf('Left') === 0 ? nodeBounds.middleRight :\n nodeBounds.middleLeft;\n var endPoint = node.offsetY > target.offsetY ? targetBounds.bottomCenter : targetBounds.topCenter;\n points.push(startingPoint, { x: targetBounds.bottomCenter.x, y: nodeBounds.middleRight.y }, endPoint);\n }\n this.getSegmentsFromPoints(points, connector);\n };\n HierarchicalTree.prototype.get5Points = function (layout, node, target, connector) {\n var points = [];\n //let layoutprop: Layout;\n var nodeBounds = this.getBounds(node);\n var targetBounds = this.getBounds(target);\n //let info: LayoutInfo = layout.graphNodes[node.id];\n var startingPoint;\n var endPoint;\n var horizontalSpacing;\n var verticalSpacing;\n if (layout.orientation.indexOf('Top') !== -1) {\n startingPoint = (node.offsetY < target.offsetY) ? nodeBounds.bottomCenter : nodeBounds.topCenter;\n verticalSpacing = layout.verticalSpacing / 4 * ((node.offsetY < target.offsetY) ? 1 : -1);\n horizontalSpacing = layout.horizontalSpacing / 2 * ((node.offsetX > target.offsetX) ? 1 : -1);\n endPoint = (node.offsetX > target.offsetX) ? targetBounds.middleRight : targetBounds.middleLeft;\n points.push(startingPoint, { x: startingPoint.x, y: startingPoint.y + verticalSpacing }, { x: endPoint.x + horizontalSpacing, y: startingPoint.y + verticalSpacing }, { x: endPoint.x + horizontalSpacing, y: endPoint.y }, endPoint);\n }\n else {\n startingPoint = (node.offsetX > target.offsetX) ? nodeBounds.middleLeft : nodeBounds.middleRight;\n endPoint = node.offsetY > target.offsetY ? targetBounds.bottomCenter : targetBounds.topCenter;\n horizontalSpacing = layout.horizontalSpacing / 4 * ((node.offsetX < target.offsetX) ? 1 : -1);\n verticalSpacing = layout.verticalSpacing / 2 * ((node.offsetY > target.offsetY) ? 1 : -1);\n points.push(startingPoint, { x: startingPoint.x + horizontalSpacing, y: startingPoint.y }, { x: startingPoint.x + horizontalSpacing, y: startingPoint.y + verticalSpacing }, { x: endPoint.x, y: startingPoint.y + verticalSpacing }, endPoint);\n }\n this.getSegmentsFromPoints(points, connector);\n };\n HierarchicalTree.prototype.getSegmentsFromPoints = function (points, connector) {\n var segments = [];\n var segment;\n for (var i = 0; i < points.length - 2; i++) {\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(points[parseInt(i.toString(), 10)], points[i + 1]);\n segment.length = Point.distancePoints(points[parseInt(i.toString(), 10)], points[i + 1]);\n segments.push(segment);\n }\n connector.segments = segments;\n };\n HierarchicalTree.prototype.getSegmentsForMultipleRows = function (layout, node, target, connector) {\n //let points: PointModel[] = [];\n var segments = [];\n var point;\n var segment;\n var targetBounds = this.getBounds(target);\n var nodeBounds = this.getBounds(node);\n switch (layout.orientation) {\n case 'TopToBottom':\n point = { x: nodeBounds.bottomCenter.x, y: (nodeBounds.bottomCenter.y + layout.verticalSpacing / 4) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.bottomCenter, point);\n segment.length = Point.distancePoints(nodeBounds.bottomCenter, point);\n segments.push(segment);\n break;\n case 'BottomToTop':\n point = { x: nodeBounds.bottomCenter.x, y: (nodeBounds.topCenter.y - layout.verticalSpacing / 4) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.topCenter, point);\n segment.length = Point.distancePoints(nodeBounds.topCenter, point);\n segments.push(segment);\n break;\n case 'LeftToRight':\n point = { x: (nodeBounds.middleRight.x + layout.verticalSpacing / 4), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleRight, point);\n segment.length = Point.distancePoints(nodeBounds.middleRight, point);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point3 = { x: (nodeBounds.middleRight.x + layout.verticalSpacing / 4), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point, point3);\n segment.length = Point.distancePoints(point, point3);\n segments.push(segment);\n }\n break;\n case 'RightToLeft':\n point = { x: (nodeBounds.middleLeft.x - layout.verticalSpacing / 4), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleLeft, point);\n segment.length = Point.distancePoints(nodeBounds.middleLeft, point);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point_1 = { x: (nodeBounds.middleLeft.x - layout.verticalSpacing / 4), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point_1, point_1);\n segment.length = Point.distancePoints(point_1, point_1);\n segments.push(segment);\n }\n break;\n }\n connector.segments = segments;\n };\n HierarchicalTree.prototype.updateSegmentsForHorizontalOrientation = function (layout, node, target, connector) {\n var points = [];\n var point2;\n var segment;\n var segments = [];\n var nodeBounds = this.getBounds(node);\n var targetBounds = this.getBounds(target);\n switch (layout.orientation) {\n case 'TopToBottom':\n point2 = { x: nodeBounds.bottomCenter.x, y: (targetBounds.topCenter.y - layout.verticalSpacing / 2) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.bottomCenter, point2);\n segment.length = Point.distancePoints(nodeBounds.bottomCenter, point2);\n segments.push(segment);\n break;\n case 'BottomToTop':\n point2 = { x: nodeBounds.topCenter.x, y: (targetBounds.bottomCenter.y + layout.verticalSpacing / 2) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.topCenter, point2);\n segment.length = Point.distancePoints(nodeBounds.topCenter, point2);\n segments.push(segment);\n break;\n case 'LeftToRight':\n point2 = { x: (targetBounds.middleLeft.x - layout.verticalSpacing / 2), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleRight, point2);\n segment.length = Point.distancePoints(nodeBounds.middleRight, point2);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point3 = { x: (targetBounds.middleLeft.x - layout.verticalSpacing / 2), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point2, point3);\n segment.length = Point.distancePoints(point2, point3);\n segments.push(segment);\n }\n break;\n case 'RightToLeft':\n point2 = { x: (targetBounds.middleRight.x + layout.verticalSpacing / 2), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleLeft, point2);\n segment.length = Point.distancePoints(nodeBounds.middleLeft, point2);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point = { x: (targetBounds.middleRight.x + layout.verticalSpacing / 2), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point2, point);\n segment.length = Point.distancePoints(point2, point);\n segments.push(segment);\n }\n break;\n }\n connector.segments = segments;\n return points;\n };\n HierarchicalTree.prototype.updateNodes = function (layout, node, mod, update, dx, dy) {\n var i;\n var child;\n var width;\n var height;\n var offsetX;\n var offsetY;\n if (node && !node.excludeFromLayout) {\n width = node.actualSize.width;\n height = node.actualSize.height;\n offsetX = layout.anchorX;\n offsetY = layout.anchorY;\n /*Performance - instead of checking conditions for every node, we can make the layout related\n conditions once and we can reuse them*/\n if (layout.orientation === 'LeftToRight') {\n offsetX += layout.graphNodes[node.id].y + width / 2;\n offsetY += layout.graphNodes[node.id].x + mod + height / 2;\n }\n else if (layout.orientation === 'RightToLeft') {\n offsetX -= layout.graphNodes[node.id].y + width / 2;\n offsetY += layout.graphNodes[node.id].x + mod + height / 2;\n }\n else if (layout.orientation === 'TopToBottom') {\n offsetX += layout.graphNodes[node.id].x + mod + width / 2;\n offsetY += layout.graphNodes[node.id].y + height / 2;\n }\n else {\n offsetX += layout.graphNodes[node.id].x + mod + width / 2;\n offsetY -= layout.graphNodes[node.id].y + height / 2;\n }\n if (layout.graphNodes) {\n dx = dx ? dx : 0;\n dy = dy ? dy : 0;\n offsetX += dx;\n offsetY += dy;\n if (!this.isAnimation) {\n node.offsetX = offsetX;\n node.offsetY = offsetY;\n }\n }\n var objects = { id: node.id, differenceX: offsetX - node.offsetX, differenceY: offsetY - node.offsetY };\n layout.objects.push(objects);\n var list = [];\n if (this.hasChild(layout, node)) {\n for (i = 0; i < layout.graphNodes[node.id].tree.children.length; i++) {\n child = layout.nameTable[layout.graphNodes[node.id].tree.children[parseInt(i.toString(), 10)]];\n this.updateNodes(layout, child, mod + (layout.graphNodes[node.id].subTreeTranslation || 0), update, dx, dy);\n list.push(child);\n }\n }\n if (layout.graphNodes[node.id].tree.assistants.length) {\n for (i = 0; i < layout.graphNodes[node.id].tree.assistants.length; i++) {\n child = layout.nameTable[layout.graphNodes[node.id].tree.assistants[parseInt(i.toString(), 10)]];\n this.updateNodes(layout, child, mod + (layout.graphNodes[node.id].subTreeTranslation || 0), null, dx, dy);\n }\n }\n }\n };\n return HierarchicalTree;\n}());\nexport { HierarchicalTree };\n","import { Rect } from '../primitives/rect';\nimport { getFunction } from '../utility/base-util';\nimport { HierarchicalTree } from './hierarchical-tree';\n/**\n * Layout for mind-map tree\n */\nvar MindMap = /** @class */ (function () {\n /**\n * Constructor for the organizational chart module.\n *\n * @private\n */\n function MindMap() {\n /**\n * Defines the layout animation\n *\n */\n this.isAnimation = false;\n //constructs the layout module\n }\n /**\n * To destroy the organizational chart\n *\n * @returns {void}\n * @private\n */\n MindMap.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Get module name.\n */\n MindMap.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n */\n return 'MindMapChart';\n };\n /**\n * @param nodes\n * @param nameTable\n * @param layoutProp\n * @param viewPort\n * @param uniqueId\n * @param root\n * @private\n */\n MindMap.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewPort, uniqueId, root) {\n var isRoot = this.checkRoot(nodes, layoutProp, uniqueId, root, nameTable);\n if (isRoot) {\n layoutProp.fixedNode = isRoot;\n }\n else {\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (!node.excludeFromLayout) {\n if (!node.inEdges || !node.inEdges.length) {\n layoutProp.fixedNode = node.id;\n break;\n }\n }\n }\n }\n var rootNode = nameTable[layoutProp.fixedNode];\n var fistLevelNodes = this.findFirstLevelNodes(rootNode, layoutProp, nameTable);\n var leftNodes = [];\n var rightNodes = [];\n var getMindmapBranch = getFunction(layoutProp.getBranch);\n getMindmapBranch = getMindmapBranch || getFunction(this.getBranch);\n for (var _a = 0, fistLevelNodes_1 = fistLevelNodes; _a < fistLevelNodes_1.length; _a++) {\n var node = fistLevelNodes_1[_a];\n var align = getMindmapBranch(node, fistLevelNodes);\n align = node && node.branch ? node.branch : align;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (align === 'Left') ? leftNodes.push(node) : rightNodes.push(node);\n }\n var viewPortBounds = new Rect(0, 0, viewPort.x, viewPort.y);\n nameTable[layoutProp.fixedNode].offsetX = viewPortBounds.x + viewPortBounds.width / 2;\n nameTable[layoutProp.fixedNode].offsetY = viewPortBounds.y + viewPortBounds.height / 2;\n if (leftNodes.length) {\n this.updateMindMapBranch(nodes, rightNodes, nameTable, layoutProp, viewPort, uniqueId, 'Left');\n }\n if (rightNodes.length) {\n this.updateMindMapBranch(nodes, leftNodes, nameTable, layoutProp, viewPort, uniqueId, 'Right');\n }\n };\n MindMap.prototype.checkRoot = function (nodes, layoutProp, uniqueId, root, nameTable) {\n for (var _i = 0, nodes_2 = nodes; _i < nodes_2.length; _i++) {\n var node = nodes_2[_i];\n if (!node.excludeFromLayout) {\n if (node.data && (node.data[\"\" + uniqueId].toString() === root || node.data[\"\" + uniqueId].toString()\n === layoutProp.root)) {\n return node.id;\n }\n else if (!node.data && node.id === layoutProp.root) {\n return node.id;\n }\n }\n }\n return '';\n };\n MindMap.prototype.updateMindMapBranch = function (nodes, excludeNodes, nameTable, layoutProp, viewPort, uniqueId, side) {\n var layout = {\n type: 'HierarchicalTree',\n horizontalSpacing: layoutProp.verticalSpacing, verticalSpacing: layoutProp.horizontalSpacing,\n verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment,\n fixedNode: layoutProp.fixedNode, getLayoutInfo: getFunction(layoutProp.getLayoutInfo),\n layoutInfo: layoutProp.layoutInfo, margin: layoutProp.margin,\n orientation: layoutProp.orientation,\n root: layoutProp.fixedNode\n };\n //(EJ2-277624)-Vertical orientation is not working in mindmap\n if (layout.orientation === 'Vertical') {\n layout.orientation = (side === 'Left') ? 'TopToBottom' : 'BottomToTop';\n }\n else {\n layout.orientation = (side === 'Left') ? 'LeftToRight' : 'RightToLeft';\n }\n this.excludeFromLayout(excludeNodes, nameTable, true);\n var mapLayout = new HierarchicalTree();\n mapLayout.updateLayout(nodes, nameTable, layout, viewPort, uniqueId);\n this.excludeFromLayout(excludeNodes, nameTable, false);\n };\n MindMap.prototype.getBranch = function (obj, firstLevelNodes) {\n var side;\n var i = firstLevelNodes.indexOf(obj);\n if (i % 2 === 0) {\n side = 'Left';\n }\n else {\n side = 'Right';\n }\n return side;\n };\n MindMap.prototype.excludeFromLayout = function (newCollection, nameTable, exclude) {\n for (var _i = 0, newCollection_1 = newCollection; _i < newCollection_1.length; _i++) {\n var newcol = newCollection_1[_i];\n var node = nameTable[newcol.id];\n node.excludeFromLayout = exclude;\n }\n };\n MindMap.prototype.findFirstLevelNodes = function (node, layout, nameTable) {\n var parentNode;\n var fistLevelNodes = [];\n if (node && node.outEdges.length) {\n for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) {\n var outEdge = _a[_i];\n fistLevelNodes.push(nameTable[nameTable[\"\" + outEdge].targetID]);\n }\n }\n return fistLevelNodes;\n };\n return MindMap;\n}());\nexport { MindMap };\n","/**\n * Radial Tree\n */\nvar RadialTree = /** @class */ (function () {\n /**\n * Constructor for the organizational chart module.\n *\n * @private\n */\n function RadialTree() {\n //constructs the layout module\n }\n /**\n * To destroy the organizational chart\n *\n * @returns {void}\n * @private\n */\n RadialTree.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Get module name.\n */\n RadialTree.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n */\n return 'RadialTree';\n };\n /**\n * @param nodes\n * @param nameTable\n * @param layoutProp\n * @param viewport\n * @private\n */\n RadialTree.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewport) {\n var layout = {\n type: layoutProp.type,\n nameTable: nameTable, anchorX: 0, anchorY: 0,\n firstLevelNodes: [], centerNode: null, levels: [], maxLevel: 0, graphNodes: {}, layoutNodes: [],\n orientation: layoutProp.orientation,\n horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing,\n verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment,\n fixedNode: layoutProp.fixedNode, margin: layoutProp.margin,\n bounds: layoutProp.bounds, objects: [], root: layoutProp.root\n };\n this.doLayout(layout, nodes, nameTable, viewport);\n };\n RadialTree.prototype.doLayout = function (layout, nodes, nameTable, viewport) {\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (!node.excludeFromLayout) {\n layout.graphNodes[node.id] = this.setUpLayoutInfo(layout, node);\n if (!node.inEdges || !node.inEdges.length) {\n layout.firstLevelNodes.push(node);\n }\n }\n }\n if (layout.root && nameTable[layout.root]) {\n layout.centerNode = nameTable[layout.root];\n }\n else if (layout.firstLevelNodes.length) {\n layout.centerNode = layout.firstLevelNodes[0];\n layout.root = layout.centerNode.id;\n }\n if (layout.centerNode) {\n this.updateEdges(layout, layout.centerNode, 0, nameTable);\n this.depthFirstAllignment(layout, layout.centerNode, 0, 0);\n this.populateLevels(layout);\n this.transformToCircleLayout(layout);\n this.updateAnchor(layout, viewport);\n this.updateNodes(layout, layout.centerNode, nameTable);\n }\n };\n RadialTree.prototype.updateEdges = function (layout, node, depth, nameTable) {\n var nodeInfo = layout.graphNodes[node.id];\n layout.layoutNodes.push(nodeInfo);\n nodeInfo.level = depth;\n nodeInfo.visited = true;\n layout.maxLevel = Math.max(layout.maxLevel, depth);\n for (var j = 0; j < node.outEdges.length; j++) {\n var edge = nameTable[nameTable[node.outEdges[parseInt(j.toString(), 10)]].targetID];\n if (!edge.excludeFromLayout && !edge.visited) {\n nodeInfo.children.push(edge);\n this.updateEdges(layout, edge, depth + 1, nameTable);\n }\n }\n };\n RadialTree.prototype.depthFirstAllignment = function (layout, node, x, y) {\n var newValue;\n var nodeInfo = layout.graphNodes[node.id];\n if (nodeInfo.children.length) {\n y += 300;\n for (var i = 0; i < nodeInfo.children.length; i++) {\n newValue = this.depthFirstAllignment(layout, nodeInfo.children[parseInt(i.toString(), 10)], x, y);\n x = newValue.x;\n y = newValue.y;\n }\n nodeInfo.children = nodeInfo.children.sort(function (obj1, obj2) {\n return layout.graphNodes[obj1.id].x - layout.graphNodes[obj2.id].x;\n });\n var min = layout.graphNodes[nodeInfo.children[0].id].min;\n var max = layout.graphNodes[nodeInfo.children[nodeInfo.children.length - 1].id].max;\n nodeInfo.x = min + (max - min) / 2;\n x = max + layout.horizontalSpacing;\n nodeInfo.segmentOffset = max + layout.horizontalSpacing;\n nodeInfo.x -= nodeInfo.width / 2;\n nodeInfo.y -= nodeInfo.height / 2;\n nodeInfo.min = min;\n nodeInfo.max = max;\n if (nodeInfo.x < min && nodeInfo.visited) {\n nodeInfo.x = min;\n x = nodeInfo.x + nodeInfo.width / 2 - (max - min) / 2;\n nodeInfo.visited = false;\n for (var i = 0; i < nodeInfo.children.length; i++) {\n newValue = this.depthFirstAllignment(layout, nodeInfo.children[parseInt(i.toString(), 10)], x, y);\n }\n nodeInfo.visited = true;\n x = nodeInfo.x + nodeInfo.width + layout.horizontalSpacing;\n }\n max = layout.graphNodes[nodeInfo.children[nodeInfo.children.length - 1].id].segmentOffset;\n x = x < max ? max : x;\n y -= 300;\n nodeInfo.y = y;\n }\n else {\n nodeInfo.x = x;\n nodeInfo.y = y;\n nodeInfo.min = x;\n nodeInfo.max = x + nodeInfo.width;\n x += nodeInfo.width + layout.horizontalSpacing;\n }\n return { x: x, y: y };\n };\n RadialTree.prototype.populateLevels = function (layout) {\n var stages = [];\n // eslint-disable-next-line prefer-spread\n var min = Math.min.apply(Math, layout.layoutNodes.map(function (nodeInfo) { return nodeInfo.x; }));\n // eslint-disable-next-line prefer-spread\n var max = Math.max.apply(Math, layout.layoutNodes.map(function (nodeInfo) {\n return nodeInfo.x + nodeInfo.width + layout.horizontalSpacing;\n }));\n var full = max - min;\n layout.levels = [];\n var _loop_1 = function (i) {\n stages = layout.layoutNodes.filter(function (nodeInfo) {\n if (nodeInfo.level === i) {\n return nodeInfo;\n }\n else {\n return null;\n }\n });\n var newlevel = {};\n stages = stages.sort(function (nodeInfo1, nodeInfo2) { return nodeInfo1.x - nodeInfo2.x; });\n newlevel.min = stages[0].x;\n newlevel.max = stages[stages.length - 1].x + stages[stages.length - 1].width + layout.horizontalSpacing;\n newlevel.actualCircumference = 0;\n newlevel.height = 0;\n for (var k = 0; k < stages.length; k++) {\n if (stages[parseInt(k.toString(), 10)].height > newlevel.height) {\n newlevel.height = stages[parseInt(k.toString(), 10)].height;\n }\n newlevel.actualCircumference += Math.max(stages[parseInt(k.toString(), 10)].width, stages[parseInt(k.toString(), 10)].height);\n if (k !== stages.length - 1) {\n newlevel.actualCircumference += layout.horizontalSpacing;\n }\n }\n newlevel.circumference = newlevel.max - newlevel.min;\n if (newlevel.actualCircumference < newlevel.circumference) {\n newlevel.circumference = (newlevel.circumference + newlevel.actualCircumference) / 2;\n }\n newlevel.radius = newlevel.circumference / (2 * Math.PI) + newlevel.height;\n newlevel.nodes = [];\n if (i > 1) {\n if (layout.levels[i - 1].radius + layout.levels[i - 1].height >= newlevel.radius) {\n newlevel.radius = layout.levels[i - 1].radius + layout.levels[i - 1].height;\n }\n }\n for (var j = 0; j < stages.length; j++) {\n stages[parseInt(j.toString(), 10)].ratio = Math.abs(stages[parseInt(j.toString(), 10)].x\n + stages[parseInt(j.toString(), 10)].width / 2 - min) / full;\n newlevel.nodes.push(stages[parseInt(j.toString(), 10)]);\n }\n layout.levels.push(newlevel);\n };\n for (var i = 0; i <= layout.maxLevel; i++) {\n _loop_1(i);\n }\n };\n RadialTree.prototype.transformToCircleLayout = function (layout) {\n var root = layout.graphNodes[layout.centerNode.id];\n root.x = 0;\n root.y = 0;\n for (var i = 1; i < layout.levels.length; i++) {\n for (var j = 0; j < layout.levels[parseInt(i.toString(), 10)].nodes.length; j++) {\n var nodeInfo = layout.levels[parseInt(i.toString(), 10)].nodes[parseInt(j.toString(), 10)];\n nodeInfo.x = Math.cos(nodeInfo.ratio * 360 * Math.PI / 180)\n * (layout.levels[parseInt(i.toString(), 10)].radius + layout.verticalSpacing * i);\n nodeInfo.y = Math.sin(nodeInfo.ratio * 360 * Math.PI / 180)\n * (layout.levels[parseInt(i.toString(), 10)].radius + layout.verticalSpacing * i);\n layout.anchorX = Math.min(layout.anchorX, nodeInfo.x);\n layout.anchorY = Math.min(layout.anchorY, nodeInfo.y);\n }\n }\n };\n RadialTree.prototype.updateAnchor = function (layout, viewPort) {\n layout.anchorX = layout.centerNode.offsetX || viewPort.x / 2;\n layout.anchorY = layout.centerNode.offsetY || viewPort.y / 2;\n };\n RadialTree.prototype.updateNodes = function (layout, node, nameTable) {\n var nodeInfo = layout.graphNodes[node.id];\n var offsetX = nodeInfo.x + layout.anchorX;\n var offsetY = nodeInfo.y + layout.anchorY;\n node.offsetX = offsetX;\n node.offsetY = offsetY;\n for (var i = 0; i < nodeInfo.children.length; i++) {\n var childInfo = nodeInfo.children[parseInt(i.toString(), 10)];\n this.updateNodes(layout, nameTable[childInfo.id], nameTable);\n }\n };\n RadialTree.prototype.setUpLayoutInfo = function (layout, item) {\n var info = {};\n info.name = item.id;\n info.x = 0;\n info.y = 0;\n info.min = 0;\n info.max = 0;\n info.width = item.actualSize.width;\n info.height = item.actualSize.height;\n info.children = [];\n info.level = 0;\n info.ratio = 0;\n info.visited = false;\n return info;\n };\n return RadialTree;\n}());\nexport { RadialTree };\n","import { Rect } from '../primitives/rect';\nimport { cloneObject } from '../utility/base-util';\nvar GraphForceNode = /** @class */ (function () {\n function GraphForceNode(gnNode) {\n /**\n * @private\n */\n this.velocityX = 0;\n /**\n * @private\n */\n this.velocityY = 0;\n /**\n * @private\n */\n this.nodes = [];\n this.graphNode = gnNode;\n var nNode = this.graphNode;\n var bounds = getGraphBounds(nNode);\n this.location = bounds.center;\n this.nodes = [];\n if (!gnNode.treeInfo.parents) {\n gnNode.treeInfo.parents = [];\n }\n if (!gnNode.treeInfo.children) {\n gnNode.treeInfo.children = [];\n }\n this.nodes = (gnNode.treeInfo.parents).concat(gnNode.treeInfo.children);\n }\n /**\n * applyChanges method\\\n *\n * @returns { void } applyChanges method .\\\n * @private\n */\n GraphForceNode.prototype.applyChanges = function () {\n this.graphNode.treeInfo.center = this.location;\n };\n return GraphForceNode;\n}());\nexport { GraphForceNode };\n/**\n * SymmetricalLayout\n */\nvar SymmetricLayout = /** @class */ (function () {\n function SymmetricLayout() {\n this.cdCOEF = 0.442;\n this.cfMAXVELOCITY = 50;\n this.cnMAXITERACTION = 1000;\n this.cnSPRINGLENGTH = 100;\n this.mszMaxForceVelocity = { width: this.cfMAXVELOCITY, height: this.cfMAXVELOCITY };\n /**\n * @private\n */\n this.springLength = 0;\n /**\n * @private\n */\n this.springFactor = this.cdCOEF;\n /**\n * @private\n */\n this.maxIteration = this.cnMAXITERACTION;\n this.springLength = this.cnSPRINGLENGTH;\n }\n /**\n *To destroy the layout\n *\n * @returns {void} To destroy the layout\n */\n SymmetricLayout.prototype.destroy = function () {\n /**\n * Destroys symmetricLayout\n */\n };\n SymmetricLayout.prototype.getModuleName = function () {\n return 'SymmetricalLayout';\n };\n SymmetricLayout.prototype.doGraphLayout = function (graphLayoutManager) {\n var graph = this.selectedNode;\n graph.treeInfo.Bounds = graphLayoutManager.getModelBounds(graphLayoutManager.nodes);\n var lstGraphNodes = graph.treeInfo.GraphNodes;\n var lstNodes = this.convertGraphNodes(lstGraphNodes);\n var count = lstNodes.length;\n count = Math.min(this.maxIteration, count * count * count);\n this.preLayoutNodes(lstNodes, graph.treeInfo.Bounds);\n for (var i = 0, nLenght = count; i < nLenght; i++) {\n this.makeSymmetricLayout(lstNodes);\n this.appendForces(lstNodes);\n }\n this.resetGraphPosition(lstNodes, graph);\n };\n SymmetricLayout.prototype.preLayoutNodes = function (lstNodes, rcBounds) {\n var fMaxSize = Math.max(rcBounds.width, rcBounds.height);\n var ptCenter = { x: fMaxSize / 2, y: fMaxSize / 2 };\n var dRotateAngle = 2 * Math.PI / lstNodes.length;\n var dAngle = dRotateAngle;\n for (var i = 0; i < lstNodes.length; i++) {\n var gnNode = lstNodes[parseInt(i.toString(), 10)];\n var forceNode = this.getForceNode(gnNode);\n forceNode.location = {\n x: ptCenter.x + fMaxSize * Number((Math.cos(dAngle)).toFixed(2)),\n y: ptCenter.y + fMaxSize * Number(Math.sin(dAngle).toFixed(2))\n };\n dAngle -= dRotateAngle;\n }\n };\n /**\n * doLayout method\\\n *\n * @returns { void } doLayout method .\\\n * @param {GraphLayoutManager} graphLayoutManager - provide the angle value.\n * @private\n */\n SymmetricLayout.prototype.doLayout = function (graphLayoutManager) {\n this.selectedNode = graphLayoutManager.selectedNode;\n this.doGraphLayout(graphLayoutManager);\n };\n SymmetricLayout.prototype.makeSymmetricLayout = function (lstNodes) {\n var forceNode;\n var force;\n for (var k = 0; k < lstNodes.length; k++) {\n var gnNode = lstNodes[parseInt(k.toString(), 10)];\n forceNode = this.getForceNode(gnNode);\n var nodes = forceNode.nodes;\n for (var l = 0; l < nodes.length; l++) {\n var gnChild = nodes[parseInt(l.toString(), 10)];\n this.calcNodesForce(forceNode, this.getForceNode(gnChild));\n }\n for (var i = 0, length_1 = nodes.length; i < length_1; i++) {\n if (length_1 < 2) {\n break;\n }\n var vtx1 = this.getForceNode(nodes[parseInt(i.toString(), 10)]);\n var vtx2 = (i + 1 >= length_1) ? this.getForceNode(nodes[0]) : this.getForceNode((nodes[i + 1]));\n var angle = (360 / nodes.length / 2) * Math.PI / 180;\n var normalDistance = 2 * this.springLength * Math.sin(angle);\n this.calcRelatesForce(vtx1, vtx2, normalDistance);\n }\n for (var s = 0; s < lstNodes.length; s++) {\n var gnChild = lstNodes[parseInt(s.toString(), 10)];\n if (!collectionContains(gnChild.id, nodes) && gnChild.id !== gnNode.id) {\n force = this.getForceNode(gnChild);\n this.updateNeigbour(forceNode, force);\n }\n }\n }\n };\n SymmetricLayout.prototype.appendForces = function (lstNodes) {\n var gfnNode = null;\n for (var k = 0; k < lstNodes.length; k++) {\n var gnNode = lstNodes[parseInt(k.toString(), 10)];\n gfnNode = this.getForceNode(gnNode);\n var ptPoint = gfnNode.location;\n ptPoint.x += Math.min(gfnNode.velocityX, this.mszMaxForceVelocity.width);\n ptPoint.y += Math.min(gfnNode.velocityY, this.mszMaxForceVelocity.height);\n gfnNode.velocityX = 0;\n gfnNode.velocityY = 0;\n gfnNode.location = ptPoint;\n }\n };\n SymmetricLayout.prototype.resetGraphPosition = function (lstNodes, graph) {\n var szMin = { width: Number.MAX_VALUE, height: Number.MAX_VALUE };\n var gfnNode = null;\n var gnNode;\n for (var k = 0; k < lstNodes.length; k++) {\n gnNode = lstNodes[parseInt(k.toString(), 10)];\n gfnNode = this.getForceNode(gnNode);\n var ptLocation = {\n x: gfnNode.location.x - gnNode.actualSize.width / 2,\n y: gfnNode.location.y - gnNode.actualSize.height / 2\n };\n szMin.width = Math.min(szMin.width, ptLocation.x);\n szMin.height = Math.min(szMin.height, ptLocation.y);\n }\n for (var k = 0; k < lstNodes.length; k++) {\n gnNode = lstNodes[parseInt(k.toString(), 10)];\n gfnNode = this.getForceNode(gnNode);\n var ptLocation = gfnNode.location;\n ptLocation.x -= szMin.width - (graph.treeInfo.location ? graph.treeInfo.location.x : 0);\n ptLocation.y -= szMin.height - (graph.treeInfo.location ? graph.treeInfo.location.y : 0);\n gfnNode.location = ptLocation;\n gfnNode.applyChanges();\n }\n };\n SymmetricLayout.prototype.convertGraphNodes = function (lstNodes) {\n var lstToReturn = [];\n var keys = Object.keys(lstNodes);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n var gnNode = lstNodes[\"\" + k];\n var forceNode = new GraphForceNode(gnNode);\n gnNode.treeInfo.tag = forceNode;\n lstToReturn.push(gnNode);\n }\n return lstToReturn;\n };\n /**\n * getForceNode method\\\n *\n * @returns { GraphForceNode } getForceNode method .\\\n * @param {IGraphObject} gnNode - provide the angle value.\n * @private\n */\n SymmetricLayout.prototype.getForceNode = function (gnNode) {\n return gnNode.treeInfo.tag;\n };\n SymmetricLayout.prototype.updateNeigbour = function (vtSource, vtTarget) {\n if (vtTarget == null || vtSource == null) {\n return;\n }\n var distance = this.pointDistance(vtSource.location, vtTarget.location);\n var angle = this.lineAngle(vtSource.location, vtTarget.location);\n var normalDistance = (this.springLength * 0.9);\n if (distance < normalDistance) {\n this.calcForce(distance, normalDistance, angle, vtTarget);\n }\n };\n SymmetricLayout.prototype.lineAngle = function (pt1, pt2) {\n var radians = 0;\n var vx = pt2.x - pt1.x;\n var vy = pt2.y - pt1.y;\n if (vx === 0) {\n if (vy <= 0) {\n radians = (3.0 * Math.PI) / 2.0;\n }\n else {\n radians = Math.PI / 2.0;\n }\n }\n else if (vy === 0) {\n if (vx < 0) {\n radians = Math.PI;\n }\n else {\n radians = 0;\n }\n }\n else {\n radians = Math.atan(vy / vx);\n if (vx < 0 && vy > 0) {\n radians = Math.PI + radians;\n }\n else if (vx < 0 && vy < 0) {\n radians = Math.PI + radians;\n }\n else if (vx > 0 && vy < 0) {\n radians = 2.0 * Math.PI + radians;\n }\n }\n return radians;\n };\n SymmetricLayout.prototype.pointDistance = function (pt1, pt2) {\n var d = 0;\n var dx = pt2.x - pt1.x;\n var dy = pt2.y - pt1.y;\n var t = (dx * dx) + (dy * dy);\n d = Math.sqrt(t);\n return d;\n };\n SymmetricLayout.prototype.calcRelatesForce = function (vtSource, vtTarget, normalDistance) {\n var distance = this.pointDistance(vtSource.location, vtTarget.location);\n var angle = this.lineAngle(vtSource.location, vtTarget.location);\n if (distance < normalDistance) {\n this.calcForce(distance, normalDistance, angle, vtTarget);\n }\n };\n /**\n * @param nodeCollection\n * @param connectors\n * @param symmetricLayout\n * @param nameTable\n * @param layout\n * @param viewPort\n * @private\n */\n /**\n * updateLayout method\\\n *\n * @returns { void } updateLayout method .\\\n * @param {IGraphObject[]} nodeCollection - provide the angle value.\n * @param {IGraphObject[]} connectors - provide the connectors value.\n * @param {SymmetricLayout} symmetricLayout - provide the symmetricLayout value.\n * @param {Object} nameTable - provide the nameTable value.\n * @param {Layout} layout - provide the layout value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @private\n */\n SymmetricLayout.prototype.updateLayout = function (nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort) {\n var layoutManager = new GraphLayoutManager();\n layoutManager.updateLayout(nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort);\n };\n SymmetricLayout.prototype.calcNodesForce = function (vtSource, vtTarget) {\n var distance = this.pointDistance(vtSource.location, vtTarget.location);\n var angle = this.lineAngle(vtSource.location, vtTarget.location);\n if (distance > this.springLength || distance < this.springLength) {\n this.calcForce(distance, this.springLength, angle, vtTarget);\n }\n };\n SymmetricLayout.prototype.calcForce = function (distance, minDist, angle, vtTarget) {\n var count = vtTarget.nodes.length;\n var length = distance - minDist;\n var factor = this.springFactor / (count * count) * Math.sqrt(count);\n var fVelocity = length * factor;\n var fOffset = fVelocity;\n var offsetX = Math.cos(angle) * fOffset;\n var offsetY = Math.sin(angle) * fOffset;\n vtTarget.velocityX -= offsetX;\n vtTarget.velocityY -= offsetY;\n };\n return SymmetricLayout;\n}());\nexport { SymmetricLayout };\nvar GraphLayoutManager = /** @class */ (function () {\n function GraphLayoutManager() {\n this.visitedStack = [];\n this.cycleEdgesCollection = [];\n this.graphObjects = [];\n this.passedNodes = [];\n }\n /**\n * @param nodeCollection\n * @param connectors\n * @param symmetricLayout\n * @param nameTable\n * @param layout\n * @param viewPort\n * @private\n */\n /**\n * updateLayout method\\\n *\n * @returns { boolean } updateLayout method .\\\n * @param {IGraphObject[]} nodeCollection - provide the nodeCollection value.\n * @param {IGraphObject[]} connectors - provide the nodeCollection value.\n * @param {SymmetricLayout} symmetricLayout - provide the nodeCollection value.\n * @param {Object} nameTable - provide the nodeCollection value.\n * @param {Layout} layout - provide the nodeCollection value.\n * @param {PointModel} viewPort - provide the nodeCollection value.\n * @private\n */\n GraphLayoutManager.prototype.updateLayout = function (nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort) {\n this.nameTable = nameTable;\n this.nodes = nodeCollection;\n this.connectors = connectors;\n var selectionList = nodeCollection;\n if (selectionList.length > 0) {\n this.mhelperSelectedNode = cloneObject(selectionList[0]);\n }\n for (var _i = 0, nodeCollection_1 = nodeCollection; _i < nodeCollection_1.length; _i++) {\n var node = nodeCollection_1[_i];\n var nodeGraphObject = node;\n nodeGraphObject.treeInfo = {};\n nodeGraphObject.treeInfo.graphType = 'Node';\n this.graphObjects.push(nodeGraphObject);\n }\n for (var _a = 0, connectors_1 = connectors; _a < connectors_1.length; _a++) {\n var connector = connectors_1[_a];\n var connectorGraphObject = connector;\n connectorGraphObject.treeInfo = {};\n connectorGraphObject.treeInfo.graphType = 'Connector';\n this.graphObjects.push(connectorGraphObject);\n }\n this.updateLayout1(this.graphObjects, symmetricLayout);\n var modelBounds = this.getModelBounds(selectionList);\n for (var i = 0; i < selectionList.length; i++) {\n var node = selectionList[parseInt(i.toString(), 10)];\n var trnsX = (viewPort.x - modelBounds.width) / 2;\n var margin = layout.margin;\n var dx = (node.treeInfo.tag.location.x - (node.offsetX - (node.actualSize.width / 2)) -\n modelBounds.x + trnsX + margin.left);\n var dy = (node.treeInfo.tag.location.y - (node.offsetY - (node.actualSize.height / 2)) - modelBounds.y + margin.top);\n node.offsetX += dx;\n node.offsetY += dy;\n delete node.treeInfo;\n }\n return true;\n };\n /**\n * getModelBounds method\\\n *\n * @returns { Rect } getModelBounds method .\\\n * @param {IGraphObject[]} lNodes - provide the angle value.\n * @private\n */\n GraphLayoutManager.prototype.getModelBounds = function (lNodes) {\n lNodes = lNodes.slice();\n var rect = null;\n var rect1 = null;\n var node;\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[parseInt(i.toString(), 10)];\n var bounds = getGraphBounds(node);\n rect = new Rect(node.treeInfo.tag ? node.treeInfo.tag.location.x : bounds.x, node.treeInfo.tag ? node.treeInfo.tag.location.y : bounds.y, node.actualSize.width, node.actualSize.height);\n if (rect1) {\n rect1 = rect1.uniteRect(rect);\n }\n else {\n rect1 = rect;\n }\n }\n return rect1;\n };\n GraphLayoutManager.prototype.updateLayout1 = function (nodesToLayout, symmetricLayout) {\n this.detectCyclesInGraph(nodesToLayout);\n var nodesCount = nodesToLayout.length;\n if (nodesCount > 0) {\n var cycleConnColln = [];\n var nodes = [];\n var nodeSymbols = [];\n for (var s = 0; s < nodesToLayout.length; s++) {\n var nd = nodesToLayout[parseInt(s.toString(), 10)];\n if (nd.treeInfo.isCycleEdge === undefined) {\n nd.treeInfo.isCycleEdge = false;\n }\n if (nd.treeInfo.graphType === 'Connector' && !nd.treeInfo.isCycleEdge) {\n nodes.push(nd);\n }\n else if (nd.treeInfo.graphType === 'Connector') {\n cycleConnColln.push(nd);\n }\n else {\n nodeSymbols.push(nd);\n }\n }\n nodes = nodes.concat(nodeSymbols);\n nodes = cycleConnColln.concat(nodes);\n while (nodesCount > this.dictionaryLength(this.passedNodes)) {\n this.getNodesToPosition(nodes);\n if (this.selectedNode == null) {\n continue;\n }\n symmetricLayout.doLayout(this);\n this.selectedNode = null;\n this.visitedStack = [];\n }\n this.passedNodes = null;\n this.selectedNode = null;\n }\n return false;\n };\n GraphLayoutManager.prototype.getNodesToPosition = function (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[parseInt(i.toString(), 10)];\n this.selectNodes(node);\n break;\n }\n };\n GraphLayoutManager.prototype.selectNodes = function (node) {\n var nodeGraph = node;\n if (node.treeInfo.graphType === 'Connector') {\n this.exploreGraphEdge(node);\n }\n else if (nodeGraph != null) {\n if (this.addNode(node, 'passed')) {\n this.addNode(node, 'selected');\n if (this.isConnectedToAnotherNode(nodeGraph)) {\n this.selectedNode = { treeInfo: {} };\n this.selectedNode.treeInfo.LeftMargin = 10;\n this.selectedNode.treeInfo.TopMargin = 10;\n this.selectConnectedNodes(nodeGraph);\n }\n }\n }\n };\n GraphLayoutManager.prototype.selectConnectedNodes = function (nodeGraph) {\n var graph = this.selectedNode;\n if (!graph.treeInfo.GraphNodes) {\n graph.treeInfo.GraphNodes = {};\n }\n var node = nodeGraph;\n this.addNode(node, 'passed');\n var nodeName = node.id;\n if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) {\n var gnNode = this.addGraphNode(node);\n this.getConnectedRelatives(gnNode);\n this.exploreRelatives(nodeGraph);\n }\n else {\n var graphNode = graph.treeInfo.GraphNodes[\"\" + nodeName];\n if (graphNode.treeInfo.Added) {\n graphNode.treeInfo.Added = false;\n this.getConnectedRelatives(graphNode);\n this.exploreRelatives(nodeGraph);\n }\n }\n };\n GraphLayoutManager.prototype.exploreRelatives = function (nodeGraph) {\n this.exploreRelatives1(nodeGraph, 'Parents');\n this.exploreRelatives1(nodeGraph, 'Children');\n };\n GraphLayoutManager.prototype.exploreRelatives1 = function (nodeGraph, relativesToExplore) {\n var edges = [];\n if (relativesToExplore === 'Parents') {\n edges = nodeGraph.inEdges;\n }\n else {\n edges = nodeGraph.outEdges;\n }\n for (var i = 0; i < edges.length; i++) {\n var edge = this.nameTable[edges[parseInt(i.toString(), 10)]];\n if (this.addNode(edge, 'passed')) {\n var fromNode = this.nameTable[edge.sourceID];\n var toNode = this.nameTable[edge.targetID];\n if (relativesToExplore === 'Parents' && fromNode != null &&\n collectionContains(fromNode.id, this.nodes)) {\n this.selectConnectedNodes(this.nameTable[edge.sourceID]);\n }\n else if (relativesToExplore === 'Children' && toNode != null &&\n collectionContains(toNode.id, this.nodes)) {\n this.selectConnectedNodes(this.nameTable[edge.targetID]);\n }\n }\n }\n };\n GraphLayoutManager.prototype.getConnectedRelatives = function (graphNode) {\n this.getConnectedParents(graphNode);\n this.getConnectedChildren(graphNode);\n };\n GraphLayoutManager.prototype.dictionaryContains = function (obj, keyObj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n if (keys[parseInt(i.toString(), 10)] === keyObj.id) {\n return true;\n }\n }\n return false;\n };\n GraphLayoutManager.prototype.dictionaryLength = function (obj) {\n var keys = Object.keys(obj);\n return keys.length;\n };\n GraphLayoutManager.prototype.getConnectedChildren = function (graphNode) {\n var graph = this.selectedNode;\n var nodeGraph = graphNode;\n for (var s = 0; s < nodeGraph.outEdges.length; s++) {\n var edge = this.nameTable[nodeGraph.outEdges[parseInt(s.toString(), 10)]];\n if (!edge.treeInfo.isCycleEdge) {\n var node = this.nameTable[edge.targetID];\n if (collectionContains(node.id, this.nodes) && node != null && node.visible) {\n var gnNodeChildren = void 0;\n if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) {\n gnNodeChildren = this.addGraphNode(node);\n gnNodeChildren.treeInfo.Added = true;\n }\n else {\n gnNodeChildren = graph.treeInfo.GraphNodes[node.id];\n }\n if (!graphNode.treeInfo.children) {\n graphNode.treeInfo.children = [];\n }\n if (!gnNodeChildren.treeInfo.parents) {\n gnNodeChildren.treeInfo.parents = [];\n }\n this.setNode(gnNodeChildren.treeInfo.parents, graphNode);\n if (this.findNode(graphNode.treeInfo.children, gnNodeChildren.id) < 0) {\n graphNode.treeInfo.children.push(gnNodeChildren);\n }\n }\n }\n }\n };\n GraphLayoutManager.prototype.getConnectedParents = function (graphNode) {\n var graph = this.selectedNode;\n var nodeGraph = graphNode;\n for (var s = 0; s < nodeGraph.inEdges.length; s++) {\n var edge = this.nameTable[nodeGraph.inEdges[parseInt(s.toString(), 10)]];\n if (!edge.treeInfo.isCycleEdge) {\n var node = this.nameTable[edge.sourceID];\n if (collectionContains(node.id, this.nodes) && node != null && node.visible) {\n var gnNode = void 0;\n if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) {\n gnNode = this.addGraphNode(node);\n gnNode.treeInfo.Added = true;\n }\n else {\n gnNode = graph.treeInfo.GraphNodes[node.id];\n }\n if (!graphNode.treeInfo.parents) {\n graphNode.treeInfo.parents = [];\n }\n if (!gnNode.treeInfo.children) {\n gnNode.treeInfo.children = [];\n }\n this.setNode(gnNode.treeInfo.children, graphNode);\n if (this.findNode(graphNode.treeInfo.parents, gnNode.id) < 0) {\n graphNode.treeInfo.parents.push(gnNode);\n }\n }\n }\n }\n };\n GraphLayoutManager.prototype.setNode = function (list, node) {\n var nIndex = this.findNode(list, node.id);\n if (nIndex >= 0 && nIndex < list.length) {\n list[parseInt(nIndex.toString(), 10)] = node;\n }\n else {\n list.push(node);\n }\n };\n GraphLayoutManager.prototype.findNode = function (list, fullName) {\n var nIndex = -1;\n if (list != null && fullName !== '') {\n for (var i = 0, nLength = list.length; i < nLength; i++) {\n var gnNode = list[parseInt(i.toString(), 10)];\n if (gnNode != null && gnNode.id === fullName) {\n nIndex = i;\n break;\n }\n }\n }\n return nIndex;\n };\n GraphLayoutManager.prototype.addGraphNode = function (node) {\n var graph = this.selectedNode;\n var gnNode = node;\n graph.treeInfo.GraphNodes[gnNode.id] = gnNode;\n var nodeHelper = this.mhelperSelectedNode;\n if (nodeHelper != null && node.id === nodeHelper.id) {\n this.mhelperSelectedNode = gnNode;\n }\n return gnNode;\n };\n GraphLayoutManager.prototype.isConnectedToAnotherNode = function (gnNode) {\n var bFoundConnectedNode = false;\n var edges = (gnNode.inEdges).concat(gnNode.outEdges);\n if (edges.length > 0) {\n if ((gnNode.inEdges != null) && (gnNode.inEdges.length > 0)) {\n bFoundConnectedNode = this.searchEdgeCollection(gnNode.inEdges, 'FromNode');\n }\n if ((!bFoundConnectedNode) && (gnNode.outEdges != null) && (gnNode.outEdges.length > 0)) {\n bFoundConnectedNode = this.searchEdgeCollection(gnNode.outEdges, 'ToNode');\n }\n }\n return bFoundConnectedNode;\n };\n GraphLayoutManager.prototype.searchEdgeCollection = function (edgesToSearchThrough, connectionDirection) {\n var bFoundConnectedNode = false;\n for (var i = 0; i < edgesToSearchThrough.length - 1; i++) {\n var edge = this.nameTable[edgesToSearchThrough[parseInt(i.toString(), 10)]];\n if (!this.addNode(edge, 'passed')) {\n continue;\n }\n if (!edge.treeInfo.isCycleEdge && ((connectionDirection === 'FromNode' && this.nameTable[edge.sourceID] != null)\n || (connectionDirection === 'ToNode' && this.nameTable[edge.targetID] != null))) {\n bFoundConnectedNode = true;\n break;\n }\n }\n return bFoundConnectedNode;\n };\n GraphLayoutManager.prototype.exploreGraphEdge = function (node) {\n var nodeLink = node;\n if (nodeLink != null && !nodeLink.treeInfo.isCycleEdge && this.addNode(node, 'passed')) {\n this.addNode(node, 'selected');\n var fromNode = this.nameTable[nodeLink.sourceID];\n var toNode = this.nameTable[nodeLink.targetID];\n if (fromNode != null) {\n this.selectNodes(fromNode);\n }\n }\n };\n GraphLayoutManager.prototype.addNode = function (nodeToAdd, collectionToAdd) {\n var bResult = true;\n var node = nodeToAdd;\n if (collectionToAdd === 'passed' || !node.visible) {\n if (!this.dictionaryContains(this.passedNodes, node)) {\n this.passedNodes[node.id] = node;\n }\n }\n if (!node.visible) {\n return false;\n }\n return bResult;\n };\n GraphLayoutManager.prototype.detectCyclesInGraph = function (nodes) {\n var vertex = [];\n var currentStack = [];\n for (var k = 0; k < nodes.length; k++) {\n if (!(nodes[parseInt(k.toString(), 10)].treeInfo.graphType === 'Connector')) {\n vertex.push(nodes[parseInt(k.toString(), 10)]);\n }\n }\n if (vertex.length > 0) {\n currentStack.push(vertex[0]);\n this.visitedStack.push(vertex[0]);\n while (currentStack.length > 0) {\n var top_1 = currentStack[currentStack.length - 1];\n var childNodes = this.getUnVisitedChildNodes(top_1);\n if (childNodes.length > 0) {\n var child = childNodes[0];\n var currentEdge = childNodes[childNodes.length - 1];\n if (collectionContains(child.id, this.visitedStack)) {\n currentEdge.treeInfo.isCycleEdge = true;\n this.cycleEdgesCollection.push(currentEdge);\n }\n else {\n currentStack.push(child);\n this.visitedStack.splice(0, 0, child);\n }\n }\n else {\n currentStack.pop();\n }\n }\n }\n };\n GraphLayoutManager.prototype.getUnVisitedChildNodes = function (top) {\n var childNodes = [];\n if (top.outEdges.length > 0) {\n for (var i = 0; i < top.outEdges.length; i++) {\n var con = this.nameTable[top.outEdges[parseInt(i.toString(), 10)]];\n if (!collectionContains(con.id, this.visitedStack)) {\n var toNode = this.nameTable[con.targetID];\n if (toNode != null) {\n childNodes.push(toNode);\n }\n childNodes.push(con);\n this.visitedStack.splice(0, 0, con);\n return childNodes;\n }\n }\n return childNodes;\n }\n return childNodes;\n };\n return GraphLayoutManager;\n}());\nexport { GraphLayoutManager };\n/**\n * getGraphBounds method\\\n *\n * @returns { void } getGraphBounds method .\\\n * @param {IGraphObject} node - provide the angle value.\n * @private\n */\nfunction getGraphBounds(node) {\n var x = node.offsetX - node.actualSize.width * node.pivot.x;\n var y = node.offsetY - node.actualSize.height * node.pivot.y;\n return new Rect(x, y, node.actualSize.width, node.actualSize.height);\n}\n/**\n * @param id\n * @param coll\n */\n/**\n * collectionContains method\\\n *\n * @returns { boolean } collectionContains method .\\\n * @param {string} id - provide the id value.\n * @param {IGraphObject[]} coll - provide the id value.\n * @private\n */\nfunction collectionContains(id, coll) {\n for (var i = 0; i < coll.length; i++) {\n if (coll[parseInt(i.toString(), 10)].id === id) {\n return true;\n }\n }\n return false;\n}\n","import { OrthogonalSegment } from '../objects/connector';\nimport { Rect as RectModel } from '../primitives/rect';\nimport { Point } from '../primitives/point';\nimport { findDistance, getConnectorDirection, intersect2 } from '../utility/diagram-util';\n/**\n * Connects diagram objects with layout algorithm\n */\nvar ComplexHierarchicalTree = /** @class */ (function () {\n /**\n * Constructor for the hierarchical tree layout module\n *\n * @private\n */\n function ComplexHierarchicalTree() {\n //constructs the layout module\n }\n /**\n * To destroy the hierarchical tree module\n *\n * @returns {void}\n * @private\n */\n ComplexHierarchicalTree.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n ComplexHierarchicalTree.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n *\n */\n return 'ComplexHierarchicalTree';\n };\n /**\n * doLayout method\\\n *\n * @returns { void } doLayout method .\\\n * @param {INode[]} nodes - provide the nodes value.\n * @param {{}} nameTable - provide the nameTable value.\n * @param {Layout} layout - provide the layout value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @param {Diagram} diagram - provide the diagram model.\n * @private\n */\n ComplexHierarchicalTree.prototype.doLayout = function (nodes, nameTable, layout, viewPort, diagram) {\n new HierarchicalLayoutUtil().doLayout(nodes, nameTable, layout, viewPort, diagram);\n };\n ComplexHierarchicalTree.prototype.getLayoutNodesCollection = function (nodes) {\n var nodesCollection = [];\n var node;\n var parentId = 'parentId';\n var processId = 'processId';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n //885697:Position of root node without the child node in complex hierarchical layout is not proper\n if (((node.inEdges.length + node.outEdges.length > 0) || (node.offsetX === 0 && node.offsetY === 0)) &&\n !node['' + parentId] && !node['' + processId]) {\n nodesCollection.push(node);\n }\n }\n return nodesCollection;\n };\n return ComplexHierarchicalTree;\n}());\nexport { ComplexHierarchicalTree };\n/**\n * Utility that arranges the nodes in hierarchical structure\n */\nvar HierarchicalLayoutUtil = /** @class */ (function () {\n function HierarchicalLayoutUtil() {\n this.nameTable = {};\n this.crossReduction = new CrossReduction();\n /**\n * The preferred vertical offset between edges exiting a vertex Default is 2.\n */\n this.previousEdgeOffset = 6;\n /**\n * The preferred horizontal distance between edges exiting a vertex Default is 5.\n */\n this.previousEdgeDistance = 5;\n /**\n * Holds the collection vertices, that are equivalent to nodes to be arranged\n */\n this.jettyPositions = {};\n /**\n * Internal cache of bottom-most value of Y for each rank\n */\n this.rankBottomY = null;\n /**\n * Internal cache of bottom-most value of X for each rank\n */\n this.limitX = null;\n /**\n * Internal cache of top-most values of Y for each rank\n */\n this.rankTopY = null;\n /**\n * The minimum parallelEdgeSpacing value is 12.\n */\n this.parallelEdgeSpacing = 10;\n /**\n * The minimum distance for an edge jetty from a vertex Default is 12.\n */\n this.minEdgeJetty = 12;\n }\n //Defines a vertex that is equivalent to a node object\n HierarchicalLayoutUtil.prototype.createVertex = function (node, value, x, y, width, height) {\n var geometry = { x: x, y: y, width: width, height: height };\n var vertex = {\n value: value, geometry: geometry, name: value, vertex: true,\n inEdges: node.inEdges.slice(), outEdges: node.outEdges.slice()\n };\n return vertex;\n };\n /**\n * Initializes the edges collection of the vertices\\\n *\n * @returns { IConnector[] } Initializes the edges collection of the vertices\\\n * @param {Vertex} node - provide the node value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getEdges = function (node) {\n var edges = [];\n if (node) {\n for (var i = 0; node.inEdges.length > 0 && i < node.inEdges.length; i++) {\n edges.push(this.nameTable[node.inEdges[parseInt(i.toString(), 10)]]);\n }\n for (var i = 0; node.outEdges.length > 0 && i < node.outEdges.length; i++) {\n edges.push(this.nameTable[node.outEdges[parseInt(i.toString(), 10)]]);\n }\n }\n return edges;\n };\n //Finds the root nodes of the layout\n HierarchicalLayoutUtil.prototype.findRoots = function (vertices) {\n var roots = [];\n var best = null;\n var maxDiff = -100000;\n for (var _i = 0, _a = Object.keys(vertices); _i < _a.length; _i++) {\n var i = _a[_i];\n var cell = vertices[\"\" + i];\n var conns = this.getEdges(cell);\n var outEdges = 0;\n var inEdges = 0;\n for (var k = 0; k < conns.length; k++) {\n var src = this.getVisibleTerminal(conns[parseInt(k.toString(), 10)], true);\n if (src.name === cell.name) {\n outEdges++;\n }\n else {\n inEdges++;\n }\n }\n if (inEdges === 0 && outEdges > 0) {\n roots.push(cell);\n }\n var diff = outEdges - inEdges;\n if (diff > maxDiff) {\n maxDiff = diff;\n best = cell;\n }\n }\n if (roots.length === 0 && best != null) {\n roots.push(best);\n }\n return roots;\n };\n /**\n * Returns the source/target vertex of the given connector \\\n *\n * @returns { Vertex } Returns the source/target vertex of the given connector \\\n * @param {IConnector} edge - provide the node value.\n * @param {boolean} source - provide the node value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getVisibleTerminal = function (edge, source) {\n var terminalCache = this.nameTable[edge.targetID];\n if (source) {\n terminalCache = this.nameTable[edge.sourceID];\n }\n for (var i = 0; i < this.vertices.length; i++) {\n if (this.vertices[parseInt(i.toString(), 10)].name === terminalCache.id) {\n return this.vertices[parseInt(i.toString(), 10)];\n }\n }\n return null;\n };\n /**\n * Traverses each sub tree, ensures there is no cycle in traversing \\\n *\n * @returns { {} } Traverses each sub tree, ensures there is no cycle in traversing .\\\n * @param {Vertex} vertex - provide the vertex value.\n * @param {boolean} directed - provide the directed value.\n * @param {IConnector} edge - provide the edge value.\n * @param {{}} currentComp - provide the currentComp value.\n * @param {{}[]} hierarchyVertices - provide the hierarchyVertices value.\n * @param {{}} filledVertices - provide the filledVertices value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.traverse = function (vertex, directed, edge, currentComp, hierarchyVertices, filledVertices) {\n if (vertex != null) {\n var vertexID = vertex.name;\n if ((filledVertices == null ? true : filledVertices[\"\" + vertexID] != null)) {\n if (currentComp[\"\" + vertexID] == null) {\n currentComp[\"\" + vertexID] = vertex;\n }\n if (filledVertices != null) {\n delete filledVertices[\"\" + vertexID];\n }\n var edges = this.getEdges(vertex);\n var edgeIsSource = [];\n for (var i = 0; i < edges.length; i++) {\n edgeIsSource[parseInt(i.toString(), 10)] = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true) === vertex;\n }\n for (var i = 0; i < edges.length; i++) {\n if (!directed || edgeIsSource[parseInt(i.toString(), 10)]) {\n var next = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], !edgeIsSource[parseInt(i.toString(), 10)]);\n var netCount = 1;\n for (var j = 0; j < edges.length; j++) {\n if (j === i) {\n continue;\n }\n else {\n var isSource2 = edgeIsSource[parseInt(j.toString(), 10)];\n var otherTerm = this.getVisibleTerminal(edges[parseInt(j.toString(), 10)], !isSource2);\n if (otherTerm === next) {\n if (isSource2) {\n netCount++;\n }\n else {\n netCount--;\n }\n }\n }\n }\n if (netCount >= 0) {\n currentComp = this.traverse(next, directed, edges[parseInt(i.toString(), 10)], currentComp, hierarchyVertices, filledVertices);\n }\n }\n }\n }\n else {\n if (currentComp[\"\" + vertexID] == null) {\n // We've seen this vertex before, but not in the current component This component and the one it's in need to be merged\n for (var i = 0; i < hierarchyVertices.length; i++) {\n var comp = hierarchyVertices[parseInt(i.toString(), 10)];\n if (comp[\"\" + vertexID] != null) {\n for (var _i = 0, _a = Object.keys(comp); _i < _a.length; _i++) {\n var key = _a[_i];\n currentComp[\"\" + key] = comp[\"\" + key];\n }\n // Remove the current component from the hierarchy set\n hierarchyVertices.splice(i, 1);\n return currentComp;\n }\n }\n }\n }\n }\n return currentComp;\n };\n //Returns the bounds of the given vertices\n HierarchicalLayoutUtil.prototype.getModelBounds = function (nodes) {\n nodes = nodes.slice();\n var rect = null;\n var rect1 = null;\n for (var i = 0; i < nodes.length; i++) {\n rect = nodes[parseInt(i.toString(), 10)].geometry;\n if (rect1) {\n var right = Math.max(rect1.x + rect1.width, rect.x + rect.width);\n var bottom = Math.max(rect1.y + rect1.height, rect.y + rect.height);\n rect1.x = Math.min(rect1.x, rect.x);\n rect1.y = Math.min(rect1.y, rect.y);\n rect1.width = right - rect1.x;\n rect1.height = bottom - rect1.y;\n }\n else {\n rect1 = { x: rect.x, y: rect.y, width: rect.width, height: rect.height };\n }\n }\n return rect1;\n };\n /* tslint:disable */\n /**\n * Initializes the layouting process \\\n *\n * @returns { Vertex } Initializes the layouting process \\\n * @param {INode[]} nodes - provide the node value.\n * @param {{}} nameTable - provide the nameTable value.\n * @param {Layout} layoutProp - provide the layoutProp value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @param {Diagram} diagram - provide the diagram model.\n * @private\n */\n HierarchicalLayoutUtil.prototype.doLayout = function (nodes, nameTable, layoutProp, viewPort, diagram) {\n this.nameTable = nameTable;\n var canEnableRouting = layoutProp.enableRouting;\n var layout = {\n horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing,\n orientation: layoutProp.orientation, marginX: layoutProp.margin.left, marginY: layoutProp.margin.top,\n enableLayoutRouting: canEnableRouting\n };\n var model;\n var matrixModel = new MatrixModel();\n matrixModel.edgeMapper = [];\n matrixModel.diagram = diagram;\n var nodeWithMultiEdges = [];\n this.vertices = [];\n var filledVertexSet = {};\n for (var i = 0; i < nodes.length; i++) {\n var node = this.createVertex(nodes[parseInt(i.toString(), 10)], nodes[parseInt(i.toString(), 10)].id, 0, 0, nodes[parseInt(i.toString(), 10)].actualSize.width, nodes[parseInt(i.toString(), 10)].actualSize.height);\n this.vertices.push(node);\n if (nodes[parseInt(i.toString(), 10)].inEdges.length > 0\n || nodes[parseInt(i.toString(), 10)].outEdges.length > 0) {\n nodeWithMultiEdges.push(nodes[parseInt(i.toString(), 10)]);\n }\n filledVertexSet[node.name] = node;\n if (matrixModel) {\n var outEdges = nodes[parseInt(i.toString(), 10)].outEdges.slice();\n for (var j = 0; j < outEdges.length; j++) {\n var outEdge = nameTable[outEdges[parseInt(j.toString(), 10)]];\n matrixModel.setEdgeMapper({ key: outEdge, value: [] });\n }\n }\n }\n var hierarchyVertices = [];\n //let candidateRoots: Vertex[];\n var candidateRoots = this.findRoots(filledVertexSet);\n for (var i = 0; i < candidateRoots.length; i++) {\n var vertexSet = {};\n hierarchyVertices.push(vertexSet);\n this.traverse(candidateRoots[parseInt(i.toString(), 10)], true, null, vertexSet, hierarchyVertices, filledVertexSet);\n }\n var limit = { marginX: 0, marginY: 0 };\n var tmp = [];\n var checkLinear = false;\n var matrixModelObject;\n for (var i = 0; i < hierarchyVertices.length; i++) {\n var vertexSet = hierarchyVertices[parseInt(i.toString(), 10)];\n // eslint-disable-next-line\n for (var _i = 0, _a = Object.keys(vertexSet); _i < _a.length; _i++) {\n var key = _a[_i];\n tmp.push(vertexSet[\"\" + key]);\n }\n if ((layoutProp.arrangement === 'Linear' && i === hierarchyVertices.length - 1) || canEnableRouting) {\n checkLinear = true;\n }\n model = new MultiParentModel(this, tmp, candidateRoots, layout);\n this.cycleStage(model);\n this.layeringStage(model);\n //897503: Child Nodes position in ComplexHierarchicalTree updated wrongly results in connector overlap\n if ((matrixModel && layoutProp.connectionPointOrigin === 'DifferentPoint') || checkLinear) {\n matrixModelObject = { model: model, matrix: [], rowOffset: [], roots: [] };\n matrixModel.arrangeElements(matrixModelObject, layoutProp);\n layoutProp.ranks = matrixModelObject.model.ranks;\n }\n else {\n if (layoutProp.arrangement === 'Nonlinear') {\n this.crossingStage(model);\n limit = this.placementStage(model, limit.marginX, limit.marginY);\n tmp = [];\n }\n }\n }\n var modelBounds = this.getModelBounds(this.vertices);\n this.updateMargin(layoutProp, layout, modelBounds, viewPort);\n for (var i = 0; i < this.vertices.length; i++) {\n var clnode = this.vertices[parseInt(i.toString(), 10)];\n if (clnode) { //Check what is node.source/node.target - && !clnode.source && !clnode.target) {\n var dnode = this.nameTable[clnode.name];\n dnode.offsetX = 0;\n dnode.offsetY = 0;\n //initialize layout\n var dx = (clnode.geometry.x - (dnode.offsetX - (dnode.actualSize.width / 2))) + layout.marginX;\n var dy = (clnode.geometry.y - (dnode.offsetY - (dnode.actualSize.height / 2))) + layout.marginY;\n var x = dx;\n var y = dy;\n if (layout.orientation === 'BottomToTop') {\n if (canEnableRouting) {\n clnode.geometry.y = modelBounds.height - dy - dnode.actualSize.height / 2;\n }\n y = modelBounds.height - dy;\n }\n else if (layout.orientation === 'RightToLeft') {\n x = modelBounds.width - dx;\n }\n dnode.offsetX += x - dnode.offsetX;\n dnode.offsetY += y - dnode.offsetY;\n }\n }\n if (!checkLinear) {\n for (var i = 0; i < this.vertices.length; i++) {\n this.isNodeOverLap(this.nameTable[this.vertices[parseInt(i.toString(), 10)].name], layoutProp);\n }\n }\n if ((matrixModel && layoutProp.connectionPointOrigin === 'DifferentPoint') || canEnableRouting) {\n matrixModel.updateLayout(viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable);\n }\n if (canEnableRouting) {\n var vertices = {};\n var matrixrow1 = void 0;\n for (var p = 0; p < matrixModelObject.matrix.length; p++) {\n matrixrow1 = matrixModelObject.matrix[parseInt(p.toString(), 10)].value;\n for (var q = 0; q < matrixrow1.length; q++) {\n var matrixCell = matrixrow1[parseInt(q.toString(), 10)];\n for (var r = 0; r < matrixCell.cells.length; r++) {\n var cell = matrixCell.cells[parseInt(r.toString(), 10)];\n var type = this.getType(cell.type);\n if (type === 'internalVertex') {\n var internalVertex = cell;\n vertices[internalVertex.id] = internalVertex;\n }\n }\n }\n }\n this.updateRankValuess(model);\n for (var i = 0, a = Object.keys(vertices); i < a.length; i++) {\n var key = a[parseInt(i.toString(), 10)];\n this.setVertexLocationValue(vertices[\"\" + key], layoutProp.orientation, modelBounds);\n }\n this.localEdgeProcessing(model, vertices);\n this.assignRankOffset(model);\n this.updateEdgeSetXYValue(model);\n var edges = this.getValues(model.edgeMapper);\n for (var i = 0; i < edges.length; i++) {\n if ((edges[parseInt(i.toString(), 10)]).x.length > 0) {\n for (var j = 0; j < (edges[parseInt(i.toString(), 10)]).x.length; j++) {\n if (layoutProp.orientation !== 'RightToLeft' && layoutProp.orientation !== 'LeftToRight') {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)]\n = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layout.marginX;\n }\n else if (layoutProp.orientation === 'LeftToRight') {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)]\n = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2;\n }\n else {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)]\n = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2;\n }\n }\n }\n this.setEdgePosition(edges[parseInt(i.toString(), 10)], model, layout);\n }\n for (var p = 0; p < this.vertices.length; p++) {\n var clnode = this.vertices[parseInt(p.toString(), 10)];\n if (clnode.outEdges.length > 1) {\n this.updateMultiOutEdgesPoints(clnode);\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.setEdgeXY = function (ranks, node, spacing, layer) {\n if (ranks && node.source.id) {\n var targetValue = void 0;\n var sourceValue = void 0;\n for (var i = 0; i < ranks.length; i++) {\n for (var k = 0; k < ranks[parseInt(i.toString(), 10)].length; k++) {\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id\n || ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id) {\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id\n && targetValue === undefined) {\n targetValue = i;\n }\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id\n && sourceValue === undefined) {\n sourceValue = i;\n }\n }\n }\n }\n var rankOffsetValue = void 0;\n for (var m = targetValue; m <= sourceValue; m++) {\n if (rankOffsetValue === undefined) {\n rankOffsetValue = this[m + '_RankOffset'];\n }\n if (rankOffsetValue !== undefined && rankOffsetValue < this[m + '_RankOffset']) {\n rankOffsetValue = this[m + '_RankOffset'];\n }\n }\n if (this['edges'] === undefined) {\n this['edges'] = {};\n }\n this['edges'][(node).ids[0]] = { x: node.x, y: 0 };\n var value = this.resetOffsetXValue(rankOffsetValue, spacing / 10);\n node.x[layer - node.minRank - 1] = value;\n for (var k = 0; k < (node).edges.length; k++) {\n (node).edges[parseInt(k.toString(), 10)]['levelSkip'] = true;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.resetOffsetXValue = function (value, spacing) {\n for (var i = 0, a = Object.keys(this['edges']); i < a.length; i++) {\n var key = a[parseInt(i.toString(), 10)];\n var length_1 = this['edges'][\"\" + key].x;\n for (var j = 0; j < length_1.length; j++) {\n var offsetValue = void 0;\n if (this['edges'][\"\" + key].x[parseInt(j.toString(), 10)] === value) {\n offsetValue = value + spacing;\n offsetValue = this.resetOffsetXValue(offsetValue, spacing);\n return offsetValue;\n }\n }\n }\n return value;\n };\n HierarchicalLayoutUtil.prototype.setEdgePosition = function (cell, model, layout) {\n // For parallel edges we need to seperate out the points a\n // little\n var offsetX = 0;\n // Only set the edge control points once\n if (cell.temp[0] !== 101207) {\n if (cell.maxRank === undefined) {\n cell.maxRank = -1;\n }\n if (cell.minRank === undefined) {\n cell.minRank = -1;\n }\n var maxRank = cell.maxRank;\n var minRank = cell.minRank;\n if (maxRank === minRank) {\n maxRank = cell.source.maxRank;\n minRank = cell.target.minRank;\n }\n var parallelEdgeCount = 0;\n var jettys = this.jettyPositions[cell.ids[0]];\n if (cell.isReversed === undefined) {\n cell.isReversed = false;\n }\n else {\n cell.isReversed = true;\n }\n var source = cell.isReversed ? cell.target.cell : cell.source.cell;\n var layoutReversed = false;\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'LeftToRight') {\n if (model.layout.orientation === 'TopToBottom') {\n layoutReversed = false;\n }\n if (model.layout.orientation === 'LeftToRight') {\n if (!cell.isReversed) {\n layoutReversed = false;\n }\n else {\n layoutReversed = false;\n }\n }\n }\n else {\n if (!cell.isReversed) {\n layoutReversed = true;\n }\n }\n for (var i = 0; i < cell.edges.length; i++) {\n var realEdge = cell.edges[parseInt(i.toString(), 10)];\n var realSource = this.getVisibleTerminal(realEdge, true);\n //List oldPoints = graph.getPoints(realEdge);\n var newPoints = [];\n // Single length reversed edges end up with the jettys in the wrong\n // places. Since single length edges only have jettys, not segment\n // control points, we just say the edge isn't reversed in this section\n var reversed = cell.isReversed;\n // if(cell.isReversed===undefined){\n // reversed = false\n // }else{\n // reversed =cell.isReversed\n // }\n if (realSource !== source) {\n // The real edges include all core model edges and these can go\n // in both directions. If the source of the hierarchical model edge\n // isn't the source of the specific real edge in this iteration\n // treat if as reversed\n reversed = !reversed;\n }\n // First jetty of edge\n if (jettys != null) {\n var arrayOffset = reversed ? 2 : 0;\n var y = reversed ?\n (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)]\n : this.rankTopY[parseInt(minRank.toString(), 10)])\n : (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)]\n : this.rankBottomY[parseInt(maxRank.toString(), 10)]);\n var jetty = jettys[parallelEdgeCount * 4 + 1 + arrayOffset];\n if (reversed !== layoutReversed) {\n jetty = -jetty;\n }\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n y += jetty;\n }\n var x = jettys[parallelEdgeCount * 4 + arrayOffset];\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(x, y + layout.marginY));\n }\n else {\n if (layout.orientation === 'LeftToRight') {\n newPoints.push(this.getPointvalue(y + jetty, x + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(y, x + layout.marginY));\n }\n }\n }\n var loopStart = cell.x.length - 1;\n var loopLimit = -1;\n var loopDelta = -1;\n var currentRank = cell.maxRank - 1;\n if (reversed) {\n loopStart = 0;\n loopLimit = cell.x.length;\n loopDelta = 1;\n currentRank = cell.minRank + 1;\n }\n // Reversed edges need the points inserted in\n // reverse order\n for (var j = loopStart; (cell.maxRank !== cell.minRank) && j !== loopLimit; j += loopDelta) {\n // The horizontal position in a vertical layout\n var positionX = cell.x[parseInt(j.toString(), 10)] + offsetX;\n // This cell.x determines the deviated points of the connectors and jetty positions\n //determine the src and targetgeo points .\n // Work out the vertical positions in a vertical layout\n // in the edge buffer channels above and below this rank\n var topChannelY = (this.rankTopY[parseInt(currentRank.toString(), 10)]\n + this.rankBottomY[currentRank + 1]) / 2.0;\n var bottomChannelY = (this.rankTopY[currentRank - 1]\n + this.rankBottomY[parseInt(currentRank.toString(), 10)]) / 2.0;\n if (reversed) {\n var tmp = topChannelY;\n topChannelY = bottomChannelY;\n bottomChannelY = tmp;\n }\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(positionX, topChannelY + layout.marginY));\n newPoints.push(this.getPointvalue(positionX, bottomChannelY + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(topChannelY, positionX + layout.marginY));\n newPoints.push(this.getPointvalue(bottomChannelY, positionX + layout.marginY));\n }\n this.limitX = Math.max(this.limitX, positionX);\n currentRank += loopDelta;\n }\n // Second jetty of edge\n if (jettys != null) {\n var arrayOffset = reversed ? 2 : 0;\n var rankY = reversed ?\n (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)]\n : this.rankBottomY[parseInt(maxRank.toString(), 10)])\n : (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)]\n : this.rankTopY[parseInt(minRank.toString(), 10)]);\n var jetty = jettys[parallelEdgeCount * 4 + 3 - arrayOffset];\n if (reversed !== layoutReversed) {\n jetty = -jetty;\n }\n var y = rankY - jetty;\n var x = jettys[parallelEdgeCount * 4 + 2 - arrayOffset];\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(x, y + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(y, x + layout.marginY));\n }\n }\n this.setEdgePoints(realEdge, newPoints, model);\n // Increase offset so next edge is drawn next to\n // this one\n if (offsetX === 0.0) {\n offsetX = this.parallelEdgeSpacing;\n }\n else if (offsetX > 0) {\n offsetX = -offsetX;\n }\n else {\n offsetX = -offsetX + this.parallelEdgeSpacing;\n }\n parallelEdgeCount++;\n }\n cell.temp[0] = 101207;\n }\n };\n /* tslint:enable */\n // eslint-disable-next-line\n HierarchicalLayoutUtil.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n HierarchicalLayoutUtil.prototype.updateEdgeSetXYValue = function (model) {\n if (model.layout.enableLayoutRouting) {\n var isHorizontal = false;\n if (model.layout.orientation === 'LeftToRight' || model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n for (var i = 0; i < model.ranks.length; i++) {\n var rank = model.ranks[parseInt(i.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n if ((cell).edges && (cell).edges.length > 0) {\n var spacing = model.layout.horizontalSpacing > 0 ? (model.layout.horizontalSpacing / 2) : 15;\n var check = true;\n if (!(cell.minRank === i - 1 || cell.maxRank === i - 1)) {\n check = false;\n }\n if (check) {\n this.setXY(cell, i, undefined, isHorizontal ? true : false, model.ranks, spacing);\n }\n }\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getPreviousLayerConnectedCells = function (layer, cell) {\n if (cell.previousLayerConnectedCells == null) {\n cell.previousLayerConnectedCells = [];\n cell.previousLayerConnectedCells[0] = [];\n for (var i = 0; i < cell.connectsAsSource.length; i++) {\n var edge = cell.connectsAsSource[parseInt(i.toString(), 10)];\n if (edge.minRank === -1 || edge.minRank === layer - 1) {\n // No dummy nodes in edge, add node of other side of edge\n cell.previousLayerConnectedCells[0].push(edge.target);\n }\n else {\n // Edge spans at least two layers, add edge\n cell.previousLayerConnectedCells[0].push(edge);\n }\n }\n }\n return cell.previousLayerConnectedCells[0];\n };\n HierarchicalLayoutUtil.prototype.compare = function (a, b) {\n if (a != null && b != null) {\n if (b.weightedValue > a.weightedValue) {\n return -1;\n }\n else if (b.weightedValue < a.weightedValue) {\n return 1;\n }\n }\n return 0;\n };\n /* tslint:disable */\n // eslint-disable-next-line\n HierarchicalLayoutUtil.prototype.localEdgeProcessing = function (model, vertices) {\n // Iterate through each vertex, look at the edges connected in\n // both directions.\n for (var rankIndex = 0; rankIndex < model.ranks.length; rankIndex++) {\n var rank = model.ranks[parseInt(rankIndex.toString(), 10)];\n for (var cellIndex = 0; cellIndex < rank.length; cellIndex++) {\n var cell = rank[parseInt(cellIndex.toString(), 10)];\n if (this.crossReduction.isVertex(cell)) {\n var currentCells = this.getPreviousLayerConnectedCells(rankIndex, cell);\n var currentRank = rankIndex - 1;\n // Two loops, last connected cells, and next\n for (var k = 0; k < 2; k++) {\n if (currentRank > -1\n && currentRank < model.ranks.length\n && currentCells != null\n && currentCells.length > 0) {\n var sortedCells = [];\n for (var j = 0; j < currentCells.length; j++) {\n var sorter = this.weightedCellSorter(currentCells[parseInt(j.toString(), 10)], this.getX(currentRank, currentCells[parseInt(j.toString(), 10)]));\n sortedCells.push(sorter);\n }\n sortedCells.sort(this.compare);\n cell.width = vertices[cell.id].cell.geometry.width;\n cell.height = vertices[cell.id].cell.geometry.height;\n var leftLimit = void 0;\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') {\n cell.x[0] = vertices[cell.id].cell.geometry.x + vertices[cell.id].cell.geometry.width / 2;\n leftLimit = cell.x[0] - cell.width / 2 + vertices[cell.id].cell.geometry.height / 2;\n }\n else {\n cell.x[0] = vertices[cell.id].cell.geometry.y;\n leftLimit = cell.x[0];\n }\n var rightLimit = leftLimit + cell.width;\n // Connected edge count starts at 1 to allow for buffer\n // with edge of vertex\n var connectedEdgeCount = 0;\n var connectedEdgeGroupCount = 0;\n var connectedEdges = [];\n // Calculate width requirements for all connected edges\n for (var j = 0; j < sortedCells.length; j++) {\n var innerCell = sortedCells[parseInt(j.toString(), 10)].cell;\n var connections = void 0;\n if (this.crossReduction.isVertex(innerCell)) {\n // Get the connecting edge\n if (k === 0) {\n connections = cell.connectsAsSource;\n }\n else {\n connections = cell.connectsAsTarget;\n }\n for (var connIndex = 0; connIndex < connections.length; connIndex++) {\n if (connections[parseInt(connIndex.toString(), 10)].source === innerCell\n || connections[parseInt(connIndex.toString(), 10)].target === innerCell) {\n connectedEdgeCount += connections[parseInt(connIndex.toString(), 10)].edges\n .length;\n connectedEdgeGroupCount++;\n connectedEdges.push(connections[parseInt(connIndex.toString(), 10)]);\n }\n }\n }\n else {\n connectedEdgeCount += innerCell.edges.length;\n // eslint-disable-next-line\n connectedEdgeGroupCount++;\n connectedEdges.push(innerCell);\n }\n }\n var requiredWidth = (connectedEdgeCount + 1)\n * this.previousEdgeDistance;\n // Add a buffer on the edges of the vertex if the edge count allows\n if (cell.width > requiredWidth\n + (2 * this.previousEdgeDistance)) {\n leftLimit += this.previousEdgeDistance;\n rightLimit -= this.previousEdgeDistance;\n }\n var availableWidth = rightLimit - leftLimit;\n var edgeSpacing = availableWidth / connectedEdgeCount;\n var currentX = leftLimit + edgeSpacing / 2.0;\n var currentYOffset = this.minEdgeJetty - this.previousEdgeOffset;\n var maxYOffset = 0;\n for (var j = 0; j < connectedEdges.length; j++) {\n var numActualEdges = connectedEdges[parseInt(j.toString(), 10)].edges\n .length;\n if (this.jettyPositions === undefined) {\n this.jettyPositions = {};\n }\n var pos = this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]];\n if (pos == null) {\n pos = [];\n this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]] = pos;\n }\n if (j < connectedEdgeCount / 2) {\n currentYOffset += this.previousEdgeOffset;\n }\n else if (j > connectedEdgeCount / 2) {\n currentYOffset -= this.previousEdgeOffset;\n }\n // Ignore the case if equals, this means the second of 2\n // jettys with the same y (even number of edges)\n for (var m = 0; m < numActualEdges; m++) {\n pos[m * 4 + k * 2] = currentX;\n currentX += edgeSpacing;\n pos[m * 4 + k * 2 + 1] = currentYOffset;\n }\n maxYOffset = Math.max(maxYOffset, currentYOffset);\n }\n }\n currentCells = this.getNextLayerConnectedCells(rankIndex, cell);\n currentRank = rankIndex + 1;\n }\n }\n }\n }\n };\n /* tslint:enable */\n HierarchicalLayoutUtil.prototype.updateMultiOutEdgesPoints = function (clnode) {\n for (var i = 0; i < clnode.outEdges.length / 2; i++) {\n var connector1 = this.nameTable[clnode.outEdges[parseInt(i.toString(), 10)]];\n var connector2 = this.nameTable[clnode.outEdges[clnode.outEdges.length - (i + 1)]];\n var geometry = 'geometry';\n //900930: To exclude self-loop in layouts\n if (connector1.sourceID !== connector2.targetID && connector1.targetID !== connector2.sourceID) {\n connector2[\"\" + geometry].points[0].y = connector1[\"\" + geometry].points[0].y;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getNextLayerConnectedCells = function (layer, cell) {\n if (cell.nextLayerConnectedCells == null) {\n cell.nextLayerConnectedCells = [];\n cell.nextLayerConnectedCells[0] = [];\n for (var i = 0; i < cell.connectsAsTarget.length; i++) {\n var edge = cell.connectsAsTarget[parseInt(i.toString(), 10)];\n if (edge.maxRank === -1 || edge.maxRank === layer + 1) {\n // Either edge is not in any rank or\n // no dummy nodes in edge, add node of other side of edge\n cell.nextLayerConnectedCells[0].push(edge.source);\n }\n else {\n // Edge spans at least two layers, add edge\n cell.nextLayerConnectedCells[0].push(edge);\n }\n }\n }\n return cell.nextLayerConnectedCells[0];\n };\n HierarchicalLayoutUtil.prototype.getX = function (layer, cell) {\n if (this.crossReduction.isVertex(cell)) {\n return cell.x[0];\n }\n else if (!this.crossReduction.isVertex(cell)) {\n return cell.x[layer - cell.minRank - 1] || cell.temp[layer - cell.minRank - 1];\n }\n return 0.0;\n };\n HierarchicalLayoutUtil.prototype.getGeometry = function (edge) {\n var geometry = 'geometry';\n return edge[\"\" + geometry];\n };\n HierarchicalLayoutUtil.prototype.setEdgePoints = function (edge, points, model) {\n if (edge != null) {\n var geometryValue = 'geometry';\n var geometry = this.getGeometry(edge);\n if (points != null) {\n for (var i = 0; i < points.length; i++) {\n // eslint-disable-next-line\n points[i].x = points[i].x;\n // eslint-disable-next-line\n points[i].y = points[i].y;\n }\n }\n geometry.points = points;\n edge[\"\" + geometryValue] = geometry;\n }\n };\n HierarchicalLayoutUtil.prototype.assignRankOffset = function (model) {\n if (model) {\n for (var i = 0; i < model.ranks.length; i++) {\n this.rankCoordinatesAssigment(i, model);\n }\n }\n };\n HierarchicalLayoutUtil.prototype.rankCoordinatesAssigment = function (rankValue, model) {\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var spacing = model.layout.horizontalSpacing;\n var localOffset;\n for (var i = 0; i < rank.length; i++) {\n if (this[rankValue + '_' + 'RankOffset'] === undefined) {\n this[rankValue + '_' + 'RankOffset'] = 0;\n }\n localOffset = rank[parseInt(i.toString(), 10)].x[0];\n if (this[rankValue + '_' + 'RankOffset'] < localOffset) {\n this[rankValue + '_' + 'RankOffset'] = localOffset + rank[parseInt(i.toString(), 10)].width / 2 + spacing;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getType = function (type) {\n if (type === 'internalVertex') {\n return 'internalVertex';\n }\n else {\n return 'internalEdge';\n }\n };\n HierarchicalLayoutUtil.prototype.updateRankValuess = function (model) {\n this.rankTopY = [];\n this.rankBottomY = [];\n for (var i = 0; i < model.ranks.length; i++) {\n this.rankTopY[parseInt(i.toString(), 10)] = Number.MAX_VALUE;\n this.rankBottomY[parseInt(i.toString(), 10)] = -Number.MAX_VALUE;\n }\n };\n HierarchicalLayoutUtil.prototype.setVertexLocationValue = function (cell, orientation, modelBounds) {\n var cellGeomtry = cell.cell.geometry;\n var positionX;\n var positionY;\n if (orientation === 'TopToBottom' || orientation === 'BottomToTop') {\n positionX = cellGeomtry.x;\n positionY = cellGeomtry.y;\n }\n else {\n positionX = cellGeomtry.y;\n positionY = cellGeomtry.x;\n }\n if (orientation === 'RightToLeft') {\n // eslint-disable-next-line\n positionX = cellGeomtry.y;\n positionY = modelBounds.width - cellGeomtry.x - cellGeomtry.height;\n this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY);\n this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY + cellGeomtry.height);\n }\n else {\n this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY);\n this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY + cellGeomtry.height);\n }\n };\n HierarchicalLayoutUtil.prototype.calculateRectValue = function (dnode) {\n var rect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 };\n rect.x = dnode.offsetX - dnode.actualSize.width / 2;\n rect.right = dnode.offsetX + dnode.actualSize.width / 2;\n rect.y = dnode.offsetY - dnode.actualSize.height / 2;\n rect.bottom = dnode.offsetY + dnode.actualSize.height / 2;\n return rect;\n };\n HierarchicalLayoutUtil.prototype.isNodeOverLap = function (dnode, layoutProp) {\n var nodeRect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 };\n for (var i = 0; i < this.vertices.length; i++) {\n var rect = { x: 0, y: 0, width: 0, height: 0 };\n //let tempnode1: INode;\n var tempnode1 = this.nameTable[this.vertices[parseInt(i.toString(), 10)].value];\n if (dnode.id !== tempnode1.id && tempnode1.offsetX !== 0 && tempnode1.offsetY !== 0) {\n nodeRect = this.calculateRectValue(dnode);\n rect = this.calculateRectValue(tempnode1);\n if (this.isIntersect(rect, nodeRect, layoutProp)) {\n if (layoutProp.orientation === 'TopToBottom' || layoutProp.orientation === 'BottomToTop') {\n dnode.offsetX += layoutProp.horizontalSpacing;\n }\n else {\n dnode.offsetY += layoutProp.verticalSpacing;\n }\n this.isNodeOverLap(dnode, layoutProp);\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.isIntersect = function (rect, nodeRect, layoutProp) {\n if (!(Math.floor(rect.right + layoutProp.horizontalSpacing) <= Math.floor(nodeRect.x) ||\n Math.floor(rect.x - layoutProp.horizontalSpacing) >= Math.floor(nodeRect.right)\n || Math.floor(rect.y - layoutProp.verticalSpacing) >= Math.floor(nodeRect.bottom)\n || Math.floor(rect.bottom + layoutProp.verticalSpacing) <= Math.floor(nodeRect.y))) {\n return true;\n }\n else {\n return false;\n }\n };\n /* eslint-disable */\n HierarchicalLayoutUtil.prototype.updateMargin = function (layoutProp, layout, modelBounds, viewPort) {\n var viewPortBounds = { x: 0, y: 0, width: viewPort.x, height: viewPort.y };\n //let layoutBounds: Rect;\n var bounds = {\n x: modelBounds.x, y: modelBounds.y,\n right: modelBounds.x + modelBounds.width,\n bottom: modelBounds.y + modelBounds.height\n };\n var layoutBounds = layoutProp.bounds ? layoutProp.bounds : viewPortBounds;\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n switch (layoutProp.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n layout.marginX = (layoutBounds.x - bounds.x) + layoutProp.margin.left;\n break;\n case 'Right':\n layout.marginX = layoutBounds.x + layoutBounds.width - layoutProp.margin.right - bounds.right;\n break;\n case 'Center':\n layout.marginX = layoutBounds.x + layoutBounds.width / 2 - (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layoutProp.verticalAlignment) {\n case 'Top':\n //const top: number;\n var top_1 = layoutBounds.y + layoutProp.margin.top;\n layout.marginY = layout.orientation === 'TopToBottom' ? top_1 : -top_1;\n break;\n case 'Bottom':\n //const bottom: number;\n var bottom = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom;\n layout.marginY = layout.orientation === 'TopToBottom' ? bottom - bounds.bottom : -(bottom - bounds.bottom);\n break;\n case 'Auto':\n case 'Center':\n //const center: number;\n var center = layoutBounds.y + layoutBounds.height / 2;\n layout.marginY = layout.orientation === 'TopToBottom' ?\n center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.y + bounds.bottom) / 2;\n break;\n }\n }\n else {\n switch (layoutProp.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n //let left: number;\n var left = layoutBounds.x + layoutProp.margin.left;\n layout.marginX = layout.orientation === 'LeftToRight' ? left : -left;\n break;\n case 'Right':\n var right = void 0;\n right = layoutBounds.x + layoutBounds.width - layoutProp.margin.right;\n layout.marginX = layout.orientation === 'LeftToRight' ? right - bounds.right : bounds.right - right;\n break;\n case 'Center':\n var center = void 0;\n center = layoutBounds.width / 2 + layoutBounds.x;\n layout.marginX = layout.orientation === 'LeftToRight' ?\n center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layoutProp.verticalAlignment) {\n case 'Top':\n layout.marginY = layoutBounds.y + layoutProp.margin.top - bounds.y;\n break;\n case 'Auto':\n case 'Center':\n layout.marginY = layoutBounds.y + layoutBounds.height / 2 - (bounds.y + bounds.bottom) / 2;\n break;\n case 'Bottom':\n layout.marginY = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom - bounds.bottom;\n break;\n }\n }\n };\n /* eslint-enable */\n //Handles positioning the nodes\n HierarchicalLayoutUtil.prototype.placementStage = function (model, marginX, marginY) {\n var placementStage = this.coordinateAssignment(marginX, marginY, parent, model);\n placementStage.model = model;\n placementStage.widestRankValue = null;\n this.placementStageExecute(placementStage);\n return {\n marginX: placementStage.marginX + model.layout.horizontalSpacing,\n marginY: placementStage.marginY + model.layout.verticalSpacing\n };\n };\n //Initializes the layout properties for positioning\n HierarchicalLayoutUtil.prototype.coordinateAssignment = function (marginX, marginY, parent, model) {\n var plalementChange = {};\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') {\n plalementChange.horizontalSpacing = model.layout.horizontalSpacing;\n plalementChange.verticalSpacing = model.layout.verticalSpacing;\n }\n else {\n plalementChange.horizontalSpacing = model.layout.verticalSpacing;\n plalementChange.verticalSpacing = model.layout.horizontalSpacing;\n }\n plalementChange.orientation = 'north';\n //Removed the conditions here. So check here in case of any issue\n plalementChange.marginX = plalementChange.marginX = marginX;\n plalementChange.marginY = plalementChange.marginY = marginY;\n return plalementChange;\n };\n //Calculate the largest size of the node either height or width depends upon the layoutorientation\n HierarchicalLayoutUtil.prototype.calculateWidestRank = function (plalementChange, graph, model) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var offset = -plalementChange.verticalSpacing;\n var lastRankMaxCellSize = 0.0;\n plalementChange.rankSizes = [];\n plalementChange.rankOffset = [];\n for (var rankValue = model.maxRank; rankValue >= 0; rankValue--) {\n var maxCellSize = 0.0;\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var localOffset = isHorizontal ? plalementChange.marginY : plalementChange.marginX;\n for (var i = 0; i < rank.length; i++) {\n var node = rank[parseInt(i.toString(), 10)];\n if (this.crossReduction.isVertex(node)) {\n var vertex = node;\n if (vertex.cell && (vertex.cell.inEdges || vertex.cell.outEdges)) {\n var obj = this.nameTable[vertex.cell.name];\n vertex.width = obj.actualSize.width;\n vertex.height = obj.actualSize.height;\n maxCellSize = Math.max(maxCellSize, (isHorizontal ? vertex.width : vertex.height));\n }\n }\n else {\n if (node) {\n var edge = node;\n var numEdges = 1;\n if (edge.edges != null) {\n numEdges = edge.edges.length;\n }\n node.width = (numEdges - 1) * 10;\n }\n }\n if (isHorizontal) {\n if (!node.height) {\n node.height = 0;\n }\n }\n // Set the initial x-value as being the best result so far\n localOffset += (isHorizontal ? node.height : node.width) / 2.0;\n this.setXY(node, rankValue, localOffset, isHorizontal ? true : false);\n this.setTempVariable(node, rankValue, localOffset);\n localOffset += ((isHorizontal ? node.height : node.width) / 2.0) + plalementChange.horizontalSpacing;\n if (localOffset > plalementChange.widestRankValue) {\n plalementChange.widestRankValue = localOffset;\n plalementChange.widestRank = rankValue;\n }\n plalementChange.rankSizes[parseInt(rankValue.toString(), 10)] = localOffset;\n }\n plalementChange.rankOffset[parseInt(rankValue.toString(), 10)] = offset;\n var distanceToNextRank = maxCellSize / 2.0 + lastRankMaxCellSize / 2.0 + plalementChange.verticalSpacing;\n lastRankMaxCellSize = maxCellSize;\n if (plalementChange.orientation === 'north' || plalementChange.orientation === 'west') {\n offset += distanceToNextRank;\n }\n else {\n offset -= distanceToNextRank;\n }\n for (var i = 0; i < rank.length; i++) {\n var cell = rank[parseInt(i.toString(), 10)];\n this.setXY(cell, rankValue, offset, isHorizontal ? false : true);\n }\n }\n };\n /**\n * Sets the temp position of the node on the layer \\\n *\n * @returns { void } Sets the temp position of the node on the layer \\\n * @param {IVertex} node - provide the nodes value.\n * @param {number} layer - provide the layer value.\n * @param {number} value - provide the value value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.setTempVariable = function (node, layer, value) {\n if (this.crossReduction.isVertex(node)) {\n node.temp[0] = value;\n }\n else {\n node.temp[layer - node.minRank - 1] = value;\n }\n };\n // eslint-disable-next-line valid-jsdoc\n /**\n * setXY method \\\n *\n * @returns { void } setXY method .\\\n * @param {IVertex} node - provide the source value.\n * @param {number} layer - provide the target value.\n * @param {number} value - provide the layoutOrientation value.\n * @param {boolean} isY - provide the layoutOrientation value.\n * @param {IVertex[][]} ranks - provide the layoutOrientation value.\n * @param {number} spacing - provide the layoutOrientation value.\n *\n * @private\n */\n HierarchicalLayoutUtil.prototype.setXY = function (node, layer, value, isY, ranks, spacing) {\n if (node && node.cell) {\n if (node.cell.inEdges.length > 0 || node.cell.outEdges.length > 0) {\n if (isY) {\n node.y[0] = value;\n }\n else {\n node.x[0] = value;\n }\n }\n else {\n if (isY) {\n node.y[layer - node.minRank - 1] = value;\n }\n else {\n node.x[layer - node.minRank - 1] = value;\n }\n }\n }\n else {\n this.setEdgeXY(ranks, node, spacing, layer);\n }\n };\n //Sets geometry position of the layout node on the layout model\n HierarchicalLayoutUtil.prototype.rankCoordinates = function (stage, rankValue, graph, model) {\n var isHorizontal = false;\n if (stage.model.layout.orientation === 'LeftToRight' || stage.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var maxOffset = 0.0;\n var localOffset = (isHorizontal ? stage.marginY : stage.marginX)\n + (stage.widestRankValue - stage.rankSizes[parseInt(rankValue.toString(), 10)]) / 2;\n for (var i = 0; i < rank.length; i++) {\n var node = rank[parseInt(i.toString(), 10)];\n if (this.crossReduction.isVertex(node)) {\n var obj = this.nameTable[node.cell.name];\n node.width = obj.actualSize.width;\n node.height = obj.actualSize.height;\n maxOffset = Math.max(maxOffset, node.height);\n }\n else {\n var edge = node;\n var numEdges = 1;\n if (edge.edges != null) {\n numEdges = edge.edges.length;\n }\n if (isHorizontal) {\n node.height = (numEdges - 1) * 10;\n }\n else {\n node.width = (numEdges - 1) * 10;\n }\n }\n var size = (isHorizontal ? node.height : node.width) / 2.0;\n localOffset += size;\n this.setXY(node, rankValue, localOffset, isHorizontal ? true : false);\n this.setTempVariable(node, rankValue, localOffset);\n localOffset += (size + stage.horizontalSpacing);\n }\n };\n //sets the layout in an initial positioning.it will arange all the ranks as much as possible\n HierarchicalLayoutUtil.prototype.initialCoords = function (plalementChange, facade, model) {\n this.calculateWidestRank(plalementChange, facade, model);\n // Reverse sweep direction each time from widest rank\n for (var i = plalementChange.widestRank; i >= 0; i--) {\n if (i < model.maxRank) {\n this.rankCoordinates(plalementChange, i, facade, model);\n }\n }\n for (var i = plalementChange.widestRank + 1; i <= model.maxRank; i++) {\n if (i > 0) {\n this.rankCoordinates(plalementChange, i, facade, model);\n }\n }\n };\n /**\n * Checks whether the given node is an ancestor \\\n *\n * @returns { boolean } Checks whether the given node is an ancestor \\\n * @param {IVertex} node - provide the nodes value.\n * @param {IVertex} otherNode - provide the layer value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.isAncestor = function (node, otherNode) {\n // Firstly, the hash code of this node needs to be shorter than the other node\n if (otherNode != null && node.hashCode != null && otherNode.hashCode != null\n && node.hashCode.length < otherNode.hashCode.length) {\n if (node.hashCode === otherNode.hashCode) {\n return true;\n }\n if (node.hashCode == null || node.hashCode == null) {\n return false;\n }\n for (var i = 0; i < node.hashCode.length; i++) {\n if (node.hashCode[parseInt(i.toString(), 10)] !== otherNode.hashCode[parseInt(i.toString(), 10)]) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n //initializes the sorter object\n HierarchicalLayoutUtil.prototype.weightedCellSorter = function (cell, weightedValue) {\n var weightedCellSorter = {};\n weightedCellSorter.cell = cell ? cell : null;\n weightedCellSorter.weightedValue = weightedValue ? weightedValue : 0;\n weightedCellSorter.visited = false;\n weightedCellSorter.rankIndex = null;\n return weightedCellSorter;\n };\n //Performs one node positioning in both directions\n HierarchicalLayoutUtil.prototype.minNode = function (plalementChange, model) {\n var nodeList = [];\n var map = { map: {} };\n var rank = [];\n for (var i = 0; i <= model.maxRank; i++) {\n rank[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)];\n for (var j = 0; j < rank[parseInt(i.toString(), 10)].length; j++) {\n var node = rank[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)];\n var nodeWrapper = this.weightedCellSorter(node, i);\n nodeWrapper.rankIndex = j;\n nodeWrapper.visited = true;\n nodeList.push(nodeWrapper);\n model.setDictionaryForSorter(map, node, nodeWrapper, true);\n }\n }\n var maxTries = nodeList.length * 10;\n var count = 0;\n var tolerance = 1;\n while (nodeList.length > 0 && count <= maxTries) {\n var cellWrapper = nodeList.shift();\n var cell = cellWrapper.cell;\n var rankValue = cellWrapper.weightedValue;\n var rankIndex = cellWrapper.rankIndex;\n var nextLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue);\n var previousLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue, true);\n var nextConnectedCount = nextLayerConnectedCells ? nextLayerConnectedCells.length : 0;\n var prevConnectedCount = previousLayerConnectedCells ? previousLayerConnectedCells.length : 0;\n var medianNextLevel = this.medianXValue(plalementChange, nextLayerConnectedCells, rankValue + 1);\n var medianPreviousLevel = this.medianXValue(plalementChange, previousLayerConnectedCells, rankValue - 1);\n var numConnectedNeighbours = nextConnectedCount + prevConnectedCount;\n var currentPosition = this.crossReduction.getTempVariable(cell, rankValue);\n var cellMedian = currentPosition;\n if (numConnectedNeighbours > 0) {\n cellMedian = (medianNextLevel * nextConnectedCount + medianPreviousLevel * prevConnectedCount) / numConnectedNeighbours;\n }\n if (nextConnectedCount === 1 && prevConnectedCount === 1) {\n cellMedian = (medianPreviousLevel * prevConnectedCount) / prevConnectedCount;\n }\n else if (nextConnectedCount === 1) {\n cellMedian = (medianNextLevel * nextConnectedCount) / nextConnectedCount;\n }\n var positionChanged = false;\n var tempValue = undefined;\n if (cellMedian < currentPosition - tolerance) {\n if (rankIndex === 0) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else {\n var leftCell = rank[parseInt(rankValue.toString(), 10)][rankIndex - 1];\n var leftLimit = this.crossReduction.getTempVariable(leftCell, rankValue);\n leftLimit = leftLimit + leftCell.width / 2 + plalementChange.intraCellSpacing + cell.width / 2;\n if (leftLimit < cellMedian) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else if (leftLimit < this.crossReduction.getTempVariable(cell, rankValue) - tolerance) {\n tempValue = leftLimit;\n positionChanged = true;\n }\n }\n }\n else if (cellMedian > currentPosition + tolerance) {\n var rankSize = rank[parseInt(rankValue.toString(), 10)].length;\n if (rankIndex === rankSize - 1) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else {\n var rightCell = rank[parseInt(rankValue.toString(), 10)][rankIndex + 1];\n var rightLimit = this.crossReduction.getTempVariable(rightCell, rankValue);\n rightLimit = rightLimit - rightCell.width / 2 - plalementChange.intraCellSpacing - cell.width / 2;\n if (rightLimit > cellMedian) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else if (rightLimit > this.crossReduction.getTempVariable(cell, rankValue) + tolerance) {\n tempValue = rightLimit;\n positionChanged = true;\n }\n }\n }\n if (positionChanged) {\n this.setTempVariable(cell, rankValue, tempValue);\n // Add connected nodes to map and list\n this.updateNodeList(nodeList, map, nextLayerConnectedCells, model);\n this.updateNodeList(nodeList, map, previousLayerConnectedCells, model);\n }\n if (this.crossReduction.isVertex(cellWrapper.cell)) {\n cellWrapper.visited = false;\n }\n count++;\n }\n };\n //Updates the ndoes collection\n HierarchicalLayoutUtil.prototype.updateNodeList = function (nodeList, map, collection, model) {\n for (var i = 0; i < collection.length; i++) {\n var connectedCell = collection[parseInt(i.toString(), 10)];\n var connectedCellWrapper = model.getDictionaryForSorter(map, connectedCell);\n if (connectedCellWrapper != null) {\n if (connectedCellWrapper.visited === false) {\n connectedCellWrapper.visited = true;\n nodeList.push(connectedCellWrapper);\n }\n }\n }\n };\n //Calculates the node position of the connected cell on the specified rank\n HierarchicalLayoutUtil.prototype.medianXValue = function (plalementChange, connectedCells, rankValue) {\n if (!connectedCells || connectedCells.length === 0) {\n return 0;\n }\n var medianValues = [];\n for (var i = 0; i < connectedCells.length; i++) {\n medianValues[parseInt(i.toString(), 10)]\n = this.crossReduction.getTempVariable(connectedCells[parseInt(i.toString(), 10)], rankValue);\n }\n medianValues.sort(function (a, b) {\n return a - b;\n });\n if (connectedCells.length % 2 === 1) {\n return medianValues[Math.floor(connectedCells.length / 2)];\n }\n else {\n var medianPoint = connectedCells.length / 2;\n var leftMedian = medianValues[medianPoint - 1];\n var rightMedian = medianValues[parseInt(medianPoint.toString(), 10)];\n return ((leftMedian + rightMedian) / 2);\n }\n };\n //Updates the geometry of the vertices\n HierarchicalLayoutUtil.prototype.placementStageExecute = function (plalementChange) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n plalementChange.jettyPositions = {};\n var model = plalementChange.model;\n // eslint-disable-next-line\n isHorizontal ? plalementChange.currentYDelta = 0.0 : plalementChange.currentXDelta = 0.0;\n this.initialCoords(plalementChange, { model: model }, model);\n this.minNode(plalementChange, model);\n var bestOffsetDelta = 100000000.0;\n if (!plalementChange.maxIterations) {\n plalementChange.maxIterations = 8;\n }\n for (var i = 0; i < plalementChange.maxIterations; i++) {\n // if the total offset is less for the current positioning,\n //there are less heavily angled edges and so the current positioning is used\n if ((isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta) < bestOffsetDelta) {\n for (var j = 0; j < model.ranks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n this.setXY(cell, j, this.crossReduction.getTempVariable(cell, j), isHorizontal ? true : false);\n }\n }\n bestOffsetDelta = isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta;\n }\n // eslint-disable-next-line\n isHorizontal ? plalementChange.currentYDelta = 0 : plalementChange.currentXDelta = 0;\n }\n this.setCellLocations(plalementChange, model);\n };\n //sets the cell position in the after the layout operation\n HierarchicalLayoutUtil.prototype.setCellLocations = function (plalementChange, model) {\n var vertices = this.getValues(model.vertexMapper);\n for (var i = 0; i < vertices.length; i++) {\n this.setVertexLocation(plalementChange, vertices[parseInt(i.toString(), 10)]);\n }\n };\n //used to specify the geometrical position of the layout model cell\n HierarchicalLayoutUtil.prototype.garphModelsetVertexLocation = function (plalementChange, cell, x, y) {\n //let model: MultiParentModel = plalementChange.model;\n var geometry = cell.geometry;\n var result = null;\n if (geometry != null) {\n result = { x: x, y: y, width: geometry.width, height: geometry.height };\n if (geometry.x !== x || geometry.y !== y) {\n cell.geometry = result;\n }\n }\n return result;\n };\n //set the position of the specified node\n HierarchicalLayoutUtil.prototype.setVertexLocation = function (plalementChange, cell) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var realCell = cell.cell;\n var positionX = cell.x[0] - cell.width / 2;\n var positionY = cell.y[0] - cell.height / 2;\n this.garphModelsetVertexLocation(plalementChange, realCell, positionX, positionY);\n if (isHorizontal) {\n if (!plalementChange.marginY) {\n plalementChange.marginY = 0;\n }\n plalementChange.marginY = Math.max(plalementChange.marginY, positionY + cell.height);\n }\n else {\n if (!plalementChange.marginX) {\n plalementChange.marginX = 0;\n }\n plalementChange.marginX = Math.max(plalementChange.marginX, positionX + cell.width);\n }\n };\n /**\n * get the specific value from the key value pair \\\n *\n * @returns { {}[] } get the specific value from the key value pair \\\n * @param {VertexMapper} mapper - provide the mapper value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getValues = function (mapper) {\n var list = [];\n if (mapper.map) {\n for (var _i = 0, _a = Object.keys(mapper.map); _i < _a.length; _i++) {\n var key = _a[_i];\n list.push(mapper.map[\"\" + key]);\n }\n }\n return list;\n };\n /**\n *Checks and reduces the crosses in between line segments \\\n *\n * @returns { void } Checks and reduces the crosses in between line segments.\\\n * @param {End} model - provide the model value.\n *\n * @private\n */\n HierarchicalLayoutUtil.prototype.crossingStage = function (model) {\n this.crossReduction.execute(model);\n };\n //Initializes the ranks of the vertices\n HierarchicalLayoutUtil.prototype.layeringStage = function (model) {\n this.initialRank(model);\n this.fixRanks(model);\n };\n //determine the initial rank for the each vertex on the relevent direction\n HierarchicalLayoutUtil.prototype.initialRank = function (model) {\n var startNodes = model.startNodes;\n var internalNodes = model.getDictionaryValues(model.vertexMapper);\n var startNodesCopy = startNodes.slice();\n while (startNodes.length > 0) {\n var internalNode = startNodes[0];\n var layerDeterminingEdges = internalNode.connectsAsTarget;\n var edgesToBeMarked = internalNode.connectsAsSource;\n var allEdgesScanned = true;\n var minimumLayer = 100000000;\n for (var i = 0; i < layerDeterminingEdges.length; i++) {\n var internalEdge = layerDeterminingEdges[parseInt(i.toString(), 10)];\n if (internalEdge.temp[0] === 5270620) {\n // This edge has been scanned, get the layer of the node on the other end\n var otherNode = internalEdge.source;\n minimumLayer = Math.min(minimumLayer, otherNode.temp[0] - 1);\n }\n else {\n allEdgesScanned = false;\n break;\n }\n }\n // If all edge have been scanned, assign the layer, mark all edges in the other direction and remove from the nodes list\n if (allEdgesScanned) {\n internalNode.temp[0] = minimumLayer;\n if (!model.maxRank) {\n model.maxRank = 100000000;\n }\n model.maxRank = Math.min(model.maxRank, minimumLayer);\n if (edgesToBeMarked != null) {\n for (var i = 0; i < edgesToBeMarked.length; i++) {\n var internalEdge = edgesToBeMarked[parseInt(i.toString(), 10)];\n internalEdge.temp[0] = 5270620;\n // Add node on other end of edge to LinkedList of nodes to be analysed\n var otherNode = internalEdge.target;\n // Only add node if it hasn't been assigned a layer\n if (otherNode.temp[0] === -1) {\n startNodes.push(otherNode);\n // Mark this other node as neither being unassigned nor assigned\n //so it isn't added to this list again, but it's layer isn't used in any calculation.\n otherNode.temp[0] = -2;\n }\n }\n }\n startNodes.shift();\n }\n else {\n // Not all the edges have been scanned, get to the back of the class and put the dunces cap on\n var removedCell = startNodes.shift();\n startNodes.push(internalNode);\n if (removedCell === internalNode && startNodes.length === 1) {\n // This is an error condition, we can't get out of this loop.\n //It could happen for more than one node but that's a lot harder to detect. Log the error\n break;\n }\n }\n }\n for (var i = 0; i < internalNodes.length; i++) {\n internalNodes[parseInt(i.toString(), 10)].temp[0] -= model.maxRank;\n }\n for (var i = 0; i < startNodesCopy.length; i++) {\n var internalNode = startNodesCopy[parseInt(i.toString(), 10)];\n var currentMaxLayer = 0;\n var layerDeterminingEdges = internalNode.connectsAsSource;\n for (var j = 0; j < layerDeterminingEdges.length; j++) {\n var internalEdge = layerDeterminingEdges[parseInt(j.toString(), 10)];\n var otherNode = internalEdge.target;\n internalNode.temp[0] = Math.max(currentMaxLayer, otherNode.temp[0] + 1);\n currentMaxLayer = internalNode.temp[0];\n }\n }\n model.maxRank = 100000000 - model.maxRank;\n };\n //used to set the optimum value of each vertex on the layout\n HierarchicalLayoutUtil.prototype.fixRanks = function (model) {\n model.fixRanks();\n };\n //used to determine any cyclic stage have been created on the layout model\n HierarchicalLayoutUtil.prototype.cycleStage = function (model) {\n var seenNodes = {};\n model.startNodes = [];\n var unseenNodesArray = model.getDictionaryValues(model.vertexMapper);\n var unseenNodes = [];\n for (var i = 0; i < unseenNodesArray.length; i++) {\n unseenNodesArray[parseInt(i.toString(), 10)].temp[0] = -1;\n unseenNodes[unseenNodesArray[parseInt(i.toString(), 10)].id] = unseenNodesArray[parseInt(i.toString(), 10)];\n }\n var rootsArray = null;\n if (model.roots != null) {\n var modelRoots = model.roots;\n rootsArray = [];\n for (var i = 0; i < modelRoots.length; i++) {\n rootsArray[parseInt(i.toString(), 10)] = model.getDictionary(model.vertexMapper, modelRoots[parseInt(i.toString(), 10)]);\n if (rootsArray[parseInt(i.toString(), 10)] != null) {\n model.startNodes.push(rootsArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n model.visit('removeParentConnection', rootsArray, true, null, { seenNodes: seenNodes, unseenNodes: unseenNodes });\n var seenNodesCopy = model.clone(seenNodes, null, true);\n model.visit('removeNodeConnection', unseenNodes, true, seenNodesCopy, { seenNodes: seenNodes, unseenNodes: unseenNodes });\n };\n /**\n * removes the edge from the given collection \\\n *\n * @returns { IEdge } removes the edge from the given collection .\\\n * @param {IEdge} obj - provide the angle value.\n * @param { IEdge[]} array - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.remove = function (obj, array) {\n var index = array.indexOf(obj);\n if (index !== -1) {\n array.splice(index, 1);\n }\n return obj;\n };\n /**\n * Inverts the source and target of an edge \\\n *\n * @returns { void } Inverts the source and target of an edge .\\\n * @param {IEdge} connectingEdge - provide the angle value.\n * @param { number} layer - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.invert = function (connectingEdge, layer) {\n var temp = connectingEdge.source;\n connectingEdge.source = connectingEdge.target;\n connectingEdge.target = temp;\n connectingEdge.isReversed = !connectingEdge.isReversed;\n };\n /**\n * used to get the edges between the given source and target \\\n *\n * @returns { IConnector[] } used to get the edges between the given source and target .\\\n * @param {Vertex} source - provide the angle value.\n * @param { Vertex} target - provide the angle value.\n * @param { boolean} directed - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getEdgesBetween = function (source, target, directed) {\n directed = (directed != null) ? directed : false;\n var edges = this.getEdges(source);\n var result = [];\n for (var i = 0; i < edges.length; i++) {\n var src = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true);\n var trg = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], false);\n if ((src === source && trg === target) || (!directed && src === target && trg === source)) {\n result.push(edges[parseInt(i.toString(), 10)]);\n }\n }\n return result;\n };\n return HierarchicalLayoutUtil;\n}());\n/**\n * Handles position the objects in a hierarchical tree structure\n */\nvar MultiParentModel = /** @class */ (function () {\n function MultiParentModel(layout, vertices, roots, dlayout) {\n this.multiObjectIdentityCounter = 0;\n //used to count the no of times the parent have been used\n this.dfsCount = 0;\n this.hierarchicalUtil = new HierarchicalLayoutUtil();\n this.roots = roots;\n this.vertexMapper = { map: {} };\n var internalVertices = [];\n this.layout = dlayout;\n this.maxRank = 100000000;\n this.edgeMapper = { map: {} };\n this.hierarchicalLayout = layout;\n this.createInternalCells(layout, vertices, internalVertices, dlayout);\n for (var i = 0; i < vertices.length; i++) {\n var edges = internalVertices[parseInt(i.toString(), 10)].connectsAsSource;\n for (var j = 0; j < edges.length; j++) {\n var internalEdge = edges[parseInt(j.toString(), 10)];\n var realEdges = internalEdge.edges;\n if (realEdges != null && realEdges.length > 0) {\n var realEdge = realEdges[0];\n var targetCell = layout.getVisibleTerminal(realEdge, false);\n var internalTargetCell = this.getDictionary(this.vertexMapper, targetCell);\n if (internalVertices[parseInt(i.toString(), 10)] === internalTargetCell) {\n targetCell = layout.getVisibleTerminal(realEdge, true);\n internalTargetCell = this.getDictionary(this.vertexMapper, targetCell);\n }\n if (internalTargetCell != null && internalVertices[parseInt(i.toString(), 10)] !== internalTargetCell) {\n internalEdge.target = internalTargetCell;\n if (internalTargetCell.connectsAsTarget.length === 0) {\n internalTargetCell.connectsAsTarget = [];\n }\n if (internalTargetCell.connectsAsTarget.indexOf(internalEdge) < 0) {\n internalTargetCell.connectsAsTarget.push(internalEdge);\n }\n }\n }\n }\n internalVertices[parseInt(i.toString(), 10)].temp[0] = 1;\n }\n }\n /* tslint:disable */\n MultiParentModel.prototype.resetEdge = function (edge) {\n var geometry = { x: 0, y: 0, width: 0, height: 0, relative: true };\n var geo = geometry;\n edge['geometry'] = geo;\n return edge;\n };\n // eslint-disable-next-line max-len\n MultiParentModel.prototype.createInternalCells = function (layout, vertices, internalVertices, dlayout) {\n for (var i = 0; i < vertices.length; i++) {\n internalVertices[parseInt(i.toString(), 10)] = {\n x: [], y: [], temp: [], cell: vertices[parseInt(i.toString(), 10)],\n id: vertices[parseInt(i.toString(), 10)].name, connectsAsTarget: [], connectsAsSource: [], type: 'internalVertex'\n };\n this.setDictionary(this.vertexMapper, vertices[parseInt(i.toString(), 10)], internalVertices[parseInt(i.toString(), 10)]);\n var conns = layout.getEdges(vertices[parseInt(i.toString(), 10)]);\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource = [];\n for (var j = 0; j < conns.length; j++) {\n var cell = layout.getVisibleTerminal(conns[parseInt(j.toString(), 10)], false);\n if (cell !== vertices[parseInt(i.toString(), 10)]) {\n var undirectedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, false);\n var directedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, true);\n if (undirectedEdges != null && undirectedEdges.length > 0 && directedEdges.length * 2 >= undirectedEdges.length) {\n var internalEdge = { x: [], y: [], temp: [], edges: undirectedEdges, ids: [] };\n if (dlayout.enableLayoutRouting) {\n for (var k = 0; k < undirectedEdges.length; k++) {\n var edge = undirectedEdges[parseInt(k.toString(), 10)];\n this.setDictionary(this.edgeMapper, undefined, internalEdge, edge.id);\n // Resets all point on the edge and disables the edge style\n // without deleting it from the cell style\n this.resetEdge(edge);\n }\n }\n internalEdge.source = internalVertices[parseInt(i.toString(), 10)];\n for (var m = 0; m < undirectedEdges.length; m++) {\n internalEdge.ids.push(undirectedEdges[parseInt(m.toString(), 10)].id);\n }\n internalEdge.source = internalVertices[parseInt(i.toString(), 10)];\n if (!internalVertices[parseInt(i.toString(), 10)].connectsAsSource) {\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource = [];\n }\n if (internalVertices[parseInt(i.toString(), 10)].connectsAsSource.indexOf(internalEdge) < 0) {\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource.push(internalEdge);\n }\n }\n }\n }\n internalVertices[parseInt(i.toString(), 10)].temp[0] = 0;\n }\n };\n /* tslint:enable */\n /**\n * used to set the optimum value of each vertex on the layout \\\n *\n * @returns { void } used to set the optimum value of each vertex on the layout .\\\n * @private\n */\n MultiParentModel.prototype.fixRanks = function () {\n var rankList = [];\n this.ranks = [];\n for (var i = 0; i < this.maxRank + 1; i++) {\n rankList[parseInt(i.toString(), 10)] = [];\n this.ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)];\n }\n var rootsArray = null;\n if (this.roots != null) {\n var oldRootsArray = this.roots;\n rootsArray = [];\n for (var i = 0; i < oldRootsArray.length; i++) {\n var cell = oldRootsArray[parseInt(i.toString(), 10)];\n var internalNode = this.getDictionary(this.vertexMapper, cell);\n rootsArray[parseInt(i.toString(), 10)] = internalNode;\n }\n }\n this.visit('updateMinMaxRank', rootsArray, false, null, { seenNodes: null, unseenNodes: null, rankList: rankList });\n };\n //Updates the min/max rank of the layer\n MultiParentModel.prototype.updateMinMaxRank = function (layer, seen, data) {\n //let seenNodes: {} = data.seenNodes;\n //let unseenNodes: {} = data.unseenNodes;\n var parent = data.parent;\n var node = data.root;\n var edge = data.edge;\n var rankList = data.rankList;\n if (!node.maxRank && node.maxRank !== 0) {\n node.maxRank = -1;\n }\n if (!node.minRank && node.minRank !== 0) {\n node.minRank = -1;\n }\n if (seen === 0 && node.maxRank < 0 && node.minRank < 0) {\n rankList[node.temp[0]].push(node);\n node.maxRank = node.temp[0];\n node.minRank = node.temp[0];\n node.temp[0] = rankList[node.maxRank].length - 1;\n }\n if (parent != null && edge != null) {\n var parentToCellRankDifference = parent.maxRank - node.maxRank;\n if (parentToCellRankDifference > 1) {\n edge.maxRank = parent.maxRank;\n edge.minRank = node.maxRank;\n edge.temp = [];\n edge.x = [];\n edge.y = [];\n for (var i = edge.minRank + 1; i < edge.maxRank; i++) {\n rankList[parseInt(i.toString(), 10)].push(edge);\n this.hierarchicalUtil.setTempVariable(edge, i, rankList[parseInt(i.toString(), 10)].length - 1);\n }\n }\n }\n };\n //used to store the value of th given key on the object\n MultiParentModel.prototype.setDictionary = function (dic, key, value, edgeId) {\n if (!edgeId) {\n var id = key.name;\n var previous = dic.map[\"\" + id];\n dic.map[\"\" + id] = value;\n return previous;\n }\n else {\n var previous = dic.map[\"\" + edgeId];\n dic.map[\"\" + edgeId] = value;\n return previous;\n }\n };\n /**\n * used to store the value of th given key on the objectt \\\n *\n * @returns { IVertex } used to store the value of th given key on the object .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @param {WeightedCellSorter} value - provide the angle value.\n * @param {boolean} flag - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.setDictionaryForSorter = function (dic, key, value, flag) {\n var id = key.id;\n if (!id) {\n //id = this._getDictionaryForSorter(dic, key);\n }\n var previous = dic.map[\"\" + id];\n dic.map[\"\" + id] = value;\n return previous;\n };\n /**\n * used to get the value of the given key \\\n *\n * @returns { IVertex } used to get the value of the given key .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionary = function (dic, key) {\n if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) {\n this.multiObjectIdentityCounter = 0;\n }\n var id = key.name;\n if (!id) {\n if (!key.layoutObjectId) { ///####\n key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++;\n return key.layoutObjectId;\n }\n else {\n return dic.map[key.layoutObjectId];\n }\n }\n return dic.map[\"\" + id];\n };\n /**\n * used to get the value of the given key \\\n *\n * @returns { IVertex } used to get the value of the given key .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionaryForSorter = function (dic, key) {\n if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) {\n this.multiObjectIdentityCounter = 0;\n }\n var id = key.id;\n if (!id) {\n if (!key.layoutObjectId) { ///####\n key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++;\n return key.layoutObjectId;\n }\n else {\n return dic.map[key.layoutObjectId];\n }\n }\n return dic.map[\"\" + id];\n };\n /**\n * used to get all the values of the dictionary object \\\n *\n * @returns { IVertex[] } used to get all the values of the dictionary object .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionaryValues = function (dic) {\n var result = [];\n for (var _i = 0, _a = Object.keys(dic.map); _i < _a.length; _i++) {\n var key = _a[_i];\n result.push(dic.map[\"\" + key]);\n }\n return result;\n };\n /**\n * used to visit all the entries on the given dictionary with given function \\\n *\n * @returns { void } used to visit all the entries on the given dictionary with given function .\\\n * @param {string} visitor - provide the visitor value.\n * @param {IVertex[]} dfsRoots - provide the dfsRoots value.\n * @param {boolean} trackAncestors - provide the trackAncestors value.\n * @param {{}} seenNodes - provide the seenNodes value.\n * @param {TraverseData} data - provide the data value.\n * @private\n */\n MultiParentModel.prototype.visit = function (visitor, dfsRoots, trackAncestors, seenNodes, data) {\n //let seenNodes1: {} = data.seenNodes;\n //let unseenNodes1: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n // Run depth first search through on all roots\n if (dfsRoots != null) {\n for (var i = 0; i < dfsRoots.length; i++) {\n var internalNode = dfsRoots[parseInt(i.toString(), 10)];\n if (internalNode != null) {\n if (seenNodes == null) {\n seenNodes = new Object();\n }\n data.parent = null;\n data.root = internalNode;\n data.edge = null;\n if (trackAncestors) {\n // Set up hash code for root\n internalNode.hashCode = [];\n internalNode.hashCode[0] = this.dfsCount;\n internalNode.hashCode[1] = i;\n this.extendedDfs(visitor, seenNodes, i, 0, data);\n }\n else {\n this.depthFirstSearch(visitor, seenNodes, 0, data);\n }\n }\n }\n this.dfsCount++;\n }\n };\n //used to perform the depth fisrt search on the layout model\n MultiParentModel.prototype.depthFirstSearch = function (visitor, seen, layer, data) {\n //let seenNodes1: {} = data.seenNodes;\n //let unseenNodes1: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n //let parent: IVertex = data.parent;\n var root = data.root;\n //let edge: IEdge = data.edge;\n if (root != null) {\n var rootId = root.id;\n if (seen[\"\" + rootId] == null) {\n seen[\"\" + rootId] = root;\n this.updateConnectionRank(visitor, layer, 0, data);\n // Copy the connects as source list so that visitors can change the original for edge direction inversions\n var outgoingEdges = root.connectsAsSource.slice();\n for (var i = 0; i < outgoingEdges.length; i++) {\n var internalEdge = outgoingEdges[parseInt(i.toString(), 10)];\n var targetNode = internalEdge.target;\n // Root check is O(|roots|)\n data.parent = root;\n data.root = targetNode;\n data.edge = internalEdge;\n this.depthFirstSearch(visitor, seen, layer + 1, data);\n }\n }\n else {\n this.updateConnectionRank(visitor, layer, 1, data);\n }\n }\n };\n //Updates the rank of the connection\n MultiParentModel.prototype.updateConnectionRank = function (visitor, layer, seen, traversedList) {\n var parent = traversedList.parent;\n var root = traversedList.root;\n var edge = traversedList.edge;\n if (visitor === 'removeParentConnection' || visitor === 'removeNodeConnection') {\n var remove = visitor === 'removeNodeConnection';\n this.removeConnectionEdge(parent, root, edge, layer, traversedList, remove);\n }\n if (visitor === 'updateMinMaxRank') {\n this.updateMinMaxRank(layer, seen, traversedList);\n }\n };\n //Removes the edge from the collection\n MultiParentModel.prototype.removeConnectionEdge = function (parent, node, edge, layer, data, remove) {\n var seenNodes = data.seenNodes;\n var unseenNodes = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n if (this.hierarchicalUtil.isAncestor(node, parent)) {\n this.hierarchicalUtil.invert(edge, 0);\n this.hierarchicalUtil.remove(edge, parent.connectsAsSource);\n if (remove) {\n node.connectsAsSource.push(edge);\n parent.connectsAsTarget.push(edge);\n this.hierarchicalUtil.remove(edge, node.connectsAsTarget);\n }\n else {\n parent.connectsAsTarget.push(edge);\n this.hierarchicalUtil.remove(edge, node.connectsAsTarget);\n node.connectsAsSource.push(edge);\n }\n }\n seenNodes[node.id] = node;\n delete unseenNodes[node.id];\n };\n //the dfs extends the default version by keeping track of cells ancestors, but it should be only used when necessary\n MultiParentModel.prototype.extendedDfs = function (visitor, seen, cHash, layer, data) {\n //let seenNodes: {} = data.seenNodes;\n //let unseenNodes: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n var parent = data.parent;\n var root = data.root;\n var edge = data.edge;\n if (root != null) {\n if (parent != null) {\n if (root.hashCode == null ||\n root.hashCode[0] !== parent.hashCode[0]) {\n var hashCodeLength = parent.hashCode.length + 1;\n root.hashCode = parent.hashCode.slice();\n root.hashCode[hashCodeLength - 1] = cHash;\n }\n }\n var rootId = root.id;\n if (seen[\"\" + rootId] == null) {\n seen[\"\" + rootId] = root;\n this.updateConnectionRank(visitor, layer, 0, data);\n var outgoingEdges = root.connectsAsSource.slice();\n for (var i = 0; i < outgoingEdges.length; i++) {\n var internalEdge = outgoingEdges[parseInt(i.toString(), 10)];\n var targetNode = internalEdge.target;\n data.parent = root;\n data.root = targetNode;\n data.edge = internalEdge;\n this.extendedDfs(visitor, seen, i, layer + 1, data);\n }\n }\n else {\n this.updateConnectionRank(visitor, layer, 1, data);\n }\n }\n };\n /**\n * used to clone the specified object ignoring all fieldnames in the given array of transient fields \\\n *\n * @returns { void } used to clone the specified object ignoring all fieldnames in the given array of transient fields .\\\n * @param {Object} obj - provide the source value.\n * @param {string[]} transients - provide the target value.\n * @param {boolean} shallow - provide the shallow value.\n *\n * @private\n */\n MultiParentModel.prototype.clone = function (obj, transients, shallow) {\n shallow = (shallow != null) ? shallow : false;\n if (obj != null && typeof (obj.constructor) === 'function') {\n var clonedObj = obj.constructor();\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var i = _a[_i];\n if (i !== 'layoutObjectId' && (transients == null || transients.indexOf(i) < 0)) {\n if (!shallow && typeof (obj[\"\" + i]) === 'object') {\n //not used\n // _clone[i] = $.extend(true, {}, obj[i]);\n }\n else {\n clonedObj[\"\" + i] = obj[\"\" + i];\n }\n }\n }\n return clonedObj;\n }\n return null;\n };\n return MultiParentModel;\n}());\n/**\n * Defines how to reduce the crosses in between the line segments\n */\nvar CrossReduction = /** @class */ (function () {\n function CrossReduction() {\n }\n /**\n * used to calculate the number of edges crossing the layout model \\\n *\n * @returns { number } used to calculate the number of edges crossing the layout model\\\n * @param {MultiParentModel} model - provide the model value.\n *\n * @private\n */\n CrossReduction.prototype.calculateCrossings = function (model) {\n var numRanks = model.ranks.length;\n var totalCrossings = 0;\n for (var i = 1; i < numRanks; i++) {\n totalCrossings += this.calculateRankCrossing(i, model);\n }\n return totalCrossings;\n };\n /**\n * used to get the temp value specified for the node or connector. \\\n *\n * @returns { boolean } used to get the temp value specified for the node or connector.\\\n * @param {IVertex} node - provide the node value.\n * @param {IVertex} layer - provide the layer value.\n *\n * @private\n */\n CrossReduction.prototype.getTempVariable = function (node, layer) {\n if (node) {\n if (this.isVertex(node)) {\n return node.temp[0];\n }\n else {\n return node.temp[layer - node.minRank - 1];\n }\n }\n return 0;\n };\n //used to specify the number of conenctors crossing between the specified rank and its below rank\n CrossReduction.prototype.calculateRankCrossing = function (i, model) {\n var totalCrossings = 0;\n var rank = model.ranks[parseInt(i.toString(), 10)];\n var previousRank = model.ranks[i - 1];\n var tmpIndices = [];\n // Iterate over the top rank and fill in the connection information\n for (var j = 0; j < rank.length; j++) {\n var node = rank[parseInt(j.toString(), 10)];\n var rankPosition = this.getTempVariable(node, i);\n var connectedCells = this.getConnectedCellsOnLayer(node, i, true);\n ///####\n var nodeIndices = [];\n for (var k = 0; k < connectedCells.length; k++) {\n var connectedNode = connectedCells[parseInt(k.toString(), 10)];\n var otherCellRankPosition = this.getTempVariable(connectedNode, i - 1);\n nodeIndices.push(otherCellRankPosition);\n }\n nodeIndices.sort(function (x, y) { return x - y; });\n tmpIndices[parseInt(rankPosition.toString(), 10)] = nodeIndices;\n }\n var indices = [];\n for (var j = 0; j < tmpIndices.length; j++) {\n indices = indices.concat(tmpIndices[parseInt(j.toString(), 10)]);\n }\n var firstIndex = 1;\n while (firstIndex < previousRank.length) {\n firstIndex <<= 1;\n }\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = [];\n for (var j = 0; j < treeSize; ++j) {\n tree[parseInt(j.toString(), 10)] = 0;\n }\n for (var j = 0; j < indices.length; j++) {\n var index = indices[parseInt(j.toString(), 10)];\n var treeIndex = index + firstIndex;\n ++tree[parseInt(treeIndex.toString(), 10)];\n while (treeIndex > 0) {\n if (treeIndex % 2) {\n totalCrossings += tree[treeIndex + 1];\n }\n treeIndex = (treeIndex - 1) >> 1;\n ++tree[parseInt(treeIndex.toString(), 10)];\n }\n }\n return totalCrossings;\n };\n /**\n * Calculates and reduces the crosses between line segments\n *\n * @returns { void }Calculates and reduces the crosses between line segments.\\\n * @param {MultiParentModel} model - provide the target value.\n * @private\n */\n CrossReduction.prototype.execute = function (model) {\n // Stores initial ordering\n this.nestedBestRanks = [];\n for (var i = 0; i < model.ranks.length; i++) {\n this.nestedBestRanks[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)].slice();\n }\n var iterationsWithoutImprovement = 0;\n var currentBestCrossings = this.calculateCrossings(model);\n for (var i = 0; i < 24 && iterationsWithoutImprovement < 2; i++) {\n this.weightedMedian(i, model);\n var candidateCrossings = this.calculateCrossings(model);\n if (candidateCrossings < currentBestCrossings) {\n currentBestCrossings = candidateCrossings;\n iterationsWithoutImprovement = 0;\n for (var j = 0; j < this.nestedBestRanks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n var obj = this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]];\n var check = true;\n if (cell.edges && obj && !obj.edges) {\n check = false;\n }\n if (obj && check) {\n this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]] = cell;\n }\n }\n }\n }\n else {\n // Increase count of iterations\n iterationsWithoutImprovement++;\n // Restore the best values to the cells\n for (var j = 0; j < this.nestedBestRanks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n this.setTempVariable(cell, j, k);\n }\n }\n }\n if (currentBestCrossings === 0) {\n break;\n }\n }\n // Store the best rankings but in the model\n var ranks = [];\n var rankList = [];\n for (var i = 0; i < model.maxRank + 1; i++) {\n rankList[parseInt(i.toString(), 10)] = [];\n ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)];\n }\n for (var i = 0; i < this.nestedBestRanks.length; i++) {\n for (var j = 0; j < this.nestedBestRanks[parseInt(i.toString(), 10)].length; j++) {\n rankList[parseInt(i.toString(), 10)].push(this.nestedBestRanks[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]);\n }\n }\n model.ranks = ranks;\n };\n /**\n * check whether the object is vertext or edge on the layout model. \\\n *\n * @returns { boolean } check whether the object is vertext or edge on the layout model..\\\n * @param {IVertex} node - provide the iteration value.\n *\n * @private\n */\n CrossReduction.prototype.isVertex = function (node) {\n if (node && node.cell && ((node.cell.inEdges && node.cell.inEdges.length) || (node.cell.outEdges && node.cell.outEdges.length))) {\n return true;\n }\n return false;\n };\n /**\n * used to move up or move down the node position on the adjacent ranks \\\n *\n * @returns { void } used to move up or move down the node position on the adjacent ranks.\\\n * @param {number} iteration - provide the iteration value.\n * @param {MultiParentModel} model - provide the model value.\n *\n * @private\n */\n CrossReduction.prototype.weightedMedian = function (iteration, model) {\n // Reverse sweep direction each time through this method\n var downwardSweep = (iteration % 2 === 0);\n if (downwardSweep) {\n for (var j = model.maxRank - 1; j >= 0; j--) {\n this.medianRank(j, downwardSweep);\n }\n }\n else {\n for (var j = 1; j < model.maxRank; j++) {\n this.medianRank(j, downwardSweep);\n }\n }\n };\n /**\n * used to get the node next(up) connected to the specified node or connector \\\n *\n * @returns { void } calculates the rank elements on the specified rank.\\\n * @param {IVertex} cell - provide the cell value.\n * @param {number} layer - provide the layer value.\n * @param {boolean} isPrevious - provide the isPrevious value.\n *\n * @private\n */\n CrossReduction.prototype.getConnectedCellsOnLayer = function (cell, layer, isPrevious) {\n if (isPrevious === void 0) { isPrevious = false; }\n var connectedlayer = 'nextLayerConnectedCells';\n var connectedAs = 'connectsAsTarget';\n if (isPrevious) {\n connectedlayer = 'previousLayerConnectedCells';\n connectedAs = 'connectsAsSource';\n }\n if (cell) {\n if (this.isVertex(cell)) {\n if (cell[\"\" + connectedlayer] == null) {\n cell[\"\" + connectedlayer] = [];\n cell[\"\" + connectedlayer][0] = [];\n for (var i = 0; i < cell[\"\" + connectedAs].length; i++) {\n var edge = cell[\"\" + connectedAs][parseInt(i.toString(), 10)];\n if (edge.maxRank === undefined) {\n edge.maxRank = -1;\n }\n if (edge.maxRank === -1 || (isPrevious ? (edge.minRank === layer - 1) : (edge.maxRank === layer + 1))) {\n // Either edge is not in any rank or no dummy nodes in edge, add node of other side of edge\n cell[\"\" + connectedlayer][0].push(isPrevious ? edge.target : edge.source);\n }\n else {\n // Edge spans at least two layers, add edge\n cell[\"\" + connectedlayer][0].push(edge);\n }\n }\n }\n return cell[\"\" + connectedlayer][0];\n }\n else {\n if (cell[\"\" + connectedlayer] == null) {\n cell[\"\" + connectedlayer] = [];\n for (var i = 0; i < cell.temp.length; i++) {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)] = [];\n if (i === (isPrevious ? 0 : (cell.temp.length - 1))) {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)].push(isPrevious ? cell.target : cell.source);\n }\n else {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)].push(cell);\n }\n }\n }\n return cell[\"\" + connectedlayer][layer - cell.minRank - 1];\n }\n }\n return null;\n };\n /**\n * calculates the rank elements on the specified rank \\\n *\n * @returns { void } calculates the rank elements on the specified rank.\\\n * @param {IVertex[]} connectedCells - provide the cell value.\n * @param {number} rankValue - provide the layer value.\n *\n * @private\n */\n CrossReduction.prototype.medianValue = function (connectedCells, rankValue) {\n var medianValues = [];\n var arrayCount = 0;\n for (var i = 0; i < connectedCells.length; i++) {\n var cell = connectedCells[parseInt(i.toString(), 10)];\n medianValues[arrayCount++] = this.getTempVariable(cell, rankValue);\n }\n // sorts numerical order sort\n medianValues.sort(function (a, b) { return a - b; });\n if (arrayCount % 2 === 1) {\n // For odd numbers of adjacent vertices return the median\n return medianValues[Math.floor(arrayCount / 2)];\n }\n else if (arrayCount === 2) {\n return ((medianValues[0] + medianValues[1]) / 2.0);\n }\n else {\n var medianPoint = arrayCount / 2;\n var leftMedian = medianValues[medianPoint - 1] - medianValues[0];\n var rightMedian = medianValues[arrayCount - 1]\n - medianValues[parseInt(medianPoint.toString(), 10)];\n return (medianValues[medianPoint - 1] * rightMedian + medianValues[parseInt(medianPoint.toString(), 10)] * leftMedian)\n / (leftMedian + rightMedian);\n }\n };\n /**\n * get the temp value of the specified layer \\\n *\n * @returns { void } getDirection method .\\\n * @param {IVertex} cell - provide the cell value.\n * @param {layer} layer - provide the layer value.\n * @param {LayoutOrientation} value - provide the value value.\n *\n * @private\n */\n CrossReduction.prototype.setTempVariable = function (cell, layer, value) {\n if (cell) {\n cell.temp[0] = value;\n }\n };\n /**\n * used to minimize the node position on this rank and one of its adjacent ranks\n */\n CrossReduction.prototype.medianRank = function (rankValue, downwardSweep) {\n var numCellsForRank = this.nestedBestRanks[parseInt(rankValue.toString(), 10)].length;\n var medianValues = [];\n var reservedPositions = [];\n for (var i = 0; i < numCellsForRank; i++) {\n var cell = this.nestedBestRanks[parseInt(rankValue.toString(), 10)][parseInt(i.toString(), 10)];\n var sorterEntry = { medianValue: 0 };\n sorterEntry.cell = cell;\n // Flip whether or not equal medians are flipped on up and down sweeps\n //TODO re-implement some kind of nudge medianValues[i].nudge = !downwardSweep;\n var nextLevelConnectedCells = void 0;\n if (downwardSweep) {\n nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue);\n }\n else {\n nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue, true);\n }\n var nextRankValue = void 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n downwardSweep ? nextRankValue = rankValue + 1 : nextRankValue = rankValue - 1;\n if (nextLevelConnectedCells != null && nextLevelConnectedCells.length !== 0) {\n sorterEntry.medianValue = this.medianValue(nextLevelConnectedCells, nextRankValue);\n medianValues.push(sorterEntry);\n }\n else {\n // Nodes with no adjacent vertices are flagged in the reserved array to\n //indicate they should be left in their current position.\n reservedPositions[this.getTempVariable(cell, rankValue)] = true;\n }\n }\n medianValues.sort(this.compare);\n // Set the new position of each node within the rank using its temp variable\n for (var i = 0; i < numCellsForRank; i++) {\n if (reservedPositions[parseInt(i.toString(), 10)] == null && medianValues.length > 0) {\n var cell = medianValues.shift().cell;\n this.setTempVariable(cell, rankValue, i);\n }\n }\n };\n //compares two values, it sends the values to the compare function,\n //and sorts the values according to the returned (negative, zero, positive) value\n CrossReduction.prototype.compare = function (a, b) {\n if (a != null && b != null) {\n if (b.medianValue > a.medianValue) {\n return -1;\n }\n else if (b.medianValue < a.medianValue) {\n return 1;\n }\n }\n return 0;\n };\n return CrossReduction;\n}());\nvar MatrixModel = /** @class */ (function () {\n function MatrixModel() {\n this.edgeMapper = [];\n }\n /* tslint:disable */\n /** @private */\n /**\n * Arrange the elements\n *\n * @returns { void } arrange the elements.\\\n * @param {MatrixModelObject} matrixModel - provide the Matrix Model Object.\n * @param {Layout} layout - provide the layout value.\n *\n * @private\n */\n MatrixModel.prototype.arrangeElements = function (matrixModel, layout) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal;\n if (layout.orientation === 'LeftToRight' || layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n else {\n isHorizontal = false;\n }\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n //let spacingInverse: number = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // Need to group element before\n this.groupLayoutCells(matrixModel);\n this.createMatrixCells(matrixModel);\n for (var j = 0; j < matrixModel.matrix.length; j++) {\n var matrixKey = matrixModel.matrix[parseInt(j.toString(), 10)].key;\n var matrixrow = matrixModel.matrix[parseInt(matrixKey.toString(), 10)].value;\n for (var i = 1; i < matrixrow.length; i++) {\n var cell = matrixrow[parseInt(i.toString(), 10)];\n var prevCell = matrixrow[i - 1];\n cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n }\n // Sort roots based on their indices\n matrixModel.roots.sort(function (a, b) {\n if (a.cells[0] && b.cells[0]) {\n var indexA = matrixModel.model.roots.indexOf(a.cells[0].cell);\n var indexB = matrixModel.model.roots.indexOf(b.cells[0].cell);\n return indexA - indexB;\n }\n return 0;\n });\n for (var j = 0; j < matrixModel.roots.length; j++) {\n var root = matrixModel.roots[parseInt(j.toString(), 10)];\n this.arrangeMatrix(root, null, matrixModel);\n }\n for (var k = 0; k < matrixModel.matrix.length; k++) {\n var row = matrixModel.matrix[parseInt(k.toString(), 10)].value;\n for (var i = 0; i < row.length; i++) {\n var cell = row[parseInt(i.toString(), 10)];\n if (cell.visitedParents.length > 1) {\n var firstParent = cell.visitedParents[0];\n var lastParent = cell.visitedParents[cell.visitedParents.length - 1];\n var firstVertexParent = this.findParentVertexCellGroup(firstParent);\n var lastVertexParent = this.findParentVertexCellGroup(lastParent);\n if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) {\n firstParent = firstVertexParent;\n }\n if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) {\n lastParent = firstVertexParent;\n }\n var newoffset = (lastParent.offset + lastParent.size * 0.5 + firstParent.offset - firstParent.size * 0.5) / 2;\n var availOffsetMin = cell.initialOffset;\n var availOffsetMax = cell.offset;\n if (!(availOffsetMax === availOffsetMin)) {\n if (newoffset >= availOffsetMin && newoffset <= availOffsetMax) {\n this.translateMatrixCells(newoffset - cell.offset, cell);\n }\n else if (newoffset < availOffsetMin) {\n this.translateMatrixCells(availOffsetMin - cell.offset, cell);\n }\n }\n }\n }\n }\n this.setXYforMatrixCell(matrixModel);\n };\n /* tslint:enable */\n MatrixModel.prototype.groupLayoutCells = function (matrixModel) {\n var ranks = matrixModel.model.ranks;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var vertices = [];\n for (var v = 0; v < ranks[parseInt(j.toString(), 10)].length; v++) {\n var rank = ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)];\n var type = this.getType(rank.type);\n if (type === 'internalVertex') {\n vertices.push(ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)]);\n }\n }\n var edges = [];\n for (var e = 0; e < ranks[parseInt(j.toString(), 10)].length; e++) {\n var rank = ranks[parseInt(j.toString(), 10)][parseInt(e.toString(), 10)];\n var type = this.getType(rank.type);\n if (type === 'internalEdge') {\n edges.push(rank);\n }\n }\n while (vertices.length > 1) {\n var vertex1 = vertices[0];\n var parentset1 = this.selectIds(vertex1.connectsAsTarget, true);\n var childset1 = this.selectIds(vertex1.connectsAsSource, false);\n while (vertices.length > 1) {\n var vertex2 = vertices[1];\n var parentset2 = this.selectIds(vertex2.connectsAsTarget, true);\n var childset2 = this.selectIds(vertex2.connectsAsSource, false);\n var parentequals = this.compareLists(parentset1, parentset2);\n var childequals = this.compareLists(childset1, childset2);\n if (parentequals && childequals) {\n this.updateMutualSharing(vertices[0], vertex2.id);\n this.updateMutualSharing(vertices[1], vertex1.id);\n vertices.splice(1, 1);\n continue;\n }\n break;\n }\n vertices.splice(0, 1);\n }\n while (edges.length > 1) {\n var internalEdge = edges[0];\n var parentset = internalEdge.source;\n var childset = internalEdge.target;\n if (parentset.identicalSibiling != null) {\n var groupedges = [];\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[parseInt(i.toString(), 10)];\n if (edge.target === childset) {\n groupedges.push(edge);\n }\n }\n for (var i = 0; i < groupedges.length; i++) {\n var internalEdgese = groupedges[parseInt(i.toString(), 10)];\n if (this.containsValue(parentset.identicalSibiling, internalEdgese.source.id)) {\n internalEdgese.source.identicalSibiling = null;\n }\n }\n internalEdge.source.identicalSibiling = null;\n }\n edges.splice(0, 1);\n }\n }\n };\n /* tslint:disable */\n MatrixModel.prototype.createMatrixCells = function (matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var spacingInverse = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var ranks = matrixModel.model.ranks;\n var matrixCellMapper = [];\n var rowoffset = -spacingInverse;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var maxDimension = 0.0;\n var index = (ranks.length - 1) - j;\n var rank = ranks[parseInt(j.toString(), 10)].slice(); //.ToList();\n // Creating new row and adding it to matrix\n var matrixRow = [];\n matrixModel.matrix.push({ key: index, value: matrixRow });\n // Creating new row mapper\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var tempMatrixRow = [];\n matrixCellMapper.push({ index: index, value: tempMatrixRow });\n while (rank.length > 0) //.Any())\n {\n var layoutCell = rank[0];\n // eslint-disable-next-line max-len\n var matrixCell = { level: index, parents: [], children: [], visitedParents: [], visitedChildren: [], ignoredChildren: [], cells: [], size: 0, offset: 0, initialOffset: 0 };\n matrixRow.push(matrixCell);\n var type = this.getType(layoutCell.type);\n if (type === 'internalVertex') {\n matrixCell.cells.push(layoutCell);\n if (layoutCell.identicalSibiling != null) {\n for (var i = 0; i < rank.length; i++) {\n var internalVertex = rank[parseInt(i.toString(), 10)];\n var type_1 = this.getType(internalVertex.type);\n if (type_1 === 'internalVertex' && this.containsValue(layoutCell.identicalSibiling, internalVertex.id)) {\n matrixCell.cells.push(internalVertex);\n if (matrixCell.cells.length > layoutCell.identicalSibiling.length) {\n break;\n }\n }\n }\n }\n for (var i = 0; i < matrixCell.cells.length; i++) {\n var internalVertex = matrixCell.cells[parseInt(i.toString(), 10)];\n var type_2 = this.getType(internalVertex.type);\n if (type_2 === 'internalVertex') {\n var geometry = internalVertex.cell.geometry;\n matrixCell.size += isHorizontal ? geometry.height : geometry.width;\n maxDimension = Math.max(maxDimension, !isHorizontal ? geometry.height : geometry.width);\n tempMatrixRow.push({ key: internalVertex.id, value: matrixCell });\n if (internalVertex.connectsAsTarget.length > 0) {\n for (var k = 0; k < internalVertex.connectsAsTarget.length; k++) {\n var internalEdgese = internalVertex.connectsAsTarget[parseInt(k.toString(), 10)];\n var key = null;\n if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.ids)) {\n key = internalEdgese.ids;\n }\n else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.source.id)) {\n key = internalEdgese.source.id;\n }\n if (key != null) {\n var parentcellValue = matrixCellMapper[index - 1].value;\n var parentMartixCell = void 0;\n for (var v = 0; v < parentcellValue.length; v++) {\n if (parentcellValue[parseInt(v.toString(), 10)].key === key) {\n parentMartixCell = parentcellValue[parseInt(v.toString(), 10)].value;\n break;\n }\n }\n if (!this.containsValue(matrixCell.parents, parentMartixCell)) {\n matrixCell.parents.push(parentMartixCell);\n }\n if (!this.containsValue(parentMartixCell.children, matrixCell)) {\n parentMartixCell.children.push(matrixCell);\n }\n }\n }\n }\n rank.reverse();\n rank.pop();\n rank.reverse();\n }\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n else if (type === 'internalEdge') {\n matrixCell.cells.push(layoutCell);\n for (var i = 0; i < matrixCell.cells.length; i++) {\n var internalEdge = matrixCell.cells[parseInt(i.toString(), 10)];\n var type1 = this.getType(internalEdge.type);\n if (type1 === 'internalEdge' && internalEdge.edges != null) {\n // need to spacing based on its source and target Node\n var edgeSpacing = 5;\n var cellSize = -edgeSpacing;\n for (var k = 0; k < internalEdge.edges.length; k++) {\n //const internalConnector = internalEdge.edges[k];\n // need to summ up the line width\n cellSize += 1 + edgeSpacing;\n }\n matrixCell.size += cellSize;\n }\n tempMatrixRow.push({ key: internalEdge.ids, value: matrixCell });\n var key = null;\n if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.ids)) {\n key = internalEdge.ids;\n }\n else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.source.id)) {\n key = internalEdge.source.id;\n }\n if (key != null) {\n var parentcell = matrixCellMapper[index - 1].value;\n var parentMartixCell = void 0;\n for (var v = 0; v < parentcell.length; v++) {\n if (parentcell[parseInt(v.toString(), 10)].key === key) {\n parentMartixCell = parentcell[parseInt(v.toString(), 10)].value;\n break;\n }\n }\n if (!this.containsValue(matrixCell.parents, parentMartixCell)) {\n matrixCell.parents.push(parentMartixCell);\n }\n if (!this.containsValue(parentMartixCell.children, matrixCell)) {\n parentMartixCell.children.push(matrixCell);\n }\n }\n rank.reverse();\n rank.pop();\n rank.reverse();\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n if (matrixCell.cells.length) {\n var internalVertices = matrixCell.cells.filter(function (e) { return e.type === 'internalVertex'; });\n if (internalVertices.length > 0) {\n var _loop_1 = function (cell) {\n var vertex = cell.cell;\n if (matrixModel.model.roots.some(function (root) { return root === vertex; })) {\n matrixModel.roots.push(matrixCell);\n return \"break\";\n }\n };\n for (var _i = 0, internalVertices_1 = internalVertices; _i < internalVertices_1.length; _i++) {\n var cell = internalVertices_1[_i];\n var state_1 = _loop_1(cell);\n if (state_1 === \"break\")\n break;\n }\n }\n }\n }\n matrixModel.rowOffset.push(rowoffset + (maxDimension / 2) + spacingInverse);\n rowoffset += maxDimension + spacingInverse;\n }\n };\n MatrixModel.prototype.arrangeMatrix = function (cell, parent, matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var matrix = matrixModel.matrix;\n var matrixRow = matrix[cell.level].value;\n var matrixIndex = matrixRow.indexOf(cell);\n if (cell.visitedParents.length > 0) {\n if (cell.visitedParents.length === 1) {\n cell.initialOffset = cell.offset;\n }\n if (matrixIndex + 1 < matrixRow.length) {\n var nextCell = matrixRow[matrixIndex + 1];\n if (nextCell.visitedParents.length > 0) {\n if (!this.containsValue(cell.visitedParents, parent)) {\n cell.visitedParents.push(parent);\n parent.ignoredChildren.push(cell);\n return;\n }\n }\n }\n }\n if (!(cell.children.length > 0)) {\n var validOffset = cell.offset;\n if (matrixIndex > 0) {\n var prevCell = matrixRow[matrixIndex - 1];\n validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n this.shiftMatrixCells(validOffset - cell.offset, cell, false, null, matrixModel);\n }\n else {\n for (var i = 0; i < cell.children.length; i++) {\n var matrixCellChild = cell.children[parseInt(i.toString(), 10)];\n if (!this.containsValue(cell.visitedChildren, matrixCellChild)) {\n this.arrangeMatrix(matrixCellChild, cell, matrixModel);\n cell.visitedChildren.push(matrixCellChild);\n }\n }\n if (cell.visitedChildren.length > 0) {\n var children = cell.visitedChildren.slice();\n for (var i = 0; i < cell.ignoredChildren.length; i++) {\n //let cellIgnoredChild: MatrixCellGroupObject = cell.ignoredChildren[i];\n children.splice(0, 1);\n cell.visitedChildren.splice(0, 1);\n }\n if (children.length > 0) {\n var firstChild = cell.visitedChildren[0];\n var lastChild = cell.visitedChildren[cell.visitedChildren.length - 1];\n var x1 = firstChild.offset - (firstChild.size / 2);\n var x2 = lastChild.offset + (lastChild.size / 2);\n var newoffset = (x1 + x2) / 2;\n if (newoffset < cell.offset) {\n this.shiftMatrixCells(cell.offset - newoffset, firstChild, true, cell, matrixModel);\n }\n else if (newoffset > cell.offset) {\n this.shiftMatrixCells(newoffset - cell.offset, cell, false, null, matrixModel);\n }\n }\n }\n }\n if (!this.containsValue(cell.visitedParents, parent)) {\n cell.visitedParents.push(parent);\n }\n };\n MatrixModel.prototype.findParentVertexCellGroup = function (cell) {\n if (cell.cells[0]) {\n return cell;\n }\n if (cell.parents.length > 0) {\n return this.findParentVertexCellGroup(cell.parents[0]);\n }\n return cell;\n };\n MatrixModel.prototype.translateMatrixCells = function (value, cell) {\n if (!(value === 0)) {\n cell.offset += value;\n if (cell.visitedChildren.length > 0) {\n for (var i = 0; i < cell.visitedChildren.length; i++) {\n var cellVisitedChild = cell.visitedChildren[parseInt(i.toString(), 10)];\n this.translateMatrixCells(value, cellVisitedChild);\n }\n }\n }\n };\n MatrixModel.prototype.setXYforMatrixCell = function (matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n for (var i = 0; i < matrixModel.matrix.length; i++) {\n var matrixrow1 = matrixModel.matrix[parseInt(i.toString(), 10)].value;\n for (var j = 0; j < matrixrow1.length; j++) {\n var matrixCell = matrixrow1[parseInt(j.toString(), 10)];\n var start = matrixCell.offset - (matrixCell.size / 2);\n for (var k = 0; k < matrixCell.cells.length; k++) {\n var cell = matrixCell.cells[parseInt(k.toString(), 10)];\n var type = this.getType(cell.type);\n if (type === 'internalVertex') {\n var internalVertex = cell;\n var width = internalVertex.cell.geometry.width;\n var height = internalVertex.cell.geometry.height;\n if (isHorizontal) {\n internalVertex.cell.geometry = new RectModel(matrixModel.rowOffset[matrixCell.level] - (width / 2), start, width, height);\n }\n else {\n internalVertex.cell.geometry = new RectModel(start, matrixModel.rowOffset[matrixCell.level] - (height / 2), width, height);\n }\n start += (isHorizontal ? height : width) + spacing;\n }\n else if (type === 'internalEdge') {\n var internalEdges = cell;\n var parent_1 = matrixCell.visitedParents[0];\n var isContainSibilingVertex = false;\n if (parent_1) {\n for (var l = 0; l < parent_1.visitedChildren.length; l++) {\n var children = parent_1.visitedChildren[parseInt(l.toString(), 10)];\n var cells = [];\n for (var m = 0; m < children.cells.length; m++) {\n var cell_1 = children.cells[parseInt(m.toString(), 10)];\n var type_3 = this.getType(cell_1.type);\n if (type_3 === 'internalVertex') {\n cells.push(cell_1);\n }\n }\n if (cells.length > 0) {\n isContainSibilingVertex = true;\n break;\n }\n }\n }\n // Need to updated line width\n var lineWidth = 1;\n var edgeSpacing = 5;\n for (var m = 0; m < internalEdges.edges.length; m++) {\n var internalConnector = internalEdges.edges[parseInt(m.toString(), 10)];\n var pt = this.getPointvalue(start + (lineWidth / 2.0), matrixModel.rowOffset[matrixCell.level]);\n if (isHorizontal) {\n pt = this.getPointvalue(matrixModel.rowOffset[matrixCell.level], start + (lineWidth / 2.0));\n }\n if (this.containsValue(this.getEdgeMapper(), internalConnector)) {\n var key = void 0;\n for (var l = 0; l < this.getEdgeMapper().length; l++) {\n if ((this.getEdgeMapper())[parseInt(l.toString(), 10)].key === internalConnector) {\n key = l;\n break;\n }\n }\n (this.getEdgeMapper())[parseInt(key.toString(), 10)].value.push(pt);\n }\n start += lineWidth + edgeSpacing;\n }\n start += spacing;\n }\n }\n }\n }\n };\n MatrixModel.prototype.getType = function (type) {\n if (type === 'internalVertex') {\n return 'internalVertex';\n }\n else {\n return 'internalEdge';\n }\n };\n MatrixModel.prototype.selectIds = function (node, source) {\n var returnIds = [];\n for (var i = 0; i < node.length; i++) {\n var connector = node[parseInt(i.toString(), 10)];\n if (source) {\n {\n returnIds.push(connector.source.id);\n }\n }\n else {\n returnIds.push(connector.target.id);\n }\n }\n return returnIds;\n };\n MatrixModel.prototype.compareLists = function (list1, list2) {\n var newList1 = list1.slice();\n var newList2 = list2.slice();\n if (newList1.length === newList2.length) {\n if (newList1.length === 0) {\n return true;\n }\n else {\n var isSame = true;\n for (var i = 0; i < newList2.length; i++) {\n var o = newList2[parseInt(i.toString(), 10)];\n // EJ2-63944 - Nodes overlapping in Complex hierarchical tree layout in linear arrangement.\n if (newList1.indexOf(o) === -1) {\n isSame = false;\n break;\n }\n }\n return isSame;\n }\n }\n return false;\n };\n MatrixModel.prototype.updateMutualSharing = function (cell, id) {\n if (cell.identicalSibiling != null) {\n cell.identicalSibiling.push(id);\n }\n else {\n cell.identicalSibiling = [];\n cell.identicalSibiling.push(id);\n }\n };\n MatrixModel.prototype.containsValue = function (list, keyValue) {\n for (var i = 0; i < list.length; i++) {\n if (list[parseInt(i.toString(), 10)].key === keyValue\n || list[parseInt(i.toString(), 10)] === keyValue) {\n return true;\n }\n }\n return false;\n };\n MatrixModel.prototype.shiftMatrixCells = function (value, startingCell, shiftChildren, parentCell, matrixModel) {\n if (!(value === 0)) {\n var matrix = matrixModel.matrix;\n var matrixRow = matrix[startingCell.level].value;\n var index = matrixRow.indexOf(startingCell);\n for (var i = index; i < matrixRow.length; i++) {\n matrixRow[parseInt(i.toString(), 10)].offset += value;\n }\n if (shiftChildren) {\n if (startingCell.visitedChildren.length > 0) {\n this.shiftMatrixCells(value, startingCell.visitedChildren[0], true, startingCell, matrixModel);\n }\n else {\n var i = 1;\n var nextSibilingwithChild = null;\n while (index + i < matrixRow.length) {\n var nextCell = matrixRow[index + i];\n if (parentCell != null && this.containsValue(nextCell.visitedParents, parentCell)) {\n if (nextCell.visitedChildren.length > 0) {\n nextSibilingwithChild = nextCell;\n }\n else {\n i++;\n continue;\n }\n }\n break;\n }\n if (nextSibilingwithChild != null) {\n this.shiftMatrixCells(value, nextSibilingwithChild.visitedChildren[0], true, nextSibilingwithChild, matrixModel);\n }\n }\n }\n }\n };\n MatrixModel.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n MatrixModel.prototype.getEdgeMapper = function () {\n return this.edgeMapper;\n };\n MatrixModel.prototype.setEdgeMapper = function (value) {\n this.edgeMapper.push(value);\n };\n MatrixModel.prototype.updateLayout = function (viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable) {\n var trnsX = ((viewPort.x - modelBounds.width) / 2) - modelBounds.x;\n var trnsY = ((viewPort.y - modelBounds.height) / 2) - modelBounds.y;\n trnsX = Math.round(trnsX);\n trnsY = Math.round(trnsY);\n var modifiedConnectors = [];\n var transModelBounds = new RectModel(modelBounds.x + trnsX, modelBounds.y + trnsY, modelBounds.width, modelBounds.height);\n var margin = layoutProp.margin;\n var isHorizontal = layout.orientation === 'RightToLeft' || layout.orientation === 'LeftToRight';\n var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing;\n for (var i = 0; i < nodeWithMultiEdges.length; i++) {\n var node = nodeWithMultiEdges[parseInt(i.toString(), 10)];\n if (node.outEdges != null && node.outEdges.length > 0) {\n var count = node.outEdges.length;\n for (var j = 0; j < count; j++) {\n var internalConnector = nameTable[node.outEdges[parseInt(j.toString(), 10)]];\n internalConnector['pointCollection'] = [];\n if (count > 1) {\n var segmentsize = inversespacing / 2.0;\n var intermediatePoint = null;\n var key = void 0;\n var edgeMapper = this.getEdgeMapper();\n for (var k = 0; k < edgeMapper.length; k++) {\n if (edgeMapper[parseInt(k.toString(), 10)].key === internalConnector) {\n key = k;\n break;\n }\n }\n if (edgeMapper[parseInt(key.toString(), 10)].value.length > 0) {\n var edgePoint = edgeMapper[parseInt(key.toString(), 10)].value[0];\n var dxValue1 = edgePoint.x + margin.left;\n var dyValue1 = edgePoint.y + margin.top;\n var x1 = dxValue1;\n var y1 = dyValue1;\n if (layout.orientation === 'BottomToTop') {\n y1 = modelBounds.height - dyValue1;\n }\n else if (layout.orientation === 'RightToLeft') {\n x1 = modelBounds.width - dxValue1;\n }\n x1 += trnsX;\n y1 += trnsY;\n intermediatePoint = this.getPointvalue(x1, y1);\n }\n var pts = [];\n for (var i_1 = 0; i_1 < internalConnector.segments.length; i_1++) {\n var pt = internalConnector.segments[parseInt(i_1.toString(), 10)].points;\n // eslint-disable-next-line guard-for-in\n for (var temp in pt) {\n pts.push(pt[parseInt(temp.toString(), 10)]);\n }\n }\n // eslint-disable-next-line max-len\n pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layout.orientation);\n for (var p = 0; p < pts.length; p++) {\n var pt = pts[parseInt(p.toString(), 10)];\n internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y));\n }\n this.resetConnectorPoints(internalConnector);\n }\n modifiedConnectors.push(internalConnector);\n }\n }\n if (node.inEdges != null && node.inEdges.length > 1) {\n var count = node.inEdges.length;\n var edgeMapper = this.getEdgeMapper();\n for (var j = 0; j < count; j++) {\n var internalConnector = nameTable[node.inEdges[parseInt(j.toString(), 10)]];\n if (!this.containsValue(modifiedConnectors, internalConnector)) {\n internalConnector['pointCollection'] = [];\n }\n if (count > 1) {\n var segmentsize = inversespacing / 2.0;\n var intermediatePoint = null;\n var key = void 0;\n var k = void 0;\n for (k = 0; k < edgeMapper.length; k++) {\n if (edgeMapper[parseInt(k.toString(), 10)].key === internalConnector) {\n key = k;\n break;\n }\n }\n if (edgeMapper[parseInt(key.toString(), 10)].value.length > 0\n && !this.containsValue(modifiedConnectors, internalConnector)) {\n var edgePt = edgeMapper[parseInt(k.toString(), 10)].value[0];\n var dx1 = edgePt.x + margin.left;\n var dy1 = edgePt.y + margin.top;\n // eslint-disable-next-line one-var\n var x1 = dx1, y1 = dy1;\n if (layout.orientation === 'BottomToTop') {\n y1 = modelBounds.height - dy1;\n }\n else if (layout.orientation === 'RightToLeft') {\n x1 = modelBounds.width - dx1;\n }\n x1 += trnsX;\n y1 += trnsY;\n intermediatePoint = this.getPointvalue(x1, y1);\n }\n var pts = [];\n for (var p = 0; p < internalConnector.segments.length; p++) {\n var pt = internalConnector.segments[parseInt(p.toString(), 10)].points;\n // eslint-disable-next-line guard-for-in\n for (var temp in pt) {\n pts.push(pt[parseInt(temp.toString(), 10)]);\n }\n }\n pts.reverse();\n // eslint-disable-next-line\n pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layoutProp.orientation);\n pts.reverse();\n internalConnector['pointCollection'] = [];\n for (var p = 0; p < pts.length; p++) {\n var pt = pts[parseInt(p.toString(), 10)];\n internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y));\n }\n this.resetConnectorPoints(internalConnector);\n }\n }\n }\n }\n };\n MatrixModel.prototype.inflate = function (rect, x, y) {\n rect.x -= x;\n rect.y -= y;\n rect.width += 2 * x;\n rect.height += 2 * y;\n return rect;\n };\n MatrixModel.prototype.updateConnectorPoints = function (connectorPoints, startSegmentSize, intermediatePoint, bounds, orientation) {\n var layoutBounds = bounds;\n var isHorizontal = orientation === 'LeftToRight' || orientation === 'RightToLeft';\n var pts = connectorPoints;\n if (pts.length > 2) {\n var newPt = Point.transform(pts[0], Point.findAngle(pts[0], pts[1]), startSegmentSize);\n var nextPt = Point.transform(newPt, Point.findAngle(pts[1], pts[2]), Point.findLength(pts[1], pts[2]));\n pts.splice(1, 2, newPt, nextPt);\n if (intermediatePoint != null) {\n var index = 2;\n var ptsCount = pts.length;\n var newPt1 = Point.transform(pts[ptsCount - 1], Point.findAngle(pts[ptsCount - 1], pts[ptsCount - 2]), startSegmentSize);\n pts.splice(ptsCount - 1, 0, newPt1);\n while (index < (pts.length - 2)) {\n pts.splice(index, 1);\n }\n var edgePt = intermediatePoint;\n this.inflate(layoutBounds, layoutBounds.width, layoutBounds.height);\n var line1 = [];\n line1[0] = this.getPointvalue(edgePt.x, layoutBounds.y);\n line1[1] = this.getPointvalue(edgePt.x, layoutBounds.y + layoutBounds.height);\n var line2 = [];\n line2[0] = this.getPointvalue(layoutBounds.x, pts[1].y);\n line2[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, pts[1].y);\n var line3 = [];\n line3[0] = this.getPointvalue(layoutBounds.x, newPt1.y);\n line3[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, newPt1.y);\n if (isHorizontal) {\n line1[0] = this.getPointvalue(layoutBounds.x, edgePt.y);\n line1[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, edgePt.y);\n line2[0] = this.getPointvalue(pts[1].x, layoutBounds.y);\n line2[1] = this.getPointvalue(pts[1].x, layoutBounds.y + layoutBounds.height);\n line3[0] = this.getPointvalue(newPt1.x, layoutBounds.y);\n line2[1] = this.getPointvalue(newPt1.x, layoutBounds.y + layoutBounds.height);\n }\n var intercepts1 = [intersect2(line1[0], line1[1], line2[0], line2[1])];\n var intercepts2 = [intersect2(line1[0], line1[1], line3[0], line3[1])];\n if (intercepts2.length > 0) {\n pts.splice(2, 0, intercepts2[0]);\n }\n if (intercepts1.length > 0) {\n pts.splice(2, 0, intercepts1[0]);\n }\n }\n }\n var i = 1;\n while (i < pts.length - 1) {\n if (Point.equals(pts[i - 1], pts[parseInt(i.toString(), 10)])) {\n pts.splice(i, 1);\n }\n else if (Point.findAngle(pts[i - 1], pts[parseInt(i.toString(), 10)])\n === Point.findAngle(pts[parseInt(i.toString(), 10)], pts[i + 1])) {\n pts.splice(i, 1);\n }\n else {\n i++;\n }\n }\n return pts;\n };\n MatrixModel.prototype.resetConnectorPoints = function (edge) {\n var obstacleCollection = 'obstaclePointCollection';\n if (edge.segments[0].points\n && edge.segments[0].points.length > 0 && edge[\"\" + obstacleCollection]) {\n var connector = edge;\n connector.sourcePoint = edge[\"\" + obstacleCollection][0];\n connector.targetPoint = edge[\"\" + obstacleCollection][edge[\"\" + obstacleCollection].length - 1];\n var segments = [];\n for (var i = 0; i < edge[\"\" + obstacleCollection].length - 1; i++) {\n var point1 = edge[\"\" + obstacleCollection][parseInt(i.toString(), 10)];\n var point2 = edge[\"\" + obstacleCollection][i + 1];\n var length_2 = findDistance(point1, point2);\n var direction = getConnectorDirection(point1, point2);\n if (i === edge[\"\" + obstacleCollection].length - 2) {\n if ((this.diagram.layout.orientation === 'RightToLeft' && direction === 'Left')\n || (this.diagram.layout.orientation === 'LeftToRight' && direction === 'Right')\n || (this.diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom')\n || (this.diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) {\n length_2 = length_2 / 2;\n }\n }\n /* tslint:enable */\n var tempSegment = new OrthogonalSegment(edge, 'segments', { type: 'Orthogonal' }, true);\n tempSegment.length = length_2;\n tempSegment.direction = direction;\n segments.push(tempSegment);\n }\n connector.segments = segments;\n connector.type = 'Orthogonal';\n this.diagram.connectorPropertyChange(connector, {}, {\n type: 'Orthogonal',\n segments: connector.segments\n });\n }\n };\n return MatrixModel;\n}());\n","var FlowchartModel = /** @class */ (function () {\n function FlowchartModel(layout, root, vertices) {\n var _this = this;\n this.dfsCount = 0;\n this.maxRank = 100000000;\n this.layout = layout;\n this.vertexMapper = new Map();\n this.ranks = new Map();\n var internalVertices = [];\n this.createInternalCells(vertices, internalVertices);\n internalVertices.forEach(function (internalVertex) {\n var edges = internalVertex.internalOutEdges;\n edges.forEach(function (internalEdge) {\n var realEdges = internalEdge.edges;\n if (realEdges && realEdges.length > 0) {\n var realEdge = realEdges[0];\n var targetCell = _this.layout.getVisibleTerminal(realEdge, false);\n var internalTargetCell = _this.vertexMapper.get(targetCell.id);\n if (internalVertex === internalTargetCell) {\n targetCell = _this.layout.getVisibleTerminal(realEdge, true);\n internalTargetCell = _this.vertexMapper.get(targetCell.id);\n }\n if (internalTargetCell && internalVertex !== internalTargetCell) {\n internalEdge.target = internalTargetCell;\n if (internalVertex.internalInEdges.indexOf(internalEdge) === -1) {\n internalTargetCell.internalInEdges.push(internalEdge);\n }\n }\n }\n });\n });\n this.rootNode = this.vertexMapper.get(root.id);\n }\n FlowchartModel.prototype.createInternalCells = function (vertices, internalVertices) {\n for (var j = 0; j < vertices.length; j++) {\n var vertex = vertices[parseInt(j.toString(), 10)];\n var internalVertex = {\n tempRank: -1, cell: vertex, hashCode: [], maxRank: null, minRank: null,\n id: vertex.id, internalOutEdges: [], internalInEdges: [], identicalSibling: []\n };\n internalVertices.push(internalVertex);\n this.vertexMapper.set(vertex.id, internalVertex);\n var connectors = this.layout.getEdges(vertex);\n var i = 0;\n while (i < connectors.length) {\n var connector = connectors[parseInt(i.toString(), 10)];\n var childVertex = this.layout.getVisibleTerminal(connector, false);\n if (childVertex !== vertex) {\n var undirectedEdges = this.layout.getEdgesBetween(vertex, childVertex, true);\n if (undirectedEdges.length > 0) {\n var internalEdge = {\n connectorIds: [], edges: undirectedEdges, ids: [], isReversed: false,\n source: null, target: null, tempRank: 0, maxRank: null, minRank: null\n };\n for (var k = 0; k < undirectedEdges.length; k++) {\n var undirectedEdge = undirectedEdges[parseInt(k.toString(), 10)];\n // if (!undirectedEdge.id) {\n // undirectedEdge.id = randomId();\n // }\n internalEdge.ids.push(undirectedEdge.id);\n if (connectors.indexOf(undirectedEdge) !== -1) {\n if (connectors.indexOf(undirectedEdge) < i) {\n i--;\n }\n connectors.splice(connectors.indexOf(undirectedEdge), 1);\n }\n }\n internalEdge.source = internalVertex;\n if (internalVertex.internalOutEdges.indexOf(internalEdge) === -1) {\n internalVertex.internalOutEdges.push(internalEdge);\n }\n }\n }\n else {\n i++;\n }\n }\n }\n };\n //Initializes the ranks of the vertices\n /**\n * @Private\n * @returns { void } Initializes the ranks of the vertices .\\\n */\n FlowchartModel.prototype.layeringStage = function () {\n this.recycleConnectors();\n this.initialRank();\n this.fixRanks();\n };\n FlowchartModel.prototype.recycleConnectors = function () {\n var startNodes = [this.rootNode];\n this.visit(startNodes, true);\n };\n FlowchartModel.prototype.initialRank = function () {\n var startNodes = [this.rootNode];\n var internalNodes = Array.from(this.vertexMapper.values());\n while (startNodes.length > 0) {\n var internalNode = startNodes[0];\n var outEdges = internalNode.internalOutEdges;\n var inEdges = internalNode.internalInEdges;\n var allEdgesScanned = true;\n var minimumLayer = 100000000;\n for (var i = 0; i < inEdges.length; i++) {\n var internalEdge = inEdges[parseInt(i.toString(), 10)];\n if (internalEdge.tempRank === 5270620) {\n // This edge has been scanned, get the layer of the node on the other end\n var otherNode = internalEdge.source;\n minimumLayer = otherNode.tempRank ? Math.min(minimumLayer, otherNode.tempRank - 1) : minimumLayer;\n }\n else {\n allEdgesScanned = false;\n break;\n }\n }\n // If all edge have been scanned, assign the layer, mark all edges in the other direction and remove from the nodes list\n if (allEdgesScanned) {\n internalNode.tempRank = minimumLayer;\n this.maxRank = Math.min(this.maxRank, minimumLayer);\n if (outEdges.length) {\n if (internalNode.cell.isDecisionNode) {\n var yesChild = outEdges.find(function (e) { return e.target.cell.isYesChild; });\n if (outEdges.indexOf(yesChild) !== 0) {\n outEdges.reverse();\n }\n if (this.layout.yesBranchDirection === 'RightInFlow'\n || (this.layout.yesBranchDirection === 'SameAsFlow'\n && this.layout.noBranchDirection === 'LeftInFlow')) {\n outEdges.reverse();\n }\n }\n for (var i = 0; i < outEdges.length; i++) {\n var internalEdge = outEdges[parseInt(i.toString(), 10)];\n internalEdge.tempRank = 5270620;\n // Add node on other end of edge to LinkedList of nodes to be analysed\n var otherNode = internalEdge.target;\n // Only add node if it hasn't been assigned a layer\n if (otherNode.tempRank === -1) {\n // Mark this other node as neither being unassigned nor assigned\n //so it isn't added to this list again, but it's layer isn't used in any calculation.\n otherNode.tempRank = -2;\n startNodes.push(otherNode);\n }\n }\n }\n startNodes.shift();\n }\n else {\n // Not all the edges have been scanned, get to the back of the class and put the dunces cap on\n var removedCell = startNodes.shift();\n startNodes.push(internalNode);\n if (removedCell === internalNode && startNodes.length === 1) {\n // This is an error condition, we can't get out of this loop.\n //It could happen for more than one node but that's a lot harder to detect. Log the error\n break;\n }\n }\n }\n for (var i = 0; i < internalNodes.length; i++) {\n internalNodes[parseInt(i.toString(), 10)].tempRank -= this.maxRank;\n }\n var currentMaxLayer = 0;\n var layerDeterminingEdges = this.rootNode.internalOutEdges;\n for (var j = 0; j < layerDeterminingEdges.length; j++) {\n var internalEdge = layerDeterminingEdges[parseInt(j.toString(), 10)];\n var otherNode = internalEdge.target;\n this.rootNode.tempRank = (otherNode.tempRank !== undefined && otherNode.tempRank !== null) ?\n Math.max(currentMaxLayer, otherNode.tempRank + 1) : currentMaxLayer;\n currentMaxLayer = this.rootNode.tempRank;\n }\n this.maxRank = 100000000 - this.maxRank;\n };\n FlowchartModel.prototype.fixRanks = function () {\n var rankList = new Map();\n this.ranks = new Map();\n for (var i = 0; i <= this.maxRank; i++) {\n rankList.set(i, []);\n this.ranks.set(i, rankList.get(i));\n }\n var rootsArray = [this.rootNode];\n this.visit(rootsArray, false, rankList);\n };\n /**\n * used to visit all the entries on the given dictionary with given function \\\n *\n * @returns { void } used to visit all the entries on the given dictionary with given function .\\\n * @param {InternalVertex[]} dfsRoots - provide the dfsRoots value.\n * @param {boolean} trackAncestors - provide the trackAncestors value.\n * @param {Map} rankList - provide the rankList value.\n * @private\n */\n FlowchartModel.prototype.visit = function (dfsRoots, trackAncestors, rankList) {\n if (rankList === void 0) { rankList = null; }\n if (dfsRoots) {\n for (var i = 0; i < dfsRoots.length; i++) {\n var internalNode = dfsRoots[parseInt(i.toString(), 10)];\n if (internalNode) {\n var seenNodes = new Map();\n if (trackAncestors) {\n internalNode.hashCode = [this.dfsCount, i];\n this.extendedDfs(null, internalNode, null, seenNodes, i);\n }\n else {\n this.depthFirstSearch(null, internalNode, null, seenNodes, rankList);\n }\n }\n }\n this.dfsCount++;\n }\n };\n FlowchartModel.prototype.extendedDfs = function (parent, root, connectingEdge, seen, childHash) {\n var _this = this;\n if (parent) {\n if (!root.hashCode || root.hashCode[0] !== parent.hashCode[0]) {\n root.hashCode = parent.hashCode.concat([childHash]);\n }\n }\n var rootId = root.id;\n if (!seen.has(rootId)) {\n seen.set(rootId, root);\n this.removeConnectionEdge(parent, root, connectingEdge);\n var outgoingEdges = root.internalOutEdges.slice();\n outgoingEdges.forEach(function (internalEdge, i) {\n var targetNode = internalEdge.target;\n _this.extendedDfs(root, targetNode, internalEdge, seen, i);\n });\n }\n else {\n this.removeConnectionEdge(parent, root, connectingEdge);\n }\n };\n FlowchartModel.prototype.removeConnectionEdge = function (parent, node, connectingEdge) {\n if (parent && this.isAncestor(node, parent)) {\n this.invert(connectingEdge);\n this.remove(connectingEdge, parent.internalOutEdges);\n parent.internalInEdges.push(connectingEdge);\n this.remove(connectingEdge, node.internalInEdges);\n node.internalOutEdges.push(connectingEdge);\n }\n };\n FlowchartModel.prototype.invert = function (edge) {\n var temp = edge.source;\n edge.source = edge.target;\n edge.target = temp;\n edge.isReversed = !edge.isReversed;\n };\n FlowchartModel.prototype.remove = function (edge, edges) {\n var index = edges.indexOf(edge);\n edges.splice(index, 1);\n };\n FlowchartModel.prototype.isAncestor = function (node, otherNode) {\n // Firstly, the hash code of this node needs to be shorter than the other node\n if (otherNode !== null && node.hashCode !== null && otherNode.hashCode !== null\n && node.hashCode.length < otherNode.hashCode.length) {\n if (node.hashCode === otherNode.hashCode) {\n return true;\n }\n for (var i = 0; i < node.hashCode.length; i++) {\n if (node.hashCode[parseInt(i.toString(), 10)] !== otherNode.hashCode[parseInt(i.toString(), 10)]) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n FlowchartModel.prototype.depthFirstSearch = function (parent, root, connectingEdge, seen, rankList) {\n var _this = this;\n var rootId = root.id;\n if (!seen.has(rootId)) {\n seen.set(rootId, root);\n this.updateMinMaxRank(parent, root, connectingEdge, 0, rankList);\n var outgoingEdges = root.internalOutEdges.slice();\n outgoingEdges.forEach(function (internalEdge) {\n var targetNode = internalEdge.target;\n _this.depthFirstSearch(root, targetNode, internalEdge, seen, rankList);\n });\n }\n else {\n this.updateMinMaxRank(parent, root, connectingEdge, 1, rankList);\n }\n };\n FlowchartModel.prototype.updateMinMaxRank = function (parent, node, edge, seen, rankList) {\n var rankListArray = Array.from(rankList.values());\n if (node.maxRank == null && node.maxRank !== 0) {\n node.maxRank = -1;\n }\n if (node.minRank == null && node.minRank !== 0) {\n node.minRank = -1;\n }\n if (seen === 0 && node.maxRank < 0 && node.minRank < 0) {\n if (node.tempRank >= 0) {\n var rank = node.tempRank;\n rankListArray[parseInt(rank.toString(), 10)].push(node);\n node.maxRank = rank;\n node.minRank = rank;\n node.tempRank = rankListArray[node.maxRank].length - 1;\n }\n }\n if (parent !== null && edge !== null) {\n var parentToCellRankDifference = parent.maxRank - node.maxRank;\n if (parentToCellRankDifference > 1) {\n edge.maxRank = parent.maxRank;\n edge.minRank = node.maxRank;\n for (var i = edge.minRank + 1; i < edge.maxRank; i++) {\n rankListArray[parseInt(i.toString(), 10)].push(edge);\n // CheckMe\n // this.layout.setTempVariable(edge, i, rankList[i].length - 1);\n }\n }\n else if (edge.isReversed) {\n edge.maxRank = parent.maxRank;\n edge.minRank = node.maxRank;\n for (var i = edge.minRank; i <= edge.maxRank; i++) {\n rankListArray[parseInt(i.toString(), 10)].push(edge);\n }\n }\n }\n };\n return FlowchartModel;\n}());\nexport { FlowchartModel };\n","import { Rect } from '../../primitives/rect';\nvar MatrixModel = /** @class */ (function () {\n function MatrixModel(model) {\n this.flowchartModel = model;\n this.matrix = [];\n this.rowOffset = [];\n this.rowMaxDimension = [];\n this.siblingModel = null;\n }\n /**\n * @private\n * @returns {void} - Arranges the elements in the flowchart layout\n */\n MatrixModel.prototype.arrangeElements = function () {\n if (this.flowchartModel === null) {\n return;\n }\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n this.groupLayoutCells();\n this.createMatrixCells();\n for (var _i = 0, _a = this.matrix; _i < _a.length; _i++) {\n var matrixRow = _a[_i];\n for (var i = 1; i < matrixRow.length; i++) {\n var cell = matrixRow[parseInt(i.toString(), 10)];\n var prevCell = matrixRow[i - 1];\n cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n }\n for (var _b = 0, _c = this.matrix[0]; _b < _c.length; _b++) {\n var root = _c[_b];\n this.arrangeMatrix(root, null);\n }\n for (var _d = 0, _e = this.matrix; _d < _e.length; _d++) {\n var row = _e[_d];\n for (var i = 0; i < row.length; i++) {\n var cell = row[parseInt(i.toString(), 10)];\n if (cell.visitedParents.length > 1) {\n var firstParent = cell.visitedParents[0];\n var lastParent = cell.visitedParents[cell.visitedParents.length - 1];\n var firstVertexParent = this.findParentVertexCellGroup(firstParent);\n var lastVertexParent = this.findParentVertexCellGroup(lastParent);\n if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) {\n firstParent = firstVertexParent;\n }\n if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) {\n lastParent = firstVertexParent;\n }\n var newOffset = (firstParent.offset + lastParent.offset) / 2;\n var interVertex = cell.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (this.flowchartModel.layout.yesBranchDirection === 'SameAsFlow') {\n var tempVisitedParents = cell.visitedParents.slice();\n if (interVertex && interVertex.cell.isYesChild) {\n for (var _f = 0, tempVisitedParents_1 = tempVisitedParents; _f < tempVisitedParents_1.length; _f++) {\n var tempParent = tempVisitedParents_1[_f];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (!tempParentVertex) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n else {\n if (this.flowchartModel.layout.noBranchDirection === 'LeftInFlow') {\n tempVisitedParents.reverse();\n }\n for (var _g = 0, tempVisitedParents_2 = tempVisitedParents; _g < tempVisitedParents_2.length; _g++) {\n var tempParent = tempVisitedParents_2[_g];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (tempParentVertex) {\n if (tempParentVertex.cell.isYesChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n else {\n var tempSuperParent = this.findParentVertexCellGroup(tempParent);\n if (tempSuperParent) {\n var superParentVertex = tempSuperParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (superParentVertex && superParentVertex.cell.isYesChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n }\n }\n }\n else if (this.flowchartModel.layout.noBranchDirection === 'SameAsFlow') {\n var tempVisitedParents = cell.visitedParents.slice();\n if (interVertex && interVertex.cell.isNoChild) {\n for (var _h = 0, tempVisitedParents_3 = tempVisitedParents; _h < tempVisitedParents_3.length; _h++) {\n var tempParent = tempVisitedParents_3[_h];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (!tempParentVertex) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n else {\n if (this.flowchartModel.layout.yesBranchDirection === 'LeftInFlow') {\n tempVisitedParents.reverse();\n }\n for (var _j = 0, tempVisitedParents_4 = tempVisitedParents; _j < tempVisitedParents_4.length; _j++) {\n var tempParent = tempVisitedParents_4[_j];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (tempParentVertex) {\n if (tempParentVertex.cell.isNoChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n else {\n var tempSuperParent = this.findParentVertexCellGroup(tempParent);\n if (tempSuperParent) {\n var superParentVertex = tempSuperParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (superParentVertex && superParentVertex.cell.isNoChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n }\n }\n }\n var availOffsetMin = cell.initialOffset;\n var availOffsetMax = cell.offset;\n if (availOffsetMax !== availOffsetMin) {\n if (newOffset >= availOffsetMin && newOffset <= availOffsetMax) {\n this.translateMatrixCells(newOffset - cell.offset, cell);\n }\n else if (newOffset < availOffsetMin) {\n this.translateMatrixCells(availOffsetMin - cell.offset, cell);\n }\n }\n }\n }\n }\n this.setXYForMatrixCell();\n };\n MatrixModel.prototype.arrangeMatrix = function (cell, parent) {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var matrixRow = this.matrix[cell.level];\n var matrixIndex = matrixRow.indexOf(cell);\n if (cell.visitedParents.length) {\n if (cell.visitedParents.length === 1) {\n cell.initialOffset = cell.offset;\n }\n if (matrixIndex + 1 < matrixRow.length) {\n var nextCell = matrixRow[matrixIndex + 1];\n if (nextCell.visitedParents.length) {\n if (cell.visitedParents.indexOf(parent) === -1) {\n if (cell.level !== parent.level) {\n cell.visitedParents.push(parent);\n parent.ignoredChildren.push(cell);\n }\n return;\n }\n }\n }\n }\n if (!cell.children.length) {\n var validOffset = cell.offset;\n if (matrixIndex > 0) {\n var prevCell = matrixRow[matrixIndex - 1];\n validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n this.shiftMatrixCells(validOffset - cell.offset, cell);\n }\n else {\n for (var _i = 0, _a = cell.children; _i < _a.length; _i++) {\n var matrixCellChild = _a[_i];\n if (cell.visitedChildren.indexOf(matrixCellChild)) {\n this.arrangeMatrix(matrixCellChild, cell);\n if (cell.level !== matrixCellChild.level) {\n cell.visitedChildren.push(matrixCellChild);\n }\n else {\n cell.loopChildren.push(matrixCellChild);\n }\n }\n }\n if (cell.visitedChildren.length) {\n var children = cell.visitedChildren.slice();\n var _loop_1 = function (cellIgnoredChild) {\n children = children.filter(function (child) { return child !== cellIgnoredChild; });\n };\n for (var _b = 0, _c = cell.ignoredChildren; _b < _c.length; _b++) {\n var cellIgnoredChild = _c[_b];\n _loop_1(cellIgnoredChild);\n }\n if (children.length) {\n var firstChild = children[0];\n var lastChild = children[children.length - 1];\n var x1 = firstChild.offset;\n var x2 = lastChild.offset;\n var newOffset = (x1 + x2) / 2;\n if (cell.cells.length) {\n var interVertex = cell.cells.filter(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })[0];\n var firstChildVertex = firstChild.cells.filter(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })[0];\n var lastChildVertex = lastChild.cells.filter(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })[0];\n if (interVertex && interVertex.cell.isDecisionNode) {\n if (this.flowchartModel.layout.yesBranchDirection === 'SameAsFlow') {\n if (firstChildVertex) {\n newOffset = firstChildVertex.cell.isYesChild ? firstChild.offset : lastChild.offset;\n }\n else if (lastChildVertex) {\n newOffset = lastChildVertex.cell.isYesChild ? lastChild.offset : firstChild.offset;\n }\n }\n else if (this.flowchartModel.layout.noBranchDirection === 'SameAsFlow') {\n if (firstChildVertex) {\n newOffset = firstChildVertex.cell.isNoChild ? firstChild.offset : lastChild.offset;\n }\n else if (lastChildVertex) {\n newOffset = lastChildVertex.cell.isNoChild ? lastChild.offset : firstChild.offset;\n }\n }\n }\n }\n if (newOffset < cell.offset) {\n this.shiftMatrixCells(cell.offset - newOffset, firstChild, true, cell);\n }\n else if (newOffset > cell.offset) {\n this.shiftMatrixCells(newOffset - cell.offset, cell);\n }\n }\n }\n }\n if (cell.visitedParents.indexOf(parent) === -1) {\n if (parent !== null && cell.level !== parent.level) {\n cell.visitedParents.push(parent);\n }\n }\n };\n MatrixModel.prototype.shiftMatrixCells = function (value, startingCell, shiftChildren, parentCell) {\n if (shiftChildren === void 0) { shiftChildren = false; }\n if (parentCell === void 0) { parentCell = null; }\n if (value !== 0) {\n var matrixRow = this.matrix[startingCell.level];\n var index = matrixRow.indexOf(startingCell);\n for (var i = index; i < matrixRow.length; i++) {\n matrixRow[parseInt(i.toString(), 10)].offset += value;\n }\n if (shiftChildren) {\n if (startingCell.visitedChildren.length) {\n this.shiftMatrixCells(value, startingCell.visitedChildren[0], true, startingCell);\n }\n else {\n var i = 1;\n var nextSiblingWithChild = null;\n while (index + i < matrixRow.length) {\n var nextCell = matrixRow[index + i];\n if (parentCell !== null && nextCell.visitedParents.indexOf(parentCell) !== -1) {\n if (nextCell.visitedChildren.length) {\n nextSiblingWithChild = nextCell;\n }\n else {\n i++;\n continue;\n }\n }\n break;\n }\n if (nextSiblingWithChild !== null) {\n this.shiftMatrixCells(value, nextSiblingWithChild.visitedChildren[0], true, nextSiblingWithChild);\n }\n }\n }\n }\n };\n MatrixModel.prototype.findParentVertexCellGroup = function (cell) {\n if ('internalInEdges' in cell.cells[0] && 'internalOutEdges' in cell.cells[0]) {\n return cell;\n }\n if (cell.parents.length) {\n return this.findParentVertexCellGroup(cell.parents[0]);\n }\n return cell;\n };\n MatrixModel.prototype.translateMatrixCells = function (value, cell) {\n if (value !== 0) {\n cell.offset += value;\n if (cell.visitedChildren.length) {\n for (var _i = 0, _a = cell.visitedChildren; _i < _a.length; _i++) {\n var child = _a[_i];\n this.translateMatrixCells(value, child);\n }\n for (var _b = 0, _c = cell.loopChildren; _b < _c.length; _b++) {\n var loopChild = _c[_b];\n this.translateMatrixCells(value, loopChild);\n }\n }\n }\n };\n MatrixModel.prototype.getObjectValues = function (obj) {\n var values = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n values.push(obj[\"\" + key]);\n }\n }\n return values;\n };\n MatrixModel.prototype.setXYForMatrixCell = function () {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var siblingSize = 0;\n if (this.siblingModel) {\n var rowMaxValues = this.getObjectValues(this.rowMaxDimension);\n var maxRowValue = Math.max.apply(Math, rowMaxValues);\n siblingSize = this.siblingModel.getSiblingDimension(maxRowValue);\n }\n for (var _i = 0, _a = this.getObjectValues(this.matrix); _i < _a.length; _i++) {\n var matrixRow1 = _a[_i];\n for (var _b = 0, matrixRow1_1 = matrixRow1; _b < matrixRow1_1.length; _b++) {\n var matrixCell = matrixRow1_1[_b];\n var start = matrixCell.offset - (matrixCell.size / 2);\n if (siblingSize !== 0) {\n start += siblingSize + spacing;\n }\n for (var _c = 0, _d = matrixCell.cells; _c < _d.length; _c++) {\n var cell = _d[_c];\n if ('internalInEdges' in cell && 'internalOutEdges' in cell) {\n var internalVertex = cell;\n var width = internalVertex.cell.geometry.width;\n var height = internalVertex.cell.geometry.height;\n if (isHorizontal) {\n internalVertex.cell.geometry = new Rect(this.rowOffset[matrixCell.level] - (width / 2), start, width, height);\n }\n else {\n internalVertex.cell.geometry = new Rect(start, this.rowOffset[matrixCell.level] - (height / 2), width, height);\n }\n start += (isHorizontal ? height : width) + spacing;\n }\n else if ('edges' in cell) {\n var internalEdges = cell;\n var isContainSiblingVertex = internalEdges.isReversed;\n if (!isContainSiblingVertex) {\n var parent_1 = matrixCell.visitedParents[0];\n if (parent_1) {\n for (var _e = 0, _f = parent_1.visitedChildren; _e < _f.length; _e++) {\n var child = _f[_e];\n if (child.cells.some(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })) {\n isContainSiblingVertex = true;\n break;\n }\n }\n }\n }\n var lineWidth = 1;\n var edgeSpacing = 5;\n for (var _g = 0, _h = internalEdges.edges; _g < _h.length; _g++) {\n var internalConnector = _h[_g];\n if (isContainSiblingVertex) {\n var pt = { x: start + (lineWidth / 2.0), y: this.rowOffset[matrixCell.level] };\n if (isHorizontal) {\n pt = { x: this.rowOffset[matrixCell.level], y: start + (lineWidth / 2.0) };\n }\n if (this.flowchartModel.layout.edgesMapper.has(internalConnector)) {\n this.flowchartModel.layout.edgesMapper.get(internalConnector).push(pt);\n this.flowchartModel.layout.loopedgesMapper.set(internalConnector, internalEdges.isReversed);\n }\n }\n start += lineWidth + edgeSpacing;\n }\n start += spacing;\n }\n }\n }\n }\n };\n MatrixModel.prototype.getSiblingDimension = function (maxHeight) {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.horizontalSpacing : layoutSettings.verticalSpacing;\n var commonRowIndex = 0;\n for (var key in this.rowMaxDimension) {\n if (Object.prototype.hasOwnProperty.call(this.rowMaxDimension, key)) {\n var value = this.rowMaxDimension[\"\" + key];\n if (value < maxHeight) {\n commonRowIndex = parseInt(key, 10);\n }\n else {\n break;\n }\n }\n }\n if (this.rowMaxDimension[parseInt(commonRowIndex.toString(), 10)] + spacing <= maxHeight\n && this.rowMaxDimension[commonRowIndex + 1]) {\n commonRowIndex++;\n }\n var commonRows = [];\n for (var key in this.matrix) {\n if (Object.prototype.hasOwnProperty.call(this.matrix, key) && parseInt(key, 10) <= commonRowIndex) {\n commonRows[\"\" + key] = this.matrix[\"\" + key];\n }\n }\n var maxSize = 0;\n for (var key in commonRows) {\n if (Object.prototype.hasOwnProperty.call(commonRows, key)) {\n var matrixRow1 = commonRows[\"\" + key];\n if (matrixRow1.length) {\n var firstCell = matrixRow1[0].cells[0];\n var rowStart = 0;\n if (firstCell && 'cell' in firstCell) {\n var geometry = firstCell.cell.geometry;\n rowStart = isHorizontal ? geometry.y : geometry.x;\n }\n else if (firstCell && 'edges' in firstCell) {\n var internalConnector = firstCell.edges[firstCell.edges.length - 1];\n var edgePts = this.flowchartModel.layout.edgesMapper.get(internalConnector);\n if (edgePts.length) {\n rowStart = isHorizontal ? edgePts[0].y : edgePts[0].x;\n }\n }\n var rowEnd = 0;\n var lastCell = matrixRow1[matrixRow1.length - 1]\n .cells[matrixRow1[matrixRow1.length - 1].cells.length - 1];\n if (lastCell && 'cell' in lastCell) {\n var geometry = lastCell.cell.geometry;\n rowEnd = isHorizontal ? geometry.y + geometry.height : geometry.x + geometry.width;\n }\n else if (lastCell && 'edges' in lastCell) {\n var internalConnector = lastCell.edges[lastCell.edges.length - 1];\n var edgePts = this.flowchartModel.layout.edgesMapper.get(internalConnector);\n if (edgePts.length) {\n rowEnd = isHorizontal ? edgePts[0].y : edgePts[0].x;\n }\n }\n maxSize = Math.max(maxSize, rowEnd - rowStart);\n }\n }\n }\n return maxSize;\n };\n MatrixModel.prototype.createMatrixCells = function () {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var spacingInverse = isHorizontal ? layoutSettings.horizontalSpacing : layoutSettings.verticalSpacing;\n var rank = this.flowchartModel.ranks;\n var ranks = Array.from(rank.values());\n var matrixCellMapper = {};\n var matrixRowOffset = -spacingInverse;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var maxDimension = 0.0;\n var index = (ranks.length - 1) - j;\n var rank_1 = ranks[parseInt(j.toString(), 10)].slice();\n // Creating new row and adding it to matrix\n var matrixRow = [];\n this.matrix[parseInt(index.toString(), 10)] = matrixRow;\n // Creating new row mapper\n var tempMatrixRow = {};\n matrixCellMapper[parseInt(index.toString(), 10)] = tempMatrixRow;\n while (rank_1.length > 0) {\n var layoutCell = rank_1[0];\n var matrixCell = {\n parents: [],\n children: [],\n visitedParents: [],\n visitedChildren: [],\n ignoredChildren: [],\n loopChildren: [],\n cells: [],\n level: index,\n initialOffset: 0,\n size: 0,\n offset: 0\n };\n matrixRow.push(matrixCell);\n if ('internalInEdges' in layoutCell && 'internalOutEdges' in layoutCell) {\n matrixCell.cells.push(layoutCell);\n if (layoutCell.identicalSibling) {\n for (var i = 0; i < rank_1.length; i++) {\n var internalVertex = rank_1[parseInt(i.toString(), 10)];\n if ('internalInEdges' in internalVertex && 'internalOutEdges' in internalVertex) {\n if (layoutCell.identicalSibling.indexOf(internalVertex.id) !== -1) {\n matrixCell.cells.push(internalVertex);\n if (matrixCell.cells.length > layoutCell.identicalSibling.length) {\n break;\n }\n }\n }\n }\n }\n var cells = matrixCell.cells;\n for (var i = 0; i < cells.length; i++) {\n var internalVertex = cells[parseInt(i.toString(), 10)];\n if ('internalInEdges' in internalVertex && 'internalOutEdges' in internalVertex) {\n var geometry = internalVertex.cell.geometry;\n matrixCell.size += isHorizontal ? geometry.height : geometry.width;\n maxDimension = Math.max(maxDimension, isHorizontal ? geometry.width : geometry.height);\n tempMatrixRow[internalVertex.id] = matrixCell;\n if (internalVertex.internalInEdges.length) {\n var internalInEdges = internalVertex.internalInEdges;\n for (var j_1 = 0; j_1 < internalInEdges.length; j_1++) {\n var internalEdges = internalInEdges[parseInt(j_1.toString(), 10)];\n if (internalEdges.isReversed) {\n continue;\n }\n var key = null;\n if (matrixCellMapper[index - 1] &&\n Object.prototype.hasOwnProperty.call(matrixCellMapper[index - 1], internalEdges.ids)) {\n key = internalEdges.ids;\n }\n else if (matrixCellMapper[index - 1] &&\n Object.prototype.hasOwnProperty.call(matrixCellMapper[index - 1], internalEdges.source.id)) {\n key = internalEdges.source.id;\n }\n if (key !== null) {\n var parentMatrixCell = matrixCellMapper[index - 1][\"\" + key];\n if (matrixCell.parents.indexOf(parentMatrixCell) === -1) {\n matrixCell.parents.push(parentMatrixCell);\n }\n if (parentMatrixCell.children.indexOf(matrixCell) === -1) {\n if (parentMatrixCell.children.length) {\n if (parentMatrixCell.children[0].level === parentMatrixCell.level) {\n parentMatrixCell.children.unshift(matrixCell);\n }\n else {\n parentMatrixCell.children.push(matrixCell);\n }\n }\n else {\n parentMatrixCell.children.push(matrixCell);\n }\n }\n }\n }\n }\n rank_1.splice(rank_1.indexOf(internalVertex), 1);\n }\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n else if ('edges' in layoutCell) {\n matrixCell.cells.push(layoutCell);\n var cells = matrixCell.cells;\n for (var i = 0; i < cells.length; i++) {\n var internalEdge = cells[parseInt(i.toString(), 10)];\n if ('edges' in internalEdge && internalEdge.edges) {\n var lineWidth = 1;\n var edgeSpacing = 5;\n var cellSize = -edgeSpacing;\n for (var j_2 = 0; j_2 < internalEdge.edges.length; j_2++) {\n var internalConnector = internalEdge.edges[parseInt(j_2.toString(), 10)];\n cellSize += lineWidth + edgeSpacing;\n }\n matrixCell.size += cellSize;\n }\n var key = null;\n if (internalEdge.isReversed) {\n if (matrixCellMapper[parseInt(index.toString(), 10)][internalEdge.ids]) {\n key = internalEdge.ids;\n }\n else if (matrixCellMapper[parseInt(index.toString(), 10)][internalEdge.source.id]) {\n key = internalEdge.source.id;\n }\n }\n else {\n if (matrixCellMapper[index - 1][internalEdge.ids]) {\n key = internalEdge.ids;\n }\n else if (matrixCellMapper[index - 1][internalEdge.source.id]) {\n key = internalEdge.source.id;\n }\n }\n if (key !== null) {\n var parentMatrixCell = matrixCellMapper[internalEdge.isReversed ?\n index : index - 1][\"\" + key];\n if (matrixCell.parents.indexOf(parentMatrixCell) === -1) {\n matrixCell.parents.push(parentMatrixCell);\n }\n if (parentMatrixCell.children.indexOf(matrixCell) === -1) {\n parentMatrixCell.children.push(matrixCell);\n }\n }\n tempMatrixRow[internalEdge.ids] = matrixCell;\n rank_1.splice(rank_1.indexOf(internalEdge), 1);\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n }\n this.rowOffset[parseInt(index.toString(), 10)] = matrixRowOffset + (maxDimension / 2) + spacingInverse;\n this.rowMaxDimension[parseInt(index.toString(), 10)] = this.rowOffset[parseInt(index.toString(), 10)] + maxDimension / 2;\n matrixRowOffset += maxDimension + spacingInverse;\n }\n };\n MatrixModel.prototype.groupLayoutCells = function () {\n var rank = this.flowchartModel.ranks;\n var ranks = Array.from(rank.values());\n ranks.reverse();\n for (var j = ranks.length - 1; j >= 0; j--) {\n var vertices = ranks[parseInt(j.toString(), 10)].filter(function (v) { return 'internalInEdges' in v && 'internalOutEdges' in v; });\n var edges = ranks[parseInt(j.toString(), 10)].filter(function (e) { return 'edges' in e && 'edges' in e; });\n while (vertices.length > 1) {\n var vertex1 = vertices[0];\n if (vertex1.cell.isYesChild || vertex1.cell.isNoChild) {\n vertices.shift();\n continue;\n }\n var parentSet1 = vertex1.internalInEdges.map(function (e) { return e.source.id; });\n var childSet1 = vertex1.internalOutEdges.map(function (e) { return e.target.id; });\n while (vertices.length > 1) {\n var vertex2 = vertices[1];\n var parentSet2 = vertex2.internalInEdges.map(function (e) { return e.source.id; });\n var childSet2 = vertex2.internalOutEdges.map(function (e) { return e.target.id; });\n var parentEquals = this.compareLists(parentSet1, parentSet2);\n var childEquals = this.compareLists(childSet1, childSet2);\n if (parentEquals && childEquals) {\n this.updateMutualSharing(vertices[0], vertex2.id);\n this.updateMutualSharing(vertices[1], vertex1.id);\n vertices.splice(1, 1);\n continue;\n }\n break;\n }\n vertices.shift();\n }\n var _loop_2 = function () {\n var internalEdge = edges[0];\n var parentSet = internalEdge.source;\n var childSet = internalEdge.target;\n if (parentSet.identicalSibling) {\n var groupEdges = edges.filter(function (e) { return e.target === childSet; });\n for (var _i = 0, groupEdges_1 = groupEdges; _i < groupEdges_1.length; _i++) {\n var internalEdges = groupEdges_1[_i];\n if ((parentSet.identicalSibling).indexOf(internalEdges.source.id) !== -1) {\n internalEdges.source.identicalSibling = null;\n }\n }\n internalEdge.source.identicalSibling = null;\n }\n edges.shift();\n };\n while (edges.length > 1) {\n _loop_2();\n }\n }\n };\n MatrixModel.prototype.updateMutualSharing = function (cell, id) {\n if (cell.identicalSibling) {\n cell.identicalSibling.push(id);\n }\n else {\n cell.identicalSibling = [id];\n }\n };\n MatrixModel.prototype.compareLists = function (list1, list2) {\n var newList1 = list1.slice();\n var newList2 = list2.slice();\n if (newList1.length === newList2.length) {\n if (newList1.length === 0) {\n return true;\n }\n for (var _i = 0, newList2_1 = newList2; _i < newList2_1.length; _i++) {\n var o = newList2_1[_i];\n if (newList1.indexOf(o) === -1) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n return MatrixModel;\n}());\nexport { MatrixModel };\n","import { Diagram } from '../../diagram';\nimport { Rect } from '../../primitives/rect';\nimport { FlowchartModel } from './flow-chart-model';\nimport { MatrixModel } from './matrix-model';\n/**\n * Defines the Flowchart Layout\n */\nvar FlowchartLayout = /** @class */ (function () {\n function FlowchartLayout() {\n this.rootNodes = [];\n this.vertexMapper = new Map();\n this.edgesMapper = new Map();\n this.loopedgesMapper = new Map();\n this.anchorX = 0;\n this.anchorY = 0;\n this.verticalSpacing = 50;\n this.horizontalSpacing = 50;\n this.horizontalAlignment = 'Center';\n this.verticalAlignment = 'Top';\n this.margin = { top: 50, right: 50, bottom: 50, left: 50 };\n this.orientation = 'TopToBottom';\n this.yesBranchDirection = 'SameAsFlow';\n this.noBranchDirection = 'RightInFlow';\n this.yesBranchValues = ['Yes', 'True'];\n this.noBranchValues = ['No', 'False'];\n this.diagram = new Diagram();\n }\n /**\n * To update the layout of the diagram.\n * @private\n * @param {NodeModel[]} nodes - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @returns { void }\n */\n FlowchartLayout.prototype.updateLayout = function (nodes, diagram) {\n this.diagram = diagram;\n this.yesBranchDirection = this.diagram.layout.flowchartLayoutSettings.yesBranchDirection;\n this.noBranchDirection = this.diagram.layout.flowchartLayoutSettings.noBranchDirection;\n this.yesBranchValues = this.diagram.layout.flowchartLayoutSettings.yesBranchValues;\n this.noBranchValues = this.diagram.layout.flowchartLayoutSettings.noBranchValues;\n this.orientation = this.diagram.layout.orientation === 'TopToBottom' || this.diagram.layout.orientation === 'BottomToTop' ? 'TopToBottom' : 'LeftToRight';\n this.horizontalAlignment = this.diagram.layout.horizontalAlignment;\n this.verticalAlignment = this.diagram.layout.verticalAlignment;\n this.verticalSpacing = this.diagram.layout.verticalSpacing;\n this.horizontalSpacing = this.diagram.layout.horizontalSpacing;\n this.margin = this.diagram.layout.margin;\n var firstLevelNodes = [];\n var unseenVertices = [];\n this.rootNodes = [];\n this.vertexMapper.clear();\n this.edgesMapper.clear();\n this.loopedgesMapper.clear();\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var item = nodes_1[_i];\n if (!item.excludeFromLayout) {\n var vertex = this.createVertex(item);\n this.vertexMapper.set(vertex.id, vertex);\n unseenVertices.push(vertex);\n if (!vertex.inEdges || vertex.inEdges.length === 0) {\n firstLevelNodes.push(vertex);\n this.rootNodes.push(item);\n }\n }\n }\n var previousModel = null;\n for (var _a = 0, firstLevelNodes_1 = firstLevelNodes; _a < firstLevelNodes_1.length; _a++) {\n var firstLevelNode = firstLevelNodes_1[_a];\n var vertexSet = [];\n this.getTreeVertices(firstLevelNode, vertexSet, unseenVertices);\n var layoutModel = new FlowchartModel(this, firstLevelNode, vertexSet);\n layoutModel.layeringStage();\n var matrixModel = new MatrixModel(layoutModel);\n matrixModel.siblingModel = previousModel;\n matrixModel.arrangeElements();\n previousModel = matrixModel;\n }\n var vertices = Array.from(this.vertexMapper.values());\n var modelBounds = this.getModelBounds(vertices);\n this.updateAnchor(modelBounds);\n var isHorizontal = this.orientation === 'LeftToRight';\n var inverseSpacing = !isHorizontal ? this.verticalSpacing : this.horizontalSpacing;\n var nodeWithMultiEdges = [];\n for (var _b = 0, vertices_1 = vertices; _b < vertices_1.length; _b++) {\n var vertex = vertices_1[_b];\n if (vertex) {\n var node = vertex.item;\n if (node) {\n node.offsetX = vertex.geometry.x + (vertex.geometry.width / 2) + this.anchorX;\n node.offsetY = vertex.geometry.y + (vertex.geometry.height / 2) + this.anchorY;\n if ((vertex.inEdges && vertex.inEdges.length > 0) || (vertex.outEdges && vertex.outEdges.length > 0)) {\n nodeWithMultiEdges.push(node);\n }\n }\n diagram.dataBind();\n }\n }\n var transModelBounds = new Rect(modelBounds.x + this.anchorX, modelBounds.y\n + this.anchorY, modelBounds.width, modelBounds.height);\n this.nodeWithMultiEdges = nodeWithMultiEdges;\n this.inverseSpacing = inverseSpacing;\n this.transModelBounds = transModelBounds;\n this.diagram.layout.flowChartData = this;\n };\n /**\n * To re-rout the flowchart connectors.\n * @private\n * @param {FlowchartLayout} layoutData - provide the layoutData value.\n * @param {Diagram} diagram - provide the diagram value.\n * @returns { void }\n */\n FlowchartLayout.prototype.reRouteFlowChartConnectors = function (layoutData, diagram) {\n this.diagram = diagram;\n var nodeWithMultiEdges = layoutData.nodeWithMultiEdges;\n var inverseSpacing = layoutData.inverseSpacing;\n this.orientation = layoutData.orientation;\n var isVertical = this.orientation === 'TopToBottom';\n var transModelBounds = layoutData.transModelBounds;\n this.vertexMapper = layoutData.vertexMapper;\n this.loopedgesMapper = layoutData.loopedgesMapper;\n this.edgesMapper = layoutData.edgesMapper;\n this.anchorX = layoutData.anchorX;\n this.anchorY = layoutData.anchorY;\n var modifiedConnectors = [];\n for (var _i = 0, nodeWithMultiEdges_1 = nodeWithMultiEdges; _i < nodeWithMultiEdges_1.length; _i++) {\n var node = nodeWithMultiEdges_1[_i];\n if (node.outEdges && node.outEdges.length > 0) {\n for (var _a = 0, _b = node.outEdges; _a < _b.length; _a++) {\n var edge = _b[_a];\n var internalConnector = this.diagram.nameTable[\"\" + edge];\n if (this.loopedgesMapper.has(internalConnector) && this.loopedgesMapper.get(internalConnector)) {\n if (modifiedConnectors.indexOf(internalConnector) === -1) {\n this.updateLoopConnector(internalConnector);\n modifiedConnectors.push(internalConnector);\n }\n }\n else {\n var updatedPts = [];\n if (node.outEdges.length > 1) {\n var segmentSize = inverseSpacing / 2.0;\n var intermediatePoint = null;\n if (this.edgesMapper.has(internalConnector)) {\n var edgePt = this.edgesMapper.get(internalConnector)[0];\n if (edgePt) {\n intermediatePoint = { x: edgePt.x + this.anchorX, y: edgePt.y + this.anchorY };\n }\n }\n internalConnector.segments = [];\n internalConnector.intermediatePoints = [];\n var pts = [internalConnector.sourcePoint, internalConnector.targetPoint];\n if (isVertical) {\n updatedPts = this.updateVerticalConnectorSegments(internalConnector, pts);\n pts = this.updateConnectorPoints(updatedPts, segmentSize, intermediatePoint, transModelBounds);\n }\n else {\n updatedPts = this.updateHorizontalSegments(internalConnector, pts);\n pts = this.updateConnectorPoints(updatedPts, segmentSize, intermediatePoint, transModelBounds);\n }\n if (pts.length > 2) {\n this.updatePoints(pts, internalConnector);\n }\n modifiedConnectors.push(internalConnector);\n }\n }\n }\n }\n if (node.inEdges && node.inEdges.length > 1) {\n for (var _c = 0, _d = node.inEdges; _c < _d.length; _c++) {\n var edge = _d[_c];\n var internalConnector = this.diagram.nameTable[\"\" + edge];\n if (modifiedConnectors.indexOf(internalConnector) === -1) {\n internalConnector.segments[0].points = [];\n if (this.loopedgesMapper.has(internalConnector) && this.loopedgesMapper.get(internalConnector)) {\n this.updateLoopConnector(internalConnector);\n modifiedConnectors.push(internalConnector);\n }\n else {\n if (node.inEdges.length > 1) {\n var segmentSize = inverseSpacing / 2.0;\n var intermediatePoint = null;\n if (this.edgesMapper.has(internalConnector) && modifiedConnectors.indexOf(internalConnector) === -1) {\n var edgePt = this.edgesMapper.get(internalConnector)[0];\n if (edgePt) {\n intermediatePoint = { x: edgePt.x + this.anchorX, y: edgePt.y + this.anchorY };\n }\n }\n internalConnector.segments = [];\n internalConnector.intermediatePoints = [];\n var pts = [internalConnector.targetPoint, internalConnector.sourcePoint];\n var updatedPts = [];\n if (isVertical) {\n updatedPts = this.updateVerticalConnectorSegments(internalConnector, pts);\n }\n else {\n updatedPts = this.updateHorizontalSegments(internalConnector, pts);\n }\n pts = this.updateConnectorPoints(updatedPts, segmentSize, intermediatePoint, transModelBounds);\n pts.reverse();\n if (pts.length > 2) {\n this.updatePoints(pts, internalConnector);\n }\n }\n }\n }\n }\n }\n }\n };\n FlowchartLayout.prototype.updateAnchor = function (bounds) {\n var viewPort = {\n width: this.diagram.scrollSettings.viewPortWidth,\n height: this.diagram.scrollSettings.viewPortHeight\n };\n if (this.orientation === 'TopToBottom') {\n this.anchorX = viewPort.width / 2 - bounds.width / 2 - bounds.x;\n this.anchorY = this.margin.top;\n }\n else {\n this.anchorX = this.margin.left;\n this.anchorY = viewPort.height / 2 - bounds.height / 2 - bounds.y;\n }\n if (this.rootNodes.length === 1) {\n var fixedNode = this.rootNodes[0]; // Assuming rootNodes is defined elsewhere\n var fixedNodeGeometry = this.vertexMapper.get(fixedNode.id).geometry; // Assuming vertexMapper and its usage are defined elsewhere\n var offsetX = fixedNodeGeometry.x + fixedNodeGeometry.width / 2;\n var offsetY = fixedNodeGeometry.y + fixedNodeGeometry.height / 2;\n var dx = offsetX - (bounds.x + bounds.width / 2);\n var dy = offsetY - (bounds.y + bounds.height / 2);\n if (this.orientation === 'TopToBottom') {\n this.anchorX -= dx;\n }\n else {\n this.anchorY -= dy;\n }\n }\n };\n FlowchartLayout.prototype.updateConnectorPoints = function (connectorPoints, startSegmentSize, intermediatePoint, layoutBounds) {\n var isHorizontal = this.orientation === 'LeftToRight';\n var pts = connectorPoints.slice();\n // Helper function to find angle between two points\n function findAngle(point1, point2) {\n return Math.atan2(point2.y - point1.y, point2.x - point1.x) * (180 / Math.PI);\n }\n // Function to find the distance (length) between two points\n function findLength(point1, point2) {\n var dx = point2.x - point1.x;\n var dy = point2.y - point1.y;\n return Math.sqrt(dx * dx + dy * dy);\n }\n // Helper function to transform a point\n function transform(point, length, angle) {\n var rad = angle * (Math.PI / 180);\n var newX = point.x + length * Math.cos(rad);\n var newY = point.y + length * Math.sin(rad);\n return { x: newX, y: newY };\n }\n if (pts.length > 2) {\n var newPt = transform(pts[0], startSegmentSize, findAngle(pts[0], pts[1]));\n var nextPt = transform(newPt, findLength(newPt, pts[1]), findAngle(newPt, pts[2]));\n pts.splice(1, 0, nextPt);\n pts.splice(1, 0, newPt);\n pts.splice(3, 2);\n if (intermediatePoint != null) {\n var index = 2;\n var ptsCount = pts.length;\n var newPt1 = transform(pts[ptsCount - 1], startSegmentSize, findAngle(pts[ptsCount - 1], pts[ptsCount - 2]));\n pts.splice(ptsCount - 1, 0, newPt1);\n while (index < pts.length - 2) {\n pts.splice(index, 1);\n }\n var edgePt = intermediatePoint;\n this.inflate(layoutBounds, layoutBounds.width, layoutBounds.height);\n if (isHorizontal) {\n var line1 = [{ x: layoutBounds.left, y: edgePt.y }, { x: layoutBounds.right, y: edgePt.y }];\n var line2 = [{ x: pts[1].x, y: layoutBounds.top }, { x: pts[1].x, y: layoutBounds.bottom }];\n var line3 = [{ x: newPt1.x, y: layoutBounds.top }, { x: newPt1.x, y: layoutBounds.bottom }];\n var intercepts1 = [];\n var intercepts2 = [];\n // Dummy function calls, replace with actual implementation or mock\n intercepts1 = this.diagram.commandHandler.intersect(line1, line2, false);\n intercepts2 = this.diagram.commandHandler.intersect(line1, line3, false);\n if (intercepts2.length) {\n pts.splice(2, 0, intercepts2[0]);\n }\n if (intercepts1.length) {\n pts.splice(2, 0, intercepts1[0]);\n }\n }\n else {\n var line1 = [{ x: edgePt.x, y: layoutBounds.top }, { x: edgePt.x, y: layoutBounds.bottom }];\n var line2 = [{ x: layoutBounds.left, y: pts[1].y }, { x: layoutBounds.right, y: pts[1].y }];\n var line3 = [{ x: layoutBounds.left, y: newPt1.y }, { x: layoutBounds.right, y: newPt1.y }];\n var intercepts1 = [];\n var intercepts2 = [];\n // Dummy function calls, replace with actual implementation or mock\n intercepts1 = this.diagram.commandHandler.intersect(line1, line2, false);\n intercepts2 = this.diagram.commandHandler.intersect(line1, line3, false);\n if (intercepts2.length) {\n pts.splice(2, 0, intercepts2[0]);\n }\n if (intercepts1.length) {\n pts.splice(2, 0, intercepts1[0]);\n }\n }\n }\n }\n else if (pts.length === 2 && intermediatePoint != null) {\n var startPt = pts[0];\n var endPt = pts[1];\n var lineAngle = findAngle(pts[0], pts[1]);\n var newPt1 = transform(startPt, startSegmentSize, lineAngle);\n var newPt2 = transform(endPt, startSegmentSize, (lineAngle + 180) % 360);\n pts.splice(1, 0, newPt2);\n if (isHorizontal) {\n var nextPt1 = { x: newPt1.x, y: intermediatePoint.y };\n var nextPt2 = { x: newPt2.x, y: intermediatePoint.y };\n pts.splice(1, 0, nextPt2);\n pts.splice(1, 0, nextPt1);\n }\n else {\n var nextPt1 = { x: intermediatePoint.x, y: newPt1.y };\n var nextPt2 = { x: intermediatePoint.x, y: newPt2.y };\n pts.splice(1, 0, nextPt2);\n pts.splice(1, 0, nextPt1);\n }\n pts.splice(1, 0, newPt1);\n }\n return pts;\n };\n FlowchartLayout.prototype.inflate = function (rect, width, height) {\n rect.x -= width;\n rect.y -= height;\n rect.width += 2 * width;\n rect.height += 2 * height;\n };\n FlowchartLayout.prototype.updateHorizontalSegments = function (internalConnector, pts) {\n var updatedPts = [];\n var sourcenode = this.diagram.nameTable[internalConnector.sourceID];\n var targetnode = this.diagram.nameTable[internalConnector.targetID];\n var decisionNode = this.vertexMapper.get(sourcenode.id).isDecisionNode;\n if (decisionNode && !this.contains({ x: sourcenode.offsetX, y: targetnode.offsetY }, sourcenode.wrapper.bounds)) {\n if (sourcenode.offsetY < targetnode.offsetY) {\n var spoint1 = sourcenode.wrapper.bounds.bottom;\n var spoint2 = sourcenode.offsetX;\n var tpoint1 = targetnode.wrapper.bounds.left;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint2, y: spoint1 });\n updatedPts.push({ x: spoint2, y: tpoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else if (sourcenode.offsetY > targetnode.offsetY) {\n var spoint1 = sourcenode.wrapper.bounds.top;\n var spoint2 = sourcenode.offsetX;\n var tpoint1 = targetnode.wrapper.bounds.left;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint2, y: spoint1 });\n updatedPts.push({ x: spoint2, y: tpoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else {\n updatedPts = pts;\n }\n }\n else {\n updatedPts = pts;\n }\n return updatedPts;\n };\n FlowchartLayout.prototype.updateVerticalConnectorSegments = function (internalConnector, pts) {\n var _this = this;\n var updatedPts = [];\n var sourcenode = this.diagram.nameTable[internalConnector.sourceID];\n var targetnode = this.diagram.nameTable[internalConnector.targetID];\n var decisionNode = this.vertexMapper.get(sourcenode.id).isDecisionNode;\n if (decisionNode && !this.contains({ x: targetnode.offsetX, y: sourcenode.offsetY }, sourcenode.wrapper.bounds)) {\n if (sourcenode.offsetX < targetnode.offsetX) {\n var spoint1 = sourcenode.wrapper.bounds.right;\n var spoint2 = sourcenode.offsetY;\n var tpoint1 = targetnode.wrapper.bounds.top;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint1, y: spoint2 });\n updatedPts.push({ x: targetnode.offsetX, y: spoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else if (sourcenode.offsetX > targetnode.offsetX) {\n var spoint1 = sourcenode.wrapper.bounds.left;\n var spoint2 = sourcenode.offsetY;\n var tpoint1 = targetnode.wrapper.bounds.top;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint1, y: spoint2 });\n updatedPts.push({ x: targetnode.offsetX, y: spoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else {\n updatedPts = pts;\n }\n }\n else {\n updatedPts = pts;\n }\n if (updatedPts.length > 2) {\n var point_1 = updatedPts[1];\n this.diagram.nodes.forEach(function (node) {\n if (_this.contains(point_1, node.wrapper.bounds)) {\n updatedPts[1] = { x: node.wrapper.bounds.left - 5, y: node.offsetY };\n updatedPts.splice(2, 0, { x: node.wrapper.bounds.left - 5, y: node.wrapper.bounds.bottom + 5 });\n }\n });\n }\n return updatedPts;\n };\n FlowchartLayout.prototype.getModelBounds = function (nodes) {\n var rect = new Rect(0, 0, 0, 0);\n nodes = Array.from(nodes);\n nodes.forEach(function (vertex) {\n var geo = vertex.geometry;\n rect.uniteRect(geo);\n });\n return rect;\n };\n FlowchartLayout.prototype.createVertex = function (node) {\n var _this = this;\n var nodeWidth = isNaN(node.width) ? node.wrapper.bounds.width : node.width;\n var nodeHeight = isNaN(node.height) ? node.wrapper.bounds.height : node.height;\n var geometry = new Rect(0, 0, nodeWidth, nodeHeight);\n var inEdges = [];\n var outEdges = [];\n var branches = { isYesBranch: false, isNoBranch: false };\n if (node.inEdges != null) {\n for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n var con = this.diagram.nameTable[\"\" + edge];\n if (con) {\n inEdges.push(con);\n }\n }\n }\n if (node.outEdges != null) {\n for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) {\n var edge = _c[_b];\n var con = this.diagram.nameTable[\"\" + edge];\n if (con) {\n outEdges.push(con);\n }\n }\n }\n var isYesBranch = branches.isYesBranch;\n var isNoBranch = branches.isNoBranch;\n if (inEdges != null) {\n inEdges.forEach(function (inEdge) {\n branches = _this.checkForYesOrNoBranch(inEdge, isYesBranch, isNoBranch);\n });\n }\n if (outEdges != null) {\n outEdges.forEach(function (outEdge) {\n _this.edgesMapper.set(outEdge, []);\n _this.loopedgesMapper.set(outEdge, false);\n });\n }\n var vert = {\n id: node.id,\n geometry: geometry,\n inEdges: inEdges,\n layoutObjectId: {},\n outEdges: outEdges,\n item: node,\n isDecisionNode: false,\n isYesChild: branches.isYesBranch,\n isNoChild: branches.isNoBranch\n };\n return vert;\n };\n FlowchartLayout.prototype.updatePoints = function (pts, internalConnector) {\n var pointSets = [];\n var segCollection = [];\n for (var i = 0; i < pts.length; i++) {\n if (pts[i + 2]) {\n pointSets.push(pts[parseInt(i.toString(), 10)]);\n pointSets.push(pts[i + 1]);\n var seg = {\n type: 'Orthogonal',\n points: pointSets,\n length: pointSets[0].x === pointSets[1].x ? Math.abs(pointSets[0].y - pointSets[1].y)\n : Math.abs(pointSets[0].x - pointSets[1].x),\n direction: pointSets[0].x === pointSets[1].x ? pointSets[0].y > pointSets[1].y ? 'Top' : 'Bottom'\n : pointSets[0].x > pointSets[1].x ? 'Left' : 'Right'\n };\n pointSets = [];\n segCollection.push(seg);\n }\n }\n internalConnector.segments = segCollection;\n };\n FlowchartLayout.prototype.contains = function (point, bounds) {\n return (point.x >= bounds.left && point.x <= bounds.right && point.y >= bounds.top && point.y <= bounds.bottom);\n };\n FlowchartLayout.prototype.updateLoopConnector = function (internalConnector) {\n var loopPts = [];\n if (this.edgesMapper.has(internalConnector)) {\n var loopPoints = this.edgesMapper.get(internalConnector);\n if (loopPoints) {\n for (var _i = 0, loopPoints_1 = loopPoints; _i < loopPoints_1.length; _i++) {\n var loopPt = loopPoints_1[_i];\n var pointX = loopPt.x + this.anchorX;\n var pointY = loopPt.y + this.anchorY;\n loopPts.push({ x: pointX, y: pointY });\n }\n }\n }\n loopPts.reverse();\n var pts = [];\n var firstPt = loopPts[0];\n var lastPt = loopPts[loopPts.length - 1];\n var sourceNode = this.diagram.nameTable[internalConnector.sourceID];\n var targetNode = this.diagram.nameTable[internalConnector.targetID];\n var srcBounds = sourceNode.wrapper.bounds;\n var tarBounds = targetNode.wrapper.bounds;\n var srcNode = sourceNode;\n var tarNode = targetNode;\n if (this.orientation === 'TopToBottom') {\n var target = Array.from(this.vertexMapper.values()).filter(function (e) {\n return e.item.wrapper.bounds.containsPoint({ x: e.item.wrapper.bounds.x, y: srcNode.offsetY }) &&\n srcNode.id !== e.item.id;\n });\n var max = Math.max(firstPt.x, lastPt.x);\n var isSiblingsInRight = (target.length > 0 && target[0].item.wrapper.bounds.x > srcBounds.x);\n pts.push({ x: (!isSiblingsInRight && max > srcBounds.right) ? srcBounds.right : srcBounds.left, y: srcNode.offsetY });\n pts.push({ x: isSiblingsInRight ? pts[0].x - (srcBounds.width / 2) : max, y: srcNode.offsetY });\n pts.push({ x: isSiblingsInRight ? pts[0].x - (srcBounds.width / 2) : max, y: tarNode.offsetY });\n pts.push({ x: (!isSiblingsInRight && max > tarBounds.right) ? tarBounds.right : tarBounds.left, y: tarNode.offsetY });\n }\n else {\n var target = Array.from(this.vertexMapper.values()).filter(function (e) {\n return e.item.wrapper.bounds.containsPoint({ x: srcNode.offsetX, y: e.item.wrapper.bounds.y }) &&\n srcNode.id !== e.item.id;\n });\n var isSiblingsInBottom = (target.length > 0 && target[0].item.wrapper.bounds.y > srcBounds.y);\n var max = Math.max(firstPt.y, lastPt.y);\n pts.push({ x: srcNode.offsetX, y: (!isSiblingsInBottom && max > srcBounds.bottom) ? srcBounds.bottom : srcBounds.top });\n pts.push({ x: srcNode.offsetX, y: isSiblingsInBottom ? pts[0].y - (srcBounds.height / 2) : max });\n pts.push({ x: tarNode.offsetX, y: isSiblingsInBottom ? pts[0].y - (srcBounds.height / 2) : max });\n pts.push({ x: tarNode.offsetX, y: (!isSiblingsInBottom && max > tarBounds.bottom) ? tarBounds.bottom : tarBounds.top });\n }\n this.updatePoints(pts, internalConnector);\n };\n FlowchartLayout.prototype.checkForYesOrNoBranch = function (edge, isYesBranch, isNoBranch) {\n var _this = this;\n if (edge.annotations && edge.annotations.length) {\n edge.annotations.forEach(function (annotation) {\n if (typeof annotation.content === 'string') {\n var text_1 = annotation.content.toString();\n _this.yesBranchValues.forEach(function (branchText) {\n if (text_1.localeCompare(branchText, undefined, { sensitivity: 'accent' }) === 0) {\n isYesBranch = true;\n return;\n }\n });\n _this.noBranchValues.forEach(function (branchText) {\n if (text_1.localeCompare(branchText, undefined, { sensitivity: 'accent' }) === 0) {\n isNoBranch = true;\n return;\n }\n });\n }\n });\n }\n return { isYesBranch: isYesBranch, isNoBranch: isNoBranch };\n };\n FlowchartLayout.prototype.getTreeVertices = function (root, seenVertices, unseenVertices) {\n var _this = this;\n if (root != null && seenVertices.indexOf(root) === -1) {\n seenVertices.push(root);\n unseenVertices = unseenVertices.filter(function (vertex) { return vertex !== root; });\n var children = root.item.outEdges;\n if (children.length === 2) {\n var c1 = this.diagram.nameTable[this.diagram.nameTable[children[0]].targetID];\n var c2 = this.diagram.nameTable[this.diagram.nameTable[children[1]].targetID];\n var childVertex1 = this.vertexMapper.get(c1.id);\n var childVertex2 = this.vertexMapper.get(c2.id);\n if (childVertex1 && childVertex2) {\n var hasYesChild = childVertex1.isYesChild || childVertex2.isYesChild;\n var hasNoChild = childVertex1.isNoChild || childVertex2.isNoChild;\n if (hasYesChild && !hasNoChild) {\n if (childVertex1.isYesChild) {\n childVertex2.isNoChild = true;\n }\n else {\n childVertex1.isNoChild = true;\n }\n hasNoChild = true;\n }\n else if (!hasYesChild && hasNoChild) {\n if (childVertex1.isNoChild) {\n childVertex2.isYesChild = true;\n }\n else {\n childVertex1.isYesChild = true;\n }\n hasYesChild = true;\n }\n root.isDecisionNode = hasYesChild;\n }\n }\n root.outEdges.forEach(function (outConnector) {\n var child = _this.diagram.nameTable[outConnector.targetID];\n var childVertex = _this.vertexMapper.get(child.id);\n if (childVertex != null) {\n if (!root.isDecisionNode) {\n childVertex.isYesChild = false;\n childVertex.isNoChild = false;\n }\n _this.getTreeVertices(childVertex, seenVertices, unseenVertices);\n }\n });\n }\n };\n /**\n * Initializes the edges collection of the vertices\\\n *\n * @returns { IConnector[] } Initializes the edges collection of the vertices\\\n * @param {FlowChartVertex} node - provide the node value.\n * @private\n */\n FlowchartLayout.prototype.getEdges = function (node) {\n var edges = [];\n if (node !== null && node !== undefined) {\n for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) {\n var inEdge = _a[_i];\n edges.push(inEdge);\n }\n for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) {\n var outEdge = _c[_b];\n edges.push(outEdge);\n }\n }\n return edges;\n };\n /**\n * Returns the source/target vertex of the given connector \\\n *\n * @returns { FlowChartVertex } Returns the source/target vertex of the given connector \\\n * @param {IConnector} edge - provide the node value.\n * @param {boolean} source - provide the node value.\n * @private\n */\n FlowchartLayout.prototype.getVisibleTerminal = function (edge, source) {\n //differ from complex-hierarchical-tree.ts\n var nodeWrapper = source ? edge.sourceID : edge.targetID;\n return this.vertexMapper.get(nodeWrapper);\n };\n /**\n * used to get the edges between the given source and target \\\n *\n * @returns { IConnector[] } used to get the edges between the given source and target .\\\n * @param {FlowChartVertex} source - provide the angle value.\n * @param { FlowChartVertex} target - provide the angle value.\n * @param { boolean} directed - provide the angle value.\n * @private\n */\n FlowchartLayout.prototype.getEdgesBetween = function (source, target, directed) {\n var edges = this.getEdges(source);\n var result = [];\n for (var i = 0; i < edges.length; i++) {\n var src = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true);\n var trg = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], false);\n if ((src.id === source.id && trg.id === target.id)) {\n result.push(edges[parseInt(i.toString(), 10)]);\n }\n }\n return result;\n };\n /**\n *To destroy the FlowchartLayout\n *\n * @returns {void} To destroy the FlowchartLayout\n */\n FlowchartLayout.prototype.destroy = function () {\n /**\n * Destroys the FlowchartLayout module\n */\n };\n /**\n * @returns { string } toBounds method .\\\n * Get getModuleName name.\n */\n FlowchartLayout.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'FlowchartLayout';\n };\n return FlowchartLayout;\n}());\nexport { FlowchartLayout };\n","import { ConnectorConstraints } from '../enum/enum';\nvar ConnectorProperties = /** @class */ (function () {\n function ConnectorProperties(labelProperties) {\n this.labelProperties = labelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector collection from EJ1 to EJ2\n ConnectorProperties.prototype.renderConnectorsCollection = function (convertedData, data) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n convertedData.connectors = [];\n var connectors = [];\n for (var i = 0; i < data.connectors.length; i++) {\n var connector = data.connectors[parseInt(i.toString(), 10)];\n var newConnector = this.convertToConnector(connector);\n connectors.push(newConnector);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n convertedData.connectors = connectors;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector properties from EJ1 to EJ2\n ConnectorProperties.prototype.convertToConnector = function (connector) {\n var newConnector = {};\n newConnector.style = {};\n if (connector.name) {\n newConnector.id = connector.name;\n }\n if (connector.addInfo) {\n newConnector.addInfo = connector.addInfo;\n }\n if (connector.bridgeSpace) {\n newConnector.bridgeSpace = connector.bridgeSpace;\n }\n if (connector.constraints) {\n newConnector.constraints = this.setConnectorConstraints(connector.constraints);\n }\n if (connector.cornerRadius) {\n newConnector.cornerRadius = connector.cornerRadius;\n }\n if (connector.labels) {\n newConnector.annotations = this.labelProperties.setLabelProperties(connector.labels, connector);\n }\n if (connector.lineColor) {\n newConnector.style.fill = connector.lineColor;\n }\n if (connector.lineWidth) {\n newConnector.style.strokeWidth = connector.lineWidth;\n }\n if (connector.lineDashArray) {\n newConnector.style.strokeDashArray = connector.lineDashArray;\n }\n if (connector.opacity) {\n newConnector.style.opacity = connector.opacity;\n }\n if (connector.lineHitPadding) {\n newConnector.hitPadding = connector.lineHitPadding;\n }\n if (connector.margin) {\n // eslint-disable-next-line max-len\n newConnector.margin = { left: connector.margin.left, right: connector.margin.right, top: connector.margin.top, bottom: connector.margin.bottom };\n }\n if (connector.segments) {\n newConnector.type = connector.segments[0].type.charAt(0).toUpperCase() + (connector.segments[0].type).slice(1);\n newConnector.segments = this.setConnectorSegments(connector.segments);\n }\n if (connector.shape) {\n newConnector.shape = this.getConnectorShape(connector.shape);\n }\n if (connector.sourceDecorator) {\n newConnector.sourceDecorator = {\n height: connector.sourceDecorator.height,\n width: connector.sourceDecorator.width,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shape: (this.getDecoratorShape(connector.sourceDecorator.shape)),\n pathData: connector.sourceDecorator.pathData,\n style: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill: connector.sourceDecorator.fillColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeColor: connector.sourceDecorator.lineColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeWidth: connector.sourceDecorator.lineWidth\n }\n };\n }\n if (connector.targetDecorator) {\n newConnector.targetDecorator = {\n height: connector.targetDecorator.height,\n width: connector.targetDecorator.width,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shape: this.getDecoratorShape(connector.targetDecorator.shape),\n pathData: connector.targetDecorator.pathData,\n style: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill: connector.targetDecorator.fillColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeColor: connector.targetDecorator.lineColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeWidth: connector.targetDecorator.lineWidth\n }\n };\n }\n if (connector.sourceNode) {\n newConnector.sourceID = connector.sourceNode;\n }\n if (connector.targetNode) {\n newConnector.targetID = connector.targetNode;\n }\n if (connector.sourcePoint) {\n newConnector.sourcePoint = { x: connector.sourcePoint.x, y: connector.sourcePoint.y };\n }\n if (connector.targetPoint) {\n newConnector.targetPoint = { x: connector.targetPoint.x, y: connector.targetPoint.y };\n }\n if (connector.sourcePort) {\n newConnector.sourcePortID = connector.sourcePort;\n }\n if (connector.targetPort) {\n newConnector.targetPortID = connector.targetPort;\n }\n if (connector.tooltip) {\n newConnector.tooltip = {\n content: connector.tooltip.content,\n relativeMode: connector.tooltip.relativeMode\n };\n }\n if (connector.visible) {\n newConnector.visible = connector.visible;\n }\n if (connector.zOrder) {\n newConnector.zIndex = connector.zOrder;\n }\n return newConnector;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and assign the connector shapes from EJ1 to EJ2\n ConnectorProperties.prototype.getConnectorShape = function (shape) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var connectorShape = null;\n if (shape) {\n if (shape.type === 'bpmn') {\n connectorShape = {\n type: 'Bpmn',\n flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1)\n };\n if (shape.flow === 'sequence') {\n connectorShape.sequence = (shape.sequence).charAt(0).toUpperCase() + (shape.sequence).slice(1);\n }\n else if (shape.flow === 'association') {\n connectorShape.association = (shape.association).charAt(0).toUpperCase() + (shape.association).slice(1);\n }\n else {\n connectorShape.message = (shape.message).charAt(0).toUpperCase() + (shape.message).slice(1);\n }\n }\n if (shape.type === 'umlclassifier') {\n connectorShape = {\n type: 'UmlClassifier',\n relationship: (shape.relationship).charAt(0).toUpperCase() + (shape.relationship).slice(1),\n multiplicity: {\n type: (shape.multiplicity.type).charAt(0).toUpperCase() + (shape.multiplicity.type).slice(1),\n source: {\n upperBounds: shape.multiplicity.source.upperBounds,\n optional: shape.multiplicity.source.optional,\n lowerBounds: shape.multiplicity.source.lowerBounds\n },\n target: {\n upperBounds: shape.multiplicity.target.upperBounds,\n optional: shape.multiplicity.target.optional,\n lowerBounds: shape.multiplicity.target.lowerBounds\n }\n }\n };\n }\n if (shape.type === 'umlactivity') {\n connectorShape = {\n type: 'UmlActivity',\n flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1)\n };\n }\n }\n return connectorShape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the connector decorator shapes from EJ1 to EJ2\n ConnectorProperties.prototype.getDecoratorShape = function (shape) {\n var decoratorShape = 'None';\n if (shape === 'path') {\n decoratorShape = 'Custom';\n }\n else {\n decoratorShape = (shape).charAt(0).toUpperCase() + (shape).slice(1);\n }\n return decoratorShape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector collection from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ConnectorProperties.prototype.setConnectorSegments = function (segments) {\n var connectorSegments = [];\n if (segments.length > 0) {\n for (var i = 0; i < segments.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segment = {};\n var segmentProp = segments[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n segment.direction = segmentProp.direction ? segmentProp.direction.charAt(0).toUpperCase() + segmentProp.direction.slice(1) : segmentProp._direction ? segmentProp._direction.charAt(0).toUpperCase() + segmentProp._direction.slice(1) : null;\n segment.length = segmentProp.length ? segmentProp.length : segmentProp._length ? segmentProp._length : null;\n segment.point = segmentProp.point ? { x: segmentProp.point.x, y: segmentProp.point.y } : null;\n segment.point1 = segmentProp.point1 ? { x: segmentProp.point1.x, y: segmentProp.point1.y } : null;\n segment.point2 = segmentProp.point2 ? { x: segmentProp.point2.x, y: segmentProp.point2.y } : null;\n // eslint-disable-next-line max-len\n segment.vector1 = segmentProp.vector1 ? { angle: segmentProp.vector1.angle, distance: segmentProp.vector1.distance } : null;\n // eslint-disable-next-line max-len\n segment.vector2 = segmentProp.vector2 ? { angle: segmentProp.vector2.angle, distance: segmentProp.vector2.distance } : null;\n if (segmentProp.points) {\n segment.points = this.getSegmentPoints(segmentProp.points);\n }\n if (segmentProp.type) {\n segment.type = (segmentProp.type).charAt(0).toUpperCase() + (segmentProp.type).slice(1);\n }\n connectorSegments.push(segment);\n }\n }\n return connectorSegments;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Render the connector Segment points from EJ1 to EJ2\n ConnectorProperties.prototype.getSegmentPoints = function (points) {\n var pointsCollection = [];\n if (points.length > 0) {\n for (var i = 0; i < points.length; i++) {\n var newPoint = {};\n var point = points[parseInt(i.toString(), 10)];\n newPoint.x = point.x;\n newPoint.y = point.y;\n pointsCollection.push(newPoint);\n }\n }\n return pointsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the connector constraints\n ConnectorProperties.prototype.setConnectorConstraints = function (constraints) {\n var connectorConstraints = ConnectorConstraints.None;\n if (constraints & ConnectorConstraints.Select) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Select;\n }\n if (constraints & ConnectorConstraints.Delete) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Delete;\n }\n if (constraints & ConnectorConstraints.Drag) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Drag;\n }\n if (constraints & ConnectorConstraints.DragSourceEnd) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragSourceEnd;\n }\n if (constraints & ConnectorConstraints.DragTargetEnd) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragTargetEnd;\n }\n if (constraints & ConnectorConstraints.DragSegmentThumb) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragSegmentThumb;\n }\n if (constraints & ConnectorConstraints.Bridging) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Bridging;\n }\n if (constraints & ConnectorConstraints.InheritBridging) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.InheritBridging;\n }\n if (constraints & ConnectorConstraints.AllowDrop) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.AllowDrop;\n }\n if (constraints & ConnectorConstraints.InheritTooltip) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.InheritTooltip;\n }\n if (constraints & ConnectorConstraints.PointerEvents) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.PointerEvents;\n }\n if (constraints & ConnectorConstraints.BridgeObstacle) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.BridgeObstacle;\n }\n if (constraints & ConnectorConstraints.Interaction) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Interaction;\n }\n if (constraints & ConnectorConstraints.Default) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Default;\n }\n return connectorConstraints;\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name\n */\n ConnectorProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'ConnectorProperties';\n };\n return ConnectorProperties;\n}());\nexport { ConnectorProperties };\n","import { AnnotationConstraints } from '../enum/enum';\nvar LabelProperties = /** @class */ (function () {\n function LabelProperties(modelProperties) {\n this.modelProperties = modelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update and assign the annotation properties from EJ1 to EJ2\n LabelProperties.prototype.setLabelProperties = function (oldLabels, item) {\n var labelCollection = [];\n if (oldLabels.length > 0) {\n for (var i = 0; i < oldLabels.length; i++) {\n var label = oldLabels[parseInt(i.toString(), 10)];\n var newLabel = {};\n (newLabel).style = {};\n if (label.name) {\n newLabel.id = label.name;\n }\n if (label.addInfo) {\n newLabel.addInfo = label.addInfo;\n }\n if (label.text) {\n newLabel.content = label.text;\n }\n if (label.constraints) {\n newLabel.constraints = this.setLabelConstraints(label.constraints);\n }\n if (label.readOnly) {\n newLabel.constraints = newLabel.constraints | AnnotationConstraints.ReadOnly;\n }\n if (label.dragLimit) {\n newLabel.dragLimit = {\n left: label.dragLimit.left, right: label.dragLimit.right,\n top: label.dragLimit.top, bottom: label.dragLimit.bottom\n };\n }\n if (label.height) {\n newLabel.height = label.height;\n }\n if (label.horizontalAlignment) {\n newLabel.horizontalAlignment = label.horizontalAlignment.charAt(0).toUpperCase() +\n label.horizontalAlignment.slice(1).toLowerCase();\n }\n if (label.verticalAlignment) {\n newLabel.verticalAlignment = label.verticalAlignment.charAt(0).toUpperCase() +\n label.verticalAlignment.slice(1).toLowerCase();\n }\n if (label.hyperlink) {\n newLabel.hyperlink = { link: label.hyperlink, color: 'blue' };\n }\n if (label.margin) {\n newLabel.margin = {\n left: label.margin.left, right: label.margin.right,\n top: label.margin.top, bottom: label.margin.bottom\n };\n }\n newLabel.rotateAngle = label.rotateAngle;\n if (label.offset) {\n if (item) {\n newLabel.offset = label.offset.x;\n }\n else {\n newLabel.offset = { x: label.offset.x, y: label.offset.y };\n }\n }\n newLabel.style.color = label.fontColor;\n newLabel.style.fontFamily = label.fontFamily;\n newLabel.style.fontSize = label.fontSize;\n newLabel.style.italic = label.italic;\n newLabel.style.bold = label.bold;\n if (label.borderColor) {\n newLabel.style.strokeColor = label.borderColor;\n }\n if (label.borderWidth) {\n newLabel.style.strokeWidth = label.borderWidth;\n }\n if (label.textWrapping) {\n newLabel.style.textWrapping = label.textWrapping;\n }\n if (label.textAlign) {\n newLabel.style.textAlign = label.textAlign.charAt(0).toUpperCase() +\n label.textAlign.slice(1).toLowerCase();\n }\n if (label.textDecoration) {\n newLabel.style.textDecoration = label.textDecoration.charAt(0).toUpperCase() +\n label.textDecoration.slice(1).toLowerCase();\n if (newLabel.style.textDecoration === 'Linethrough') {\n newLabel.style.textDecoration = 'LineThrough';\n }\n }\n var appearance = this.setLabelAppearance(newLabel, label);\n newLabel.style.fill = appearance.fill;\n newLabel.style.opacity = appearance.opacity;\n // if (label.templateId)\n // newLabel.template = getTemplateContent(label.templateId);\n newLabel.visibility = appearance.visibility;\n if (label.width) {\n newLabel.width = label.width;\n }\n labelCollection.push(newLabel);\n }\n }\n return labelCollection;\n };\n LabelProperties.prototype.setLabelAppearance = function (newLabel, label) {\n var appearance = {};\n if (label.fillColor) {\n appearance.fill = label.fillColor === 'white' ? 'transparent' : label.fillColor;\n }\n if (label.opacity) {\n appearance.opacity = label.opacity;\n }\n // if (label.templateId)\n // newLabel.template = getTemplateContent(label.templateId);\n if (label.visible) {\n appearance.visibility = label.visible;\n }\n return appearance;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the annotation constraints from EJ1 to EJ2\n LabelProperties.prototype.setLabelConstraints = function (constraints) {\n var annotationConstraints = AnnotationConstraints.None;\n if (constraints & AnnotationConstraints.Select) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Select;\n }\n if (constraints & AnnotationConstraints.Drag) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Drag;\n }\n if (constraints & AnnotationConstraints.Resize) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Resize;\n }\n if (constraints & AnnotationConstraints.Rotate) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Rotate;\n }\n return annotationConstraints;\n };\n /**\n * Get module name.\n * @returns {string} returns Module name\n */\n LabelProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LabelProperties';\n };\n return LabelProperties;\n}());\nexport { LabelProperties };\n","import { NodeConstraints } from '../enum/enum';\nvar NodeProperties = /** @class */ (function () {\n function NodeProperties(labelProperties, portProperties) {\n this.labelProperties = labelProperties;\n this.portProperties = portProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the node collection from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeProperties.prototype.renderNodesCollection = function (convertedData, data) {\n convertedData.nodes = [];\n var nodes = [];\n for (var i = 0; i < data.nodes.length; i++) {\n var node = data.nodes[parseInt(i.toString(), 10)];\n var processCollection = [];\n var newNode = this.convertToNode(node);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line max-len\n if (newNode.shape && newNode.shape.activity && newNode.shape.activity.subProcess && newNode.shape.activity.subProcess.processes && newNode.shape.activity.subProcess.processes.length > 0) {\n var processName = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var k = 0; k < newNode.shape.activity.subProcess.processes.length; k++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var processes = newNode.shape.activity.subProcess.processes[parseInt(k.toString(), 10)];\n processes.margin.right = 0;\n processes.margin.bottom = 0;\n processes.processId = newNode.id;\n processName.push(processes.id);\n processCollection.push(processes);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess.processes = processName;\n }\n if (node.type === 'group' && !node.isSwimlane) {\n var childCollection = [];\n if (newNode.children && newNode.children.length > 0) {\n for (var j = 0; j < newNode.children.length; j++) {\n var child = newNode.children[parseInt(j.toString(), 10)];\n nodes.push(child);\n childCollection.push(child.id);\n }\n newNode.children = childCollection;\n }\n }\n nodes.push(newNode);\n if (processCollection && processCollection.length > 0) {\n nodes = nodes.concat(processCollection);\n }\n }\n convertedData.nodes = nodes;\n return convertedData.nodes;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert the node from EJ1 to EJ2 and assign all the properties\n NodeProperties.prototype.convertToNode = function (node) {\n var newNode = {};\n newNode.style = {};\n newNode.margin = {};\n if (node.name) {\n newNode.id = node.name;\n }\n if (node.fillColor) {\n newNode.style.fill = node.fillColor;\n }\n if (node.borderColor) {\n newNode.style.strokeColor = node.borderColor;\n }\n if (node.borderWidth) {\n newNode.style.strokeWidth = node.borderWidth;\n }\n if (node.borderDashArray) {\n newNode.style.strokeDashArray = node.borderDashArray;\n }\n if (node.opacity) {\n newNode.style.opacity = node.opacity;\n }\n if (node.gradient) {\n newNode.style.gradient = this.setGradient(node.gradient);\n }\n if (node.isExpanded) {\n newNode.isExpanded = node.isExpanded;\n }\n if (node.width) {\n newNode.width = node.width;\n }\n if (node.height) {\n newNode.height = node.height;\n }\n if (node.offsetX) {\n newNode.offsetX = node.offsetX;\n }\n if (node.offsetY) {\n newNode.offsetY = node.offsetY;\n }\n if (node.visible) {\n newNode.visible = node.visible;\n }\n newNode.zIndex = node.zOrder === -1 ? -1 : node.zOrder;\n if (node.excludeFromLayout) {\n newNode.excludeFromLayout = node.excludeFromLayout;\n }\n if (node.rotateAngle) {\n newNode.rotateAngle = node.rotateAngle;\n }\n if (node.pivot) {\n newNode.pivot = node.pivot;\n }\n if (node.addInfo) {\n newNode.addInfo = node.addInfo;\n }\n if (node.marginLeft) {\n newNode.margin.left = node.marginLeft;\n }\n if (node.marginRight) {\n newNode.margin.right = node.marginRight;\n }\n if (node.marginTop) {\n newNode.margin.top = node.marginTop;\n }\n if (node.marginBottom) {\n newNode.margin.bottom = node.marginBottom;\n }\n if (node.horizontalAlign) {\n newNode.horizontalAlignment = node.horizontalAlign;\n }\n if (node.verticalAlign) {\n newNode.verticalAlignment = node.verticalAlign;\n }\n if (node.constraints) {\n newNode.constraints = this.setNodeConstraints(node.constraints);\n }\n if (node.labels) {\n newNode.annotations = this.labelProperties.setLabelProperties(node.labels, undefined);\n }\n if (node.shadow) {\n newNode.shadow = {\n angle: node.shadow.angle, opacity: node.shadow.opacity, distance: node.shadow.distance\n };\n }\n if (node.tooltip) {\n newNode.tooltip = {\n // content: this.getTemplateContent(node.tooltip.templateId),\n relativeMode: node.tooltip.relativeMode\n };\n }\n if (node.expandIcon) {\n newNode.expandIcon = {\n shape: node.expandIcon.shape.charAt(0).toUpperCase() + (node.expandIcon.shape).slice(1),\n width: node.expandIcon.width, height: node.expandIcon.height,\n margin: {\n left: node.expandIcon.margin.left,\n right: node.expandIcon.margin.right,\n top: node.expandIcon.margin.top,\n bottom: node.expandIcon.margin.bottom\n },\n offset: {\n x: node.expandIcon.offset.x,\n y: node.expandIcon.offset.y\n },\n borderColor: node.expandIcon.borderColor, borderWidth: node.expandIcon.borderWidth,\n cornerRadius: node.expandIcon.cornerRadius,\n //fill: (node.expandIcon as any).fillColor,\n pathData: node.expandIcon.pathData\n // content: getTemplateContent(node.expandIcon.templateId)\n };\n if (newNode.expandIcon.shape === 'Arrowup') {\n newNode.expandIcon.shape = 'ArrowUp';\n }\n else if (newNode.expandIcon.shape === 'Arrowdown') {\n newNode.expandIcon.shape = 'ArrowDown';\n }\n }\n if (node.collapseIcon) {\n newNode.collapseIcon = {\n shape: node.collapseIcon.shape.charAt(0).toUpperCase() + (node.collapseIcon.shape).slice(1),\n width: node.collapseIcon.width, height: node.collapseIcon.height,\n margin: {\n left: node.collapseIcon.margin.left,\n right: node.collapseIcon.margin.right,\n top: node.collapseIcon.margin.top,\n bottom: node.collapseIcon.margin.bottom\n },\n offset: {\n x: node.collapseIcon.offset.x,\n y: node.collapseIcon.offset.y\n },\n borderColor: node.collapseIcon.borderColor, borderWidth: node.collapseIcon.borderWidth,\n cornerRadius: node.collapseIcon.cornerRadius,\n // fill: (node.collapseIcon as any).fillColor,\n pathData: node.collapseIcon.pathData\n // content: getTemplateContent(node.collapseIcon.templateId)\n };\n if (newNode.collapseIcon.shape === 'Arrowup') {\n newNode.collapseIcon.shape = 'ArrowUp';\n }\n else if (newNode.collapseIcon.shape === 'Arrowdown') {\n newNode.collapseIcon.shape = 'ArrowDown';\n }\n }\n if (node.ports) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.ports = this.portProperties.setPortProperties(node.ports);\n }\n if (node.children) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (node.type !== 'bpmn' && !node.isSwimlane) {\n newNode.children = this.getChildren(newNode, node);\n }\n }\n if (!(node.children && node.children.length > 0)) {\n newNode.maxWidth = node.maxWidth;\n newNode.maxHeight = node.maxHeight;\n newNode.minWidth = node.minWidth;\n newNode.minHeight = node.minHeight;\n }\n if (node.shape || node.type) {\n newNode = this.setShape(newNode, node);\n }\n return newNode;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Iterate the swimlane child nodes and assign all the node properties from the EJ1 to EJ2\n NodeProperties.prototype.getChildren = function (newNode, node) {\n if (node.children && node.children.length > 0) {\n var newChild = [];\n for (var i = 0; i < node.children.length; i++) {\n var child = this.convertToNode(node.children[parseInt(i.toString(), 10)]);\n if (child.children) {\n this.getChildren(newNode, child);\n }\n newChild.push(child);\n }\n newNode.children = newChild;\n }\n return newNode.children;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the shapes for all the node from conversion\n NodeProperties.prototype.setShape = function (newNode, node) {\n switch (node.type) {\n case 'basic': {\n var basicShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1);\n if (node.shape === 'path') {\n newNode.shape = { type: 'Path', data: node.pathData };\n }\n else {\n newNode.shape = {\n type: 'Basic', shape: basicShape, cornerRadius: node.cornerRadius, points: node.points\n };\n }\n break;\n }\n case 'flow': {\n var flowShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1);\n newNode.shape = {\n type: 'Flow', shape: flowShape\n };\n break;\n }\n case 'umlactivity':\n newNode.shape = {\n type: 'UmlActivity', shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1)\n };\n break;\n case 'image':\n newNode.shape = {\n type: 'Image', source: node.source, align: this.getImageContentAlignment(node.contentAlignment),\n scale: (node.scale).charAt(0).toUpperCase() + (node.scale).slice(1)\n };\n break;\n case 'html':\n newNode.shape = { type: 'HTML' };\n break;\n case 'native':\n newNode.shape = { type: 'Native' };\n break;\n case 'text':\n newNode.shape = { type: 'Text', content: node.textBlock.text };\n break;\n case 'bpmn':\n newNode.shape = this.renderBpmnShape(newNode, node);\n break;\n case 'group':\n if (node.isSwimlane) {\n newNode.shape = this.renderSwimlaneShape(newNode, node);\n }\n }\n return newNode;\n };\n NodeProperties.prototype.getImageContentAlignment = function (option) {\n if (option) {\n switch (option) {\n case 'xminymin':\n return 'XMinYMin';\n case 'xminymid':\n return 'XMinYMid';\n case 'xminymax':\n return 'XMinYMax';\n case 'xmidymin':\n return 'XMidYMin';\n case 'xmidymid':\n return 'XMidYMid';\n case 'xmidymax':\n return 'XMidYMax';\n case 'xmaxymin':\n return 'XMaxYMin';\n case 'xmaxymid':\n return 'XMaxYMid';\n case 'xmaxymax':\n return 'XMaxYMax';\n case 'none':\n return 'None';\n }\n }\n return 'None';\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n // Sets the node constraints from EJ1 to EJ2\n NodeProperties.prototype.setNodeConstraints = function (constraints) {\n var nodeConstraints = NodeConstraints.None;\n if (constraints & NodeConstraints.Select) {\n nodeConstraints = nodeConstraints | NodeConstraints.Select;\n }\n if (constraints & NodeConstraints.Delete) {\n nodeConstraints = nodeConstraints | NodeConstraints.Delete;\n }\n if (constraints & NodeConstraints.Drag) {\n nodeConstraints = nodeConstraints | NodeConstraints.Drag;\n }\n if (constraints & NodeConstraints.Rotate) {\n nodeConstraints = nodeConstraints | NodeConstraints.Rotate;\n }\n if (constraints & NodeConstraints.ResizeNorthEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorthEast;\n }\n if (constraints & NodeConstraints.ResizeEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeEast;\n }\n if (constraints & NodeConstraints.OutConnect) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouthEast;\n }\n if (constraints & NodeConstraints.Expandable) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouth;\n }\n if (constraints & NodeConstraints.AllowDrop) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouthWest;\n }\n if (constraints & NodeConstraints.ResizeNorthEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeWest;\n }\n if (constraints & NodeConstraints.ResizeEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorthWest;\n }\n if (constraints & NodeConstraints.ResizeNorth) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorth;\n }\n if (constraints & NodeConstraints.Resize) {\n nodeConstraints = nodeConstraints | NodeConstraints.Resize;\n }\n if (constraints & NodeConstraints.Shadow) {\n nodeConstraints = nodeConstraints | NodeConstraints.Shadow;\n }\n if (constraints & NodeConstraints.AspectRatio) {\n nodeConstraints = nodeConstraints | NodeConstraints.AspectRatio;\n }\n if (constraints & NodeConstraints.AllowDrop) {\n nodeConstraints = nodeConstraints | NodeConstraints.AllowDrop;\n }\n if (constraints & NodeConstraints.InheritTooltip) {\n nodeConstraints = nodeConstraints | NodeConstraints.InheritTooltip;\n }\n if (constraints & NodeConstraints.PointerEvents) {\n nodeConstraints = nodeConstraints | NodeConstraints.PointerEvents;\n }\n if (constraints & NodeConstraints.Inherit) {\n nodeConstraints = nodeConstraints | NodeConstraints.Inherit;\n }\n if (constraints & NodeConstraints.Default) {\n nodeConstraints = nodeConstraints | NodeConstraints.Default;\n }\n return nodeConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the gradient for the nodes\n NodeProperties.prototype.setGradient = function (gradient) {\n var newGradient = {};\n if (gradient) {\n if (gradient.type === 'linear') {\n newGradient = {\n type: 'Linear',\n x1: gradient.x1, x2: gradient.x2, y1: gradient.y1, y2: gradient.y2,\n stops: this.getGradientStops(gradient.stops)\n };\n }\n else if (gradient.type === 'radial') {\n newGradient = {\n type: 'Radial',\n cx: gradient.cx, cy: gradient.cy, fx: gradient.fx, fy: gradient.fy,\n stops: this.getGradientStops(gradient.stops)\n };\n }\n }\n return newGradient;\n };\n NodeProperties.prototype.getGradientStops = function (gradientStops) {\n var stopsCollection = [];\n for (var i = 0; i < gradientStops.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newStop = {};\n var stop_1 = gradientStops[parseInt(i.toString(), 10)];\n newStop.color = stop_1.color;\n newStop.offset = stop_1.offset;\n stopsCollection.push(newStop);\n }\n return stopsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Assign the BPMN shape values from the EJ1\n NodeProperties.prototype.renderBpmnShape = function (newNode, node) {\n if (node.shape === 'event') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n event: {\n event: (node.event).charAt(0).toUpperCase() + (node.event).slice(1),\n trigger: (node.trigger).charAt(0).toUpperCase() + (node.trigger).slice(1)\n }\n };\n }\n else if (node.shape === 'gateway') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n gateway: {\n type: (node.gateway).charAt(0).toUpperCase() + (node.gateway).slice(1)\n }\n };\n }\n else if (node.shape === 'activity') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n activity: {\n activity: (node.activity).charAt(0).toUpperCase() + (node.activity).slice(1)\n }\n };\n newNode.shape.activity.activity = newNode.shape.activity.activity === 'Subprocess' ? 'SubProcess' : newNode.shape.activity.activity;\n if (node.activity === 'task') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.task = {\n type: (node.task.type).charAt(0).toUpperCase() + (node.task.type).slice(1),\n loop: (node.task.loop).charAt(0).toUpperCase() + (node.task.loop).slice(1),\n compensation: node.task.compensation,\n call: node.task.call\n };\n }\n if (node.activity === 'subprocess') {\n if (node.subProcess.type === 'event') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess = {\n collapsed: node.subProcess.collapsed,\n compensation: node.subProcess.compensation,\n adhoc: node.subProcess.adhoc,\n loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subProcess.loop).slice(1),\n boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subProcess.boundary).slice(1),\n type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subProcess.type).slice(1),\n event: {\n event: (node.subProcess.event).charAt(0).toUpperCase() + (node.subProcess.event).slice(1),\n trigger: (node.subProcess.trigger).charAt(0).toUpperCase() + (node.subProcess.trigger).slice(1)\n }\n };\n }\n else if (node.subProcess.type === 'transaction') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess = {\n collapsed: node.subProcess.collapsed,\n compensation: node.subProcess.compensation,\n adhoc: node.subProcess.adhoc,\n loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subProcess.loop).slice(1),\n boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subProcess.boundary).slice(1),\n type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subProcess.type).slice(1),\n events: this.renderEventsCollection(node.subProcess.events),\n processes: this.renderProcessesCollection(node)\n };\n }\n }\n }\n else if (node.shape === 'dataobject') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1)\n // data: {\n // type: this.getKeyByValue(node.data.type),\n // collection: true\n // }\n };\n if (node.annotation) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.annotation = {\n text: node.annotation.text,\n angle: node.annotation.angle,\n width: node.annotation.width,\n height: node.annotation.height,\n length: node.annotation.length\n };\n }\n }\n else {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1)\n };\n }\n return newNode.shape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Renders the swimlane from the conversion\n NodeProperties.prototype.renderSwimlaneShape = function (newNode, node) {\n newNode.shape = {\n type: 'SwimLane', orientation: (node.orientation).charAt(0).toUpperCase() + (node.orientation).slice(1),\n header: {\n annotation: { content: node.header.text },\n height: 50, style: { fontSize: node.header.fontSize, color: node.header.fontColor, fill: node.header.fillColor }\n }\n };\n var lanes = [];\n var phases = [];\n for (var i = 0; i < node.lanes.length; i++) {\n lanes[parseInt(i.toString(), 10)] = {\n header: {\n annotation: {\n content: node.lanes[parseInt(i.toString(), 10)].header.text,\n width: node.lanes[parseInt(i.toString(), 10)].header.width,\n style: {\n fontSize: node.lanes[parseInt(i.toString(), 10)].header.fontSize,\n color: node.lanes[parseInt(i.toString(), 10)].header.fontColor\n }\n }\n },\n style: { fill: node.lanes[parseInt(i.toString(), 10)].fillColor },\n children: []\n };\n for (var j = 0; j < node.lanes[parseInt(i.toString(), 10)].children.length; j++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var childNode = this.convertToNode(node.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]);\n if (childNode.wrapper == null) {\n childNode.wrapper = {\n actualSize: { width: childNode.width, height: childNode.height },\n offsetX: childNode.offsetX, offsetY: childNode.offsetY\n };\n }\n lanes[parseInt(i.toString(), 10)].children.push(childNode);\n }\n }\n for (var i = 0; i < node.phases.length; i++) {\n phases[parseInt(i.toString(), 10)] = {\n header: {\n annotation: {\n content: node.phases[parseInt(i.toString(), 10)].label.text,\n // eslint-disable-next-line max-len\n style: { fill: node.phases[parseInt(i.toString(), 10)].label.fillColor, fontSize: node.phases[parseInt(i.toString(), 10)].label.fontSize, color: node.phases[parseInt(i.toString(), 10)].label.fontColor }\n }\n },\n offset: node.phases[parseInt(i.toString(), 10)].offset,\n // eslint-disable-next-line max-len\n style: { fill: node.phases[parseInt(i.toString(), 10)].fillColor, strokeColor: node.phases[parseInt(i.toString(), 10)].lineColor, strokeDashArray: node.phases[parseInt(i.toString(), 10)].lineDashArray }\n };\n }\n newNode.shape.lanes = lanes;\n newNode.shape.phases = phases;\n return newNode.shape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Rendered the event collections for the node properties\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeProperties.prototype.renderEventsCollection = function (subProcessEvents) {\n var eventsCollection = [];\n if (subProcessEvents.length > 0) {\n for (var i = 0; i < subProcessEvents.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newEvent = {};\n var eventObject = subProcessEvents[parseInt(i.toString(), 10)];\n newEvent.event = (eventObject.event).charAt(0).toUpperCase() + (eventObject.event).slice(1);\n newEvent.trigger = (eventObject.trigger).charAt(0).toUpperCase() + (eventObject.trigger).slice(1);\n newEvent.offset = { x: eventObject.offset.x, y: eventObject.offset.y };\n eventsCollection.push(newEvent);\n }\n }\n return eventsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Rendered the process collections for the node properties\n NodeProperties.prototype.renderProcessesCollection = function (node) {\n var processesCollection = [];\n if (node.subProcess && node.subProcess.processes.length > 0) {\n for (var i = 0; i < node.subProcess.processes.length; i++) {\n var processObject = node.subProcess.processes[parseInt(i.toString(), 10)];\n var data = this.convertToNode(processObject);\n processesCollection.push(data);\n }\n }\n return processesCollection;\n };\n /**\n * Get module name.\n * @returns {string} Returns the module name\n */\n NodeProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'NodeProperties';\n };\n return NodeProperties;\n}());\nexport { NodeProperties };\n","import { PortConstraints, PortVisibility } from '../enum/enum';\nvar PortProperties = /** @class */ (function () {\n function PortProperties(modelProperties) {\n this.modelProperties = modelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and assign EJ1 to EJ2 port properties\n PortProperties.prototype.setPortProperties = function (oldPorts) {\n var portCollection = [];\n if (oldPorts.length > 0) {\n for (var i = 0; i < oldPorts.length; i++) {\n var port = oldPorts[parseInt(i.toString(), 10)];\n var newPort = {};\n newPort.style = {};\n newPort.id = port.name;\n if (port.addInfo) {\n newPort.addInfo = port.addInfo;\n }\n newPort.height = port.size;\n newPort.width = port.size;\n if (port.horizontalAlignment) {\n newPort.horizontalAlignment = port.horizontalAlignment.charAt(0).toUpperCase() +\n port.horizontalAlignment.slice(1);\n }\n if (port.verticalAlignment) {\n newPort.verticalAlignment = port.verticalAlignment.charAt(0).toUpperCase() +\n port.verticalAlignment.slice(1);\n }\n // eslint-disable-next-line max-len\n newPort.margin = { left: port.margin.left, right: port.margin.right, top: port.margin.top, bottom: port.margin.bottom };\n newPort.offset = { x: port.offset.x, y: port.offset.y };\n newPort.style.strokeColor = port.borderColor;\n newPort.style.strokeWidth = port.borderWidth;\n newPort.style.fill = port.fillColor;\n newPort.constraints = this.setPortConstraints(port.constraints);\n if (port.pathData) {\n newPort.pathData = port.pathData;\n }\n if (port.shape === 'path') {\n newPort.shape = 'Custom';\n }\n else {\n newPort.shape = port.shape.charAt(0).toUpperCase() + (port.shape).slice(1);\n }\n newPort.visibility = this.setPortVisibility(port.visibility);\n portCollection.push(newPort);\n }\n }\n return portCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the port constraints from EJ1 to EJ2\n PortProperties.prototype.setPortConstraints = function (constraints) {\n var portConstraints = PortConstraints.Default;\n // if (constraints & PortConstraints.Drag) {\n // portConstraints = portConstraints | PortConstraints.Drag;\n // }\n if (constraints & PortConstraints.Draw) {\n portConstraints = portConstraints | PortConstraints.Draw;\n }\n if (constraints & PortConstraints.None) {\n portConstraints = PortConstraints.None;\n }\n return portConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the portVisibility from EJ1 to EJ2\n PortProperties.prototype.setPortVisibility = function (visibility) {\n var portVisibility;\n if (visibility & PortVisibility.Visible) {\n portVisibility = portVisibility | PortVisibility.Visible;\n }\n if (visibility & PortVisibility.Hidden) {\n portVisibility = portVisibility | PortVisibility.Hidden;\n }\n if (visibility & PortVisibility.Hover) {\n portVisibility = portVisibility | PortVisibility.Hover;\n }\n if (visibility & PortVisibility.Connect) {\n portVisibility = portVisibility | PortVisibility.Connect;\n }\n return portVisibility;\n };\n /**\n * Get module name.\n * @returns {string} Returns the module name\n */\n PortProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'PortProperties';\n };\n return PortProperties;\n}());\nexport { PortProperties };\n","import { DiagramConstraints, DiagramTools, SelectorConstraints, SnapConstraints } from '../enum/enum';\nimport { ConnectorProperties } from './connectorProperties';\nimport { LabelProperties } from './labelProperties';\nimport { NodeProperties } from './nodeProperties';\nimport { PortProperties } from './portProperties';\nvar Ej1Serialization = /** @class */ (function () {\n function Ej1Serialization(diagram) {\n this.labelProperties = new LabelProperties(this);\n this.connectorProperties = new ConnectorProperties(this.labelProperties);\n this.portProperties = new PortProperties(this);\n this.nodeProperties = new NodeProperties(this.labelProperties, this.portProperties);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.items = [];\n this.diagram = diagram;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Getting the object data from the load diagram and serialize it into from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.getSerializedData = function (data) {\n this.convertedData.mode = 'SVG';\n this.convertedData.basicElements = [];\n this.convertedData.width = data.width;\n this.convertedData.height = data.height;\n if (data.nodes && data.nodes.length > 0) {\n this.nodeProperties.renderNodesCollection(this.convertedData, data);\n }\n else {\n this.convertedData.nodes = data.nodes;\n }\n if (data.connectors && data.connectors.length > 0) {\n this.connectorProperties.renderConnectorsCollection(this.convertedData, data);\n }\n else {\n this.convertedData.connectors = data.connectors;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (data.defaultSettings !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.getNodeDefaults = this.getNodeDefaults(data.defaultSettings.node);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.getConnectorDefaults = this.getConnectorDefaults(data.defaultSettings.connector);\n }\n //this.convertedData.setNodeTemplate = this.getNodeTemplate((data as Diagram).nodeTemplate);\n this.setLayers(this.convertedData, data);\n this.setDataSourceSettings(this.convertedData, data);\n this.setRulerSettings(this.convertedData, data);\n this.setSnapSettings(this.convertedData, data);\n if (data.snapSettings.enableSnapToObject) {\n this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints | SnapConstraints.SnapToObject;\n }\n else {\n this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints & ~SnapConstraints.SnapToObject;\n }\n if (data.pageSettings.backgroundImage === undefined) {\n data.pageSettings.pageBackgroundColor = 'transparent';\n data.pageSettings.backgroundImage = {\n source: '',\n scale: 'meet',\n alignment: 'xmidymid'\n };\n data.pageSettings.showPageBreak = false;\n }\n this.setScrollSettings(this.convertedData, data);\n this.setPageSettings(this.convertedData, data);\n this.setContextMenu(this.convertedData, data);\n this.setTooltip(this.convertedData, data);\n this.setModelLayout(this.convertedData, data);\n this.setSelectedItems(this.convertedData, data);\n this.convertedData.constraints = this.setDiagramConstraints(data.constraints);\n this.convertedData.tool = this.setDiagramTool(data.tool);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.drawType = data.drawType;\n this.convertedData.commandManager = data.commandManager;\n return this.convertedData;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //declare the node default properties\n Ej1Serialization.prototype.getNodeDefaults = function (node) {\n if (node) {\n return this.nodeProperties.convertToNode(node);\n }\n else {\n return null;\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //declare the node default properties\n Ej1Serialization.prototype.getConnectorDefaults = function (connector) {\n if (connector) {\n return this.connectorProperties.convertToConnector(connector);\n }\n else {\n return null;\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the layers from the EJ1 JSON\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setLayers = function (convertedData, data) {\n convertedData.layers = [];\n if (data.layers.length > 0) {\n for (var i = 0; i < data.layers.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newLayer = {};\n var layer = data.layers[parseInt(i.toString(), 10)];\n newLayer.id = layer.name;\n newLayer.visible = layer.visible;\n newLayer.lock = layer.lock;\n newLayer.objects = layer.objects;\n convertedData.layers.push(newLayer);\n }\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the dataSourceSettings from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setDataSourceSettings = function (convertedData, data) {\n convertedData.dataSourceSettings = {};\n convertedData.dataSourceSettings.id = data.dataSourceSettings.id;\n convertedData.dataSourceSettings.dataManager = data.dataSourceSettings.dataSource;\n convertedData.dataSourceSettings.root = data.dataSourceSettings.root;\n convertedData.dataSourceSettings.parentId = data.dataSourceSettings.parent;\n convertedData.dataSourceSettings.crudAction = {\n read: data.dataSourceSettings.crudAction.read,\n create: data.dataSourceSettings.crudAction.create,\n update: data.dataSourceSettings.crudAction.update,\n destroy: data.dataSourceSettings.crudAction.destroy,\n customFields: data.dataSourceSettings.customFields\n };\n if (data.dataSourceSettings.connectionDataSource) {\n convertedData.dataSourceSettings.connectionDataSource = {};\n convertedData.dataSourceSettings.connectionDataSource.id = data.dataSourceSettings.connectionDataSource.id;\n convertedData.dataSourceSettings.connectionDataSource.dataManager = data.dataSourceSettings.connectionDataSource.dataSource;\n convertedData.dataSourceSettings.connectionDataSource.sourceID = data.dataSourceSettings.connectionDataSource.sourceNode;\n convertedData.dataSourceSettings.connectionDataSource.targetID = data.dataSourceSettings.connectionDataSource.targetNode;\n convertedData.dataSourceSettings.connectionDataSource.sourcePointX = data.dataSourceSettings.connectionDataSource.sourcePointX;\n convertedData.dataSourceSettings.connectionDataSource.sourcePointY = data.dataSourceSettings.connectionDataSource.sourcePointY;\n convertedData.dataSourceSettings.connectionDataSource.targetPointX = data.dataSourceSettings.connectionDataSource.targetPointX;\n convertedData.dataSourceSettings.connectionDataSource.targetPointY = data.dataSourceSettings.connectionDataSource.targetPointY;\n convertedData.dataSourceSettings.connectionDataSource.crudAction = {\n read: data.dataSourceSettings.connectionDataSource.crudAction.read,\n create: data.dataSourceSettings.connectionDataSource.crudAction.create,\n update: data.dataSourceSettings.connectionDataSource.crudAction.update,\n destroy: data.dataSourceSettings.connectionDataSource.crudAction.destroy,\n customFields: data.dataSourceSettings.connectionDataSource.customFields\n };\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the ruler settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setRulerSettings = function (convertedData, data) {\n convertedData.rulerSettings = {};\n convertedData.rulerSettings.showRulers = data.rulerSettings.showRulers;\n convertedData.rulerSettings.horizontalRuler = this.setRulerProperties(data.rulerSettings.horizontalRuler);\n convertedData.rulerSettings.verticalRuler = this.setRulerProperties(data.rulerSettings.verticalRuler);\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the orientation of the ruler\n Ej1Serialization.prototype.setRulerProperties = function (ruler) {\n var rulerProperties = {};\n rulerProperties.interval = ruler.interval;\n rulerProperties.segmentWidth = ruler.segmentWidth;\n // rulerProperties.tickAlignment = ruler.tickAlignment === 'rightorbottom' ? 'RightOrBottom' : 'LeftOrTop';\n rulerProperties.markerColor = ruler.markerColor;\n rulerProperties.thickness = ruler.thickness;\n rulerProperties.arrangeTick = ruler.arrangeTick;\n return rulerProperties;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the snap settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setSnapSettings = function (convertedData, data) {\n convertedData.snapSettings = {};\n if (data.snapSettings) {\n convertedData.snapSettings.horizontalGridLines = this.setGridLines(data.snapSettings.horizontalGridLines);\n convertedData.snapSettings.verticalGridLines = this.setGridLines(data.snapSettings.verticalGridLines);\n convertedData.snapSettings.snapAngle = data.snapSettings.snapAngle;\n convertedData.snapSettings.snapObjectDistance = data.snapSettings.snapObjectDistance;\n convertedData.snapSettings.constraints = this.setSnapConstraints(data.snapSettings.snapConstraints);\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the snap constraints from EJ1 to EJ2\n Ej1Serialization.prototype.setSnapConstraints = function (constraints) {\n var snapConstraints = SnapConstraints.None;\n if (constraints & SnapConstraints.ShowHorizontalLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowHorizontalLines;\n }\n if (constraints & SnapConstraints.ShowVerticalLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowVerticalLines;\n }\n if (constraints & SnapConstraints.ShowLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowLines;\n }\n if (constraints & SnapConstraints.SnapToHorizontalLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToHorizontalLines;\n }\n if (constraints & SnapConstraints.SnapToVerticalLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToVerticalLines;\n }\n if (constraints & SnapConstraints.SnapToLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToLines;\n }\n return snapConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the gridlines\n Ej1Serialization.prototype.setGridLines = function (gridlines) {\n var gridLinesProperties = {};\n gridLinesProperties.lineColor = gridlines.lineColor;\n gridLinesProperties.lineDashArray = gridlines.lineDashArray;\n gridLinesProperties.lineIntervals = gridlines.lineInterval;\n gridLinesProperties.snapIntervals = gridlines.snapInterval;\n return gridLinesProperties;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the scroll-settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setScrollSettings = function (convertedData, data) {\n convertedData.scrollSettings = {\n horizontalOffset: data.scrollSettings.horizontalOffset,\n verticalOffset: data.scrollSettings.verticalOffset,\n currentZoom: data.scrollSettings.currentZoom,\n viewPortWidth: data.scrollSettings.viewPortWidth,\n viewPortHeight: data.scrollSettings.viewPortHeight,\n minZoom: data.scrollSettings.minZoom,\n maxZoom: data.scrollSettings.maxZoom,\n scrollLimit: (data.pageSettings.scrollLimit).charAt(0).toUpperCase() + (data.pageSettings.scrollLimit).slice(1),\n scrollableArea: data.pageSettings.scrollableArea,\n canAutoScroll: data.enableAutoScroll,\n autoScrollBorder: data.pageSettings.autoScrollBorder\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the page settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setPageSettings = function (convertedData, data) {\n convertedData.pageSettings = {\n width: data.pageSettings.pageWidth,\n height: data.pageSettings.pageHeight,\n // eslint-disable-next-line max-len\n margin: { left: data.pageSettings.pageMargin, right: data.pageSettings.pageMargin, top: data.pageSettings.pageMargin, bottom: data.pageSettings.pageMargin },\n orientation: (data.pageSettings.pageOrientation).charAt(0).toUpperCase() + (data.pageSettings.pageOrientation).slice(1),\n // eslint-disable-next-line max-len\n boundaryConstraints: (data.pageSettings.boundaryConstraints).charAt(0).toUpperCase() + (data.pageSettings.boundaryConstraints).slice(1),\n // eslint-disable-next-line max-len\n background: { color: data.pageSettings.pageBackgroundColor, source: data.backgroundImage.source, scale: data.backgroundImage.scale, align: data.backgroundImage.align },\n multiplePage: data.pageSettings.multiplePage,\n showPageBreaks: data.pageSettings.showPageBreak\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the contextmenu settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setContextMenu = function (convertedData, data) {\n convertedData.contextMenuSettings = {};\n convertedData.contextMenuSettings.show = data.enableContextMenu;\n if (data.contextMenu !== undefined) {\n convertedData.contextMenuSettings.showCustomMenuOnly = data.contextMenu.showCustomMenuItemsOnly;\n convertedData.contextMenuSettings.items = this.getContextMenuItems(data.contextMenu.items);\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the contextmenu items\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.getContextMenuItems = function (contextMenuItems) {\n var menuItem = {};\n for (var i = 0; i < contextMenuItems.length; i++) {\n var oldMenuItem = contextMenuItems[parseInt(i.toString(), 10)];\n menuItem.id = oldMenuItem.name;\n menuItem.text = oldMenuItem.text;\n this.items.push(menuItem);\n if (contextMenuItems.subItems && contextMenuItems.subItems.length > 0) {\n this.getContextMenuItems(contextMenuItems.subItems);\n }\n }\n return this.items;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the tooltip items\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setTooltip = function (convertedData, data) {\n convertedData.tooltip = {\n content: data.tooltip.templateId,\n relativeMode: data.tooltip.relativeMode\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the model layout for the converted data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setModelLayout = function (convertedData, data) {\n convertedData.layout = {\n fixedNode: data.layout.fixedNode,\n horizontalSpacing: data.layout.horizontalSpacing,\n verticalSpacing: data.layout.verticalSpacing,\n maxIteration: data.layout.maxIteration,\n springFactor: data.layout.springFactor,\n springLength: data.layout.springLength,\n // eslint-disable-next-line max-len\n margin: { left: data.layout.margin.left, right: data.layout.margin.right, top: data.layout.margin.top, bottom: data.layout.margin.bottom },\n horizontalAlignment: (data.layout.horizontalAlignment).charAt(0).toUpperCase() + (data.layout.horizontalAlignment).slice(1),\n verticalAlignment: (data.layout.verticalAlignment).charAt(0).toUpperCase() + (data.layout.verticalAlignment).slice(1),\n orientation: data.layout.orientation === 'toptobottom' ? 'TopToBottom' : data.layout.orientation === 'bottomtotop' ? 'BottomToTop' : data.layout.orientation === 'righttoleft' ? 'RightToLeft' : 'LeftToRight',\n connectorSegments: data.layout.getConnectorSegments,\n type: (data.layout.type).charAt(0).toUpperCase() + (data.layout.type).slice(1),\n getLayoutInfo: data.layout.getLayoutInfo,\n bounds: data.layout.bounds,\n root: data.layout.root\n };\n if (convertedData.layout && convertedData.layout.type === 'Hierarchicaltree') {\n convertedData.layout.type = 'HierarchicalTree';\n }\n else if (convertedData.layout && convertedData.layout.type === 'Organizationalchart') {\n convertedData.layout.type = 'OrganizationalChart';\n }\n else if (convertedData.layout && convertedData.layout.type === 'Radialtree') {\n convertedData.layout.type = 'RadialTree';\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the selected items to convert the data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setSelectedItems = function (convertedData, data) {\n convertedData.selectedItems = {};\n var nodes = [];\n var connectors = [];\n convertedData.selectedItems.nodes = nodes;\n convertedData.selectedItems.connectors = connectors;\n convertedData.selectedItems.offsetX = data.selectedItems.offsetX;\n convertedData.selectedItems.offsetY = data.selectedItems.offsetY;\n convertedData.selectedItems.width = data.selectedItems.width;\n convertedData.selectedItems.height = data.selectedItems.height;\n convertedData.selectedItems.rotateAngle = data.selectedItems.rotateAngle;\n convertedData.selectedItems.constraints = this.setSelectorConstraints(data.selectedItems.constraints);\n convertedData.selectedItems.userHandles = data.selectedItems.userHandles;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the selector constraints from EJ1 to EJ2\n Ej1Serialization.prototype.setSelectorConstraints = function (constraints) {\n var selectorConstraints = SelectorConstraints.None;\n if (constraints & SelectorConstraints.ConnectorSourceThumb) {\n selectorConstraints = selectorConstraints | SelectorConstraints.Rotate;\n }\n if (constraints & SelectorConstraints.ResizeAll) {\n selectorConstraints = selectorConstraints | SelectorConstraints.ResizeAll;\n }\n if (constraints & SelectorConstraints.ResizeSouthEast) {\n selectorConstraints = selectorConstraints | SelectorConstraints.UserHandle;\n }\n if (constraints & SelectorConstraints.ToolTip) {\n selectorConstraints = selectorConstraints | SelectorConstraints.ToolTip;\n }\n if (constraints & SelectorConstraints.All) {\n selectorConstraints = selectorConstraints | SelectorConstraints.All;\n }\n return selectorConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the diagram constraints from EJ1 to EJ2\n Ej1Serialization.prototype.setDiagramConstraints = function (constraints) {\n var diagramConstraints = DiagramConstraints.None;\n if (constraints & DiagramConstraints.UserInteraction) {\n diagramConstraints = diagramConstraints | DiagramConstraints.UserInteraction;\n }\n if (constraints & DiagramConstraints.ApiUpdate) {\n diagramConstraints = diagramConstraints | DiagramConstraints.ApiUpdate;\n }\n if (constraints & DiagramConstraints.PageEditable) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PageEditable;\n }\n if (constraints & DiagramConstraints.LineRouting) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Bridging;\n }\n if (constraints & DiagramConstraints.Zoom) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Zoom;\n }\n if (constraints & DiagramConstraints.PanX) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PanX;\n }\n if (constraints & DiagramConstraints.PanY) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PanY;\n }\n if (constraints & DiagramConstraints.Pan) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Pan;\n }\n if (constraints & DiagramConstraints.UndoRedo) {\n diagramConstraints = diagramConstraints | DiagramConstraints.UndoRedo;\n }\n if (constraints & DiagramConstraints.ZoomTextEdit) {\n diagramConstraints = diagramConstraints | DiagramConstraints.ZoomTextEdit;\n }\n return diagramConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the diagram tool from EJ1 to EJ2\n Ej1Serialization.prototype.setDiagramTool = function (tool) {\n var diagramTool = DiagramTools.None;\n if (tool & DiagramTools.MultipleSelect) {\n diagramTool = diagramTool | DiagramTools.SingleSelect;\n }\n if (tool & DiagramTools.ZoomPan) {\n diagramTool = diagramTool | DiagramTools.MultipleSelect;\n }\n if (tool & DiagramTools.DrawOnce) {\n diagramTool = diagramTool | DiagramTools.ZoomPan;\n }\n if (tool & DiagramTools.ContinuousDraw) {\n diagramTool = diagramTool | DiagramTools.DrawOnce;\n }\n if (tool & DiagramTools.ContinuousDraw) {\n diagramTool = diagramTool | DiagramTools.ContinuousDraw;\n }\n return diagramTool;\n };\n // /* tslint:disable */\n // /**\n // * To provide the array of modules needed for control rendering\n // *\n // * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\\\n // * @private\n // */\n // public requiredModules(): ModuleDeclaration[] {\n // const modules: ModuleDeclaration[] = [];\n // modules.push({\n // member: 'NodeProperties',\n // args: []\n // });\n // return modules;\n // }\n /**\n * To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n Ej1Serialization.prototype.destroy = function () {\n /**\n * Destroys the Print and Export module\n */\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name\n */\n Ej1Serialization.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Ej1Serialization';\n };\n return Ej1Serialization;\n}());\nexport { Ej1Serialization };\n","/**\n * Diagram component exported items\n */\nexport * from './diagram';\nexport * from './print-settings';\n//primitives\nexport * from './primitives/size';\nexport * from './primitives/rect';\nexport * from './primitives/matrix';\nexport * from './primitives/point';\n//enums\nexport * from './enum/enum';\n//core\nexport * from './core/appearance';\nexport * from './core/elements/diagram-element';\nexport * from './core/elements/path-element';\nexport * from './core/elements/image-element';\nexport * from './core/elements/text-element';\nexport * from './core/containers/container';\nexport * from './core/containers/canvas';\nexport * from './core/containers/grid';\nexport * from './core/containers/stack-panel';\n//utility\nexport * from './utility/connector';\nexport * from './utility/path-util';\nexport * from './utility/base-util';\nexport * from './utility/diagram-util';\n//rendering\nexport * from './rendering/canvas-renderer';\nexport * from './rendering/renderer';\n//data binding\nexport * from './data-binding/data-binding';\n//objects\nexport * from './objects/dictionary/basic-shapes';\nexport * from './objects/dictionary/common';\nexport * from './objects/dictionary/flow-shapes';\nexport * from './objects/annotation';\nexport * from './objects/port';\nexport * from './objects/context-menu';\nexport * from './objects/node';\nexport * from './objects/bpmn';\nexport * from './objects/connector';\nexport * from './objects/connector-bridging';\nexport * from './objects/snapping';\nexport * from './objects/undo-redo';\nexport * from './objects/tooltip';\nexport * from './objects/layout-animation';\nexport * from './objects/preview';\nexport * from './objects/fixed-user-handle';\n//interaction\nexport * from './interaction/selector';\nexport * from './interaction/tool';\nexport * from './interaction/event-handlers';\nexport * from './interaction/command-manager';\nexport * from './interaction/actions';\nexport * from './interaction/connector-editing';\nexport * from './interaction/container-interaction';\nexport * from './interaction/line-routing';\nexport * from './interaction/line-distribution';\nexport * from './diagram/data-source';\nexport * from './diagram/grid-lines';\nexport * from './diagram/keyboard-commands';\nexport * from './diagram/custom-cursor';\nexport * from './diagram/data-mapping';\n//layout\nexport * from './layout/layout-base';\nexport * from './layout/mind-map';\nexport * from './layout/hierarchical-tree';\nexport * from './layout/radial-tree';\nexport * from './layout/symmetrical-layout';\nexport * from './layout/complex-hierarchical-tree';\nexport * from './layout/flowChart/flow-chart-layout';\nexport * from './load-utility/connectorProperties';\nexport * from './load-utility/labelProperties';\nexport * from './load-utility/modelProperties';\nexport * from './load-utility/nodeProperties';\nexport * from './load-utility/portProperties';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Component, Property, Complex, CollectionFactory, ChildProperty, Event, L10n, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { Browser, EventHandler, Draggable, Collection } from '@syncfusion/ej2-base';\nimport { remove } from '@syncfusion/ej2-base';\nimport { Accordion } from '@syncfusion/ej2-navigations';\nimport { Node, Connector, Shape, Size, ConnectorConstraints, NodeConstraints } from '../diagram/index';\nimport { Transform } from '../diagram/index';\nimport { DiagramRenderer, StackPanel, Margin } from '../diagram/index';\nimport { TextElement, Canvas } from '../diagram/index';\nimport { SvgRenderer } from '../diagram/rendering/svg-renderer';\nimport { parentsUntil, createSvgElement, createHtmlElement, createMeasureElements } from '../diagram/utility/dom-util';\nimport { removeElementsByClass, applyStyleAgainstCsp } from '../diagram/utility/dom-util';\nimport { scaleElement, arrangeChild, groupHasType, setUMLActivityDefaults, updateDefaultValues } from '../diagram/utility/diagram-util';\nimport { getFunction, randomId, cloneObject } from '../diagram/utility/base-util';\nimport { getOuterBounds } from '../diagram/utility/connector';\nimport { Point } from '../diagram/primitives/point';\nimport { CanvasRenderer } from '../diagram/rendering/canvas-renderer';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n// eslint-disable-next-line\nvar getObjectType = function (obj) {\n var conn = obj;\n if (conn.sourcePoint || conn.targetPoint || conn.sourceID || conn.targetID\n || conn.sourcePortID || conn.targetPortID || conn.sourceDecorator || conn.targetDecorator) {\n return Connector;\n }\n if (obj.shape && (obj.shape instanceof Shape || obj.shape.type)) {\n return Node;\n }\n return Node;\n};\n/**\n * A palette allows to display a group of related symbols and it textually annotates the group with its header.\n */\nvar Palette = /** @class */ (function (_super) {\n __extends(Palette, _super);\n // eslint-disable-next-line\n function Palette(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], Palette.prototype, \"id\", void 0);\n __decorate([\n Property()\n ], Palette.prototype, \"height\", void 0);\n __decorate([\n Property(true)\n ], Palette.prototype, \"expanded\", void 0);\n __decorate([\n Property('')\n ], Palette.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Palette.prototype, \"title\", void 0);\n __decorate([\n CollectionFactory(getObjectType)\n ], Palette.prototype, \"symbols\", void 0);\n return Palette;\n}(ChildProperty));\nexport { Palette };\n/**\n * customize the drag size of the individual palette items.\n */\nvar SymbolDragSize = /** @class */ (function (_super) {\n __extends(SymbolDragSize, _super);\n function SymbolDragSize() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolDragSize.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolDragSize.prototype, \"height\", void 0);\n return SymbolDragSize;\n}(ChildProperty));\nexport { SymbolDragSize };\n/**\n * customize the preview size and position of the individual palette items.\n */\nvar SymbolPreview = /** @class */ (function (_super) {\n __extends(SymbolPreview, _super);\n function SymbolPreview() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolPreview.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolPreview.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Point)\n ], SymbolPreview.prototype, \"offset\", void 0);\n return SymbolPreview;\n}(ChildProperty));\nexport { SymbolPreview };\n/**\n * Represents the Symbol Palette Component.\n * ```html\n *
\n * \n * ```\n */\n/**\n * The symbol palette control allows to predefine the frequently used nodes and connectors\n * and to drag and drop those nodes/connectors to drawing area\n */\nvar SymbolPalette = /** @class */ (function (_super) {\n __extends(SymbolPalette, _super);\n //region - protected methods\n /**\n * Constructor for creating the symbol palette Component\n *\n * @param {SymbolPaletteModel} options The symbol palette model.\n * @param {string | HTMLElement} element The symbol palette element.\n */\n function SymbolPalette(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.symbolTable = {};\n /** @private */\n _this.childTable = {};\n _this.info = 'info';\n _this.oldObject = null;\n _this.laneTable = {};\n _this.isExpand = false;\n _this.isExpandMode = false;\n _this.isMethod = false;\n _this.paletteid = 88123;\n _this.checkOnRender = false;\n _this.symbolTooltipObject = null;\n // eslint-disable\n _this.helper = function (e) {\n var clonedElement;\n var id = (_this.selectedSymbol && _this.selectedSymbol.id) || e.sender.target.id.split('_container')[0];\n var symbol = _this.symbolTable[\"\" + id];\n if (symbol && _this.selectedSymbol) {\n _this.selectedSymbols = _this.selectedSymbol.id === symbol.id ? symbol : _this.selectedSymbol;\n //const position: PointModel = this.getMousePosition(e.sender);\n clonedElement = _this.getSymbolPreview(_this.selectedSymbols, e.sender, _this.element);\n clonedElement.setAttribute('paletteId', _this.element.id);\n }\n return clonedElement;\n };\n var child;\n var node;\n for (var i = 0; _this && _this.palettes && i < _this.palettes.length; i++) {\n for (var j = 0; j < _this.palettes[parseInt(i.toString(), 10)].symbols.length; j++) {\n child = _this.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)];\n node = options.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)];\n if (child && child.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(node, child);\n }\n if (_this.nodeDefaults || _this.connectorDefaults) {\n updateDefaultValues(child, node, child instanceof Node ? _this.nodeDefaults : _this.connectorDefaults);\n }\n }\n }\n return _this;\n }\n /**\n * Refreshes the panel when the symbol palette properties are updated\\\n *\n * @returns { void} Refreshes the panel when the symbol palette properties are updated .\\\n * @param {SymbolPaletteModel} newProp - Defines the new values of the changed properties.\n * @param {SymbolPaletteModel} oldProp - Defines the old values of the changed properties.\n */\n // eslint-disable-next-line\n SymbolPalette.prototype.onPropertyChanged = function (newProp, oldProp) {\n var refresh = false;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n this.element.style.width = this.width.toString();\n break;\n case 'height':\n this.element.style.height = this.height.toString();\n break;\n case 'symbolPreview':\n break;\n case 'symbolWidth':\n case 'symbolHeight':\n case 'getSymbolInfo':\n if (this.isReact) {\n refresh = false;\n }\n else {\n refresh = true;\n }\n break;\n case 'enableSearch':\n if (newProp.enableSearch && !isBlazor()) {\n this.createTextbox();\n }\n else {\n var divElement = document.getElementById(this.element.id + '_search');\n if (divElement) {\n divElement.parentNode.removeChild(divElement);\n }\n }\n break;\n case 'palettes':\n for (var _b = 0, _c = Object.keys(newProp.palettes); _b < _c.length; _b++) {\n var i = _c[_b];\n var index = Number(i);\n if (!isBlazor() && !this.accordionElement.items[parseInt(index.toString(), 10)]) {\n this.accordionElement.items[parseInt(index.toString(), 10)] = {\n header: newProp.palettes[parseInt(index.toString(), 10)].title || '',\n expanded: newProp.palettes[parseInt(index.toString(), 10)].expanded,\n iconCss: newProp.palettes[parseInt(index.toString(), 10)].iconCss || ''\n };\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].height) {\n var paletteDiv = document.getElementById(this.palettes[parseInt(index.toString(), 10)].id + '_content');\n paletteDiv.style.height = newProp.palettes[parseInt(index.toString(), 10)].height + 'px';\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].iconCss !== undefined) {\n if (!isBlazor()) {\n this.accordionElement.items[parseInt(index.toString(), 10)].iconCss = newProp.palettes[parseInt(index.toString(), 10)].iconCss || '';\n refresh = true;\n }\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].expanded !== undefined && !isBlazor()) {\n if (!this.palettes[parseInt(index.toString(), 10)].isInteraction) {\n this.accordionElement.items[parseInt(index.toString(), 10)].expanded\n = newProp.palettes[parseInt(index.toString(), 10)].expanded;\n this.isExpand = true;\n }\n else {\n this.palettes[parseInt(index.toString(), 10)].isInteraction = false;\n }\n if (!this.isExpandMode && !this.isMethod && !this.isExpand) {\n this.isExpand = true;\n }\n }\n }\n break;\n case 'enableAnimation':\n if (!isBlazor()) {\n if (!this.enableAnimation) {\n this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } };\n }\n else {\n this.accordionElement.animation = { expand: { duration: 400 }, collapse: { duration: 400 } };\n }\n }\n break;\n case 'expandMode':\n if (!isBlazor()) {\n this.accordionElement.expandMode = this.expandMode;\n refresh = true;\n this.isExpandMode = true;\n }\n break;\n case 'allowDrag':\n this.allowDrag = newProp.allowDrag;\n if (!this.allowDrag) {\n this.draggable.helper = function () {\n return null;\n };\n }\n else {\n this.initDraggable();\n this.draggable.helper = this.helper;\n }\n break;\n }\n }\n if (refresh) {\n this.refreshPalettes();\n }\n if (this.isExpand && !refresh) {\n this.refresh();\n this.isExpand = false;\n for (var p = 0; p < this.palettes.length; p++) {\n var paletteElement = this.palettes[parseInt(p.toString(), 10)].id;\n if (window[\"\" + paletteElement]) {\n if (window[\"\" + paletteElement].length > 1) {\n window[\"\" + paletteElement][1].parentNode.removeChild(window[\"\" + paletteElement][1]);\n window[\"\" + paletteElement][1] = null;\n }\n }\n }\n }\n this.isMethod = false;\n };\n /**\n * updateBlazorProperties method\\\n *\n * @returns {void} updateBlazorProperties method .\\\n * @param {SymbolPaletteModel} newProp - provide the scale value.\n *\n * @private\n */\n // public updateBlazorProperties(newProp: SymbolPaletteModel): void {\n // const blazorInterop: string = 'sfBlazor';\n // const blazor: string = 'Blazor';\n // if (window && window[`${blazor}`]) {\n // const palObj: object = { palette: newProp.palettes };\n // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'paletteobj': palObj };\n // window[`${blazorInterop}`].updateBlazorProperties(obj, this);\n // }\n // }\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n SymbolPalette.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n SymbolPalette.prototype.preRender = function () {\n var _this = this;\n this.l10n = new L10n(this.getModuleName(), this.defaultLocale(), this.locale);\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-symbolpalette').length;\n this.element.id = 'symbolpalette_' + this.paletteid + '_' + collection;\n }\n this.element.style.overflow = 'auto';\n this.element.style.height = this.height.toString();\n this.element.style.width = this.width.toString();\n if (this.enableSearch && !isBlazor()) {\n this.createTextbox();\n }\n //create accordion element\n if (!isBlazor()) {\n var accordionDiv = createHtmlElement('div', { id: this.element.id + '_container' });\n this.accordionElement = new Accordion({\n expandMode: this.expandMode\n });\n if (!this.enableAnimation) {\n this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } };\n }\n this.accordionElement.created = function () {\n _this.checkOnRender = true;\n };\n this.accordionElement.expanded = function (args) {\n var index = _this.accordionElement.items.indexOf(args.item);\n var isAllowDatabind = _this.allowServerDataBinding;\n _this.allowServerDataBinding = false;\n _this.palettes[parseInt(index.toString(), 10)].expanded = args.isExpanded;\n _this.palettes[parseInt(index.toString(), 10)].isInteraction = true;\n _this.allowServerDataBinding = isAllowDatabind;\n };\n this.accordionElement.expanding = function (args) {\n if (_this.checkOnRender) {\n // eslint-disable-next-line\n var diagramArgs = {\n element: args.element, content: args.content, index: args.index, cancel: false,\n isExpanded: args.isExpanded, palette: _this.palettes[args.index]\n };\n var event_1 = 'paletteExpanding';\n _this.trigger(event_1, diagramArgs);\n args.cancel = diagramArgs.cancel;\n }\n };\n this.element.appendChild(accordionDiv);\n }\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n }\n createMeasureElements();\n this.unWireEvents();\n this.wireEvents();\n };\n /**\n * EJ2-61531- Localization support for the symbol palette search box placeholder.\n * @returns {Object} defaultLocale\n */\n SymbolPalette.prototype.defaultLocale = function () {\n return { SearchShapes: 'Search Shapes' };\n };\n /**\n * Renders the rulers.\n *\n * @returns {void} Renders the rulers.\n * @private\n */\n SymbolPalette.prototype.render = function () {\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), false);\n this.svgRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), true);\n this.updatePalettes();\n if (!isBlazor()) {\n this.accordionElement.appendTo('#' + this.element.id + '_container');\n }\n this.renderComplete();\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n SymbolPalette.prototype.getModuleName = function () {\n return 'SymbolPalette';\n };\n /**\n * To provide the array of modules needed for control rendering.\n *\n * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\n * @private\n */\n SymbolPalette.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'Bpmn',\n args: []\n });\n return modules;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n SymbolPalette.prototype.destroy = function () {\n if (this.allowDrag) {\n this.draggable.destroy();\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n var content = document.getElementById(this.element.id + '_container');\n if (content) {\n this.element.removeChild(content);\n var measureElemnt = 'measureElement';\n if (window[\"\" + measureElemnt]) {\n window[\"\" + measureElemnt].usageCount -= 1;\n var measureElementCount = 'measureElementCount';\n window[\"\" + measureElementCount]--;\n if (window[\"\" + measureElementCount] === 0) {\n window[\"\" + measureElemnt].parentNode.removeChild(window[\"\" + measureElemnt]);\n window[\"\" + measureElemnt] = null;\n }\n }\n }\n content = document.getElementById(this.element.id + '_search');\n if (content) {\n content.parentNode.removeChild(content);\n }\n }\n };\n /**\n * Add particular palettes to symbol palette at runtime.\\\n *\n * @returns { void} Refreshes the ruler when the Ruler properties are updated .\\\n * @param { PaletteModel[]} palettes -Defines the collection of palettes to be added.\n */\n SymbolPalette.prototype.addPalettes = function (palettes) {\n var palette;\n for (var i = 0; i < palettes.length; i++) {\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.isProtectedOnChange = true;\n this.allowServerDataBinding = false;\n palette = new Palette(this, 'palettes', palettes[parseInt(i.toString(), 10)], true);\n this.palettes.push(palette);\n this.initSymbols(palette);\n this.allowServerDataBinding = isEnableServerDatabind;\n this.isProtectedOnChange = false;\n this.renderPalette(palette);\n }\n this.bulkChanges = {};\n if (!isBlazor()) {\n this.accordionElement.refresh();\n }\n };\n /**\n * removePalette method\\\n *\n * @returns {void} removePalette method .\\\n * @param {string} paletteId - provide the scale value.\n *\n * @private\n */\n SymbolPalette.prototype.removePalette = function (paletteId) {\n for (var i = 0; i < this.palettes.length; i++) {\n if (this.palettes[parseInt(i.toString(), 10)].id === paletteId) {\n this.palettes.splice(i, 1);\n if (!isBlazor()) {\n this.accordionElement.items.splice(i, 1);\n }\n break;\n }\n }\n };\n /**\n * Remove particular palettes to symbol palette at runtime \\\n *\n * @returns {void} Remove particular palettes to symbol palette at runtime .\\\n * @param {string[]} palettes - provide the scale value.\n */\n SymbolPalette.prototype.removePalettes = function (palettes) {\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n for (var i = 0; i < palettes.length; i++) {\n this.removePalette(palettes[parseInt(i.toString(), 10)]);\n }\n if (!isBlazor()) {\n this.accordionElement.refresh();\n }\n else {\n this.updatePalettes();\n }\n this.allowServerDataBinding = isEnableServerDatabind;\n };\n //end region - protected methods\n //region - private methods to render symbols\n /**\n * Method to initialize the items in the symbols \\\n *\n * @returns {void} Method to initialize the items in the symbols .\\\n * @param {PaletteModel} symbolGroup - provide the scale value.\n *\n */\n SymbolPalette.prototype.initSymbols = function (symbolGroup) {\n var group = [];\n var laneHeight = 0;\n var laneWidth = 0;\n for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (symbol.shape.type === 'SwimLane') {\n var swimLaneObj = symbol;\n var swimLaneShape = symbol.shape;\n var isHorizontal = (swimLaneShape.orientation === 'Horizontal') ? true : false;\n if (swimLaneShape.isLane) {\n laneHeight = isHorizontal ? this.symbolHeight - this.symbolHeight / 2 : this.symbolHeight - this.symbolHeight / 4;\n laneWidth = isHorizontal ? this.symbolWidth - this.symbolWidth / 4 : this.symbolWidth - this.symbolWidth / 2;\n this.laneTable[symbol.id] = { height: laneHeight, width: laneWidth };\n var header = swimLaneShape.lanes[0].header;\n var laneStyle = swimLaneShape.lanes[0].style;\n var headerStyle = header.style;\n var headerObj = {\n id: 'header' + randomId(), shape: { type: 'Basic', shape: 'Rectangle' },\n width: isHorizontal ? header.width : swimLaneObj.width,\n height: isHorizontal ? swimLaneObj.height : header.height,\n style: headerStyle,\n annotations: [{ content: header.annotation.content }]\n };\n headerObj.offsetX = headerObj.width / 2;\n headerObj.offsetY = headerObj.height / 2;\n this.addPaletteItem(symbolGroup.id, headerObj);\n var laneObj = {\n id: 'lane' + randomId(), shape: { type: 'Basic', shape: 'Rectangle' },\n width: isHorizontal ? (swimLaneObj.width - header.width) : swimLaneObj.width,\n height: isHorizontal ? swimLaneObj.height : (swimLaneObj.height - header.height),\n style: laneStyle\n };\n laneObj.offsetX = isHorizontal ? (headerObj.width + (laneObj.width / 2)) : laneObj.width / 2;\n laneObj.offsetY = isHorizontal ? laneObj.height / 2 : (headerObj.height + (laneObj.height / 2));\n this.addPaletteItem(symbolGroup.id, laneObj);\n swimLaneObj.children = [headerObj.id, laneObj.id];\n }\n else if (swimLaneShape.isPhase) {\n laneHeight = swimLaneObj.height ? swimLaneObj.height : this.symbolHeight;\n laneWidth = swimLaneObj.width ? swimLaneObj.width : this.symbolWidth;\n symbol.shape.type = 'Path';\n if (isHorizontal) {\n symbol.shape.data = 'M0,0 L' + laneWidth + ',' + '0';\n }\n else {\n symbol.shape.data = 'M0,0 L0,' + laneWidth;\n }\n }\n }\n //Rendering the UML node as an HTML group node ensures that it is visually represented exactly as intended in the diagram\n if (symbol.shape.type === 'UmlClassifier' && !symbol.shape.relationship) {\n var umlObj = symbol;\n var newObj = void 0;\n var getStyle = void 0;\n if (symbol.style.fill === 'white') {\n getStyle = {\n fill: '#26A0DA'\n };\n }\n else {\n getStyle = {\n fill: symbol.style.fill\n };\n }\n if (symbol.shape.classifier === 'Class') {\n newObj = {\n id: 'node' + randomId(), shape: {\n type: 'HTML', content: '
class
'\n },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n style: getStyle,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 : 50\n };\n this.addPaletteItem(symbolGroup.id, newObj);\n }\n else if (symbol.shape.classifier === 'Enumeration') {\n newObj = {\n id: 'node' + randomId(), shape: {\n type: 'HTML', content: '
Enumeration
'\n },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n style: getStyle,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 : 50\n };\n this.addPaletteItem(symbolGroup.id, newObj);\n }\n else if (symbol.shape.classifier === 'Interface') {\n newObj = {\n id: 'node' + randomId(), shape: {\n type: 'HTML', content: '
Interface
'\n },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n style: getStyle,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 : 50\n };\n this.addPaletteItem(symbolGroup.id, newObj);\n }\n var memberObj = {\n id: 'member' + randomId(), shape: { type: 'HTML', content: '
' },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 + (newObj.height / 2) : 50 + (newObj.height / 2)\n };\n this.addPaletteItem(symbolGroup.id, memberObj);\n umlObj.children = [newObj.id, memberObj.id];\n }\n //Set the strokeDashArray for specific connectors to ensure that it is visually represented exactly as intended in the diagram\n if (symbol.shape.type === 'UmlClassifier' && symbol.shape.relationship) {\n if (symbol.shape.relationship === 'Inheritance') {\n symbol.style.strokeDashArray = symbol.style.strokeDashArray ? symbol.style.strokeDashArray : '4 4';\n }\n if (symbol.shape.relationship === 'Dependency') {\n symbol.style.strokeDashArray = symbol.style.strokeDashArray ? symbol.style.strokeDashArray : '4 4';\n }\n }\n if (symbol instanceof Node) {\n var getNodeDefaults = getFunction(this.getNodeDefaults);\n if (getNodeDefaults) {\n getNodeDefaults(symbol, this);\n }\n }\n else if (symbol instanceof Connector) {\n var getConnectorDefaults = getFunction(this.getConnectorDefaults);\n if (getConnectorDefaults) {\n getConnectorDefaults(symbol, this);\n }\n }\n this.symbolTable[symbol.id] = symbol;\n if (symbol instanceof Node && symbol.children) {\n group.push(symbol);\n }\n }\n for (var i = 0; i < group.length; i++) {\n var node = void 0;\n for (var j = 0; j < group[parseInt(i.toString(), 10)].children.length; j++) {\n node = (this.symbolTable[group[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]]);\n if (node) {\n this.childTable[node.id] = node;\n node.parentId = group[parseInt(i.toString(), 10)].id;\n }\n }\n }\n for (var _b = 0, _c = symbolGroup.symbols; _b < _c.length; _b++) {\n var symbol = _c[_b];\n if (!(symbol instanceof Node && symbol.children)) {\n this.prepareSymbol(symbol);\n }\n }\n for (var _d = 0, group_1 = group; _d < group_1.length; _d++) {\n var symbol = group_1[_d];\n this.prepareSymbol(symbol);\n }\n };\n SymbolPalette.prototype.renderPalette = function (symbolGroup) {\n var style = 'display:none;overflow:auto;';\n if (symbolGroup.height) {\n style += 'height:' + symbolGroup.height + 'px';\n }\n var paletteParentDiv = document.getElementById(symbolGroup.id);\n var paletteDiv = createHtmlElement('div', { 'id': symbolGroup.id, style: style, class: 'e-remove-palette' });\n this.element.appendChild(paletteDiv);\n if (!isBlazor()) {\n var item = {\n header: symbolGroup.title, expanded: symbolGroup.expanded,\n content: '#' + symbolGroup.id, iconCss: symbolGroup.iconCss\n };\n this.accordionElement.items.push(item);\n }\n this.renderSymbols(symbolGroup, paletteDiv);\n };\n /**\n * Used to add the palette item as nodes or connectors in palettes \\\n *\n * @returns {void} Used to add the palette item as nodes or connectors in palettes .\\\n * @param {string} paletteName - provide the scale value.\n * @param {NodeModel | ConnectorModel} paletteSymbol - provide the scale value.\n * @param {boolean} isChild - provide the scale value.\n */\n SymbolPalette.prototype.addPaletteItem = function (paletteName, paletteSymbol, isChild) {\n paletteSymbol = cloneObject(paletteSymbol);\n //let refresh: boolean;\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) {\n // eslint-disable-next-line\n var param = [undefined, symbolPaletteGroup, 'symbols', {}, true];\n // eslint-disable-next-line\n var obj = new (Function.prototype.bind.apply(getObjectType(paletteSymbol), param));\n for (var i_1 = 0; i_1 < Object.keys(paletteSymbol).length; i_1++) {\n var isEnableServerDatabind_1 = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n obj[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]]\n = paletteSymbol[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]];\n this.allowServerDataBinding = isEnableServerDatabind_1;\n }\n updateDefaultValues(obj, paletteSymbol, obj instanceof Node ? this.nodeDefaults : this.connectorDefaults);\n symbolPaletteGroup.symbols.push(obj);\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n this.prepareSymbol(obj);\n this.allowServerDataBinding = isEnableServerDatabind;\n this.symbolTable[obj.id] = obj;\n if (isChild) {\n this.childTable[obj.id] = obj;\n }\n else {\n var paletteDiv = document.getElementById(symbolPaletteGroup.id);\n if (paletteDiv) {\n paletteDiv.appendChild(this.getSymbolContainer(obj, paletteDiv));\n }\n }\n break;\n }\n }\n };\n /**\n * Used to remove the palette item as nodes or connectors in palettes \\\n *\n * @returns {void} Used to remove the palette item as nodes or connectors in palettes .\\\n * @param {string} paletteName - provide the scale value.\n * @param {string} symbolId - provide the scale value.\n */\n SymbolPalette.prototype.removePaletteItem = function (paletteName, symbolId) {\n var refresh;\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) {\n for (var _i = 0, _a = symbolPaletteGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (symbol.id.indexOf(symbolId) !== -1) {\n var index = symbolPaletteGroup.symbols.indexOf(symbol);\n symbolPaletteGroup.symbols.splice(index, 1);\n if (symbol.children) {\n var parentNode = symbol.children;\n for (var i_2 = 0; i_2 < parentNode.length; i_2++) {\n delete this.symbolTable[(parentNode[parseInt(i_2.toString(), 10)])];\n }\n }\n delete this.symbolTable[symbol.id];\n var element = document.getElementById(symbol.id + '_container');\n element.parentNode.removeChild(element);\n refresh = true;\n break;\n }\n }\n }\n if (refresh) {\n break;\n }\n }\n };\n SymbolPalette.prototype.prepareSymbol = function (symbol) {\n var width;\n var sw;\n var height;\n var sh;\n var stackPanel = new StackPanel();\n var obj = symbol;\n var content;\n var symbolContainer = new Canvas();\n var container = (symbol instanceof Node) ? symbol.initContainer() : null;\n if (container && !container.children) {\n container.children = [];\n }\n //preparing objects\n var getSymbolTemplate = getFunction(this.getSymbolTemplate);\n if (getSymbolTemplate) {\n content = getSymbolTemplate(symbol);\n }\n if (!content) {\n if (obj.children) {\n content = this.getContainer(obj, container);\n }\n else {\n if (symbol instanceof Connector && symbol.shape.type === 'UmlClassifier' && symbol.shape.relationship) {\n content = symbol.init(this);\n for (var i = content.children.length - 1; i >= 0; i--) {\n if (content.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n content.children.splice(i, 1);\n }\n }\n }\n else {\n content = symbol.init(this);\n }\n if (symbol instanceof Node && symbol.parentId) {\n container.children.push(content);\n }\n }\n }\n if (!symbol.parentId) {\n var symbolInfo = { width: this.symbolWidth, height: this.symbolHeight };\n var getSymbolInfo = getFunction(this.getSymbolInfo);\n if (getSymbolInfo) {\n symbolInfo = getSymbolInfo(symbol);\n }\n symbolInfo = symbolInfo || this.symbolInfo || {};\n if (symbol.shape && symbol.shape.isPhase) {\n symbolInfo.width = symbolInfo.width || this.symbolWidth;\n symbolInfo.height = symbolInfo.height || this.symbolHeight;\n }\n //defining custom templates\n content.relativeMode = 'Object';\n content.horizontalAlignment = content.verticalAlignment = 'Center';\n symbolContainer.style.strokeColor = symbolContainer.style.fill = 'none';\n symbolContainer.children = [content];\n content.measure(new Size());\n content.arrange(content.desiredSize);\n width = symbolInfo.width = symbolInfo.width ||\n (obj.width !== undefined ? content.actualSize.width : undefined) || this.symbolWidth;\n height = symbolInfo.height = symbolInfo.height ||\n (obj.height !== undefined ? content.actualSize.height : undefined) || this.symbolHeight;\n if (width !== undefined && height !== undefined) {\n var actualWidth = width;\n var actualHeight = height;\n //let isLane: boolean = (symbol.shape as SwimLane).isLane ? true : false;\n var isPhase = symbol.shape.isPhase ? true : false;\n if (this.symbolWidth !== undefined) {\n actualWidth = this.symbolWidth - this.symbolMargin.left - this.symbolMargin.right;\n }\n else {\n width += obj.style.strokeWidth;\n }\n if (this.symbolHeight !== undefined) {\n actualHeight = this.symbolHeight - this.symbolMargin.top - this.symbolMargin.bottom;\n }\n else {\n height += obj.style.strokeWidth;\n }\n //Bug 873843: Issue with node height and width in the symbol palette. Checked !== Bpmn to avoid the actual height decrement for bpmn nodes\n if (symbol.shape && symbol.shape.type !== 'Bpmn' && symbolInfo.description && symbolInfo.description.text !== '') {\n actualHeight -= 20; // default height of the text have been reduced from the container.\n }\n sw = actualWidth / ((!isPhase && content.width) || width);\n sh = actualHeight / ((!isPhase && content.height) || height);\n if (symbolInfo.fit) {\n sw = actualWidth / symbolInfo.width;\n sh = actualHeight / symbolInfo.height;\n }\n width = actualWidth;\n height = actualHeight;\n sw = sh = Math.min(sw, sh);\n symbolContainer.width = width;\n symbolContainer.height = height;\n content.width = symbolInfo.width;\n content.height = symbolInfo.height;\n this.scaleSymbol(symbol, symbolContainer, sw, sh, width, height);\n }\n else {\n var outerBounds = void 0;\n if (symbol instanceof Connector) {\n outerBounds = getOuterBounds(symbol);\n }\n content.width = symbol.width || (outerBounds) ? outerBounds.width : content.actualSize.width;\n content.height = symbol.height || (outerBounds) ? outerBounds.height : content.actualSize.height;\n }\n symbol.wrapper = stackPanel;\n stackPanel.children = [symbolContainer];\n content.pivot = stackPanel.pivot = { x: 0, y: 0 };\n stackPanel.id = content.id + '_symbol';\n stackPanel.style.fill = stackPanel.style.strokeColor = 'transparent';\n if (symbol instanceof Node) {\n stackPanel.offsetX = symbol.style.strokeWidth / 2;\n stackPanel.offsetY = symbol.style.strokeWidth / 2;\n }\n else {\n stackPanel.offsetX = 0.5;\n stackPanel.offsetY = 0.5;\n }\n //symbol description-textElement\n this.getSymbolDescription(symbolInfo, width, stackPanel, symbol);\n //EJ2-867827 - In diagram palette symbols, part of the symbol is not visible in left and top side\n stackPanel.padding = { left: 1, right: 1, bottom: 1, top: 1 };\n stackPanel.measure(new Size());\n stackPanel.arrange(stackPanel.desiredSize);\n symbolInfo.width = symbolInfo.width || content.actualSize.width;\n symbolInfo.height = symbolInfo.height || content.actualSize.height;\n symbol[this.info] = symbolInfo;\n }\n if (symbol.parentId) {\n container.measure(new Size(obj.width, obj.height));\n container.arrange(container.desiredSize);\n }\n };\n // private getBlazorSymbolInfo(symbol: NodeModel | ConnectorModel, symbolInfo: SymbolInfo): SymbolInfo {\n // const node: NodeModel | ConnectorModel = symbol as NodeModel | ConnectorModel;\n // const shapeSymbolInfo: SymbolPaletteInfoModel = node.symbolInfo;\n // if (shapeSymbolInfo) {\n // symbolInfo.description = shapeSymbolInfo.description || this.symbolInfo.description;\n // symbolInfo.fit = shapeSymbolInfo.fit || this.symbolInfo.fit;\n // symbolInfo.height = shapeSymbolInfo.height || this.symbolInfo.height;\n // symbolInfo.width = shapeSymbolInfo.width || this.symbolInfo.width;\n // symbolInfo.tooltip = shapeSymbolInfo.tooltip || this.symbolInfo.tooltip;\n // symbolInfo.template = shapeSymbolInfo.template || this.symbolInfo.template;\n // }\n // return symbolInfo;\n // }\n SymbolPalette.prototype.getContainer = function (obj, container) {\n container.measureChildren = false;\n var bounds;\n var child = obj.children;\n container.children = [];\n for (var i = 0; i < child.length; i++) {\n if (this.symbolTable[child[parseInt(i.toString(), 10)]]) {\n container.children.push(this.symbolTable[child[parseInt(i.toString(), 10)]].wrapper);\n }\n }\n container.measure(new Size(obj.width, obj.height));\n container.arrange(container.desiredSize);\n if (container.bounds.x !== 0 || container.bounds.y !== 0) {\n bounds = container.bounds;\n arrangeChild(obj, bounds.x, bounds.y, this.symbolTable, false, this);\n container = this.getContainer(obj, container);\n }\n return container;\n };\n /**\n * Feature [EJ2- 47318] - Support for the change of the symbol description\n * Feature [EJ2- 50705] - Support to add margin between the text and symbols\n */\n SymbolPalette.prototype.getSymbolDescription = function (symbolInfo, width, parent, symbol) {\n if (symbolInfo && symbolInfo.description && symbolInfo.description.text) {\n var textElement = new TextElement();\n //symbol description-textElement\n symbolInfo.description.overflow = symbolInfo.description.overflow || 'Ellipsis';\n symbolInfo.description.wrap = symbolInfo.description.wrap || 'WrapWithOverflow';\n textElement.id = parent.id + '_text';\n textElement.content = symbolInfo.description.text;\n textElement.width = width;\n textElement.height = 20;\n textElement.style.strokeColor = 'transparent';\n textElement.style.color = symbolInfo.description.color || 'black';\n textElement.style.fill = symbolInfo.description.fill || 'transparent';\n textElement.style.fontFamily = symbolInfo.description.fontFamily || 'Arial';\n textElement.style.fontSize = symbolInfo.description.fontSize || 12;\n textElement.style.bold = symbolInfo.description.bold || false;\n textElement.style.italic = symbolInfo.description.italic || false;\n textElement.style.textDecoration = symbolInfo.description.textDecoration || 'None';\n textElement.style.strokeWidth = 0;\n textElement.style.textWrapping = symbolInfo.description.wrap;\n textElement.style.textOverflow = symbolInfo.description.overflow;\n //Bug 873843: Issue with node height and width in the symbol palette. Added below to set margin bottom value for bpmn symbol with description.\n if (symbol.shape && symbol.shape.type === 'Bpmn') {\n textElement.margin = {\n left: 0, right: 0,\n top: symbolInfo.description.margin ? symbolInfo.description.margin.top : 0,\n bottom: symbolInfo.description.margin ? symbolInfo.description.margin.bottom : this.symbolMargin.bottom\n };\n }\n else {\n textElement.margin = {\n left: 0, right: 0,\n top: symbolInfo.description.margin ? symbolInfo.description.margin.top : 0,\n bottom: symbolInfo.description.margin ? symbolInfo.description.margin.bottom : 5\n };\n }\n parent.children.push(textElement);\n }\n };\n SymbolPalette.prototype.renderSymbols = function (symbolGroup, parentDiv) {\n for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (!symbol.parentId) {\n this.getSymbolContainer(symbol, parentDiv);\n }\n }\n };\n SymbolPalette.prototype.getSymbolPreview = function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n symbol, evt, parentDiv) {\n this.allowServerDataBinding = false;\n var canvas;\n var sw;\n var sh;\n var symbolPreviewWidth = symbol.wrapper.children[0].desiredSize.width + symbol.style.strokeWidth;\n var symbolPreviewHeight = symbol.wrapper.children[0].desiredSize.height + symbol.style.strokeWidth;\n var content = symbol.wrapper.children[0].children[0];\n var symbolPreview = symbol.previewSize;\n if ((symbol && (symbolPreview.width || symbolPreview.height)) ||\n this.symbolPreview.width !== undefined || this.symbolPreview.height !== undefined) {\n symbolPreviewWidth = (symbolPreview.width || this.symbolPreview.width || symbolPreviewWidth) - symbol.style.strokeWidth;\n symbolPreviewHeight = (symbolPreview.height || this.symbolPreview.height || symbolPreviewHeight) - symbol.style.strokeWidth;\n // EJ2-56887 - Connector do not get rendered properly in symbol palette.\n // Added below code to check if connector width is less than strokewidth means then set symbol width for connector.\n if (symbol instanceof Connector) {\n if (content.actualSize.width <= symbol.style.strokeWidth) {\n content.actualSize.width = this.symbolWidth;\n }\n if (content.actualSize.height <= symbol.style.strokeWidth) {\n content.actualSize.height = this.symbolHeight;\n }\n }\n sw = symbolPreviewWidth / content.actualSize.width;\n sh = symbolPreviewHeight / content.actualSize.height;\n sw = sh = Math.min(sw, sh);\n var symbolWidth = content.actualSize.width * sw;\n var symbolHeight = content.actualSize.height * sh;\n symbol.wrapper.children[0].width = symbolPreviewWidth;\n symbol.wrapper.children[0].height = symbolPreviewHeight;\n this.measureAndArrangeSymbol(content, symbol instanceof Node);\n this.scaleSymbol(symbol, symbol.wrapper.children[0], sw, sh, symbolWidth, symbolHeight, true);\n symbolPreviewWidth = symbolWidth;\n symbolPreviewHeight = symbolHeight;\n }\n var prevPosition = { x: content.offsetX, y: content.offsetY };\n content.offsetX = content.offsetY = symbol.style.strokeWidth / 2;\n content.pivot = { x: 0, y: 0 };\n this.measureAndArrangeSymbol(content, symbol instanceof Node);\n var previewContainer = createHtmlElement('div', { 'draggable': 'true', 'class': 'e-dragclone', 'style': 'pointer-events:none' });\n var div;\n document.body.appendChild(previewContainer);\n var style = 'margin:5px;';\n if (symbol.shape.type === 'Native') {\n canvas = createSvgElement('svg', {\n id: symbol.id + '_preview',\n width: Math.ceil(symbolPreviewWidth) + 1,\n height: Math.ceil(symbolPreviewHeight) + 1\n });\n var gElement = createSvgElement('g', { id: symbol.id + '_g' });\n canvas.appendChild(gElement);\n previewContainer.appendChild(canvas);\n this.svgRenderer.renderElement(content, gElement, undefined, undefined, canvas);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else if (symbol.shape.type === 'HTML') {\n div = this.getHtmlSymbol(symbol, canvas, previewContainer, symbolPreviewHeight, symbolPreviewWidth, true);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else if (symbol.shape.type === 'UmlClassifier' && !symbol.shape.relationship) {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getHtmlSymbol(symbol, canvas, previewContainer, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, true);\n this.prepareSymbol(symbol);\n }\n }\n else {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getGroupParent(symbol, canvas, previewContainer, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, true);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else {\n canvas = CanvasRenderer.createCanvas(symbol.id + '_preview', (Math.ceil(symbolPreviewWidth) + symbol.style.strokeWidth + 1) * 2, (Math.ceil(symbolPreviewHeight) + symbol.style.strokeWidth + 1) * 2);\n previewContainer.appendChild(canvas);\n // BLAZ-3223: translate applied only for Basic and Flow now and need to add for remaining shapes in future\n if (symbol.shape.type === 'Basic' || symbol.shape.type === 'Flow') {\n style += 'transform: scale(0.5) translate(-' + canvas.width / 2 + 'px, -' + canvas.height / 2 + 'px);';\n }\n else {\n style += 'transform:scale(0.5);';\n }\n canvas.setAttribute('transform-origin', '0 0');\n var index = 2;\n if (symbol instanceof Connector) {\n index = 1.9;\n }\n canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0);\n this.diagramRenderer.renderElement(content, canvas, undefined);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n }\n applyStyleAgainstCsp(((div && (symbol.shape.type === 'HTML' || symbol.children\n && symbol.children.length > 0)) ? div : canvas), style);\n content.offsetX = prevPosition.x;\n content.offsetY = prevPosition.y;\n this.allowServerDataBinding = true;\n return previewContainer;\n };\n SymbolPalette.prototype.measureAndArrangeSymbol = function (content, isNode) {\n if (content.children && !isNode) {\n content.children[0].transform = Transform.Self;\n }\n content.measure(new Size());\n content.arrange(content.desiredSize);\n if (content.children && content.children.length > 0) {\n content.children[0].transform = Transform.Parent;\n }\n };\n SymbolPalette.prototype.updateSymbolSize = function (symbol, width, height) {\n var element = symbol.wrapper.children[0].children[0];\n var strokeWidth = symbol.style.strokeWidth;\n element.width = (width || element.width) - (strokeWidth + 1);\n element.height = (height || element.height) - (strokeWidth + 1);\n symbol.wrapper.measure(new Size());\n symbol.wrapper.arrange(symbol.wrapper.desiredSize);\n };\n SymbolPalette.prototype.getSymbolContainer = function (symbol, parentDiv, preview) {\n var symbolInfo = this.symbolTable[symbol.id][this.info];\n var size = this.getSymbolSize(symbol, symbolInfo);\n var width = size.width + 1;\n var height = size.height + 1;\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // If the shape is to be rendered in search palette, then the id of the shape is appended with 'SearchSymbol'\n // To create a unique id for the shape in search palette to avoid tooltip issue.\n var symbolId = parentDiv.id === 'SearchPalette' ? symbol.id + 'SearchSymbol' : symbol.id;\n var container = createHtmlElement('div', {\n id: symbolId + '_container',\n style: 'width:' + width + 'px;height:' + height + 'px;float:left;overflow:hidden'\n // title: symbolInfo.tooltip ? symbolInfo.tooltip : symbol.id\n });\n parentDiv.appendChild(container);\n var canvas;\n var gElement;\n var div;\n if (symbol.shape.type === 'Native') {\n canvas = createSvgElement('svg', {\n id: symbolId,\n width: Math.ceil(symbol.wrapper.actualSize.width) + 1,\n height: Math.ceil(symbol.wrapper.actualSize.height) + 1\n });\n gElement = createSvgElement('g', { id: symbolId + '_g' });\n canvas.appendChild(gElement);\n container.appendChild(canvas);\n this.updateSymbolSize(symbol);\n this.svgRenderer.renderElement(symbol.wrapper, gElement, undefined, undefined, canvas);\n }\n else if (symbol.shape.type === 'HTML') {\n div = this.getHtmlSymbol(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false, parentDiv.id === 'SearchPalette');\n }\n //This method is responsible for rendering the UML node, as the UML node is displayed as an HTML group node.\n else if (symbol.shape.type === 'UmlClassifier' && !symbol.shape.relationship) {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getHtmlSymbol(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false);\n }\n }\n else {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getGroupParent(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false);\n }\n else {\n canvas = CanvasRenderer.createCanvas(symbolId, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1);\n container.appendChild(canvas);\n var index = 2;\n if (symbol instanceof Connector) {\n index = 1.9;\n }\n canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0);\n this.diagramRenderer.renderElement(symbol.wrapper, gElement || canvas, undefined, undefined, undefined, undefined, true, undefined, true);\n }\n }\n if (!preview) {\n var actualWidth = symbol.wrapper.actualSize.width + symbol.style.strokeWidth;\n var actualHeight = symbol.wrapper.actualSize.height + symbol.style.strokeWidth;\n var style = 'pointer-events:none;transform-origin:0 0;overflow:hidden;';\n if (symbol.shape.isPhase) {\n if (symbol.shape.orientation === 'Horizontal') {\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + size.height / 2\n + 'px;';\n }\n else {\n style += 'margin-left:' +\n size.width / 2\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n }\n }\n else {\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n }\n if (canvas instanceof HTMLCanvasElement) {\n style += 'transform:scale(.5,.5);';\n }\n applyStyleAgainstCsp(((div && (symbol.shape.type === 'HTML' || symbol.children &&\n symbol.children.length > 0)) ? div : canvas), style);\n container.classList.add('e-symbol-draggable');\n return container;\n }\n return canvas;\n };\n SymbolPalette.prototype.getGroupParent = function (item, canvas, container, height, width, isPreview) {\n var div = createHtmlElement('div', { 'id': item.id + (isPreview ? '_html_div_preview' : '_html_div') });\n var htmlLayer = createHtmlElement('div', {\n 'id': item.id + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': item.id + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute'\n });\n htmlLayer.appendChild(htmlLayerDiv);\n div.appendChild(htmlLayer);\n canvas = CanvasRenderer.createCanvas((isPreview ? (item.id + '_preview') : item.id), Math.ceil(width) + 1, Math.ceil(height) + 1);\n div.appendChild(canvas);\n container.appendChild(div);\n this.diagramRenderer.renderElement(item.wrapper.children[0].children[0], canvas, htmlLayer);\n return div;\n };\n SymbolPalette.prototype.getHtmlSymbol = function (symbol, canvas, container, height, width, isPreview, isSearchSymbol) {\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // If the shape is to be rendered in search palette, then the id of the shape is appended with 'SearchSymbol'\n // To create a unique id for the shape in search palette to avoid tooltip issue.\n var symbolId = isSearchSymbol ? symbol.id + 'SearchSymbol' : symbol.id;\n var div = createHtmlElement('div', {\n 'id': symbolId + (isPreview ? '_html_div_preview' : '_html_div')\n });\n var htmlLayer = createHtmlElement('div', {\n 'id': symbolId + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': symbolId + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute'\n });\n htmlLayer.appendChild(htmlLayerDiv);\n div.appendChild(htmlLayer);\n //EJ2-841339 - Html shapes in palette are not rendered properly\n var actualWidth = symbol.wrapper.actualSize.width + symbol.style.strokeWidth;\n var actualHeight = symbol.wrapper.actualSize.height + symbol.style.strokeWidth;\n var style = 'pointer-events:none;transform-origin:0 0;overflow:hidden;';\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n style += 'transform:scale(.5,.5);position:absolute';\n canvas = CanvasRenderer.createCanvas(symbolId, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1);\n container.appendChild(canvas);\n canvas.getContext('2d').setTransform(2, 0, 0, 2, 0, 0);\n applyStyleAgainstCsp(canvas, style);\n container.appendChild(div);\n //EJ2-70280 - Text description in symbol palette for HTML nodes is not visible.\n if (isPreview) {\n //When dragging the UML node from the palette, set the preview specifically for that UML node\n if (symbol.shape.type === 'UmlClassifier') {\n if (symbol.shape.classifier === 'Class') {\n symbol.wrapper.children[0].children[0].children[0].content = '
class
';\n }\n else if (symbol.shape.classifier === 'Enumeration') {\n symbol.wrapper.children[0].children[0].children[0].content = '
Enumeration
';\n }\n else if (symbol.shape.classifier === 'Interface') {\n symbol.wrapper.children[0].children[0].children[0].content = '
Interface
';\n }\n }\n this.diagramRenderer.renderElement(symbol.wrapper.children[0].children[0], canvas, htmlLayer);\n }\n else {\n this.diagramRenderer.renderElement(symbol.wrapper, canvas, htmlLayer);\n }\n return div;\n };\n // eslint-disable-next-line\n SymbolPalette.prototype.getSymbolSize = function (symbol, symbolInfo) {\n var width = symbol.wrapper.actualSize.width;\n var height = symbol.wrapper.actualSize.height;\n if (!this.symbolWidth && !this.symbolHeight) {\n width += this.symbolMargin.left + this.symbolMargin.right + symbol.style.strokeWidth;\n height += this.symbolMargin.top + this.symbolMargin.bottom + symbol.style.strokeWidth;\n }\n else {\n width = this.symbolWidth;\n height = Math.max(this.symbolHeight, height);\n }\n return new Size(width, height);\n };\n //end region - rendering symbols\n //region event handlers\n SymbolPalette.prototype.getMousePosition = function (e) {\n var offsetY;\n var offsetX;\n var touchArg;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n var pageY = touchArg.changedTouches[0].clientY;\n var pageX = touchArg.changedTouches[0].clientX;\n offsetY = pageY - this.element.offsetTop;\n offsetX = pageX - this.element.offsetLeft;\n }\n else {\n offsetY = e.clientY - this.element.offsetTop;\n offsetX = e.clientX - this.element.offsetLeft;\n }\n return { x: offsetX, y: offsetY };\n };\n /** Gets the default content of the Tooltip\n *\n * @returns {string | HTMLElement} Returns the default content of the Tooltip.\\\n * @param {object} obj - provide the Symbol object.\n */\n SymbolPalette.prototype.getContent = function (obj) {\n var isPrivateTooltip = ((this.hoverElement instanceof Node) &&\n this.hoverElement.constraints & NodeConstraints.Tooltip) ||\n ((this.hoverElement instanceof Connector) &&\n this.hoverElement.constraints & ConnectorConstraints.Tooltip);\n var content = isPrivateTooltip ? this.hoverElement.tooltip.content :\n obj.id;\n return content;\n };\n /**\n * Initialize the basic properties of Toolip object\n *\n * @returns {Tooltip} Returns the basic properties of Toolip object.\\\n * @param {NodeModel | ConnectorModel} element - provide the Symbol object.\n */\n SymbolPalette.prototype.initTooltip = function (element) {\n var tooltip;\n if (!isBlazor()) {\n var tooltipOption = new Tooltip;\n tooltipOption = this.updateTooltipContent(this.hoverElement.tooltip, tooltipOption);\n tooltip = new Tooltip(tooltipOption);\n tooltip.cssClass = 'e-symbolPalette-tooltip';\n tooltip.opensOn = 'custom';\n tooltip.appendTo('#' + element.id);\n tooltip.close();\n }\n return tooltip;\n };\n /**Method to update Tooltip Content\n *\n * @returns { Tooltip } Returns the basic properties of Toolip object.\\\n *\n * @param {TooltipModel} tooltip - provide the Symbol object.\n * @param {Tooltip} tooltipObject - provide the Symbol object.\n */\n SymbolPalette.prototype.updateTooltipContent = function (tooltip, tooltipObject) {\n tooltipObject.content = tooltip.content;\n tooltipObject.position = 'BottomRight';\n tooltipObject.showTipPointer = tooltip.showTipPointer;\n tooltipObject.width = tooltip.width;\n tooltipObject.height = tooltip.height;\n if (!tooltip.animation) {\n tooltipObject.animation = { close: { effect: 'None' } };\n }\n else {\n tooltipObject.animation = tooltip.animation;\n }\n return tooltipObject;\n };\n /**\n * To open the Tooltip element relevant to the target and relative mode\n *\n * @returns { void} opens the Tooltip element relevant to the target and relative mode.\\\n *\n * @param {PointModel} mousePosition - provide the mousePosition value.\n * @param {boolean} elementOver - provide the elementOver value.\n * @param {boolean} isSearchSymbol - provide the isSearchSymbol value.\n */\n SymbolPalette.prototype.elementEnter = function (mousePosition, elementOver, isSearchSymbol) {\n if (!elementOver) {\n //set the collision target element to given position if enabled\n this.symbolTooltipObject.windowCollision = true;\n //840454 - support to provide isSticky property for tooltip in diagram control\n if (this.hoverElement.tooltip.isSticky) {\n this.symbolTooltipObject.isSticky = true;\n }\n if (this.hoverElement instanceof Node) {\n if (!(this.hoverElement.constraints & (NodeConstraints.Default && NodeConstraints.Tooltip))) {\n this.hoverElement.tooltip.content = this.hoverElement.id;\n //Task 834121: Content-Security-Policy support for diagram\n this.symbolTooltipObject.content = initializeCSPTemplate(function () {\n return this.hoverElement.id;\n }, this);\n }\n }\n else if (this.hoverElement instanceof Connector) {\n if (!(this.hoverElement.constraints & (ConnectorConstraints.Default && ConnectorConstraints.Tooltip))) {\n this.hoverElement.tooltip.content = this.hoverElement.id;\n this.symbolTooltipObject.content = initializeCSPTemplate(function () {\n return this.hoverElement.id;\n }, this);\n }\n }\n if (this.hoverElement.tooltip.content) {\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n //To set relative mode only to object for Symbol Palatte\n this.hoverElement.tooltip.relativeMode = 'Object';\n this.symbolTooltipObject.offsetX = 0;\n this.symbolTooltipObject.offsetY = 0;\n }\n else {\n this.symbolTooltipObject.offsetX = 0;\n this.symbolTooltipObject.offsetY = 0;\n }\n }\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To render tooltip for the symbol in search palette, the id of the shape is appended with 'SearchSymbol'.\n var targetId = isSearchSymbol ? this.hoverElement.id + 'SearchSymbol' : this.hoverElement.id;\n var targetEle = document.getElementById(targetId);\n if (this.hoverElement.tooltip.openOn === 'Auto' && this.hoverElement.tooltip.content !== '') {\n this.symbolTooltipObject.close();\n this.symbolTooltipObject.opensOn = this.hoverElement.tooltip.openOn;\n this.symbolTooltipObject.dataBind();\n }\n if (this.hoverElement.tooltip.openOn === 'Auto') {\n this.symbolTooltipObject.target = this.hoverElement.id;\n this.symbolTooltipObject.open(targetEle);\n }\n }\n };\n // eslint-disable-next-line\n SymbolPalette.prototype.mouseMove = function (e, touches) {\n if (this.highlightedSymbol && (!this.selectedSymbol\n || this.selectedSymbol.id + '_container' !== this.highlightedSymbol.id)) {\n this.highlightedSymbol.classList.remove('e-symbol-hover');\n this.highlightedSymbol.style.backgroundColor = '';\n this.highlightedSymbol = null;\n }\n var id = e.target.id.split('_container')[0];\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To render highlighter for the search symbols while hovering over the symbol in search palette.\n if (this.symbolTable[\"\" + id] || (id !== 'SearchPalette' && e.target && e.target.id.includes('SearchSymbol'))) {\n var container = document.getElementById(id + '_container');\n container.classList.add('e-symbol-hover');\n this.highlightedSymbol = container;\n }\n e.preventDefault();\n var isSearchSymbol = false;\n if (e.target && e.target.id.includes('SearchSymbol')) {\n isSearchSymbol = true;\n id = id.split('SearchSymbol')[0];\n }\n //EJ2-66311-tooltip support for Symbolpalette\n var obj = this.symbolTable[\"\" + id];\n if (this.symbolTable[\"\" + id] && obj !== this.hoverElement) {\n this.currentPosition = this.getMousePosition(e);\n var content = this.getContent(obj);\n if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n this.elementLeave();\n }\n this.hoverElement = obj;\n this.symbolTooltipObject = this.initTooltip(this.hoverElement);\n if (content === '') {\n content = this.hoverElement.id;\n }\n if (this.hoverElement.tooltip && content !== '') {\n this.elementEnter(this.currentPosition, false, isSearchSymbol);\n }\n }\n if (obj === undefined && this.hoverElement && !this.hoverElement.tooltip.isSticky && this.hoverElement.tooltip.openOn === 'Auto') {\n this.hoverElement = null;\n this.elementLeave();\n }\n };\n /**\n * When Mouse pointer leaves the symbol palette object Mouse leave event is called and closes Tooltip\n * @returns {void} Function to close symbol tooltip on mouse leave.\n */\n SymbolPalette.prototype.elementLeave = function () {\n if (this.symbolTooltipObject && this.symbolTooltipObject.opensOn !== 'Custom') {\n this.symbolTooltipObject.close();\n }\n };\n /** @private\n * @returns {void} Handles mouse leave events\n * @param {PointerEvent} evt - provide event name\n */\n SymbolPalette.prototype.mouseLeave = function (evt) {\n this.elementLeave();\n evt.preventDefault();\n };\n // eslint-enable\n SymbolPalette.prototype.mouseUp = function (evt) {\n this.isMethod = true;\n if (evt && evt.target) {\n if (evt.srcElement.id === 'iconSearch') {\n var element = document.getElementById('iconSearch');\n if (element.classList.contains('e-clear-searchtext')) {\n element.className = 'e-input-group-icon e-search e-icons';\n document.getElementById('textEnter').value = '';\n this.searchPalette('');\n }\n }\n else {\n var id = evt.target.id.split('_container')[0];\n if (id && this.selectedSymbol) {\n var args = { oldValue: this.oldObject, newValue: id };\n var event_2 = 'paletteSelectionChange';\n this.trigger(event_2, args);\n this.oldObject = id;\n evt.preventDefault();\n }\n else if (this.oldObject !== '') {\n this.oldObject = '';\n }\n }\n }\n };\n SymbolPalette.prototype.keyUp = function (evt) {\n var _this = this;\n if (this.enableSearch) {\n // eslint-disable-next-line\n var palette_1 = this;\n var element = document.getElementById('iconSearch');\n element.className = 'e-input-group-icon e-clear-searchtext e-icons';\n if (evt && (evt.key === 'Enter' || evt.keyCode === 13)) {\n if (evt.target instanceof HTMLInputElement) {\n this.searchPalette(evt.target.value);\n }\n }\n else {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(function () {\n if (evt.target instanceof HTMLInputElement) {\n palette_1.searchPalette(evt.target.value);\n _this.timer = null;\n }\n }, 500);\n }\n }\n };\n SymbolPalette.prototype.mouseDown = function (evt) {\n var id = evt.target.id.split('_container')[0];\n var isSearchSymbol = false;\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To split the original id of shape to find it in symbol table.\n if (id.includes('SearchSymbol')) {\n id = id.split('SearchSymbol')[0];\n isSearchSymbol = true;\n }\n if (this.selectedSymbol) {\n var oldSymbol = document.getElementById(this.selectedSymbol.id + '_container');\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To highlight and remove highlight of the selected symbol in search palette on mouse down.\n var oldSearchSymbol = document.getElementById(this.selectedSymbol.id + 'SearchSymbol' + '_container');\n if ((oldSymbol || oldSearchSymbol)) {\n oldSymbol.classList.remove('e-symbol-selected');\n if (oldSearchSymbol) {\n oldSearchSymbol.classList.remove('e-symbol-selected');\n }\n }\n var container = document.getElementById(this.selectedSymbol.id + '_container');\n if (container) {\n container.style.backgroundColor = '';\n }\n this.selectedSymbol = null;\n }\n if (this.symbolTable[\"\" + id]) {\n var containerId = id;\n if (isSearchSymbol) {\n containerId = id + 'SearchSymbol';\n }\n var container = document.getElementById(containerId + '_container');\n container.classList.add('e-symbol-selected');\n this.selectedSymbol = this.symbolTable[\"\" + id];\n evt.preventDefault();\n }\n };\n SymbolPalette.prototype.keyDown = function (evt) {\n // eslint-disable-next-line\n var palette = this;\n var helperElement = 'helperElement';\n var intDestroy = 'intDestroy';\n if (evt && (evt.key === 'Escape')) {\n var element = palette.draggable[\"\" + helperElement];\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n palette.draggable[\"\" + intDestroy]();\n }\n }\n };\n //end region - event handlers\n // region - draggable\n SymbolPalette.prototype.initDraggable = function () {\n if (this.allowDrag) {\n //let drag: Draggable;\n this.draggable = new Draggable(this.element, {\n dragTarget: '.e-symbol-draggable',\n helper: this.helper,\n dragStart: this.dragStart,\n preventDefault: false,\n dragStop: this.dragStop,\n drag: function (args) {\n var target = 'target';\n var parent = parentsUntil(args[\"\" + target], 'e-droppable');\n if (parent && parent.classList.contains('e-diagram')) {\n var e2eInstance = 'ej2_instances';\n parent[\"\" + e2eInstance][0].droppable.over(args);\n }\n },\n cursorAt: { left: this.symbolPreview.offset.x, top: this.symbolPreview.offset.y }\n });\n }\n };\n // eslint-enable\n SymbolPalette.prototype.dragStart = function (e) {\n var element = this.helper[0];\n if (element) {\n element.setAttribute('paletteId', this.element.id);\n }\n };\n SymbolPalette.prototype.dragStop = function (e) {\n if (!parentsUntil(e.target, 'e-diagram')) {\n remove(e.helper);\n }\n };\n //end region - draggable\n //region - helper methods\n SymbolPalette.prototype.scaleSymbol = function (symbol, symbolContainer, sw, sh, width, height, preview) {\n if (symbol instanceof Connector) {\n var wrapper = symbol.wrapper;\n symbol.wrapper = symbolContainer.children[0];\n var point = symbol.scale(sw, sh, width, height, symbolContainer.children[0]);\n var difX = width / 2 - symbolContainer.children[0].children[0].offsetX + point.x / 2;\n var difY = height / 2 - symbolContainer.children[0].children[0].offsetY + point.y / 2;\n for (var _i = 0, _a = symbolContainer.children[0].children; _i < _a.length; _i++) {\n var child = _a[_i];\n child.offsetX += difX;\n child.offsetY += difY;\n child.staticSize = false;\n }\n symbol.wrapper = wrapper;\n }\n else if (symbol.shape.type === 'Bpmn' && this.bpmnModule) {\n var wrapper = symbol.wrapper;\n symbol.wrapper = symbolContainer;\n symbolContainer.children[0].width = width;\n symbolContainer.children[0].height = height;\n this.bpmnModule.updateBPMN({ width: width, height: height }, symbol, symbol, null);\n symbol.wrapper = wrapper;\n }\n else {\n if (symbol.children) {\n var parentNode = symbol.children;\n var w = 0;\n var h = 0;\n if (!preview) {\n var node = void 0;\n var container = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n container = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (container) {\n if (container.children[0].children) {\n this.measureChild(container);\n }\n node = this.symbolTable[container.id];\n container.width = node.width;\n container.height = node.height;\n container.measure(new Size());\n container.arrange(container.children[0].desiredSize);\n }\n }\n }\n w = width / symbolContainer.children[0].desiredSize.width;\n h = height / symbolContainer.children[0].desiredSize.height;\n symbolContainer.children[0].measure(new Size());\n symbolContainer.children[0].arrange(symbolContainer.children[0].desiredSize);\n if (!preview) {\n var children = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n children = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (children) {\n if (children.children[0].children) {\n this.scaleChildren(children, w, h, symbol);\n }\n this.scaleGroup(children, w, h, symbol);\n }\n }\n }\n if (preview) {\n ///let node: Node;\n var scaleWidth = void 0;\n var scaleHeight = void 0;\n var children = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n //const node: Node = this.symbolTable[parentNode[i]];\n scaleWidth = width / symbol.wrapper.children[0].desiredSize.width;\n scaleHeight = height / symbol.wrapper.children[0].desiredSize.height;\n children = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (children) {\n if (children.children[0].children) {\n this.scaleChildren(children, scaleWidth, scaleHeight, symbol, true);\n }\n this.scaleGroup(children, scaleWidth, scaleHeight, symbol, true);\n }\n }\n symbol.wrapper.children[0].measure(new Size());\n symbol.wrapper.children[0].arrange(symbol.wrapper.children[0].desiredSize);\n }\n }\n else {\n scaleElement(symbolContainer.children[0], sw, sh, symbolContainer);\n }\n }\n };\n SymbolPalette.prototype.scaleChildren = function (container, w, h, symbol, preview) {\n var child;\n for (var i = 0; i < container.children.length; i++) {\n child = container.children[parseInt(i.toString(), 10)];\n if (!child.children[0].children) {\n this.scaleGroup(child, w, h, symbol, preview);\n }\n else {\n this.scaleChildren(child, w, h, symbol, preview);\n }\n }\n };\n SymbolPalette.prototype.measureChild = function (container) {\n var childContainer;\n var node;\n for (var i = 0; i < container.children.length; i++) {\n childContainer = container.children[parseInt(i.toString(), 10)];\n if (!childContainer.children[0].children) {\n node = this.symbolTable[childContainer.id];\n childContainer.width = node.width;\n childContainer.height = node.height;\n childContainer.measure(new Size());\n childContainer.arrange(childContainer.children[0].desiredSize);\n }\n else {\n this.measureChild(childContainer);\n }\n }\n };\n SymbolPalette.prototype.scaleGroup = function (child, w, h, symbol, preview) {\n child.width = child.width * w;\n child.height = (child.height * h);\n child.offsetX = preview ? (child.offsetX * w) - symbol.style.strokeWidth : (child.offsetX * w) + symbol.style.strokeWidth / 2;\n child.offsetY = preview ? (child.offsetY * h) - symbol.style.strokeWidth : (child.offsetY * h) + symbol.style.strokeWidth / 2;\n child.measure(new Size());\n child.arrange(child.children[0].desiredSize);\n };\n SymbolPalette.prototype.refreshPalettes = function () {\n if (!isBlazor()) {\n this.accordionElement.items = [];\n }\n removeElementsByClass('e-remove-palette', this.element.id);\n this.updatePalettes();\n if (!isBlazor()) {\n this.accordionElement.dataBind();\n }\n };\n SymbolPalette.prototype.updatePalettes = function () {\n for (var i = 0; i < this.palettes.length; i++) {\n var symGroup = this.palettes[parseInt(i.toString(), 10)];\n //Bug 857693: Collapsing the palettes after searching shapes throws wrong arguments in paletteExpanding event.\n //To remove search palette from palette collection.\n if (symGroup.id === 'search_palette') {\n this.palettes.splice(i, 1);\n i--;\n }\n else {\n this.initSymbols(symGroup);\n this.renderPalette(symGroup);\n }\n }\n };\n SymbolPalette.prototype.createTextbox = function () {\n var searchDiv = createHtmlElement('div', { id: this.element.id + '_search' });\n applyStyleAgainstCsp(searchDiv, 'height:30px');\n // searchDiv.setAttribute('style', 'backgroundColor:white;height:30px');\n searchDiv.className = 'e-input-group';\n this.element.appendChild(searchDiv);\n var textBox = createHtmlElement('input', {});\n textBox.placeholder = this.l10n.getConstant('SearchShapes');\n textBox.id = 'textEnter';\n applyStyleAgainstCsp(textBox, 'width:100%;height:auto');\n //textBox.setAttribute('style', 'width:100%;height:auto');\n textBox.className = 'e-input';\n searchDiv.appendChild(textBox);\n var span = createHtmlElement('span', { id: 'iconSearch', className: 'e-input-group-icon e-search e-icons' });\n searchDiv.appendChild(span);\n };\n SymbolPalette.prototype.getFilterSymbol = function (symbol) {\n var _this = this;\n var items = [];\n //884490: filter the symbol based on ignoreSymbolsOnSearch property\n items = symbol.filter(function (element) { return !_this.ignoreSymbolsOnSearch.includes(element.id); });\n return items;\n };\n SymbolPalette.prototype.searchPalette = function (value) {\n var symbolGroup = [];\n var element = document.getElementById('SearchPalette');\n var paletteDiv;\n //remove the existing child in palette\n if (element) {\n for (var i = element.children.length - 1; i >= 0; i--) {\n element.removeChild(element.children[parseInt(i.toString(), 10)]);\n }\n //Bug-857693: Collapsing the palettes after searching shapes throws wrong arguments in paletteExpanding event.\n //To remove search palette from palette collection.\n this.palettes.splice(0, 1);\n }\n //add the searched item in array collection\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n for (var j = 0; j < symbolPaletteGroup.symbols.length; j++) {\n var item = symbolPaletteGroup.symbols[parseInt(j.toString(), 10)];\n if (value !== '' && item.id.toLowerCase().indexOf(value.toLowerCase()) !== -1) {\n symbolGroup.push(item);\n }\n }\n }\n var filterSymbols = getFunction(this.filterSymbols);\n if (filterSymbols) {\n symbolGroup = filterSymbols(symbolGroup) || [];\n }\n if (this.ignoreSymbolsOnSearch && this.ignoreSymbolsOnSearch.length > 0) {\n symbolGroup = this.getFilterSymbol(symbolGroup);\n }\n //Bug 857693: Collapsing the palettes after searching shapes throws wrong arguments in paletteExpanding event.\n //To render search palette and add it to the palettes collection.\n if (value !== '') {\n var searchPalette = { id: 'search_palette', expanded: true, symbols: symbolGroup, title: 'Search Shapes' };\n var palette = new Palette(this, 'palettes', searchPalette, true);\n this.palettes.splice(0, 0, palette);\n }\n //create a palette collection\n if (!element && !isBlazor()) {\n paletteDiv = this.createSearchPalette(paletteDiv);\n element = paletteDiv;\n }\n //add the symbols into search palette\n if (symbolGroup.length > 0) {\n for (var _i = 0, symbolGroup_1 = symbolGroup; _i < symbolGroup_1.length; _i++) {\n var symbol = symbolGroup_1[_i];\n if (symbol.parentId === '') {\n this.getSymbolContainer(symbol, element);\n }\n }\n }\n else if (value !== '') {\n var emptyDiv = createHtmlElement('div', { 'id': 'EmptyDiv', 'style': 'text-align:center;font-style:italic' });\n emptyDiv.innerHTML = 'No Items To Display';\n element.appendChild(emptyDiv);\n }\n else {\n var element_1 = document.getElementById('iconSearch');\n element_1.className = 'e-input-group-icon e-search e-icons';\n if (!isBlazor()) {\n this.accordionElement.removeItem(0);\n var searchPalette = document.getElementById('SearchPalette');\n if (searchPalette) {\n searchPalette.remove();\n }\n }\n }\n };\n SymbolPalette.prototype.createSearchPalette = function (paletteDiv) {\n paletteDiv = createHtmlElement('div', { 'id': 'SearchPalette', 'style': 'display:none;overflow:auto;' });\n this.element.appendChild(paletteDiv);\n var paletteCollection = {\n header: 'Search Results', expanded: true,\n content: '#SearchPalette'\n };\n this.accordionElement.addItem(paletteCollection, 0);\n return paletteDiv;\n };\n SymbolPalette.prototype.wireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = 'mouseleave';\n var keyEvent = 'keyup';\n var keyDownEvent = 'keydown';\n EventHandler.add(this.element, startEvent, this.mouseDown, this);\n EventHandler.add(this.element, moveEvent, this.mouseMove, this);\n EventHandler.add(this.element, stopEvent, this.mouseUp, this);\n EventHandler.add(this.element, cancelEvent, this.mouseLeave, this);\n EventHandler.add(this.element, keyEvent, this.keyUp, this);\n EventHandler.add(document, keyDownEvent, this.keyDown, this);\n // initialize the draggable component\n this.initDraggable();\n };\n SymbolPalette.prototype.unWireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var keyEvent = 'keyup';\n var keyDownEvent = 'keydown';\n EventHandler.remove(this.element, startEvent, this.mouseDown);\n EventHandler.remove(this.element, moveEvent, this.mouseMove);\n EventHandler.remove(this.element, stopEvent, this.mouseUp);\n EventHandler.remove(this.element, cancelEvent, this.mouseLeave);\n EventHandler.remove(this.element, keyEvent, this.keyUp);\n EventHandler.remove(document, keyDownEvent, this.keyDown);\n };\n __decorate([\n Property('S')\n ], SymbolPalette.prototype, \"accessKey\", void 0);\n __decorate([\n Property('100%')\n ], SymbolPalette.prototype, \"width\", void 0);\n __decorate([\n Property('100%')\n ], SymbolPalette.prototype, \"height\", void 0);\n __decorate([\n Collection([], Palette)\n ], SymbolPalette.prototype, \"palettes\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getSymbolInfo\", void 0);\n __decorate([\n Property({ fit: true })\n ], SymbolPalette.prototype, \"symbolInfo\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"filterSymbols\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"ignoreSymbolsOnSearch\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getSymbolTemplate\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"symbolWidth\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"symbolHeight\", void 0);\n __decorate([\n Complex({ left: 10, right: 10, top: 10, bottom: 10 }, Margin)\n ], SymbolPalette.prototype, \"symbolMargin\", void 0);\n __decorate([\n Property(true)\n ], SymbolPalette.prototype, \"allowDrag\", void 0);\n __decorate([\n Complex({}, SymbolPreview)\n ], SymbolPalette.prototype, \"symbolPreview\", void 0);\n __decorate([\n Complex({}, SymbolDragSize)\n ], SymbolPalette.prototype, \"symbolDragSize\", void 0);\n __decorate([\n Property(false)\n ], SymbolPalette.prototype, \"enableSearch\", void 0);\n __decorate([\n Property(true)\n ], SymbolPalette.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property('Multiple')\n ], SymbolPalette.prototype, \"expandMode\", void 0);\n __decorate([\n Event()\n ], SymbolPalette.prototype, \"paletteSelectionChange\", void 0);\n __decorate([\n Event()\n ], SymbolPalette.prototype, \"paletteExpanding\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getNodeDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"nodeDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getConnectorDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"connectorDefaults\", void 0);\n return SymbolPalette;\n}(Component));\nexport { SymbolPalette };\n","/**\n * Exported symbol palette files\n */\nexport * from './symbol-palette';\n","/**\n * Overview Components\n */\nexport * from './overview';\n","/**\n * Diagram component exported items\n */\nexport * from './diagram/index';\nexport * from './symbol-palette/index';\nexport * from './ruler/index';\nexport * from './overview/index';\n","/**\n * index\n */\nexport * from './src/index';\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheHas;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\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 mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var AccumulationSeriesCollectionDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-accumulation-series-collection';\n }\n }\n});\nexport var AccumulationSeriesCollectionPlugin = {\n name: 'e-accumulation-series-collection',\n install: function (Vue) {\n Vue.component(AccumulationSeriesCollectionPlugin.name, AccumulationSeriesCollectionDirective);\n }\n};\nexport var AccumulationSeriesDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-accumulation-series';\n }\n }\n});\nexport var AccumulationSeriesPlugin = {\n name: 'e-accumulation-series',\n install: function (Vue) {\n Vue.component(AccumulationSeriesPlugin.name, AccumulationSeriesDirective);\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.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: this.config,\n code: this.code\n };\n };\n return error;\n};\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\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/**\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 and promises in Node.js < 6.\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 = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arPs;\n\n})));\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","'use strict';\n\nvar createError = require('./createError');\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 */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace', ['error-stack-parser', 'stack-generator', 'stacktrace-gps'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('error-stack-parser'), require('stack-generator'), require('stacktrace-gps'));\n } else {\n root.StackTrace = factory(root.ErrorStackParser, root.StackGenerator, root.StackTraceGPS);\n }\n}(this, function StackTrace(ErrorStackParser, StackGenerator, StackTraceGPS) {\n var _options = {\n filter: function(stackframe) {\n // Filter out stackframes for this library by default\n return (stackframe.functionName || '').indexOf('StackTrace$$') === -1 &&\n (stackframe.functionName || '').indexOf('ErrorStackParser$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackTraceGPS$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackGenerator$$') === -1;\n },\n sourceCache: {}\n };\n\n var _generateError = function StackTrace$$GenerateError() {\n try {\n // Error must be thrown to get stack in IE\n throw new Error();\n } catch (err) {\n return err;\n }\n };\n\n /**\n * Merge 2 given Objects. If a conflict occurs the second object wins.\n * Does not do deep merges.\n *\n * @param {Object} first base object\n * @param {Object} second overrides\n * @returns {Object} merged first and second\n * @private\n */\n function _merge(first, second) {\n var target = {};\n\n [first, second].forEach(function(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n target[prop] = obj[prop];\n }\n }\n return target;\n });\n\n return target;\n }\n\n function _isShapedLikeParsableError(err) {\n return err.stack || err['opera#sourceloc'];\n }\n\n function _filtered(stackframes, filter) {\n if (typeof filter === 'function') {\n return stackframes.filter(filter);\n }\n return stackframes;\n }\n\n return {\n /**\n * Get a backtrace from invocation point.\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n get: function StackTrace$$get(opts) {\n var err = _generateError();\n return _isShapedLikeParsableError(err) ? this.fromError(err, opts) : this.generateArtificially(opts);\n },\n\n /**\n * Get a backtrace from invocation point.\n * IMPORTANT: Does not handle source maps or guess function names!\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n getSync: function StackTrace$$getSync(opts) {\n opts = _merge(_options, opts);\n var err = _generateError();\n var stack = _isShapedLikeParsableError(err) ? ErrorStackParser.parse(err) : StackGenerator.backtrace(opts);\n return _filtered(stack, opts.filter);\n },\n\n /**\n * Given an error object, parse it.\n *\n * @param {Error} error object\n * @param {Object} opts\n * @returns {Promise} for Array[StackFrame}\n */\n fromError: function StackTrace$$fromError(error, opts) {\n opts = _merge(_options, opts);\n var gps = new StackTraceGPS(opts);\n return new Promise(function(resolve) {\n var stackframes = _filtered(ErrorStackParser.parse(error), opts.filter);\n resolve(Promise.all(stackframes.map(function(sf) {\n return new Promise(function(resolve) {\n function resolveOriginal() {\n resolve(sf);\n }\n\n gps.pinpoint(sf).then(resolve, resolveOriginal)['catch'](resolveOriginal);\n });\n })));\n }.bind(this));\n },\n\n /**\n * Use StackGenerator to generate a backtrace.\n *\n * @param {Object} opts\n * @returns {Promise} of Array[StackFrame]\n */\n generateArtificially: function StackTrace$$generateArtificially(opts) {\n opts = _merge(_options, opts);\n var stackFrames = StackGenerator.backtrace(opts);\n if (typeof opts.filter === 'function') {\n stackFrames = stackFrames.filter(opts.filter);\n }\n return Promise.resolve(stackFrames);\n },\n\n /**\n * Given a function, wrap it such that invocations trigger a callback that\n * is called with a stack trace.\n *\n * @param {Function} fn to be instrumented\n * @param {Function} callback function to call with a stack trace on invocation\n * @param {Function} errback optional function to call with error if unable to get stack trace.\n * @param {Object} thisArg optional context object (e.g. window)\n */\n instrument: function StackTrace$$instrument(fn, callback, errback, thisArg) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n // Already instrumented, return given Function\n return fn;\n }\n\n var instrumented = function StackTrace$$instrumented() {\n try {\n this.get().then(callback, errback)['catch'](errback);\n return fn.apply(thisArg || this, arguments);\n } catch (e) {\n if (_isShapedLikeParsableError(e)) {\n this.fromError(e).then(callback, errback)['catch'](errback);\n }\n throw e;\n }\n }.bind(this);\n instrumented.__stacktraceOriginalFn = fn;\n\n return instrumented;\n },\n\n /**\n * Given a function that has been instrumented,\n * revert the function to it's original (non-instrumented) state.\n *\n * @param {Function} fn to de-instrument\n */\n deinstrument: function StackTrace$$deinstrument(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot de-instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n return fn.__stacktraceOriginalFn;\n } else {\n // Function not instrumented, return original\n return fn;\n }\n },\n\n /**\n * Given an error message and Array of StackFrames, serialize and POST to given URL.\n *\n * @param {Array} stackframes\n * @param {String} url\n * @param {String} errorMsg\n * @param {Object} requestOptions\n */\n report: function StackTrace$$report(stackframes, url, errorMsg, requestOptions) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if (req.status >= 200 && req.status < 400) {\n resolve(req.responseText);\n } else {\n reject(new Error('POST to ' + url + ' failed with status: ' + req.status));\n }\n }\n };\n req.open('post', url);\n\n // Set request headers\n req.setRequestHeader('Content-Type', 'application/json');\n if (requestOptions && typeof requestOptions.headers === 'object') {\n var headers = requestOptions.headers;\n for (var header in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, header)) {\n req.setRequestHeader(header, headers[header]);\n }\n }\n }\n\n var reportPayload = {stack: stackframes};\n if (errorMsg !== undefined && errorMsg !== null) {\n reportPayload.message = errorMsg;\n }\n\n req.send(JSON.stringify(reportPayload));\n });\n }\n };\n}));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { merge, extend, isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource.\n * This is the base adaptor class that other adaptors can extend.\n *\n * @hidden\n */\nvar Adaptor = /** @class */ (function () {\n /**\n * Constructor for Adaptor class\n *\n * @param {DataOptions} ds?\n * @param ds\n * @hidden\n * @returns aggregates\n */\n function Adaptor(ds) {\n // common options for all the adaptors\n this.options = {\n from: 'table',\n requestType: 'json',\n sortBy: 'sorted',\n select: 'select',\n skip: 'skip',\n group: 'group',\n take: 'take',\n search: 'search',\n count: 'requiresCounts',\n where: 'where',\n aggregates: 'aggregates',\n expand: 'expand'\n };\n /**\n * Specifies the type of adaptor.\n *\n * @default Adaptor\n */\n this.type = Adaptor;\n this.dataSource = ds;\n this.pvt = {};\n }\n /**\n * Returns the data from the query processing.\n *\n * @param {Object} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param ds\n * @param query\n * @param xhr\n * @returns Object\n */\n Adaptor.prototype.processResponse = function (data, ds, query, xhr) {\n return data;\n };\n return Adaptor;\n}());\nexport { Adaptor };\n/**\n * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries.\n *\n * @hidden\n */\nvar JsonAdaptor = /** @class */ (function (_super) {\n __extends(JsonAdaptor, _super);\n function JsonAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dataManager\n * @param {Query} query\n * @returns Object\n */\n JsonAdaptor.prototype.processQuery = function (dataManager, query) {\n var result = dataManager.dataSource.json.slice(0);\n var count = result.length;\n var countFlg = true;\n var ret;\n var key;\n var lazyLoad = {};\n var keyCount = 0;\n var group = [];\n var sort = [];\n var page;\n for (var i = 0; i < query.lazyLoad.length; i++) {\n keyCount++;\n lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n var agg = {};\n var isGroupByFormat = false;\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if (key.fn === 'onGroup' && !isNullOrUndefined(key.e.format)) {\n isGroupByFormat = true;\n break;\n }\n }\n }\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if ((key.fn === 'onPage' || key.fn === 'onGroup' || (key.fn === 'onSortBy' && !isGroupByFormat)) && query.lazyLoad.length) {\n if (key.fn === 'onGroup') {\n group.push(key.e);\n }\n if (key.fn === 'onPage') {\n page = key.e;\n }\n if (key.fn === 'onSortBy') {\n sort.unshift(key.e);\n }\n continue;\n }\n ret = this[key.fn].call(this, result, key.e, query);\n if (key.fn === 'onAggregates') {\n agg[key.e.field + ' - ' + key.e.type] = ret;\n }\n else {\n result = ret !== undefined ? ret : result;\n }\n if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') {\n countFlg = false;\n }\n if (countFlg) {\n count = result.length;\n }\n }\n if (keyCount) {\n var args = {\n query: query, lazyLoad: lazyLoad, result: result, group: group, page: page, sort: sort\n };\n var lazyLoadData = this.lazyLoadGroup(args);\n result = lazyLoadData.result;\n count = lazyLoadData.count;\n }\n if (query.isCountRequired) {\n result = {\n result: result,\n count: count,\n aggregates: agg\n };\n }\n return result;\n };\n /**\n * Perform lazy load grouping in JSON array based on the given query and lazy load details.\n *\n * @param {LazyLoadGroupArgs} args\n */\n JsonAdaptor.prototype.lazyLoadGroup = function (args) {\n var count = 0;\n var agg = this.getAggregate(args.query);\n var result = args.result;\n if (!isNullOrUndefined(args.lazyLoad.onDemandGroupInfo)) {\n var req = args.lazyLoad.onDemandGroupInfo;\n for (var i = req.where.length - 1; i >= 0; i--) {\n result = this.onWhere(result, req.where[i]);\n }\n if (args.group.length !== req.level) {\n var field = args.group[req.level].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[req.level].comparer, true);\n if (args.sort.length) {\n result = this.onSortBy(result, args.sort[parseInt(req.level.toString(), 10)], args.query, true);\n }\n }\n else {\n for (var i = args.sort.length - 1; i >= req.level; i--) {\n result = this.onSortBy(result, args.sort[parseInt(i.toString(), 10)], args.query, false);\n }\n }\n count = result.length;\n var data = result;\n result = result.slice(req.skip);\n result = result.slice(0, req.take);\n if (args.group.length !== req.level) {\n this.formGroupResult(result, data);\n }\n }\n else {\n var field_1 = args.group[0].fieldName;\n result = DataUtil.group(result, field_1, agg, null, null, args.group[0].comparer, true);\n count = result.length;\n var data = result;\n if (args.sort.length) {\n var sort = args.sort.length > 1 ?\n args.sort.filter(function (x) { return x.fieldName === field_1; })[0] : args.sort[0];\n result = this.onSortBy(result, sort, args.query, true);\n }\n if (args.page) {\n result = this.onPage(result, args.page, args.query);\n }\n this.formGroupResult(result, data);\n }\n return { result: result, count: count };\n };\n JsonAdaptor.prototype.formGroupResult = function (result, data) {\n if (result.length && data.length) {\n var uid = 'GroupGuid';\n var childLevel = 'childLevels';\n var level = 'level';\n var records = 'records';\n result[uid] = data[uid];\n result[childLevel] = data[childLevel];\n result[level] = data[level];\n result[records] = data[records];\n }\n return result;\n };\n /**\n * Separate the aggregate query from the given queries\n *\n * @param {Query} query\n */\n JsonAdaptor.prototype.getAggregate = function (query) {\n var aggQuery = Query.filterQueries(query.queries, 'onAggregates');\n var agg = [];\n if (aggQuery.length) {\n var tmp = void 0;\n for (var i = 0; i < aggQuery.length; i++) {\n tmp = aggQuery[i].e;\n agg.push({ type: tmp.type, field: DataUtil.getValue(tmp.field, query) });\n }\n }\n return agg;\n };\n /**\n * Performs batch update in the JSON array which add, remove and update records.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n JsonAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var i;\n var deletedRecordsLen = changes.deletedRecords.length;\n for (i = 0; i < changes.addedRecords.length; i++) {\n this.insert(dm, changes.addedRecords[i]);\n }\n for (i = 0; i < changes.changedRecords.length; i++) {\n this.update(dm, e.key, changes.changedRecords[i]);\n }\n for (i = 0; i < deletedRecordsLen; i++) {\n this.remove(dm, e.key, changes.deletedRecords[i]);\n }\n return changes;\n };\n /**\n * Performs filter operation with the given data and where query.\n *\n * @param {Object[]} ds\n * @param {{validate:Function}} e\n * @param e.validate\n */\n JsonAdaptor.prototype.onWhere = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.filter(function (obj) {\n if (e) {\n return e.validate(obj);\n }\n });\n };\n /**\n * Returns aggregate function based on the aggregate type.\n *\n * @param {Object[]} ds\n * @param e\n * @param {string} } type\n * @param e.field\n * @param e.type\n */\n JsonAdaptor.prototype.onAggregates = function (ds, e) {\n var fn = DataUtil.aggregates[e.type];\n if (!ds || !fn || ds.length === 0) {\n return null;\n }\n return fn(ds, e.field);\n };\n /**\n * Performs search operation based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n */\n JsonAdaptor.prototype.onSearch = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n if (e.fieldNames.length === 0) {\n DataUtil.getFieldList(ds[0], e.fieldNames);\n }\n return ds.filter(function (obj) {\n for (var j = 0; j < e.fieldNames.length; j++) {\n if (e.comparer.call(obj, DataUtil.getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) {\n return true;\n }\n }\n return false;\n });\n };\n /**\n * Sort the data with given direction and field.\n *\n * @param {Object[]} ds\n * @param e\n * @param {Object} b\n * @param e.comparer\n * @param e.fieldName\n * @param query\n * @param isLazyLoadGroupSort\n */\n JsonAdaptor.prototype.onSortBy = function (ds, e, query, isLazyLoadGroupSort) {\n if (!ds || !ds.length) {\n return ds;\n }\n var fnCompare;\n var field = DataUtil.getValue(e.fieldName, query);\n if (!field) {\n return ds.sort(e.comparer);\n }\n if (field instanceof Array) {\n field = field.slice(0);\n for (var i = field.length - 1; i >= 0; i--) {\n if (!field[i]) {\n continue;\n }\n fnCompare = e.comparer;\n if (DataUtil.endsWith(field[i], ' desc')) {\n fnCompare = DataUtil.fnSort('descending');\n field[i] = field[i].replace(' desc', '');\n }\n ds = DataUtil.sort(ds, field[i], fnCompare);\n }\n return ds;\n }\n return DataUtil.sort(ds, isLazyLoadGroupSort ? 'key' : field, e.comparer);\n };\n /**\n * Group the data based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n * @param {Query} query\n */\n JsonAdaptor.prototype.onGroup = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var agg = this.getAggregate(query);\n return DataUtil.group(ds, DataUtil.getValue(e.fieldName, query), agg, null, null, e.comparer);\n };\n /**\n * Retrieves records based on the given page index and size.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } pageIndex\n * @param e.pageSize\n * @param {Query} query\n * @param e.pageIndex\n */\n JsonAdaptor.prototype.onPage = function (ds, e, query) {\n var size = DataUtil.getValue(e.pageSize, query);\n var start = (DataUtil.getValue(e.pageIndex, query) - 1) * size;\n var end = start + size;\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(start, end);\n };\n /**\n * Retrieves records based on the given start and end index from query.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } end\n * @param e.start\n * @param e.end\n */\n JsonAdaptor.prototype.onRange = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.start), DataUtil.getValue(e.end));\n };\n /**\n * Picks the given count of records from the top of the datasource.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onTake = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(0, DataUtil.getValue(e.nos));\n };\n /**\n * Skips the given count of records from the data source.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onSkip = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.nos));\n };\n /**\n * Selects specified columns from the data source.\n *\n * @param {Object[]} ds\n * @param {{fieldNames:string}} e\n * @param e.fieldNames\n */\n JsonAdaptor.prototype.onSelect = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return DataUtil.select(ds, DataUtil.getValue(e.fieldNames));\n };\n /**\n * Inserts new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param tableName\n * @param query\n * @param {number} position\n */\n JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n if (isNullOrUndefined(position)) {\n return dm.dataSource.json.push(data);\n }\n else {\n return dm.dataSource.json.splice(position, 0, data);\n }\n };\n /**\n * Remove the data from the dataSource based on the key field value.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n if (typeof value === 'object' && !(value instanceof Date)) {\n value = DataUtil.getObject(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (DataUtil.getObject(keyField, ds[i]) === value) {\n break;\n }\n }\n return i !== ds.length ? ds.splice(i, 1) : null;\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n var key;\n if (!isNullOrUndefined(keyField)) {\n key = getValue(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (!isNullOrUndefined(keyField) && (getValue(keyField, ds[i])) === key) {\n break;\n }\n }\n return i < ds.length ? merge(ds[i], value) : null;\n };\n return JsonAdaptor;\n}(Adaptor));\nexport { JsonAdaptor };\n/**\n * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data.\n * It interacts with server-side for all DataManager Queries and CRUD operations.\n *\n * @hidden\n */\nvar UrlAdaptor = /** @class */ (function (_super) {\n __extends(UrlAdaptor, _super);\n function UrlAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the query to generate request body.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns p\n */\n // tslint:disable-next-line:max-func-body-length\n UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var params = query.params;\n var url = dm.dataSource.url;\n var temp;\n var skip;\n var take = null;\n var options = this.options;\n var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n // calc Paging & Range\n if ('onPage' in singles) {\n temp = singles.onPage;\n skip = DataUtil.getValue(temp.pageIndex, query);\n take = DataUtil.getValue(temp.pageSize, query);\n skip = (skip - 1) * take;\n }\n else if ('onRange' in singles) {\n temp = singles.onRange;\n skip = temp.start;\n take = temp.end - temp.start;\n }\n // Sorting\n for (var i = 0; i < queries.sorts.length; i++) {\n temp = DataUtil.getValue(queries.sorts[i].e.fieldName, query);\n request.sorts.push(DataUtil.callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query));\n }\n // hierarchy\n if (hierarchyFilters) {\n temp = this.getFiltersFrom(hierarchyFilters, query);\n if (temp) {\n request.filters.push(DataUtil.callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query));\n }\n }\n // Filters\n for (var i = 0; i < queries.filters.length; i++) {\n var res = DataUtil.callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query);\n if ((this.getModuleName &&\n this.getModuleName() === 'ODataV4Adaptor') &&\n !isNullOrUndefined(queries.filters[i].e.key) && queries.filters.length > 1) {\n res = '(' + res + ')';\n }\n request.filters.push(res);\n var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : [];\n for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (DataUtil.isNull((request)[prop])) {\n delete request[prop];\n }\n }\n }\n // Searches\n for (var i = 0; i < queries.searches.length; i++) {\n temp = queries.searches[i].e;\n request.searches.push(DataUtil.callAdaptorFunction(this, 'onEachSearch', {\n fields: temp.fieldNames,\n operator: temp.operator,\n key: temp.searchKey,\n ignoreCase: temp.ignoreCase\n }, query));\n }\n // Grouping\n for (var i = 0; i < queries.groups.length; i++) {\n request.groups.push(DataUtil.getValue(queries.groups[i].e.fieldName, query));\n }\n // aggregates\n for (var i = 0; i < queries.aggregates.length; i++) {\n temp = queries.aggregates[i].e;\n request.aggregates.push({ type: temp.type, field: DataUtil.getValue(temp.field, query) });\n }\n var req = {};\n this.getRequestQuery(options, query, singles, request, req);\n // Params\n DataUtil.callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req });\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n req[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n }\n // cleanup\n var keys = Object.keys(req);\n for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {\n var prop = keys_2[_a];\n if (DataUtil.isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) {\n delete req[prop];\n }\n }\n if (!(options.skip in req && options.take in req) && take !== null) {\n req[options.skip] = DataUtil.callAdaptorFunction(this, 'onSkip', skip, query);\n req[options.take] = DataUtil.callAdaptorFunction(this, 'onTake', take, query);\n }\n var p = this.pvt;\n this.pvt = {};\n if (this.options.requestType === 'json') {\n return {\n data: JSON.stringify(req, DataUtil.parse.jsonDateReplacer),\n url: url,\n pvtData: p,\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n }\n temp = this.convertToQueryString(req, query, dm);\n temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp;\n return {\n type: 'GET', url: temp.length ? url.replace(/\\/*$/, temp) : url, pvtData: p\n };\n };\n UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) {\n var param = 'param';\n var req = request1;\n req[options.from] = query.fromTable;\n if (options.apply && query.distincts.length) {\n req[options.apply] = 'onDistinct' in this ? DataUtil.callAdaptorFunction(this, 'onDistinct', query.distincts) : '';\n }\n if (!query.distincts.length && options.expand) {\n req[options.expand] = 'onExpand' in this && 'onSelect' in singles ?\n DataUtil.callAdaptorFunction(this, 'onExpand', { selects: DataUtil.getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands;\n }\n req[options.select] = 'onSelect' in singles && !query.distincts.length ?\n DataUtil.callAdaptorFunction(this, 'onSelect', DataUtil.getValue(singles.onSelect.fieldNames, query), query) : '';\n req[options.count] = query.isCountRequired ? DataUtil.callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : '';\n req[options.search] = request.searches.length ? DataUtil.callAdaptorFunction(this, 'onSearch', request.searches, query) : '';\n req[options.skip] = 'onSkip' in singles ?\n DataUtil.callAdaptorFunction(this, 'onSkip', DataUtil.getValue(singles.onSkip.nos, query), query) : '';\n req[options.take] = 'onTake' in singles ?\n DataUtil.callAdaptorFunction(this, 'onTake', DataUtil.getValue(singles.onTake.nos, query), query) : '';\n req[options.where] = request.filters.length || request.searches.length ?\n DataUtil.callAdaptorFunction(this, 'onWhere', request.filters, query) : '';\n req[options.sortBy] = request.sorts.length ? DataUtil.callAdaptorFunction(this, 'onSortBy', request.sorts, query) : '';\n req[options.group] = request.groups.length ? DataUtil.callAdaptorFunction(this, 'onGroup', request.groups, query) : '';\n req[options.aggregates] = request.aggregates.length ?\n DataUtil.callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : '';\n req[param] = [];\n };\n /**\n * Convert the object from processQuery to string which can be added query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n */\n UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n return '';\n // this needs to be overridden\n };\n /**\n * Return the data from the data manager processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Object} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (xhr && xhr.headers.get('Content-Type') &&\n xhr.headers.get('Content-Type').indexOf('application/json') !== -1) {\n var handleTimeZone = DataUtil.timeZoneHandling;\n if (ds && !ds.timeZoneHandling) {\n DataUtil.timeZoneHandling = false;\n }\n data = DataUtil.parse.parseJson(data);\n DataUtil.timeZoneHandling = handleTimeZone;\n }\n var requests = request;\n var pvt = requests.pvtData || {};\n var groupDs = data ? data.groupDs : [];\n if (xhr && xhr.headers.get('Content-Type') &&\n xhr.headers.get('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n var d = JSON.parse(requests.data);\n if (d && d.action === 'batch' && data && data.addedRecords && !isNullOrUndefined(changes)) {\n changes.addedRecords = data.addedRecords;\n return changes;\n }\n if (data && data.d) {\n data = data.d;\n }\n var args = {};\n if (data && 'count' in data) {\n args.count = data.count;\n }\n args.result = data && data.result ? data.result : data;\n var isExpand = false;\n if (Array.isArray(data.result) && data.result.length) {\n var key = 'key';\n var val = 'value';\n var level = 'level';\n if (!isNullOrUndefined(data.result[0][key])) {\n args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1);\n }\n if (query && query.lazyLoad.length && pvt.groups.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n if (query.lazyLoad[i][key] === 'onDemandGroupInfo') {\n var value = query.lazyLoad[i][val][level];\n if (pvt.groups.length === value) {\n isExpand = true;\n }\n }\n }\n }\n }\n if (!isExpand) {\n this.getAggregateResult(pvt, data, args, groupDs, query);\n }\n return DataUtil.isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) {\n this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1);\n }\n }\n var uid = 'GroupGuid';\n var childLvl = 'childLevels';\n var lvl = 'level';\n var records = 'records';\n data[uid] = consts[uid];\n data[lvl] = level;\n data[childLvl] = childLevel;\n data[records] = data[0].items.length ? this.getGroupedRecords(data, !isNullOrUndefined(data[0].items[records])) : [];\n return data;\n };\n UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) {\n var childGroupedRecords = [];\n var records = 'records';\n for (var i = 0; i < data.length; i++) {\n if (!hasRecords) {\n for (var j = 0; j < data[i].items.length; j++) {\n childGroupedRecords.push(data[i].items[j]);\n }\n }\n else {\n childGroupedRecords = childGroupedRecords.concat(data[i].items[records]);\n }\n }\n return childGroupedRecords;\n };\n /**\n * Add the group query to the adaptor`s option.\n *\n * @param {Object[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return e;\n };\n /**\n * Add the aggregate query to the adaptor`s option.\n *\n * @param {Aggregates[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param query\n * @param original\n */\n UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var url;\n var key;\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e[url],\n key: e[key]\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings?\n * @returns void\n */\n UrlAdaptor.prototype.beforeSend = function (dm, request, settings) {\n // need to extend this method\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.insert = function (dm, data, tableName, query) {\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number|string} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: value,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: value,\n action: 'update',\n keyColumn: keyField,\n key: DataUtil.getObject(keyField, value),\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * To generate the predicate based on the filtered query.\n *\n * @param {Object[]|string[]|number[]} data\n * @param {Query} query\n * @hidden\n */\n UrlAdaptor.prototype.getFiltersFrom = function (data, query) {\n var key = query.fKey;\n var value;\n var prop = key;\n var pKey = query.key;\n var predicats = [];\n if (typeof data[0] !== 'object') {\n prop = null;\n }\n for (var i = 0; i < data.length; i++) {\n if (typeof data[0] === 'object') {\n value = DataUtil.getObject(pKey || prop, data[i]);\n }\n else {\n value = data[i];\n }\n predicats.push(new Predicate(key, 'equal', value));\n }\n return Predicate.or(predicats);\n };\n UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) {\n var pData = data;\n if (data && data.result) {\n pData = data.result;\n }\n if (pvt && pvt.aggregates && pvt.aggregates.length) {\n var agg = pvt.aggregates;\n var fn = void 0;\n var aggregateData = pData;\n var res = {};\n if (data.aggregate) {\n aggregateData = data.aggregate;\n }\n for (var i = 0; i < agg.length; i++) {\n fn = DataUtil.aggregates[agg[i].type];\n if (fn) {\n res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field);\n }\n }\n args.aggregates = res;\n }\n var key = 'key';\n var isServerGrouping = Array.isArray(data.result) && data.result.length && !isNullOrUndefined(data.result[0][key]);\n if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) {\n var groups = pvt.groups;\n for (var i = 0; i < groups.length; i++) {\n var level = null;\n if (!isNullOrUndefined(groupDs)) {\n groupDs = DataUtil.group(groupDs, groups[i]);\n }\n var groupQuery = Query.filterQueries(query.queries, 'onGroup')[i].e;\n pData = DataUtil.group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer);\n }\n args.result = pData;\n }\n return args;\n };\n UrlAdaptor.prototype.getQueryRequest = function (query) {\n var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n req.sorts = Query.filterQueries(query.queries, 'onSortBy');\n req.groups = Query.filterQueries(query.queries, 'onGroup');\n req.filters = Query.filterQueries(query.queries, 'onWhere');\n req.searches = Query.filterQueries(query.queries, 'onSearch');\n req.aggregates = Query.filterQueries(query.queries, 'onAggregates');\n return req;\n };\n UrlAdaptor.prototype.addParams = function (options) {\n var req = options.reqParams;\n if (options.params.length) {\n req.params = {};\n }\n for (var _i = 0, _a = options.params; _i < _a.length; _i++) {\n var tmp = _a[_i];\n if (req[tmp.key]) {\n throw new Error('Query() - addParams: Custom Param is conflicting other request arguments');\n }\n req[tmp.key] = tmp.value;\n if (tmp.fn) {\n req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm);\n }\n req.params[tmp.key] = req[tmp.key];\n }\n };\n return UrlAdaptor;\n}(Adaptor));\nexport { UrlAdaptor };\n/**\n * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service.\n *\n * @hidden\n */\nvar ODataAdaptor = /** @class */ (function (_super) {\n __extends(ODataAdaptor, _super);\n function ODataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$inlinecount',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PUT'\n });\n extend(_this.options, props || {});\n return _this;\n }\n ODataAdaptor.prototype.getModuleName = function () {\n return 'ODataAdaptor';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var operator;\n var guid;\n var val = predicate.value;\n var type = typeof val;\n var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null;\n if (val instanceof Date) {\n val = 'datetime\\'' + DataUtil.parse.replacer(val) + '\\'';\n }\n if (type === 'string') {\n val = val.replace(/'/g, '\\'\\'');\n if (predicate.ignoreCase) {\n val = val.toLowerCase();\n }\n if (predicate.operator !== 'like') {\n val = encodeURIComponent(val);\n }\n if (predicate.operator !== 'wildcard' && predicate.operator !== 'like') {\n val = '\\'' + val + '\\'';\n }\n if (requiresCast) {\n field = 'cast(' + field + ', \\'Edm.String\\')';\n }\n if (DataUtil.parse.isGuid(val)) {\n guid = 'guid';\n }\n if (predicate.ignoreCase) {\n if (!guid) {\n field = 'tolower(' + field + ')';\n }\n val = val.toLowerCase();\n }\n }\n if (predicate.operator === 'isempty' || predicate.operator === 'isnull' || predicate.operator === 'isnotempty' ||\n predicate.operator === 'isnotnull') {\n operator = predicate.operator.indexOf('isnot') !== -1 ? DataUtil.odBiOperator['notequal'] : DataUtil.odBiOperator['equal'];\n val = predicate.operator === 'isnull' || predicate.operator === 'isnotnull' ? null : '\\'\\'';\n }\n else {\n operator = DataUtil.odBiOperator[predicate.operator];\n }\n if (operator) {\n returnValue += field;\n returnValue += operator;\n if (guid) {\n returnValue += guid;\n }\n return returnValue + val;\n }\n if (!isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') {\n operator = DataUtil.odv4UniOperator[predicate.operator];\n }\n else {\n operator = DataUtil.odUniOperator[predicate.operator];\n }\n if (operator === 'like') {\n val = val;\n if (val.indexOf('%') !== -1) {\n if (val.charAt(0) === '%' && val.lastIndexOf('%') < 2) {\n val = val.substring(1, val.length);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n }\n else if (val.charAt(val.length - 1) === '%' && val.indexOf('%') > val.length - 3) {\n val = val.substring(0, val.length - 1);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n }\n else if (val.lastIndexOf('%') !== val.indexOf('%') && val.lastIndexOf('%') > val.indexOf('%') + 1) {\n val = val.substring(val.indexOf('%') + 1, val.lastIndexOf('%'));\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n }\n val = encodeURIComponent(val);\n val = '\\'' + val + '\\'';\n }\n else if (operator === 'wildcard') {\n val = val;\n if (val.indexOf('*') !== -1) {\n var splittedStringValue = val.split('*');\n var splittedValue = void 0;\n var count = 0;\n if (val.indexOf('*') !== 0 && splittedStringValue[0].indexOf('%3f') === -1 &&\n splittedStringValue[0].indexOf('?') === -1) {\n splittedValue = splittedStringValue[0];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (val.lastIndexOf('*') !== val.length - 1 && splittedStringValue[splittedStringValue.length - 1].indexOf('%3f') === -1 &&\n splittedStringValue[splittedStringValue.length - 1].indexOf('?') === -1) {\n splittedValue = splittedStringValue[splittedStringValue.length - 1];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n if (count > 0) {\n returnValue += ' and ';\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (splittedStringValue.length > 2) {\n for (var i = 1; i < splittedStringValue.length - 1; i++) {\n if (splittedStringValue[i].indexOf('%3f') === -1 && splittedStringValue[i].indexOf('?') === -1) {\n splittedValue = splittedStringValue[i];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (count > 0) {\n returnValue += ' and ';\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = splittedValue;\n splittedValue = field;\n field = temp;\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n }\n }\n if (count === 0) {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n else {\n operator = 'wildcard';\n }\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = val;\n val = field;\n field = temp;\n }\n if (operator !== 'wildcard') {\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += val + ')';\n }\n return returnValue;\n };\n ODataAdaptor.prototype.addParams = function (options) {\n _super.prototype.addParams.call(this, options);\n delete options.reqParams.params;\n };\n /**\n * Generate request string based on the multiple filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) {\n var res = [];\n for (var i = 0; i < predicate.predicates.length; i++) {\n res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')');\n }\n return res.join(' ' + predicate.condition + ' ');\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {Predicate} filter\n * @param {boolean} requiresCast?\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) {\n return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast);\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {string[]} filters\n */\n ODataAdaptor.prototype.onWhere = function (filters) {\n if (this.pvt.search) {\n filters.push(this.onEachWhere(this.pvt.search, null, true));\n }\n return filters.join(' and ');\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataAdaptor.prototype.onEachSearch = function (e) {\n if (e.fields && e.fields.length === 0) {\n DataUtil.throwError('Query() - Search : oData search requires list of field names to search');\n }\n var filter = this.pvt.search || [];\n for (var i = 0; i < e.fields.length; i++) {\n filter.push(new Predicate(e.fields[i], e.operator, e.key, e.ignoreCase));\n }\n this.pvt.search = filter;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataAdaptor.prototype.onSearch = function (e) {\n this.pvt.search = Predicate.or(this.pvt.search);\n return '';\n };\n /**\n * Generate query string based on multiple sort criteria from query.\n *\n * @param {QueryOptions} e\n */\n ODataAdaptor.prototype.onEachSort = function (e) {\n var res = [];\n if (e.name instanceof Array) {\n for (var i = 0; i < e.name.length; i++) {\n res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : ''));\n }\n }\n else {\n res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : ''));\n }\n return res.join(',');\n };\n /**\n * Returns sort query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSortBy = function (e) {\n return e.reverse().join(',');\n };\n /**\n * Adds the group query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return [];\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSelect = function (e) {\n for (var i = 0; i < e.length; i++) {\n e[i] = ODataAdaptor.getField(e[i]);\n }\n return e.join(',');\n };\n /**\n * Add the aggregate query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n return '';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataAdaptor.prototype.onCount = function (e) {\n return e === true ? 'allpages' : '';\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings?\n * @param settings\n */\n ODataAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (DataUtil.endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') {\n request.headers.set('Accept', this.options.multipartAccept);\n request.headers.set('DataServiceVersion', '2.0');\n //request.overrideMimeType('text/plain; charset=x-user-defined');\n }\n else {\n request.headers.set('Accept', this.options.accept);\n }\n request.headers.set('DataServiceVersion', '2.0');\n request.headers.set('MaxDataServiceVersion', '2.0');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaCheck = 'odata.metadata';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) {\n var dataUrls = data[metaCheck].split('/$metadata#');\n this.rootUrl = dataUrls[0];\n this.resourceTableName = dataUrls[1];\n }\n var pvtData = 'pvtData';\n if (!isNullOrUndefined(data.d)) {\n var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d);\n var metaData = '__metadata';\n if (!isNullOrUndefined(dataCopy)) {\n for (var i = 0; i < dataCopy.length; i++) {\n if (!isNullOrUndefined(dataCopy[i][metaData])) {\n delete dataCopy[i][metaData];\n }\n }\n }\n }\n var pvt = request && request[pvtData];\n var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var versionCheck = xhr && request.fetchRequest.headers.get('DataServiceVersion');\n var count = null;\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n var oDataCount = '__count';\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n if (data.d) {\n data = data.d;\n }\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n }\n if (version === 3 && data.value) {\n data = data.value;\n }\n if (data.d) {\n data = data.d;\n }\n if (version < 3 && data.results) {\n data = data.results;\n }\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n /**\n * Converts the request object to query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n * @returns tableName\n */\n ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n var res = [];\n var table = 'table';\n var tableName = request[table] || '';\n var format = '$format';\n delete request[table];\n if (dm.dataSource.requiresFormat) {\n request[format] = 'json';\n }\n var keys = Object.keys(request);\n for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) {\n var prop = keys_4[_i];\n res.push(prop + '=' + request[prop]);\n }\n res = res.join('&');\n if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) {\n return res;\n }\n return res.length ? tableName + '?' + res : tableName || '';\n };\n ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) {\n for (var _i = 0, _a = !isNullOrUndefined(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((convertObj[prop] instanceof Date)) {\n convertObj[prop] = DataUtil.dateParse.toLocalTime(convertObj[prop]);\n }\n }\n return convertObj;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : ''),\n data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var url;\n if (typeof value === 'string' && !DataUtil.parse.isGuid(value)) {\n url = \"('\" + value + \"')\";\n }\n else {\n url = \"(\" + value + \")\";\n }\n return {\n type: 'DELETE',\n url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url\n };\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @param query\n * @param original\n * @returns this\n */\n ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) {\n if (this.options.updateType === 'PATCH' && !isNullOrUndefined(original)) {\n value = this.compareAndRemove(value, original, keyField);\n }\n var url;\n if (typeof value[keyField] === 'string' && !DataUtil.parse.isGuid(value[keyField])) {\n url = \"('\" + value[keyField] + \"')\";\n }\n else {\n url = \"(\" + value[keyField] + \")\";\n }\n return {\n type: this.options.updateType,\n url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url,\n data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null),\n accept: this.options.accept\n };\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n * @returns {Object}\n */\n ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = (dm.dataSource.batchUrl || this.rootUrl) ?\n (dm.dataSource.batchUrl || this.rootUrl) + '/' + this.options.batch :\n (dm.dataSource.batchUrl || dm.dataSource.url).replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var args = {\n url: e.url,\n key: e.key,\n cid: 1,\n cSet: DataUtil.getGuid(this.options.changeSet)\n };\n var req = '--' + initialGuid + '\\n';\n req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\\n';\n this.pvt.changeSet = 0;\n req += this.generateInsertRequest(changes.addedRecords, args, dm);\n req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []);\n req += this.generateDeleteRequest(changes.deletedRecords, args, dm);\n req += args.cSet + '--\\n';\n req += '--' + initialGuid + '--';\n return {\n type: 'POST',\n url: url,\n dataType: 'json',\n contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid,\n data: req\n };\n };\n /**\n * Generate the string content from the removed records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @returns this\n */\n ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '(' + url + ')';\n }\n else if (url instanceof Date) {\n var dateTime = data[i][key];\n return '(' + dateTime.toJSON() + ')';\n }\n else {\n return \"('\" + url + \"')\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req + '\\n';\n };\n /**\n * Generate the string content from the inserted records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n */\n ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n /**\n * Generate the string content from the updated records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @param org\n */\n ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) {\n var _this = this;\n if (!arr) {\n return '';\n }\n var req = '';\n arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return DataUtil.getObject(e.key, o) === DataUtil.getObject(e.key, change); })[0], e.key); });\n var stat = {\n 'method': this.options.updateType + ' ',\n 'url': function (data, i, key) {\n if (typeof data[i][key] === 'number' || DataUtil.parse.isGuid(data[i][key])) {\n return '(' + data[i][key] + ')';\n }\n else if (data[i][key] instanceof Date) {\n var date = data[i][key];\n return '(' + date.toJSON() + ')';\n }\n else {\n return \"('\" + data[i][key] + \"')\";\n }\n },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n ODataAdaptor.getField = function (prop) {\n return prop.replace(/\\./g, '/');\n };\n ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) {\n var req = '';\n for (var i = 0; i < arr.length; i++) {\n req += '\\n' + e.cSet + '\\n';\n req += this.options.changeSetContent + '\\n\\n';\n req += stat.method;\n if (stat.method === 'POST ') {\n req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'PUT ' || stat.method === 'PATCH ') {\n req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'DELETE ') {\n req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n req += 'Accept: ' + this.options.accept + '\\n';\n req += 'Content-Id: ' + this.pvt.changeSet++ + '\\n';\n req += this.options.batchChangeSetContentType + '\\n';\n if (!isNullOrUndefined(arr[i]['@odata.etag'])) {\n req += 'If-Match: ' + arr[i]['@odata.etag'] + '\\n\\n';\n delete arr[i]['@odata.etag'];\n }\n else {\n req += '\\n';\n }\n req += stat.data(arr, i);\n }\n return req;\n };\n ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) {\n if (xhr && xhr.headers.get('Content-Type') && xhr.headers.get('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n if (request && this.options.batch && DataUtil.endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') {\n var guid = xhr.headers.get('Content-Type');\n var cIdx = void 0;\n var jsonObj = void 0;\n var d = data + '';\n guid = guid.substring(guid.indexOf('=batchresponse') + 1);\n d = d.split(guid);\n if (d.length < 2) {\n return {};\n }\n d = d[1];\n var exVal = /(?:\\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d);\n if (exVal) {\n d.replace(exVal[0], '');\n }\n var changeGuid = exVal ? exVal[1] : '';\n d = d.split(changeGuid);\n for (var i = d.length; i > -1; i--) {\n if (!/\\bContent-ID:/i.test(d[i]) || !/\\bHTTP.+201/.test(d[i])) {\n continue;\n }\n cIdx = parseInt(/\\bContent-ID: (\\d+)/i.exec(d[i])[1], 10);\n if (changes.addedRecords[cIdx]) {\n jsonObj = DataUtil.parse.parseJson(/^\\{.+\\}/m.exec(d[i])[0]);\n extend({}, changes.addedRecords[cIdx], this.processResponse(jsonObj));\n }\n }\n return changes;\n }\n return null;\n };\n ODataAdaptor.prototype.compareAndRemove = function (data, original, key) {\n var _this = this;\n if (isNullOrUndefined(original)) {\n return data;\n }\n Object.keys(data).forEach(function (prop) {\n if (prop !== key && prop !== '@odata.etag') {\n if (DataUtil.isPlainObject(data[prop])) {\n _this.compareAndRemove(data[prop], original[prop]);\n var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; });\n if (final.length === 0) {\n delete data[prop];\n }\n }\n else if (data[prop] === original[prop]) {\n delete data[prop];\n }\n else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) {\n delete data[prop];\n }\n }\n });\n return data;\n };\n return ODataAdaptor;\n}(UrlAdaptor));\nexport { ODataAdaptor };\n/**\n * The OData v4 is an improved version of OData protocols.\n * The DataManager uses the ODataV4Adaptor to consume OData v4 services.\n *\n * @hidden\n */\nvar ODataV4Adaptor = /** @class */ (function (_super) {\n __extends(ODataV4Adaptor, _super);\n function ODataV4Adaptor(props) {\n var _this = _super.call(this, props) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json, text/javascript, */*; q=0.01',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$count',\n search: '$search',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PATCH',\n localTime: false,\n apply: '$apply'\n });\n extend(_this.options, props || {});\n return _this;\n }\n /**\n * @hidden\n */\n ODataV4Adaptor.prototype.getModuleName = function () {\n return 'ODataV4Adaptor';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataV4Adaptor.prototype.onCount = function (e) {\n return e === true ? 'true' : '';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var val = predicate.value;\n var isDate = val instanceof Date;\n if (query instanceof Query) {\n var queries = this.getQueryRequest(query);\n for (var i = 0; i < queries.filters.length; i++) {\n if (queries.filters[i].e.key === predicate.value) {\n requiresCast = true;\n }\n }\n }\n returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\n if (isDate) {\n returnValue = returnValue.replace(/datetime'(.*)'$/, '$1');\n }\n if (DataUtil.parse.isGuid(val)) {\n returnValue = returnValue.replace('guid', '').replace(/'/g, '');\n }\n return returnValue;\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataV4Adaptor.prototype.onEachSearch = function (e) {\n var search = this.pvt.searches || [];\n search.push(e.key);\n this.pvt.searches = search;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataV4Adaptor.prototype.onSearch = function (e) {\n return this.pvt.searches.join(' OR ');\n };\n /**\n * Returns the expand query string.\n *\n * @param {string} e\n * @param e.selects\n * @param e.expands\n */\n ODataV4Adaptor.prototype.onExpand = function (e) {\n var _this = this;\n var selected = {};\n var expanded = {};\n var expands = e.expands.slice();\n var exArr = [];\n var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; });\n selects.forEach(function (select) {\n var splits = select.split('.');\n if (!(splits[0] in selected)) {\n selected[splits[0]] = [];\n }\n if (splits.length === 2) {\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1) {\n if (selected[splits[0]][0].indexOf('$expand') !== -1 && selected[splits[0]][0].indexOf(';$select=') === -1) {\n selected[splits[0]][0] = selected[splits[0]][0] + ';' + '$select=' + splits[1];\n }\n else {\n selected[splits[0]][0] = selected[splits[0]][0] + ',' + splits[1];\n }\n }\n else {\n selected[splits[0]].push('$select=' + splits[1]);\n }\n }\n else {\n var sel = '$select=' + splits[splits.length - 1];\n var exp = '';\n var close_1 = '';\n for (var i = 1; i < splits.length - 1; i++) {\n exp = exp + '$expand=' + splits[i] + '(';\n close_1 = close_1 + ')';\n }\n var combineVal = exp + sel + close_1;\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1 &&\n _this.expandQueryIndex(selected[splits[0]], true)) {\n var idx = _this.expandQueryIndex(selected[splits[0]]);\n selected[splits[0]][idx] = selected[splits[0]][idx] + combineVal.replace('$expand=', ',');\n }\n else {\n selected[splits[0]].push(combineVal);\n }\n }\n });\n //Auto expand from select query\n Object.keys(selected).forEach(function (expand) {\n if ((expands.indexOf(expand) === -1)) {\n expands.push(expand);\n }\n });\n expands.forEach(function (expand) {\n expanded[expand] = expand in selected ? expand + \"(\" + selected[expand].join(';') + \")\" : expand;\n });\n Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); });\n return exArr.join(',');\n };\n ODataV4Adaptor.prototype.expandQueryIndex = function (query, isExpand) {\n for (var i = 0; i < query.length; i++) {\n if (query[i].indexOf('$expand') !== -1) {\n return isExpand ? true : i;\n }\n }\n return isExpand ? false : 0;\n };\n /**\n * Returns the groupby query string.\n *\n * @param {string} e\n * @param distinctFields\n */\n ODataV4Adaptor.prototype.onDistinct = function (distinctFields) {\n var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(',');\n return \"groupby((\" + fields + \"))\";\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataV4Adaptor.prototype.onSelect = function (e) {\n return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; }));\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings\n * @returns void\n */\n ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) {\n if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') {\n request.headers.set('Prefer', 'return=representation');\n }\n request.headers.set('Accept', this.options.accept);\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaName = '@odata.context';\n var metaV4Name = '@context';\n if ((request && request.type === 'GET') && !this.rootUrl && (data[metaName] || data[metaV4Name])) {\n var dataUrl = data[metaName] ? data[metaName].split('/$metadata#') : data[metaV4Name].split('/$metadata#');\n this.rootUrl = dataUrl[0];\n this.resourceTableName = dataUrl[1];\n }\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var count = null;\n var dataCount = '@odata.count';\n var dataV4Count = '@count';\n if (query && query.isCountRequired) {\n if (dataCount in data) {\n count = data[dataCount];\n }\n else if (dataV4Count in data) {\n count = data[dataV4Count];\n }\n }\n data = !isNullOrUndefined(data.value) ? data.value : data;\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates };\n };\n return ODataV4Adaptor;\n}(ODataAdaptor));\nexport { ODataV4Adaptor };\n/**\n * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML.\n * The DataManager uses the WebApiAdaptor to consume Web API.\n * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor\n *\n * @hidden\n */\nvar WebApiAdaptor = /** @class */ (function (_super) {\n __extends(WebApiAdaptor, _super);\n function WebApiAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WebApiAdaptor.prototype.getModuleName = function () {\n return 'WebApiAdaptor';\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n type: 'POST',\n url: dm.dataSource.url,\n data: JSON.stringify(data)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n return {\n type: 'DELETE',\n url: dm.dataSource.url + '/' + value,\n data: JSON.stringify(value)\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n return {\n type: 'PUT',\n url: dm.dataSource.url,\n data: JSON.stringify(value)\n };\n };\n WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var _this = this;\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var req = [];\n var _loop_1 = function (i, x) {\n changes.addedRecords.forEach(function (j, d) {\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //insertion\n for (var i = 0, x = changes.addedRecords.length; i < x; i++) {\n _loop_1(i, x);\n }\n var _loop_2 = function (i, x) {\n changes.changedRecords.forEach(function (j, d) {\n var stat = {\n 'method': _this.options.updateType + ' ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //updation\n for (var i = 0, x = changes.changedRecords.length; i < x; i++) {\n _loop_2(i, x);\n }\n var _loop_3 = function (i, x) {\n changes.deletedRecords.forEach(function (j, d) {\n var state = {\n 'mtd': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '/' + url;\n }\n else if (url instanceof Date) {\n var datTime = data[i][key];\n return '/' + datTime.toJSON();\n }\n else {\n return \"/'\" + url + \"'\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url)\n + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //deletion\n for (var i = 0, x = changes.deletedRecords.length; i < x; i++) {\n _loop_3(i, x);\n }\n req.push('--' + initialGuid + '--', '');\n return {\n type: 'POST',\n url: url,\n contentType: 'multipart/mixed; boundary=' + initialGuid,\n data: req.join('\\r\\n')\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings\n * @returns void\n */\n WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) {\n request.headers.set('Accept', 'application/json, text/javascript, */*; q=0.01');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var count = null;\n var args = {};\n if (request && request.type.toLowerCase() !== 'post') {\n var versionCheck = xhr && request.fetchRequest.headers.get('DataServiceVersion');\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n if (!DataUtil.isNull(data.Count)) {\n count = data.Count;\n }\n }\n if (version < 3 && data.Items) {\n data = data.Items;\n }\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n }\n args.result = args.result || data;\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n return WebApiAdaptor;\n}(ODataAdaptor));\nexport { WebApiAdaptor };\n/**\n * WebMethodAdaptor can be used by DataManager to interact with web method.\n *\n * @hidden\n */\nvar WebMethodAdaptor = /** @class */ (function (_super) {\n __extends(WebMethodAdaptor, _super);\n function WebMethodAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Prepare the request body based on the query.\n * The query information can be accessed at the WebMethod using variable named `value`.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns application\n */\n WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters);\n var getData = 'data';\n var data = DataUtil.parse.parseJson(obj[getData]);\n var result = {};\n var value = 'value';\n if (data.param) {\n for (var i = 0; i < data.param.length; i++) {\n var param = data.param[i];\n var key = Object.keys(param)[0];\n result[key] = param[key];\n }\n }\n result[value] = data;\n var pvtData = 'pvtData';\n var url = 'url';\n return {\n data: JSON.stringify(result, DataUtil.parse.jsonDateReplacer),\n url: obj[url],\n pvtData: obj[pvtData],\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n };\n return WebMethodAdaptor;\n}(UrlAdaptor));\nexport { WebMethodAdaptor };\n/**\n * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side.\n * It interacts with server-side only for CRUD operations.\n *\n * @hidden\n */\nvar RemoteSaveAdaptor = /** @class */ (function (_super) {\n __extends(RemoteSaveAdaptor, _super);\n /**\n * @hidden\n */\n function RemoteSaveAdaptor() {\n var _this = _super.call(this) || this;\n setValue('beforeSend', UrlAdaptor.prototype.beforeSend, _this);\n return _this;\n }\n RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n this.pvt.position = position;\n this.updateType = 'add';\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) {\n _super.prototype.remove.call(this, dm, keyField, val);\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: val,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) {\n this.updateType = 'update';\n this.updateKey = keyField;\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: val,\n action: 'update',\n keyColumn: keyField,\n key: val[keyField],\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) {\n var i;\n var newData = request ? JSON.parse(request.data) : data;\n data = newData.action === 'batch' ? DataUtil.parse.parseJson(data) : data;\n if (this.updateType === 'add') {\n _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position);\n }\n if (this.updateType === 'update') {\n _super.prototype.update.call(this, ds, this.updateKey, data);\n }\n this.updateType = undefined;\n if (data.added) {\n for (i = 0; i < data.added.length; i++) {\n _super.prototype.insert.call(this, ds, data.added[i]);\n }\n }\n if (data.changed) {\n for (i = 0; i < data.changed.length; i++) {\n _super.prototype.update.call(this, ds, e.key, data.changed[i]);\n }\n }\n if (data.deleted) {\n for (i = 0; i < data.deleted.length; i++) {\n _super.prototype.remove.call(this, ds, e.key, data.deleted[i]);\n }\n }\n return data;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * Also perform the changes in the locally cached data to sync with the remote data.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n */\n RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e.url,\n key: e.key\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.addParams = function (options) {\n var urlParams = new UrlAdaptor();\n urlParams.addParams(options);\n };\n return RemoteSaveAdaptor;\n}(JsonAdaptor));\nexport { RemoteSaveAdaptor };\n/**\n * Fetch Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions.\n *\n * @hidden\n */\nvar CustomDataAdaptor = /** @class */ (function (_super) {\n __extends(CustomDataAdaptor, _super);\n function CustomDataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n getData: function () { },\n addRecord: function () { },\n updateRecord: function () { },\n deleteRecord: function () { },\n batchUpdate: function () { }\n });\n extend(_this.options, props || {});\n return _this;\n }\n CustomDataAdaptor.prototype.getModuleName = function () {\n return 'CustomDataAdaptor';\n };\n return CustomDataAdaptor;\n}(UrlAdaptor));\nexport { CustomDataAdaptor };\n/**\n * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server.\n * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations.\n *\n * @hidden\n */\nvar GraphQLAdaptor = /** @class */ (function (_super) {\n __extends(GraphQLAdaptor, _super);\n function GraphQLAdaptor(options) {\n var _this = _super.call(this) || this;\n _this.opt = options;\n _this.schema = _this.opt.response;\n _this.query = _this.opt.query;\n /* eslint-disable @typescript-eslint/no-empty-function */\n // tslint:disable-next-line:no-empty\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\n /* eslint-enable @typescript-eslint/no-empty-function */\n _this.getQuery = function () { return _this.query; };\n return _this;\n }\n GraphQLAdaptor.prototype.getModuleName = function () {\n return 'GraphQLAdaptor';\n };\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param datamanager\n * @param query\n */\n GraphQLAdaptor.prototype.processQuery = function (datamanager, query) {\n var urlQuery = _super.prototype.processQuery.apply(this, arguments);\n var dm = JSON.parse(urlQuery.data);\n // constructing GraphQL parameters\n var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where',\n 'search', 'requiresCounts', 'aggregates', 'params'];\n var temp = {};\n var str = 'searchwhereparams';\n keys.filter(function (e) {\n temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e];\n });\n var vars = this.getVariables() || {};\n // tslint:disable-next-line:no-string-literal\n vars['datamanager'] = temp;\n var data = JSON.stringify({\n query: this.getQuery(),\n variables: vars\n });\n urlQuery.data = data;\n return urlQuery;\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Object} request?\n * @param resData\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @returns DataResult\n */\n GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) {\n var res = resData;\n var count;\n var aggregates;\n var result = getValue(this.schema.result, res.data);\n if (this.schema.count) {\n count = getValue(this.schema.count, res.data);\n }\n if (this.schema.aggregates) {\n aggregates = getValue(this.schema.aggregates, res.data);\n aggregates = !isNullOrUndefined(aggregates) ? DataUtil.parse.parseJson(aggregates) : aggregates;\n }\n var pvt = request.pvtData || {};\n var args = { result: result, aggregates: aggregates };\n var data = args;\n if (pvt && pvt.groups && pvt.groups.length) {\n this.getAggregateResult(pvt, data, args, null, query);\n }\n return !isNullOrUndefined(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n */\n GraphQLAdaptor.prototype.insert = function () {\n var inserted = _super.prototype.insert.apply(this, arguments);\n return this.generateCrudData(inserted, 'insert');\n };\n /**\n * Prepare and returns request body which is used to update a new record in the table.\n */\n GraphQLAdaptor.prototype.update = function () {\n var inserted = _super.prototype.update.apply(this, arguments);\n return this.generateCrudData(inserted, 'update');\n };\n /**\n * Prepare and returns request body which is used to remove a new record in the table.\n */\n GraphQLAdaptor.prototype.remove = function () {\n var inserted = _super.prototype.remove.apply(this, arguments);\n return this.generateCrudData(inserted, 'remove');\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param e.key\n * @param {Query} query\n * @param {Object} original\n */\n GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var batch = _super.prototype.batchRequest.apply(this, arguments);\n // tslint:disable-next-line:typedef\n var bData = JSON.parse(batch.data);\n bData.key = e.key;\n batch.data = JSON.stringify(bData);\n return this.generateCrudData(batch, 'batch');\n };\n GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) {\n var parsed = JSON.parse(crudData.data);\n crudData.data = JSON.stringify({\n query: this.opt.getMutation(action),\n variables: parsed\n });\n return crudData;\n };\n return GraphQLAdaptor;\n}(UrlAdaptor));\nexport { GraphQLAdaptor };\n/**\n * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages.\n * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager\n *\n * @hidden\n */\nvar CacheAdaptor = /** @class */ (function (_super) {\n __extends(CacheAdaptor, _super);\n /**\n * Constructor for CacheAdaptor class.\n *\n * @param {CacheAdaptor} adaptor?\n * @param {number} timeStamp?\n * @param {number} pageSize?\n * @param adaptor\n * @param timeStamp\n * @param pageSize\n * @hidden\n */\n function CacheAdaptor(adaptor, timeStamp, pageSize) {\n var _this = _super.call(this) || this;\n _this.isCrudAction = false;\n _this.isInsertAction = false;\n if (!isNullOrUndefined(adaptor)) {\n _this.cacheAdaptor = adaptor;\n }\n _this.pageSize = pageSize;\n _this.guidId = DataUtil.getGuid('cacheAdaptor');\n var obj = { keys: [], results: [] };\n window.localStorage.setItem(_this.guidId, JSON.stringify(obj));\n var guid = _this.guidId;\n if (!isNullOrUndefined(timeStamp)) {\n setInterval(function () {\n var data = DataUtil.parse.parseJson(window.localStorage.getItem(guid));\n var forDel = [];\n for (var i = 0; i < data.results.length; i++) {\n var currentTime = +new Date();\n var requestTime = +new Date(data.results[i].timeStamp);\n data.results[i].timeStamp = currentTime - requestTime;\n if (currentTime - requestTime > timeStamp) {\n forDel.push(i);\n }\n }\n for (var i = 0; i < forDel.length; i++) {\n data.results.splice(forDel[i], 1);\n data.keys.splice(forDel[i], 1);\n }\n window.localStorage.removeItem(guid);\n window.localStorage.setItem(guid, JSON.stringify(data));\n }, timeStamp);\n }\n return _this;\n }\n /**\n * It will generate the key based on the URL when we send a request to server.\n *\n * @param {string} url\n * @param {Query} query?\n * @param query\n * @hidden\n */\n CacheAdaptor.prototype.generateKey = function (url, query) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var key = url;\n var page = 'onPage';\n if (page in singles) {\n key += singles[page].pageIndex;\n }\n queries.sorts.forEach(function (obj) {\n key += obj.e.direction + obj.e.fieldName;\n });\n queries.groups.forEach(function (obj) {\n key += obj.e.fieldName;\n });\n queries.searches.forEach(function (obj) {\n key += obj.e.searchKey;\n });\n for (var filter = 0; filter < queries.filters.length; filter++) {\n var currentFilter = queries.filters[filter];\n if (currentFilter.e.isComplex) {\n var newQuery = query.clone();\n newQuery.queries = [];\n for (var i = 0; i < currentFilter.e.predicates.length; i++) {\n newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });\n }\n key += currentFilter.e.condition + this.generateKey(url, newQuery);\n }\n else {\n key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;\n }\n }\n return key;\n };\n /**\n * Process the query to generate request body.\n * If the data is already cached, it will return the cached data.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param {Object[]} hierarchyFilters?\n * @param query\n * @param hierarchyFilters\n */\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var key = this.generateKey(dm.dataSource.url, query);\n var cachedItems = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;\n if (data != null && !this.isCrudAction && !this.isInsertAction) {\n return data;\n }\n this.isCrudAction = null;\n this.isInsertAction = null;\n /* eslint-disable prefer-spread */\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (this.isInsertAction || (request && this.cacheAdaptor.options.batch &&\n DataUtil.endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) {\n return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes);\n }\n /* eslint-disable prefer-spread */\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url;\n var obj = {};\n obj = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var index = obj.keys.indexOf(key);\n if (index !== -1) {\n obj.results.splice(index, 1);\n obj.keys.splice(index, 1);\n }\n obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count };\n while (obj.results.length > this.pageSize) {\n obj.results.splice(0, 1);\n obj.keys.splice(0, 1);\n }\n window.localStorage.setItem(this.guidId, JSON.stringify(obj));\n return data;\n };\n /**\n * Method will trigger before send the request to server side. Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings?\n * @param settings\n */\n CacheAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (!isNullOrUndefined(this.cacheAdaptor.options.batch) && DataUtil.endsWith(settings.url, this.cacheAdaptor.options.batch)\n && settings.type.toLowerCase() === 'post') {\n request.headers.set('Accept', this.cacheAdaptor.options.multipartAccept);\n }\n if (!dm.dataSource.crossDomain) {\n request.headers.set('Accept', this.cacheAdaptor.options.accept);\n }\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.update(dm, keyField, value, tableName);\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.insert = function (dm, data, tableName) {\n this.isInsertAction = true;\n return this.cacheAdaptor.insert(dm, data, tableName);\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.remove(dm, keyField, value, tableName);\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n CacheAdaptor.prototype.batchRequest = function (dm, changes, e) {\n return this.cacheAdaptor.batchRequest(dm, changes, e);\n };\n return CacheAdaptor;\n}(UrlAdaptor));\nexport { CacheAdaptor };\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","var baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\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 && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\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 */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\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 */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\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 (var 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\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 * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n 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 * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\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 * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 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/** 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/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","/**\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\nmodule.exports = getValue;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOfWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","var basePullAll = require('./_basePullAll');\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nmodule.exports = pullAll;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventHandler, Property, Event, KeyboardEvents, rippleEffect, animationMode } from '@syncfusion/ej2-base';\nimport { getUniqueID, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { isVisible, closest, attributes, detach, select, addClass, removeClass, append } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Collection, Animation } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, formatUnit, selectAll, SanitizeHtmlHelper, isRippleEnabled } from '@syncfusion/ej2-base';\nvar CLS_ACRDN_ROOT = 'e-acrdn-root';\nvar CLS_ROOT = 'e-accordion';\nvar CLS_ITEM = 'e-acrdn-item';\nvar CLS_ITEMFOCUS = 'e-item-focus';\nvar CLS_ITEMHIDE = 'e-hide';\nvar CLS_HEADER = 'e-acrdn-header';\nvar CLS_HEADERICN = 'e-acrdn-header-icon';\nvar CLS_HEADERCTN = 'e-acrdn-header-content';\nvar CLS_CONTENT = 'e-acrdn-panel';\nvar CLS_CTENT = 'e-acrdn-content';\nvar CLS_TOOGLEICN = 'e-toggle-icon';\nvar CLS_COLLAPSEICN = 'e-tgl-collapse-icon e-icons';\nvar CLS_EXPANDICN = 'e-expand-icon';\nvar CLS_RTL = 'e-rtl';\nvar CLS_CTNHIDE = 'e-content-hide';\nvar CLS_SLCT = 'e-select';\nvar CLS_SLCTED = 'e-selected';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_ANIMATE = 'e-animate';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_TOGANIMATE = 'e-toggle-animation';\nvar CLS_NEST = 'e-nested';\nvar CLS_EXPANDSTATE = 'e-expand-state';\nvar CLS_CONTAINER = 'e-accordion-container';\n/**\n * Objects used for configuring the Accordion expanding item action properties.\n */\nvar AccordionActionSettings = /** @class */ (function (_super) {\n __extends(AccordionActionSettings, _super);\n function AccordionActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], AccordionActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AccordionActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('linear')\n ], AccordionActionSettings.prototype, \"easing\", void 0);\n return AccordionActionSettings;\n}(ChildProperty));\nexport { AccordionActionSettings };\n/**\n * Objects used for configuring the Accordion animation properties.\n */\nvar AccordionAnimationSettings = /** @class */ (function (_super) {\n __extends(AccordionAnimationSettings, _super);\n function AccordionAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"collapse\", void 0);\n __decorate([\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"expand\", void 0);\n return AccordionAnimationSettings;\n}(ChildProperty));\nexport { AccordionAnimationSettings };\n/**\n * An item object that is used to configure Accordion items.\n */\nvar AccordionItem = /** @class */ (function (_super) {\n __extends(AccordionItem, _super);\n function AccordionItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"content\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"expanded\", void 0);\n __decorate([\n Property(true)\n ], AccordionItem.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"disabled\", void 0);\n __decorate([\n Property()\n ], AccordionItem.prototype, \"id\", void 0);\n return AccordionItem;\n}(ChildProperty));\nexport { AccordionItem };\n/**\n * The Accordion is a vertically collapsible content panel that displays one or more panels at a time within the available space.\n * ```html\n *
\n * \n * ```\n */\nvar Accordion = /** @class */ (function (_super) {\n __extends(Accordion, _super);\n /**\n * Initializes a new instance of the Accordion class.\n *\n * @param {AccordionModel} options - Specifies Accordion model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as an Accordion.\n */\n function Accordion(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Contains the keyboard configuration of the Accordion.\n */\n _this.keyConfigs = {\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n enter: 'enter',\n space: 'space',\n home: 'home',\n end: 'end'\n };\n return _this;\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Accordion.prototype.destroy = function () {\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n var ele = this.element;\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.isDestroy = true;\n this.restoreContent(null);\n [].slice.call(ele.children).forEach(function (el) {\n ele.removeChild(el);\n });\n if (this.trgtEle) {\n this.trgtEle = null;\n while (this.ctrlTem.firstElementChild) {\n ele.appendChild(this.ctrlTem.firstElementChild);\n }\n this.ctrlTem = null;\n }\n ele.classList.remove(CLS_ACRDN_ROOT);\n ele.removeAttribute('style');\n this.element.removeAttribute('data-ripple');\n if (!this.isNested && isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n Accordion.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.isNested = false;\n this.templateEle = [];\n if (!this.isDestroy) {\n this.isDestroy = false;\n }\n if (nested && nested.firstElementChild && nested.firstElementChild.firstElementChild) {\n if (nested.firstElementChild.firstElementChild.classList.contains(CLS_ROOT)) {\n nested.classList.add(CLS_NEST);\n this.isNested = true;\n }\n }\n else {\n this.element.classList.add(CLS_ACRDN_ROOT);\n }\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Accordion.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Accordion.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n /**\n * To initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Accordion.prototype.render = function () {\n this.initializeHeaderTemplate();\n this.initializeItemTemplate();\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Accordion.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n setStyle(this.element, { 'width': width, 'height': height });\n if (isNOU(this.initExpand)) {\n this.initExpand = [];\n }\n if (!isNOU(this.expandedIndices) && this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n };\n Accordion.prototype.renderControl = function () {\n this.trgtEle = (this.element.children.length > 0) ? select('div', this.element) : null;\n this.renderItems();\n this.initItemExpand();\n };\n Accordion.prototype.wireFocusEvents = function () {\n var acrdItem = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM));\n for (var _i = 0, acrdItem_1 = acrdItem; _i < acrdItem_1.length; _i++) {\n var item = acrdItem_1[_i];\n var headerEle = item.querySelector('.' + CLS_HEADER);\n if (item.childElementCount > 0 && headerEle) {\n EventHandler.clearEvents(headerEle);\n EventHandler.add(headerEle, 'focus', this.focusIn, this);\n EventHandler.add(headerEle, 'blur', this.focusOut, this);\n }\n }\n };\n Accordion.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n };\n Accordion.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n if (!this.isNested && !this.isDestroy) {\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });\n }\n if (!this.isNested) {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n }\n };\n Accordion.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return templateCompiler(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n Accordion.prototype.initializeHeaderTemplate = function () {\n if (this.headerTemplate) {\n this.headerTemplateFn = this.templateParser(this.headerTemplate);\n }\n };\n Accordion.prototype.initializeItemTemplate = function () {\n if (this.itemTemplate) {\n this.itemTemplateFn = this.templateParser(this.itemTemplate);\n }\n };\n Accordion.prototype.getHeaderTemplate = function () {\n return this.headerTemplateFn;\n };\n Accordion.prototype.getItemTemplate = function () {\n return this.itemTemplateFn;\n };\n Accordion.prototype.focusIn = function (e) {\n e.target.parentElement.classList.add(CLS_ITEMFOCUS);\n };\n Accordion.prototype.focusOut = function (e) {\n e.target.parentElement.classList.remove(CLS_ITEMFOCUS);\n };\n Accordion.prototype.ctrlTemplate = function () {\n this.ctrlTem = this.element.cloneNode(true);\n var innerEles;\n var rootEle = select('.' + CLS_CONTAINER, this.element);\n if (rootEle) {\n innerEles = rootEle.children;\n }\n else {\n innerEles = this.element.children;\n }\n var items = [];\n [].slice.call(innerEles).forEach(function (el) {\n items.push({\n header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '',\n content: (el.childElementCount > 1 && el.children[1]) ? (el.children[1]) : ''\n });\n el.parentNode.removeChild(el);\n });\n if (rootEle) {\n this.element.removeChild(rootEle);\n }\n this.setProperties({ items: items }, true);\n };\n Accordion.prototype.toggleIconGenerate = function () {\n var tglIcon = this.createElement('div', { className: CLS_TOOGLEICN });\n var hdrColIcon = this.createElement('span', { className: CLS_COLLAPSEICN });\n tglIcon.appendChild(hdrColIcon);\n return tglIcon;\n };\n Accordion.prototype.initItemExpand = function () {\n var len = this.initExpand.length;\n if (len === 0) {\n return;\n }\n if (this.expandMode === 'Single') {\n this.expandItem(true, this.initExpand[len - 1]);\n }\n else {\n for (var i = 0; i < len; i++) {\n this.expandItem(true, this.initExpand[parseInt(i.toString(), 10)]);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.renderItems = function () {\n var _this = this;\n var ele = this.element;\n var innerItem;\n var innerDataSourceItem;\n if (!isNOU(this.trgtEle)) {\n this.ctrlTemplate();\n }\n if (!isNOU(this.dataSource) && this.dataSource.length > 0) {\n this.dataSource.forEach(function (item, index) {\n innerDataSourceItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerDataSourceItem);\n if (innerDataSourceItem.childElementCount > 0) {\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n else {\n var items = this.items;\n if (ele && items.length > 0) {\n items.forEach(function (item, index) {\n innerItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerItem);\n if (innerItem.childElementCount > 0) {\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.clickHandler = function (e) {\n var trgt = e.target;\n var items = this.getItems();\n var eventArgs = {};\n var tglIcon;\n var acrdEle = closest(trgt, '.' + CLS_ROOT);\n if (acrdEle !== this.element) {\n return;\n }\n trgt.classList.add('e-target');\n var acrdnItem = closest(trgt, '.' + CLS_ITEM);\n var acrdnHdr = closest(trgt, '.' + CLS_HEADER);\n var acrdnCtn = closest(trgt, '.' + CLS_CONTENT);\n if (acrdnItem && (isNOU(acrdnHdr) || isNOU(acrdnCtn))) {\n acrdnHdr = acrdnItem.children[0];\n acrdnCtn = acrdnItem.children[1];\n }\n if (acrdnHdr) {\n tglIcon = select('.' + CLS_TOOGLEICN, acrdnHdr);\n }\n var acrdnCtnItem;\n if (acrdnHdr) {\n acrdnCtnItem = closest(acrdnHdr, '.' + CLS_ITEM);\n }\n else if (acrdnCtn) {\n acrdnCtnItem = closest(acrdnCtn, '.' + CLS_ITEM);\n }\n var index = this.getIndexByItem(acrdnItem);\n if (acrdnCtnItem) {\n eventArgs.item = items[this.getIndexByItem(acrdnCtnItem)];\n }\n eventArgs.originalEvent = e;\n var ctnCheck = !isNOU(tglIcon) && acrdnItem.childElementCount <= 1;\n if (ctnCheck && (isNOU(acrdnCtn) || !isNOU(select('.' + CLS_HEADER + ' .' + CLS_TOOGLEICN, acrdnCtnItem)))) {\n acrdnItem.appendChild(this.contentRendering(index));\n this.ariaAttrUpdate(acrdnItem);\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n else {\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) {\n var _this = this;\n var acrdActive = [];\n this.trigger('clicked', eventArgs);\n var cntclkCheck = (acrdnCtn && !isNOU(select('.e-target', acrdnCtn)));\n var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT;\n var inlineEleAcrdn = acrdnCtn && !isNOU(select('.' + CLS_ROOT, acrdnCtn)) && isNOU(closest(trgt, inlineAcrdnSel));\n var nestContCheck = acrdnCtn && isNOU(select('.' + CLS_ROOT, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT) === this.element);\n cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);\n trgt.classList.remove('e-target');\n if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {\n return;\n }\n var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER);\n var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children;\n [].slice.call(acrdnchild).forEach(function (el) {\n if (el.classList.contains(CLS_ACTIVE)) {\n acrdActive.push(el);\n }\n });\n var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM + ' [' + CLS_ANIMATE + ']'));\n if (acrdAniEle.length > 0) {\n for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {\n var el = acrdAniEle_1[_i];\n acrdActive.push(el.parentElement);\n }\n }\n var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';\n var sameHeader = false;\n if (!isNOU(acrdnItem) && !isNOU(acrdnHdr)) {\n var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);\n var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n if (isNOU(acrdnCtn_1)) {\n return;\n }\n sameHeader = (expandState === acrdnItem);\n if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {\n this.collapse(acrdnCtn_1);\n }\n else {\n if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) {\n acrdActive.forEach(function (el) {\n _this.collapse(select('.' + CLS_CONTENT, el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n }\n this.expand(acrdnCtn_1);\n }\n if (!isNOU(expandState) && !sameHeader) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n }\n };\n Accordion.prototype.eleMoveFocus = function (action, root, trgt) {\n var clst;\n var clstItem = closest(trgt, '.' + CLS_ITEM);\n if (trgt === root) {\n clst = ((action === 'moveUp' ? trgt.lastElementChild : trgt).querySelector('.' + CLS_HEADER));\n }\n else if (trgt.classList.contains(CLS_HEADER)) {\n clstItem = (action === 'moveUp' ? clstItem.previousElementSibling : clstItem.nextElementSibling);\n if (clstItem) {\n clst = select('.' + CLS_HEADER, clstItem);\n }\n }\n if (clst) {\n clst.focus();\n }\n };\n Accordion.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n var header = closest(e.target, CLS_HEADER);\n if (isNOU(header) && !trgt.classList.contains(CLS_ROOT) && !trgt.classList.contains(CLS_HEADER)) {\n return;\n }\n var clst;\n var root = this.element;\n var content;\n switch (e.action) {\n case 'moveUp':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'moveDown':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'space':\n case 'enter':\n content = trgt.nextElementSibling;\n if (!isNOU(content) && content.classList.contains(CLS_CONTENT)) {\n if (content.getAttribute('e-animate') !== 'true') {\n trgt.click();\n }\n }\n else {\n trgt.click();\n }\n e.preventDefault();\n break;\n case 'home':\n case 'end':\n clst = e.action === 'home' ? root.firstElementChild.children[0] : root.lastElementChild.children[0];\n clst.focus();\n e.preventDefault();\n break;\n }\n };\n Accordion.prototype.headerEleGenerate = function () {\n var header = this.createElement('div', { className: CLS_HEADER, id: getUniqueID('acrdn_header') });\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-disabled': 'false', 'aria-expanded': 'false'\n };\n attributes(header, ariaAttr);\n return header;\n };\n Accordion.prototype.renderInnerItem = function (item, index) {\n var innerEle = this.createElement('div', {\n className: CLS_ITEM, id: item.id || getUniqueID('acrdn_item')\n });\n if (this.headerTemplate) {\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n append(this.getHeaderTemplate()(item, this, 'headerTemplate', this.element.id + '_headerTemplate', false), hdrEle);\n innerEle.appendChild(ctnEle);\n ctnEle.appendChild(this.toggleIconGenerate());\n this.add(innerEle, CLS_SLCT);\n return innerEle;\n }\n if (item.header && this.angularnativeCondiCheck(item, 'header')) {\n var header = item.header;\n if (this.enableHtmlSanitizer && typeof (item.header) === 'string') {\n header = SanitizeHtmlHelper.sanitize(item.header);\n }\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n ctnEle.appendChild(this.fetchElement(hdrEle, header, index));\n innerEle.appendChild(ctnEle);\n }\n var hdr = select('.' + CLS_HEADER, innerEle);\n if (item.expanded && !isNOU(index) && (!this.enablePersistence)) {\n if (this.initExpand.indexOf(index) === -1) {\n this.initExpand.push(index);\n }\n }\n if (item.cssClass) {\n addClass([innerEle], item.cssClass.split(' '));\n }\n if (item.disabled) {\n addClass([innerEle], CLS_DISABLE);\n }\n if (item.visible === false) {\n addClass([innerEle], CLS_ITEMHIDE);\n }\n if (item.iconCss) {\n var hdrIcnEle = this.createElement('div', { className: CLS_HEADERICN });\n var icon = this.createElement('span', { className: item.iconCss + ' e-icons' });\n hdrIcnEle.appendChild(icon);\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n hdr.appendChild(hdrIcnEle);\n innerEle.appendChild(hdr);\n }\n else {\n hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]);\n }\n }\n if (item.content && this.angularnativeCondiCheck(item, 'content')) {\n var hdrIcon = this.toggleIconGenerate();\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n innerEle.appendChild(hdr);\n }\n hdr.appendChild(hdrIcon);\n this.add(innerEle, CLS_SLCT);\n }\n return innerEle;\n };\n Accordion.prototype.angularnativeCondiCheck = function (item, prop) {\n var property = prop === 'content' ? item.content : item.header;\n var content = property;\n if (this.isAngular && !isNOU(content.elementRef)) {\n var data = content.elementRef.nativeElement.data;\n if (isNOU(data) || data === '' || (data.indexOf('bindings=') === -1)) {\n return true;\n }\n var parseddata = JSON.parse(content.elementRef.nativeElement.data.replace('bindings=', ''));\n if (!isNOU(parseddata) && parseddata['ng-reflect-ng-if'] === 'false') {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n return true;\n }\n };\n Accordion.prototype.fetchElement = function (ele, value, index) {\n var templateFn;\n var temString;\n try {\n if (document.querySelectorAll(value).length && value !== 'Button') {\n var eleVal = document.querySelector(value);\n temString = eleVal.outerHTML.trim();\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n if (typeof (value) === 'string') {\n ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;\n }\n else if (value instanceof (HTMLElement)) {\n ele.appendChild(value);\n if (this.trgtEle) {\n ele.firstElementChild.style.display = '';\n }\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n var tempArray;\n if (!isNOU(templateFn)) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n var templateProps = void 0;\n var templateName = void 0;\n if (ele.classList.contains(CLS_HEADERCTN)) {\n templateProps = this.element.id + index + '_header';\n templateName = 'header';\n }\n else if (ele.classList.contains(CLS_CTENT)) {\n templateProps = this.element.id + index + '_content';\n templateName = 'content';\n }\n tempArray = templateFn({}, this, templateName, templateProps, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0 && !(isNOU(tempArray[0].tagName) && tempArray.length === 1)) {\n [].slice.call(tempArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (ele.childElementCount === 0) {\n ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;\n }\n if (!isNOU(temString)) {\n if (this.templateEle.indexOf(value) === -1) {\n this.templateEle.push(value);\n }\n }\n return ele;\n };\n Accordion.prototype.ariaAttrUpdate = function (itemEle) {\n var header = select('.' + CLS_HEADER, itemEle);\n var content = select('.' + CLS_CONTENT, itemEle);\n header.setAttribute('aria-controls', content.id);\n content.setAttribute('aria-labelledby', header.id);\n content.setAttribute('role', 'region');\n };\n Accordion.prototype.contentRendering = function (index) {\n var itemcnt = this.createElement('div', { className: CLS_CONTENT + ' ' + CLS_CTNHIDE, id: getUniqueID('acrdn_panel') });\n attributes(itemcnt, { 'aria-hidden': 'true' });\n var ctn = this.createElement('div', { className: CLS_CTENT });\n if (!isNOU(this.dataSource) && this.dataSource.length > 0) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n append(this.getItemTemplate()(this.dataSource[parseInt(index.toString(), 10)], this, 'itemTemplate', this.element.id + '_itemTemplate', false), ctn);\n itemcnt.appendChild(ctn);\n }\n else {\n var content = this.items[parseInt(index.toString(), 10)].content;\n if (this.enableHtmlSanitizer && typeof (content) === 'string') {\n content = SanitizeHtmlHelper.sanitize(content);\n }\n itemcnt.appendChild(this.fetchElement(ctn, content, index));\n }\n return itemcnt;\n };\n Accordion.prototype.expand = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || (isVisible(trgt) && trgt.getAttribute('e-animate') !== 'true') || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var acrdnRoot = closest(trgtItemEle, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n var animation = {\n name: this.animation.expand.effect,\n duration: this.animation.expand.duration,\n timingFunction: this.animation.expand.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: true\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n icon.classList.add(CLS_TOGANIMATE);\n _this.expandedItemsPush(trgtItemEle);\n if (!isNOU(expandState)) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n trgtItemEle.classList.add(CLS_EXPANDSTATE);\n if ((animation.name === 'None' && animationMode !== 'Enable') || (animationMode === 'Disable')) {\n _this.expandProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.expandProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.expandAnimation(animation.name, icon, trgt, trgtItemEle, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.expandAnimation = function (ef, icn, trgt, trgtItemEle, animate, args) {\n var _this = this;\n if (ef === 'None' && animationMode === 'Enable') {\n ef = 'SlideDown';\n animate.name = 'SlideDown';\n }\n var height;\n this.lastActiveItemId = trgtItemEle.id;\n if (ef === 'SlideDown') {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n trgt.style.position = 'absolute';\n height = trgtItemEle.offsetHeight;\n trgt.style.maxHeight = (trgt.offsetHeight) + 'px';\n trgtItemEle.style.maxHeight = '';\n };\n animate.progress = function () {\n trgtItemEle.style.minHeight = (height + trgt.offsetHeight) + 'px';\n };\n animate.end = function () {\n setStyle(trgt, { 'position': '', 'maxHeight': '' });\n trgtItemEle.style.minHeight = '';\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n else {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n };\n animate.end = function () {\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.expandProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(trgt, CLS_CTNHIDE);\n this.add(trgtItemEle, CLS_SLCTED);\n this.add(icon, CLS_EXPANDICN);\n if (progress === 'end') {\n this.add(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'false');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'true' });\n icon.classList.remove(CLS_TOGANIMATE);\n this.trigger('expanded', eventArgs);\n }\n };\n Accordion.prototype.expandedItemsPush = function (item) {\n var index = this.getIndexByItem(item);\n if (this.expandedIndices.indexOf(index) === -1) {\n var temp = [].slice.call(this.expandedIndices);\n temp.push(index);\n this.setProperties({ expandedIndices: temp }, true);\n }\n };\n Accordion.prototype.getIndexByItem = function (item) {\n var itemEle = this.getItemElements();\n return [].slice.call(itemEle).indexOf(item);\n };\n Accordion.prototype.getItemElements = function () {\n var itemEle = [];\n var itemCollection = this.element.children;\n [].slice.call(itemCollection).forEach(function (el) {\n if (el.classList.contains(CLS_ITEM)) {\n itemEle.push(el);\n }\n });\n return itemEle;\n };\n Accordion.prototype.expandedItemsPop = function (item) {\n var index = this.getIndexByItem(item);\n var temp = [].slice.call(this.expandedIndices);\n temp.splice(temp.indexOf(index), 1);\n this.setProperties({ expandedIndices: temp }, true);\n };\n Accordion.prototype.collapse = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || !isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var animation = {\n name: this.animation.collapse.effect,\n duration: this.animation.collapse.duration,\n timingFunction: this.animation.collapse.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: false\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n _this.expandedItemsPop(trgtItemEle);\n trgtItemEle.classList.remove(CLS_EXPANDSTATE);\n icon.classList.add(CLS_TOGANIMATE);\n if ((animation.name === 'None' && animationMode !== 'Enable') || (animationMode === 'Disable')) {\n _this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.collapseProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.collapseAnimation(animation.name, trgt, trgtItemEle, icon, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.collapseAnimation = function (ef, trgt, trgtItEl, icn, animate, args) {\n var _this = this;\n if (ef === 'None' && animationMode === 'Enable') {\n ef = 'SlideUp';\n animate.name = 'SlideUp';\n }\n var height;\n var trgtHeight;\n var itemHeight;\n var remain;\n this.lastActiveItemId = trgtItEl.id;\n if (ef === 'SlideUp') {\n animate.begin = function () {\n itemHeight = trgtItEl.offsetHeight;\n trgtItEl.style.minHeight = itemHeight + 'px';\n trgt.style.position = 'absolute';\n height = trgtItEl.offsetHeight;\n trgtHeight = trgt.offsetHeight;\n trgt.style.maxHeight = trgtHeight + 'px';\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.progress = function () {\n remain = ((height - (trgtHeight - trgt.offsetHeight)));\n if (remain < itemHeight) {\n trgtItEl.style.minHeight = remain + 'px';\n }\n };\n animate.end = function () {\n trgt.style.display = 'none';\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n trgtItEl.style.minHeight = '';\n setStyle(trgt, { 'position': '', 'maxHeight': '', 'display': '' });\n };\n }\n else {\n animate.begin = function () {\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.end = function () {\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.collapseProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(icon, CLS_EXPANDICN);\n this.remove(trgtItemEle, CLS_SLCTED);\n if (progress === 'end') {\n this.add(trgt, CLS_CTNHIDE);\n icon.classList.remove(CLS_TOGANIMATE);\n this.remove(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'true');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'false' });\n this.trigger('expanded', eventArgs);\n }\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Accordion.prototype.getModuleName = function () {\n return 'accordion';\n };\n Accordion.prototype.getItems = function () {\n var items;\n if (this.itemTemplate && this.headerTemplate) {\n items = this.dataSource;\n }\n else {\n items = this.items;\n }\n return items;\n };\n /**\n * Adds new item to the Accordion with the specified index of the Accordion.\n *\n * @param {AccordionItemModel | AccordionItemModel[] | Object | Object[]} item - Item array that is to be added to the Accordion.\n * @param {number} index - Number value that determines where the item should be added.\n * By default, item is added at the last index if the index is not specified.\n * @returns {void}\n */\n Accordion.prototype.addItem = function (item, index) {\n var _this = this;\n var ele = this.element;\n var itemEle = this.getItemElements();\n var items = this.getItems();\n if (isNOU(index)) {\n index = items.length;\n }\n if (ele.childElementCount >= index) {\n var addItems = (item instanceof Array) ? item : [item];\n addItems.forEach(function (addItem, i) {\n var itemIndex = index + i;\n items.splice(itemIndex, 0, addItem);\n var innerItemEle = _this.renderInnerItem(addItem, itemIndex);\n if (ele.childElementCount === itemIndex) {\n ele.appendChild(innerItemEle);\n }\n else {\n ele.insertBefore(innerItemEle, itemEle[parseInt(itemIndex.toString(), 10)]);\n }\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n _this.expandedIndices = [];\n _this.expandedItemRefresh();\n if (addItem && addItem.expanded) {\n _this.expandItem(true, itemIndex);\n }\n });\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.expandedItemRefresh = function () {\n var _this = this;\n var itemEle = this.getItemElements();\n [].slice.call(itemEle).forEach(function (el) {\n if (el.classList.contains(CLS_SLCTED)) {\n _this.expandedItemsPush(el);\n }\n });\n };\n /**\n * Dynamically removes item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be removed.\n * @returns {void}.\n */\n Accordion.prototype.removeItem = function (index) {\n if (this.isReact || this.isAngular) {\n var item = selectAll('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)];\n var header = select('.' + CLS_HEADERCTN, item);\n var content = select('.' + CLS_CTENT, item);\n this.clearAccordionTemplate(header, this.dataSource.length > 0 ? 'headerTemplate' : 'header', CLS_HEADERCTN);\n this.clearAccordionTemplate(content, this.dataSource.length > 0 ? 'itemTemplate' : 'content', CLS_CTENT);\n }\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n var items = this.getItems();\n if (isNOU(ele)) {\n return;\n }\n this.restoreContent(index);\n detach(ele);\n items.splice(index, 1);\n this.expandedIndices = [];\n this.expandedItemRefresh();\n };\n /**\n * Sets focus to the specified index item header in Accordion.\n *\n * @param {number} index - Number value that determines which item should be focused.\n * @returns {void}.\n */\n Accordion.prototype.select = function (index) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || isNOU(select('.' + CLS_HEADER, ele))) {\n return;\n }\n ele.children[0].focus();\n };\n /**\n * Shows or hides the specified item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be hidden/shown.\n * @param {boolean} isHidden - Boolean value that determines the action either hide (true) or show (false). Default value is false.\n * If the `isHidden` value is false, the item is shown or else item it is hidden.\n * @returns {void}.\n */\n Accordion.prototype.hideItem = function (index, isHidden) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n if (isNOU(isHidden)) {\n isHidden = true;\n }\n if (isHidden) {\n this.add(ele, CLS_ITEMHIDE);\n }\n else {\n this.remove(ele, CLS_ITEMHIDE);\n }\n };\n /**\n * Enables/Disables the specified Accordion item.\n *\n * @param {number} index - Number value that determines which item should be enabled/disabled.\n * @param {boolean} isEnable - Boolean value that determines the action as enable (true) or disable (false).\n * If the `isEnable` value is true, the item is enabled or else it is disabled.\n * @returns {void}.\n */\n Accordion.prototype.enableItem = function (index, isEnable) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n var eleHeader = ele.firstElementChild;\n if (isEnable) {\n this.remove(ele, CLS_DISABLE);\n attributes(eleHeader, { 'tabindex': '0', 'aria-disabled': 'false' });\n eleHeader.focus();\n }\n else {\n if (ele.classList.contains(CLS_ACTIVE)) {\n this.expandItem(false, index);\n this.eleMoveFocus('movedown', this.element, eleHeader);\n }\n this.add(ele, CLS_DISABLE);\n eleHeader.setAttribute('aria-disabled', 'true');\n eleHeader.removeAttribute('tabindex');\n }\n };\n /**\n * Expands/Collapses the specified Accordion item.\n *\n * @param {boolean} isExpand - Boolean value that determines the action as expand or collapse.\n * @param {number} index - Number value that determines which item should be expanded/collapsed.`index` is optional parameter.\n * Without Specifying index, based on the `isExpand` value all Accordion item can be expanded or collapsed.\n * @returns {void}.\n */\n Accordion.prototype.expandItem = function (isExpand, index) {\n var _this = this;\n var itemEle = this.getItemElements();\n if (isNOU(index)) {\n if (this.expandMode === 'Single' && isExpand) {\n var ele = itemEle[itemEle.length - 1];\n this.itemExpand(isExpand, ele, this.getIndexByItem(ele));\n }\n else {\n var item = select('#' + this.lastActiveItemId, this.element);\n [].slice.call(itemEle).forEach(function (el) {\n _this.itemExpand(isExpand, el, _this.getIndexByItem(el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n var expandedItem = select('.' + CLS_EXPANDSTATE, this.element);\n if (expandedItem) {\n expandedItem.classList.remove(CLS_EXPANDSTATE);\n }\n if (item) {\n item.classList.add(CLS_EXPANDSTATE);\n }\n }\n }\n else {\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || !ele.classList.contains(CLS_SLCT) || (ele.classList.contains(CLS_ACTIVE) && isExpand)) {\n return;\n }\n else {\n if (this.expandMode === 'Single') {\n this.expandItem(false);\n }\n this.itemExpand(isExpand, ele, index);\n }\n }\n };\n Accordion.prototype.itemExpand = function (isExpand, ele, index) {\n var ctn = ele.children[1];\n if (ele.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (isNOU(ctn) && isExpand) {\n ctn = this.contentRendering(index);\n ele.appendChild(ctn);\n this.ariaAttrUpdate(ele);\n this.expand(ctn);\n }\n else if (!isNOU(ctn)) {\n if (isExpand) {\n this.expand(ctn);\n }\n else {\n this.collapse(ctn);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.destroyItems = function () {\n this.restoreContent(null);\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) {\n detach(el);\n });\n };\n Accordion.prototype.restoreContent = function (index) {\n var ctnElePos;\n if (isNOU(index)) {\n ctnElePos = this.element;\n }\n else {\n ctnElePos = this.element.querySelectorAll('.' + CLS_ITEM)[parseInt(index.toString(), 10)];\n }\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(ctnElePos.querySelector(eleStr))) {\n document.body.appendChild(ctnElePos.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Accordion.prototype.updateItem = function (item, index) {\n if (!isNOU(item)) {\n var items = this.getItems();\n var itemObj = items[parseInt(index.toString(), 10)];\n items.splice(index, 1);\n this.restoreContent(index);\n var header = select('.' + CLS_HEADERCTN, item);\n var content = select('.' + CLS_CTENT, item);\n if (this.isReact || this.isAngular) {\n this.clearAccordionTemplate(header, 'header', CLS_HEADERCTN);\n this.clearAccordionTemplate(content, 'content', CLS_CTENT);\n }\n detach(item);\n this.addItem(itemObj, index);\n }\n };\n Accordion.prototype.setTemplate = function (template, toElement, index) {\n this.fetchElement(toElement, template, index);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.clearAccordionTemplate = function (templateEle, templateName, className) {\n if (this.registeredTemplate && this.registeredTemplate[\"\" + templateName]) {\n var registeredTemplates = this.registeredTemplate;\n for (var index = 0; index < registeredTemplates[\"\" + templateName].length; index++) {\n var registeredItem = registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)].rootNodes[0];\n var closestItem = closest(registeredItem, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle || isNOU(registeredItem.parentNode)) {\n this.clearTemplate([templateName], [registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)]]);\n break;\n }\n }\n }\n else if (this.portals && this.portals.length > 0) {\n var portals = this.portals;\n for (var index = 0; index < portals.length; index++) {\n var portalItem = portals[parseInt(index.toString(), 10)];\n var closestItem = closest(portalItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], index);\n break;\n }\n }\n }\n };\n Accordion.prototype.getPersistData = function () {\n var keyEntity = ['expandedIndices'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {AccordionModel} newProp - It contains the new value of data.\n * @param {AccordionModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Accordion.prototype.onPropertyChanged = function (newProp, oldProp) {\n var acrdn = this.element;\n var isRefresh = false;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProp = Object.keys(newProp.items);\n for (var j = 0; j < changedProp.length; j++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(j.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)]);\n for (var k = 0; k < property.length; k++) {\n var item = selectAll('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)];\n var oldVal = Object(oldProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var newVal = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var temp = property[parseInt(k.toString(), 10)];\n var content = select('.' + CLS_CTENT, item);\n if (temp === 'header' || temp === 'iconCss' || temp === 'expanded' || ((temp === 'content') && (oldVal === ''))) {\n this.updateItem(item, index);\n }\n if (property[parseInt(k.toString(), 10)] === 'cssClass' && !isNOU(item)) {\n if (oldVal) {\n removeClass([item], oldVal.split(' '));\n }\n if (newVal) {\n addClass([item], newVal.split(' '));\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'visible' && !isNOU(item)) {\n if (Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]] === false) {\n item.classList.add(CLS_ITEMHIDE);\n }\n else {\n item.classList.remove(CLS_ITEMHIDE);\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'disabled' && !isNOU(item)) {\n this.enableItem(index, !newVal);\n }\n if (property.indexOf('header') < 0 && property[parseInt(k.toString(), 10)] === 'content'\n && !isNOU(item) && item.children.length === 2) {\n if (typeof newVal === 'function') {\n if (this.isAngular || this.isReact) {\n this.clearAccordionTemplate(content, property[parseInt(k.toString(), 10)], CLS_CTENT);\n }\n var activeContent = item.querySelector('.' + CLS_CTENT);\n activeContent.innerHTML = '';\n this.setTemplate(newVal, activeContent, index);\n }\n else {\n if (item.classList.contains(CLS_SLCTED)) {\n this.expandItem(false, index);\n }\n detach(item.querySelector('.' + CLS_CONTENT));\n }\n }\n }\n }\n }\n else {\n isRefresh = true;\n }\n break;\n case 'dataSource':\n case 'expandedIndices':\n if (this.expandedIndices === null) {\n this.expandedIndices = [];\n }\n isRefresh = true;\n break;\n case 'headerTemplate':\n this.initializeHeaderTemplate();\n isRefresh = true;\n break;\n case 'itemTemplate':\n this.initializeItemTemplate();\n isRefresh = true;\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(acrdn, CLS_RTL);\n }\n else {\n this.remove(acrdn, CLS_RTL);\n }\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'width':\n setStyle(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'expandMode':\n if (newProp.expandMode === 'Single' && !isNOU(this.expandedIndices) && this.expandedIndices.length > 1) {\n this.expandItem(false);\n }\n break;\n }\n }\n if (isRefresh) {\n this.initExpand = [];\n if (!isNOU(this.expandedIndices) && this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n this.destroyItems();\n this.renderItems();\n this.initItemExpand();\n }\n };\n __decorate([\n Collection([], AccordionItem)\n ], Accordion.prototype, \"items\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('100%')\n ], Accordion.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Accordion.prototype, \"height\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"expandedIndices\", void 0);\n __decorate([\n Property('Multiple')\n ], Accordion.prototype, \"expandMode\", void 0);\n __decorate([\n Property(true)\n ], Accordion.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, AccordionAnimationSettings)\n ], Accordion.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanding\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanded\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"destroyed\", void 0);\n Accordion = __decorate([\n NotifyPropertyChanges\n ], Accordion);\n return Accordion;\n}(Component));\nexport { Accordion };\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var PanelsDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-panels';\n }\n }\n});\nexport var PanelsPlugin = {\n name: 'e-panels',\n install: function (Vue) {\n Vue.component(PanelsPlugin.name, PanelsDirective);\n }\n};\n/**\n * 'e-panels' directive represent a presets of VueJS dashboardlayout component\n * It must be contained in a dashboardlayout component(`ejs-dashboardlayout`).\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nexport var PanelDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-panel';\n }\n }\n});\nexport var PanelPlugin = {\n name: 'e-panel',\n install: function (Vue) {\n Vue.component(PanelPlugin.name, PanelDirective);\n }\n};\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(,.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').replace(/^.*?\\s+/, '');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\(.+\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n // if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine\n // because this line doesn't have function name\n var locationParts = this.extractLocation(location ? location[1] : sanitizedLine);\n var functionName = location && sanitizedLine || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\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\nmodule.exports = arrayPush;\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-hscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_HSCROLLCON = 'e-hscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVRIGHTARROW = 'e-nav-right-arrow';\nvar CLS_NAVLEFTARROW = 'e-nav-left-arrow';\nvar CLS_HSCROLLNAV = 'e-scroll-nav';\nvar CLS_HSCROLLNAVRIGHT = 'e-scroll-right-nav';\nvar CLS_HSCROLLNAVLEFT = 'e-scroll-left-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_RIGHTOVERLAY = 'e-scroll-right-overlay';\nvar CLS_LEFTOVERLAY = 'e-scroll-left-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * HScroll module is introduces horizontal scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs horizontal scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar HScroll = /** @class */ (function (_super) {\n __extends(HScroll, _super);\n /**\n * Initializes a new instance of the HScroll class.\n *\n * @param {HScrollModel} options - Specifies HScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which horizontal scrolling applies.\n */\n function HScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var element = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (element.id === '') {\n element.id = getUniqueID('hscroll');\n this.uniqueId = true;\n }\n element.style.display = 'block';\n if (this.enableRtl) {\n element.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the horizontal scroll rendering\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlay(this.element);\n }\n this.setScrollState();\n };\n HScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetWidth;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n HScroll.prototype.initialize = function () {\n var scrollEle = this.createElement('div', { className: CLS_HSCROLLCON });\n var scrollDiv = this.createElement('div', { className: CLS_HSCROLLBAR });\n scrollDiv.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollEle.appendChild(ele_1);\n }\n scrollDiv.appendChild(scrollEle);\n ele.appendChild(scrollDiv);\n scrollDiv.style.overflowX = 'hidden';\n this.scrollEle = scrollDiv;\n this.scrollItems = scrollEle;\n };\n HScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n HScroll.prototype.getModuleName = function () {\n return 'hScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n HScroll.prototype.destroy = function () {\n var ele = this.element;\n ele.style.display = '';\n ele.classList.remove(CLS_ROOT);\n ele.classList.remove(CLS_DEVICE);\n ele.classList.remove(CLS_RTL);\n var nav = selectAll('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele);\n var overlay = selectAll('.' + CLS_OVERLAY, ele);\n [].slice.call(overlay).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n ele.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (nav.length > 0) {\n detach(nav[0]);\n if (!isNullOrUndefined(nav[1])) {\n detach(nav[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the HScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, HScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n HScroll.prototype.disable = function (value) {\n var navEles = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEles).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n HScroll.prototype.createOverlay = function (element) {\n var id = element.id.concat('_nav');\n var rightOverlayEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_RIGHTOVERLAY });\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightEle = this.createElement('div', { id: id.concat('_right'), className: clsRight });\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n rightEle.appendChild(navItem);\n var leftEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_LEFTOVERLAY });\n if (this.ieCheck) {\n rightEle.classList.add('e-ie-align');\n }\n element.appendChild(rightOverlayEle);\n element.appendChild(rightEle);\n element.insertBefore(leftEle, element.firstChild);\n this.eventBinding([rightEle]);\n };\n HScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightAttributes = { 'role': 'button', 'id': id.concat('_right'), 'aria-label': 'Scroll right' };\n var nav = this.createElement('div', { className: clsRight, attrs: rightAttributes });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsLeft = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVLEFT);\n var leftAttributes = { 'role': 'button', 'id': id.concat('_left'), 'aria-label': 'Scroll left' };\n var navEle = this.createElement('div', { className: clsLeft + ' ' + CLS_DISABLE, attrs: leftAttributes });\n navEle.setAttribute('aria-disabled', 'true');\n var navLeftItem = this.createElement('div', { className: CLS_NAVLEFTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navEle.appendChild(navLeftItem);\n nav.appendChild(navItem);\n element.appendChild(nav);\n element.insertBefore(navEle, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navEle.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navEle]);\n };\n HScroll.prototype.onKeyPress = function (e) {\n var _this = this;\n if (e.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, e.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n HScroll.prototype.onKeyUp = function (e) {\n if (e.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n e.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n HScroll.prototype.eventBinding = function (ele) {\n var _this = this;\n [].slice.call(ele).forEach(function (el) {\n new Touch(el, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n el.addEventListener('keydown', _this.onKeyPress.bind(_this));\n el.addEventListener('keyup', _this.onKeyUp.bind(_this));\n el.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n el.addEventListener('touchend', _this.repeatScroll.bind(_this));\n el.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(el, 'click', _this.clickEventHandler, _this);\n });\n };\n HScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n HScroll.prototype.tabHoldHandler = function (e) {\n var _this = this;\n var trgt = e.originalEvent.target;\n trgt = this.contains(trgt, CLS_HSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDis = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDis, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n HScroll.prototype.contains = function (ele, className) {\n return ele.classList.contains(className);\n };\n HScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var rootEle = this.element;\n var classList = trgt.classList;\n if (classList.contains(CLS_HSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (this.contains(rootEle, CLS_RTL) && this.browserCheck) {\n scrollDis = -scrollDis;\n }\n if ((!this.contains(rootEle, CLS_RTL) || this.browserCheck) || this.ieCheck) {\n if (classList.contains(CLS_NAVRIGHTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n else {\n if (classList.contains(CLS_NAVLEFTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n };\n HScroll.prototype.clickEventHandler = function (e) {\n this.eleScrolling(this.scrollStep, e.target, false);\n };\n HScroll.prototype.swipeHandler = function (e) {\n var swipeEle = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceX / (e.velocity * 10);\n }\n else {\n distance = e.distanceX / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Left') {\n swipeEle.scrollLeft += distance * step;\n }\n else if (e.swipeDirection === 'Right') {\n swipeEle.scrollLeft -= distance * step;\n }\n start -= 0.5;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollLeft += scrollVal;\n }\n else {\n this.scrollEle.scrollLeft -= scrollVal;\n }\n if (this.enableRtl && this.scrollEle.scrollLeft > 0) {\n this.scrollEle.scrollLeft = 0;\n }\n };\n HScroll.prototype.frameScrollRequest = function (scrollVal, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollVal, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollVal -= el.offsetWidth;\n });\n }\n var animate = function () {\n var scrollValue;\n var scrollStep;\n if (_this.contains(_this.element, CLS_RTL) && _this.browserCheck) {\n scrollValue = -scrollVal;\n scrollStep = -step;\n }\n else {\n scrollValue = scrollVal;\n scrollStep = step;\n }\n if (scrollValue < step) {\n window.cancelAnimationFrame(scrollStep);\n }\n else {\n _this.scrollUpdating(scrollStep, action);\n scrollVal -= scrollStep;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.touchHandler = function (e) {\n var ele = this.scrollEle;\n var distance = e.distanceX;\n if ((this.ieCheck) && this.contains(this.element, CLS_RTL)) {\n distance = -distance;\n }\n if (e.scrollDirection === 'Left') {\n ele.scrollLeft = ele.scrollLeft + distance;\n }\n else if (e.scrollDirection === 'Right') {\n ele.scrollLeft = ele.scrollLeft - distance;\n }\n };\n HScroll.prototype.arrowDisabling = function (addDisable, removeDisable) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisable) ? removeDisable : addDisable;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisable)) {\n classList(arrowIcon, [CLS_NAVRIGHTARROW], [CLS_NAVLEFTARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVLEFTARROW], [CLS_NAVRIGHTARROW]);\n }\n }\n else if (addDisable && removeDisable) {\n addDisable.classList.add(CLS_DISABLE);\n addDisable.setAttribute('aria-disabled', 'true');\n addDisable.removeAttribute('tabindex');\n removeDisable.classList.remove(CLS_DISABLE);\n removeDisable.setAttribute('aria-disabled', 'false');\n removeDisable.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n HScroll.prototype.scrollHandler = function (e) {\n var target = e.target;\n var width = target.offsetWidth;\n var rootEle = this.element;\n var navLeftEle = this.element.querySelector('.' + CLS_HSCROLLNAVLEFT);\n var navRightEle = this.element.querySelector('.' + CLS_HSCROLLNAVRIGHT);\n var leftOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n var rightOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n var scrollLeft = target.scrollLeft;\n if (scrollLeft <= 0) {\n scrollLeft = -scrollLeft;\n }\n if (this.isDevice) {\n if (this.enableRtl && !(this.browserCheck || this.ieCheck)) {\n leftOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n rightOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n }\n if (scrollLeft < OVERLAY_MAXWID) {\n leftOverlay.style.width = scrollLeft + 'px';\n }\n else {\n leftOverlay.style.width = '40px';\n }\n if ((target.scrollWidth - Math.ceil(width + scrollLeft)) < OVERLAY_MAXWID) {\n rightOverlay.style.width = (target.scrollWidth - Math.ceil(width + scrollLeft)) + 'px';\n }\n else {\n rightOverlay.style.width = '40px';\n }\n }\n if (scrollLeft === 0) {\n this.arrowDisabling(navLeftEle, navRightEle);\n }\n else if (Math.ceil(width + scrollLeft + .1) >= target.scrollWidth) {\n this.arrowDisabling(navRightEle, navLeftEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_HSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {HScrollModel} newProp - It contains the new value of data.\n * @param {HScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n HScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n newProp.enableRtl ? this.element.classList.add(CLS_RTL) : this.element.classList.remove(CLS_RTL);\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], HScroll.prototype, \"scrollStep\", void 0);\n HScroll = __decorate([\n NotifyPropertyChanges\n ], HScroll);\n return HScroll;\n}(Component));\nexport { HScroll };\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * 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 baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","var getMapData = require('./_getMapData');\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 var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace-gps', ['source-map', 'stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('source-map/lib/source-map-consumer'), require('stackframe'));\n } else {\n root.StackTraceGPS = factory(root.SourceMap || root.sourceMap, root.StackFrame);\n }\n}(this, function(SourceMap, StackFrame) {\n 'use strict';\n\n /**\n * Make a X-Domain request to url and callback.\n *\n * @param {String} url\n * @returns {Promise} with response text if fulfilled\n */\n function _xdr(url) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.open('get', url);\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if ((req.status >= 200 && req.status < 300) ||\n (url.substr(0, 7) === 'file://' && req.responseText)) {\n resolve(req.responseText);\n } else {\n reject(new Error('HTTP status: ' + req.status + ' retrieving ' + url));\n }\n }\n };\n req.send();\n });\n\n }\n\n /**\n * Convert a Base64-encoded string into its original representation.\n * Used for inline sourcemaps.\n *\n * @param {String} b64str Base-64 encoded string\n * @returns {String} original representation of the base64-encoded string.\n */\n function _atob(b64str) {\n if (typeof window !== 'undefined' && window.atob) {\n return window.atob(b64str);\n } else {\n throw new Error('You must supply a polyfill for window.atob in this environment');\n }\n }\n\n function _parseJson(string) {\n if (typeof JSON !== 'undefined' && JSON.parse) {\n return JSON.parse(string);\n } else {\n throw new Error('You must supply a polyfill for JSON.parse in this environment');\n }\n }\n\n function _findFunctionName(source, lineNumber/*, columnNumber*/) {\n var syntaxes = [\n // {name} = function ({args}) TODO args capture\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*function\\b/,\n // function {name}({args}) m[1]=name m[2]=args\n /function\\s+([^('\"`]*?)\\s*\\(([^)]*)\\)/,\n // {name} = eval()\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*(?:eval|new Function)\\b/,\n // fn_name() {\n /\\b(?!(?:if|for|switch|while|with|catch)\\b)(?:(?:static)\\s+)?(\\S+)\\s*\\(.*?\\)\\s*\\{/,\n // {name} = () => {\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*\\(.*?\\)\\s*=>/\n ];\n var lines = source.split('\\n');\n\n // Walk backwards in the source lines until we find the line which matches one of the patterns above\n var code = '';\n var maxLines = Math.min(lineNumber, 20);\n for (var i = 0; i < maxLines; ++i) {\n // lineNo is 1-based, source[] is 0-based\n var line = lines[lineNumber - i - 1];\n var commentPos = line.indexOf('//');\n if (commentPos >= 0) {\n line = line.substr(0, commentPos);\n }\n\n if (line) {\n code = line + code;\n var len = syntaxes.length;\n for (var index = 0; index < len; index++) {\n var m = syntaxes[index].exec(code);\n if (m && m[1]) {\n return m[1];\n }\n }\n }\n }\n return undefined;\n }\n\n function _ensureSupportedEnvironment() {\n if (typeof Object.defineProperty !== 'function' || typeof Object.create !== 'function') {\n throw new Error('Unable to consume source maps in older browsers');\n }\n }\n\n function _ensureStackFrameIsLegit(stackframe) {\n if (typeof stackframe !== 'object') {\n throw new TypeError('Given StackFrame is not an object');\n } else if (typeof stackframe.fileName !== 'string') {\n throw new TypeError('Given file name is not a String');\n } else if (typeof stackframe.lineNumber !== 'number' ||\n stackframe.lineNumber % 1 !== 0 ||\n stackframe.lineNumber < 1) {\n throw new TypeError('Given line number must be a positive integer');\n } else if (typeof stackframe.columnNumber !== 'number' ||\n stackframe.columnNumber % 1 !== 0 ||\n stackframe.columnNumber < 0) {\n throw new TypeError('Given column number must be a non-negative integer');\n }\n return true;\n }\n\n function _findSourceMappingURL(source) {\n var sourceMappingUrlRegExp = /\\/\\/[#@] ?sourceMappingURL=([^\\s'\"]+)\\s*$/mg;\n var lastSourceMappingUrl;\n var matchSourceMappingUrl;\n // eslint-disable-next-line no-cond-assign\n while (matchSourceMappingUrl = sourceMappingUrlRegExp.exec(source)) {\n lastSourceMappingUrl = matchSourceMappingUrl[1];\n }\n if (lastSourceMappingUrl) {\n return lastSourceMappingUrl;\n } else {\n throw new Error('sourceMappingURL not found');\n }\n }\n\n function _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache) {\n return new Promise(function(resolve, reject) {\n var loc = sourceMapConsumer.originalPositionFor({\n line: stackframe.lineNumber,\n column: stackframe.columnNumber\n });\n\n if (loc.source) {\n // cache mapped sources\n var mappedSource = sourceMapConsumer.sourceContentFor(loc.source);\n if (mappedSource) {\n sourceCache[loc.source] = mappedSource;\n }\n\n resolve(\n // given stackframe and source location, update stackframe\n new StackFrame({\n functionName: loc.name || stackframe.functionName,\n args: stackframe.args,\n fileName: loc.source,\n lineNumber: loc.line,\n columnNumber: loc.column\n }));\n } else {\n reject(new Error('Could not get original source for given stackframe and source map'));\n }\n });\n }\n\n /**\n * @constructor\n * @param {Object} opts\n * opts.sourceCache = {url: \"Source String\"} => preload source cache\n * opts.sourceMapConsumerCache = {/path/file.js.map: SourceMapConsumer}\n * opts.offline = True to prevent network requests.\n * Best effort without sources or source maps.\n * opts.ajax = Promise returning function to make X-Domain requests\n */\n return function StackTraceGPS(opts) {\n if (!(this instanceof StackTraceGPS)) {\n return new StackTraceGPS(opts);\n }\n opts = opts || {};\n\n this.sourceCache = opts.sourceCache || {};\n this.sourceMapConsumerCache = opts.sourceMapConsumerCache || {};\n\n this.ajax = opts.ajax || _xdr;\n\n this._atob = opts.atob || _atob;\n\n this._get = function _get(location) {\n return new Promise(function(resolve, reject) {\n var isDataUrl = location.substr(0, 5) === 'data:';\n if (this.sourceCache[location]) {\n resolve(this.sourceCache[location]);\n } else if (opts.offline && !isDataUrl) {\n reject(new Error('Cannot make network requests in offline mode'));\n } else {\n if (isDataUrl) {\n // data URLs can have parameters.\n // see http://tools.ietf.org/html/rfc2397\n var supportedEncodingRegexp =\n /^data:application\\/json;([\\w=:\"-]+;)*base64,/;\n var match = location.match(supportedEncodingRegexp);\n if (match) {\n var sourceMapStart = match[0].length;\n var encodedSource = location.substr(sourceMapStart);\n var source = this._atob(encodedSource);\n this.sourceCache[location] = source;\n resolve(source);\n } else {\n reject(new Error('The encoding of the inline sourcemap is not supported'));\n }\n } else {\n var xhrPromise = this.ajax(location, {method: 'get'});\n // Cache the Promise to prevent duplicate in-flight requests\n this.sourceCache[location] = xhrPromise;\n xhrPromise.then(resolve, reject);\n }\n }\n }.bind(this));\n };\n\n /**\n * Creating SourceMapConsumers is expensive, so this wraps the creation of a\n * SourceMapConsumer in a per-instance cache.\n *\n * @param {String} sourceMappingURL = URL to fetch source map from\n * @param {String} defaultSourceRoot = Default source root for source map if undefined\n * @returns {Promise} that resolves a SourceMapConsumer\n */\n this._getSourceMapConsumer = function _getSourceMapConsumer(sourceMappingURL, defaultSourceRoot) {\n return new Promise(function(resolve) {\n if (this.sourceMapConsumerCache[sourceMappingURL]) {\n resolve(this.sourceMapConsumerCache[sourceMappingURL]);\n } else {\n var sourceMapConsumerPromise = new Promise(function(resolve, reject) {\n return this._get(sourceMappingURL).then(function(sourceMapSource) {\n if (typeof sourceMapSource === 'string') {\n sourceMapSource = _parseJson(sourceMapSource.replace(/^\\)\\]\\}'/, ''));\n }\n if (typeof sourceMapSource.sourceRoot === 'undefined') {\n sourceMapSource.sourceRoot = defaultSourceRoot;\n }\n\n resolve(new SourceMap.SourceMapConsumer(sourceMapSource));\n }).catch(reject);\n }.bind(this));\n this.sourceMapConsumerCache[sourceMappingURL] = sourceMapConsumerPromise;\n resolve(sourceMapConsumerPromise);\n }\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, enhance function name and use source maps for a\n * better StackFrame.\n *\n * @param {StackFrame} stackframe object\n * @returns {Promise} that resolves with with source-mapped StackFrame\n */\n this.pinpoint = function StackTraceGPS$$pinpoint(stackframe) {\n return new Promise(function(resolve, reject) {\n this.getMappedLocation(stackframe).then(function(mappedStackFrame) {\n function resolveMappedStackFrame() {\n resolve(mappedStackFrame);\n }\n\n this.findFunctionName(mappedStackFrame)\n .then(resolve, resolveMappedStackFrame)\n // eslint-disable-next-line no-unexpected-multiline\n ['catch'](resolveMappedStackFrame);\n }.bind(this), reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, guess function name from location information.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.findFunctionName = function StackTraceGPS$$findFunctionName(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureStackFrameIsLegit(stackframe);\n this._get(stackframe.fileName).then(function getSourceCallback(source) {\n var lineNumber = stackframe.lineNumber;\n var columnNumber = stackframe.columnNumber;\n var guessedFunctionName = _findFunctionName(source, lineNumber, columnNumber);\n // Only replace functionName if we found something\n if (guessedFunctionName) {\n resolve(new StackFrame({\n functionName: guessedFunctionName,\n args: stackframe.args,\n fileName: stackframe.fileName,\n lineNumber: lineNumber,\n columnNumber: columnNumber\n }));\n } else {\n resolve(stackframe);\n }\n }, reject)['catch'](reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, seek source-mapped location and return new enhanced StackFrame.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.getMappedLocation = function StackTraceGPS$$getMappedLocation(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureSupportedEnvironment();\n _ensureStackFrameIsLegit(stackframe);\n\n var sourceCache = this.sourceCache;\n var fileName = stackframe.fileName;\n this._get(fileName).then(function(source) {\n var sourceMappingURL = _findSourceMappingURL(source);\n var isDataUrl = sourceMappingURL.substr(0, 5) === 'data:';\n var defaultSourceRoot = fileName.substring(0, fileName.lastIndexOf('/') + 1);\n\n if (sourceMappingURL[0] !== '/' && !isDataUrl && !(/^https?:\\/\\/|^\\/\\//i).test(sourceMappingURL)) {\n sourceMappingURL = defaultSourceRoot + sourceMappingURL;\n }\n\n return this._getSourceMapConsumer(sourceMappingURL, defaultSourceRoot)\n .then(function(sourceMapConsumer) {\n return _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache)\n .then(resolve)['catch'](function() {\n resolve(stackframe);\n });\n });\n }.bind(this), reject)['catch'](reject);\n }.bind(this));\n };\n };\n}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","'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 * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","import { select, detach } from '@syncfusion/ej2-base';\nimport { VScroll } from './v-scroll';\nimport { HScroll } from './h-scroll';\n/**\n * Used to add scroll in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nexport function addScrolling(createElement, container, content, scrollType, enableRtl, offset) {\n var containerOffset;\n var contentOffset;\n var parentElem = container.parentElement;\n if (scrollType === 'vscroll') {\n containerOffset = offset || container.getBoundingClientRect().height;\n contentOffset = content.getBoundingClientRect().height;\n }\n else {\n containerOffset = container.getBoundingClientRect().width;\n contentOffset = content.getBoundingClientRect().width;\n }\n if (containerOffset < contentOffset) {\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n else if (parentElem) {\n var width = parentElem.getBoundingClientRect().width;\n if (width < containerOffset && scrollType === 'hscroll') {\n contentOffset = width;\n container.style.maxWidth = width + 'px';\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n return content;\n }\n else {\n return content;\n }\n}\n/**\n * Used to create scroll bar in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nfunction createScrollbar(createElement, container, content, scrollType, enableRtl, offset) {\n var scrollEle = createElement('div', { className: 'e-menu-' + scrollType });\n container.appendChild(scrollEle);\n scrollEle.appendChild(content);\n if (offset) {\n scrollEle.style.overflow = 'hidden';\n scrollEle.style.height = offset + 'px';\n }\n else {\n scrollEle.style.maxHeight = container.style.maxHeight;\n container.style.overflow = 'hidden';\n }\n var scrollObj;\n if (scrollType === 'vscroll') {\n scrollObj = new VScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetHeight / 2;\n }\n else {\n scrollObj = new HScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetWidth;\n }\n return scrollEle;\n}\n/**\n * Used to destroy the scroll option.\n *\n * @param {VScroll | HScroll} scrollObj - Specifies the scroller object\n * @param {Element} element - Specifies the element\n * @param {HTMLElement} skipEle - Specifies the skip element\n * @returns {void}\n * @hidden\n */\nexport function destroyScroll(scrollObj, element, skipEle) {\n if (scrollObj) {\n var menu = select('.e-menu-parent', element);\n if (menu) {\n if (!skipEle || skipEle === menu) {\n scrollObj.destroy();\n element.parentElement.appendChild(menu);\n detach(element);\n }\n }\n else {\n scrollObj.destroy();\n detach(element);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, isBlazor } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, KeyboardEvents, Touch } from '@syncfusion/ej2-base';\nimport { Animation } from '@syncfusion/ej2-base';\nimport { Browser, Collection, setValue, getValue, getUniqueID, getInstance, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { select, selectAll, closest, detach, append, rippleEffect, isVisible, Complex, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { getZindexPartial, calculatePosition, isCollide, fit, Popup } from '@syncfusion/ej2-popups';\nimport { SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nimport { addScrolling, destroyScroll } from '../common/menu-scroll';\nvar ENTER = 'enter';\nvar ESCAPE = 'escape';\nvar FOCUSED = 'e-focused';\nvar HEADER = 'e-menu-header';\nvar SELECTED = 'e-selected';\nvar SEPARATOR = 'e-separator';\nvar UPARROW = 'uparrow';\nvar DOWNARROW = 'downarrow';\nvar LEFTARROW = 'leftarrow';\nvar RIGHTARROW = 'rightarrow';\nvar HOME = 'home';\nvar END = 'end';\nvar TAB = 'tab';\nvar CARET = 'e-caret';\nvar ITEM = 'e-menu-item';\nvar DISABLED = 'e-disabled';\nvar HIDE = 'e-menu-hide';\nvar ICONS = 'e-icons';\nvar RTL = 'e-rtl';\nvar POPUP = 'e-menu-popup';\nvar TEMPLATE_PROPERTY = 'Template';\n/**\n * Configures the field options of the Menu.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('id')\n ], FieldSettings.prototype, \"itemId\", void 0);\n __decorate([\n Property('parentId')\n ], FieldSettings.prototype, \"parentId\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('url')\n ], FieldSettings.prototype, \"url\", void 0);\n __decorate([\n Property('separator')\n ], FieldSettings.prototype, \"separator\", void 0);\n __decorate([\n Property('items')\n ], FieldSettings.prototype, \"children\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies menu items.\n */\nvar MenuItem = /** @class */ (function (_super) {\n __extends(MenuItem, _super);\n function MenuItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], MenuItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], MenuItem.prototype, \"separator\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuItem.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"url\", void 0);\n return MenuItem;\n}(ChildProperty));\nexport { MenuItem };\n/**\n * Animation configuration settings.\n */\nvar MenuAnimationSettings = /** @class */ (function (_super) {\n __extends(MenuAnimationSettings, _super);\n function MenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], MenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], MenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], MenuAnimationSettings.prototype, \"easing\", void 0);\n return MenuAnimationSettings;\n}(ChildProperty));\nexport { MenuAnimationSettings };\n/**\n * Base class for Menu and ContextMenu components.\n *\n * @private\n */\nvar MenuBase = /** @class */ (function (_super) {\n __extends(MenuBase, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {MenuBaseModel} options - Specifies the menu base model\n * @param {string | HTMLUListElement} element - Specifies the element\n */\n function MenuBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.navIdx = [];\n _this.animation = new Animation({});\n _this.isTapHold = false;\n _this.tempItem = [];\n _this.showSubMenuOn = 'Auto';\n _this.isAnimationNone = false;\n return _this;\n }\n /**\n * Initialized third party configuration settings.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.preRender = function () {\n if (!this.isMenu) {\n var ul = void 0;\n if (this.element.tagName === 'EJS-CONTEXTMENU') {\n ul = this.createElement('ul', {\n id: getUniqueID(this.getModuleName()), className: 'e-control e-lib e-' + this.getModuleName()\n });\n var ejInst = getValue('ej2_instances', this.element);\n removeClass([this.element], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.clonedElement = this.element;\n this.element = ul;\n setValue('ej2_instances', ejInst, this.element);\n }\n else {\n ul = this.createElement('ul', { id: getUniqueID(this.getModuleName()) });\n append([].slice.call(this.element.cloneNode(true).children), ul);\n var refEle = this.element.nextElementSibling;\n if (refEle) {\n this.element.parentElement.insertBefore(ul, refEle);\n }\n else {\n this.element.parentElement.appendChild(ul);\n }\n this.clonedElement = ul;\n }\n this.clonedElement.style.display = 'none';\n }\n if (this.element.tagName === 'EJS-MENU') {\n var ele = this.element;\n var ejInstance = getValue('ej2_instances', ele);\n var ul = this.createElement('ul');\n var wrapper = this.createElement('EJS-MENU', { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n ul.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = ul;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.clonedElement = wrapper;\n this.element = ele;\n if (!this.element.id) {\n this.element.id = getUniqueID(this.getModuleName());\n }\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.renderItems();\n this.wireEvents();\n this.renderComplete();\n var wrapper = this.getWrapper();\n // eslint-disable-next-line\n if (this.template && this.enableScrolling && (this.isReact || this.isAngular)) {\n requestAnimationFrame(function () {\n addScrolling(_this.createElement, wrapper, _this.element, 'hscroll', _this.enableRtl);\n });\n }\n };\n MenuBase.prototype.initialize = function () {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n if (this.isMenu) {\n this.element.parentElement.insertBefore(wrapper, this.element);\n }\n else {\n document.body.appendChild(wrapper);\n }\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n wrapper.appendChild(this.element);\n if (this.isMenu && this.hamburgerMode) {\n if (!this.target) {\n this.createHeaderContainer(wrapper);\n }\n }\n this.defaultOption = this.showItemOnClick;\n };\n MenuBase.prototype.renderItems = function () {\n if (!this.items.length) {\n var items = ListBase.createJsonFromElement(this.element, { fields: { child: 'items' } });\n this.setProperties({ items: items }, true);\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n }\n var ul = this.createItems(this.items);\n append(Array.prototype.slice.call(ul.children), this.element);\n this.element.classList.add('e-menu-parent');\n if (this.isMenu) {\n if (!this.hamburgerMode && this.element.classList.contains('e-vertical')) {\n this.setBlankIconStyle(this.element);\n }\n if (this.enableScrolling) {\n var wrapper = this.getWrapper();\n if (this.element.classList.contains('e-vertical')) {\n addScrolling(this.createElement, wrapper, this.element, 'vscroll', this.enableRtl);\n }\n else {\n addScrolling(this.createElement, wrapper, this.element, 'hscroll', this.enableRtl);\n }\n }\n }\n else {\n this.element.parentElement.setAttribute('role', 'dialog');\n this.element.parentElement.setAttribute('aria-label', 'context menu');\n }\n };\n MenuBase.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n if (this.target) {\n var target = void 0;\n var targetElems = selectAll(this.target);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.add(target, 'click', this.menuHeaderClickHandler, this);\n }\n else {\n if (Browser.isIos) {\n new Touch(target, { tapHold: this.touchHandler.bind(this) });\n }\n else {\n EventHandler.add(target, 'contextmenu', this.cmenuHandler, this);\n }\n }\n }\n this.targetElement = target;\n if (!this.isMenu) {\n EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollHandler, this);\n }\n }\n }\n if (!Browser.isDevice) {\n this.delegateMoverHandler = this.moverHandler.bind(this);\n this.delegateMouseDownHandler = this.mouseDownHandler.bind(this);\n EventHandler.add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this);\n EventHandler.add(document, 'mousedown', this.delegateMouseDownHandler, this);\n if (!this.isMenu && !this.target) {\n EventHandler.add(document, 'scroll', this.scrollHandler, this);\n }\n }\n this.delegateClickHandler = this.clickHandler.bind(this);\n EventHandler.add(document, 'click', this.delegateClickHandler, this);\n this.wireKeyboardEvent(wrapper);\n this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });\n };\n MenuBase.prototype.wireKeyboardEvent = function (element) {\n var keyConfigs = {\n downarrow: DOWNARROW,\n uparrow: UPARROW,\n enter: ENTER,\n leftarrow: LEFTARROW,\n rightarrow: RIGHTARROW,\n escape: ESCAPE\n };\n if (this.isMenu) {\n keyConfigs.home = HOME;\n keyConfigs.end = END;\n keyConfigs.tab = TAB;\n }\n new KeyboardEvents(element, {\n keyAction: this.keyBoardHandler.bind(this),\n keyConfigs: keyConfigs\n });\n };\n MenuBase.prototype.mouseDownHandler = function (e) {\n if (closest(e.target, '.e-' + this.getModuleName() + '-wrapper') !== this.getWrapper()\n && (!closest(e.target, '.e-' + this.getModuleName() + '-popup'))) {\n this.closeMenu(this.isMenu ? null : this.navIdx.length, e);\n }\n };\n MenuBase.prototype.keyHandler = function (e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n if (e.target && (e.target.classList.contains('e-contextmenu') || e.target.classList.contains('e-menu-item'))) {\n e.preventDefault();\n }\n }\n };\n MenuBase.prototype.keyBoardHandler = function (e) {\n var actionName = '';\n var trgt = e.target;\n var actionNeeded = this.isMenu && !this.hamburgerMode && !this.element.classList.contains('e-vertical')\n && this.navIdx.length < 1;\n e.preventDefault();\n if (this.enableScrolling && e.keyCode === 13 && trgt.classList.contains('e-scroll-nav')) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [closest(trgt, '.e-' + this.getModuleName() + '-wrapper')]);\n }\n if (actionNeeded) {\n switch (e.action) {\n case RIGHTARROW:\n actionName = RIGHTARROW;\n e.action = DOWNARROW;\n break;\n case LEFTARROW:\n actionName = LEFTARROW;\n e.action = UPARROW;\n break;\n case DOWNARROW:\n actionName = DOWNARROW;\n e.action = RIGHTARROW;\n break;\n case UPARROW:\n actionName = UPARROW;\n e.action = '';\n break;\n }\n }\n else if (this.enableRtl) {\n switch (e.action) {\n case LEFTARROW:\n actionNeeded = true;\n actionName = LEFTARROW;\n e.action = RIGHTARROW;\n break;\n case RIGHTARROW:\n actionNeeded = true;\n actionName = RIGHTARROW;\n e.action = LEFTARROW;\n break;\n }\n }\n switch (e.action) {\n case DOWNARROW:\n case UPARROW:\n case END:\n case HOME:\n case TAB:\n this.upDownKeyHandler(e);\n break;\n case RIGHTARROW:\n this.rightEnterKeyHandler(e);\n break;\n case LEFTARROW:\n this.leftEscKeyHandler(e);\n break;\n case ENTER:\n if (this.hamburgerMode && trgt.tagName === 'SPAN' && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n this.rightEnterKeyHandler(e);\n }\n break;\n case ESCAPE:\n this.leftEscKeyHandler(e);\n break;\n }\n if (actionNeeded) {\n e.action = actionName;\n }\n };\n MenuBase.prototype.upDownKeyHandler = function (e) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (e.action === DOWNARROW || e.action === HOME || e.action === TAB) ? 0 : cul.childElementCount - 1;\n var fliIdx = defaultIdx;\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n if (e.action !== END && e.action !== HOME) {\n fliIdx = this.getIdx(cul, fli);\n }\n fli.classList.remove(FOCUSED);\n if (e.action !== END && e.action !== HOME) {\n if (e.action === DOWNARROW) {\n fliIdx++;\n }\n else {\n fliIdx--;\n }\n if (fliIdx === (e.action === DOWNARROW ? cul.childElementCount : -1)) {\n fliIdx = defaultIdx;\n }\n }\n }\n var cli = cul.children[fliIdx];\n fliIdx = this.isValidLI(cli, fliIdx, e.action);\n cul.children[fliIdx].classList.add(FOCUSED);\n cul.children[fliIdx].focus();\n };\n MenuBase.prototype.isValidLI = function (cli, index, action) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (action === DOWNARROW || action === HOME || action === TAB) ? 0 : cul.childElementCount - 1;\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n if (action === DOWNARROW && index === cul.childElementCount - 1) {\n index = defaultIdx;\n }\n else if (action === UPARROW && index === 0) {\n index = defaultIdx;\n }\n else if ((action === DOWNARROW) || (action === RIGHTARROW)) {\n index++;\n }\n else if (action === 'tab' && cli.classList.contains(SEPARATOR)) {\n index++;\n }\n else {\n index--;\n }\n }\n cli = cul.children[index];\n if (cli && (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE))) {\n index = this.isValidLI(cli, index, action);\n }\n return index;\n };\n MenuBase.prototype.getUlByNavIdx = function (navIdxLen) {\n var _this = this;\n if (navIdxLen === void 0) { navIdxLen = this.navIdx.length; }\n if (this.isMenu) {\n var popup = [this.getWrapper()].concat([].slice.call(selectAll('.' + POPUP)))[navIdxLen];\n var popups_1 = [];\n var allPopup = selectAll('.' + POPUP);\n allPopup.forEach(function (elem) {\n if (_this.element.id === elem.id.split('-')[2] || elem.id.split('-')[2] + '-' + elem.id.split('-')[3]) {\n popups_1.push(elem);\n }\n });\n popup = [this.getWrapper()].concat([].slice.call(popups_1))[navIdxLen];\n return isNullOrUndefined(popup) ? null : select('.e-menu-parent', popup);\n }\n else {\n if (!document.body.contains(this.element) && navIdxLen === 0) {\n return null;\n }\n return this.getWrapper().children[navIdxLen];\n }\n };\n MenuBase.prototype.rightEnterKeyHandler = function (e) {\n var eventArgs;\n var cul = this.getUlByNavIdx();\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n var fliIdx = this.getIdx(cul, fli);\n var navIdx = this.navIdx.concat(fliIdx);\n var item = this.getItem(navIdx);\n if (item.items.length) {\n this.navIdx.push(fliIdx);\n this.keyType = 'right';\n this.action = e.action;\n this.openMenu(fli, item, -1, -1, e);\n }\n else {\n if (e.action === ENTER) {\n if (this.isMenu && this.navIdx.length === 0) {\n this.removeLIStateByClass([SELECTED], [this.getWrapper()]);\n }\n else {\n fli.classList.remove(FOCUSED);\n }\n fli.classList.add(SELECTED);\n eventArgs = { element: fli, item: item, event: e };\n this.trigger('select', eventArgs);\n var aEle = fli.querySelector('.e-menu-url');\n if (item.url && aEle) {\n switch (aEle.getAttribute('target')) {\n case '_blank':\n window.open(item.url, '_blank');\n break;\n case '_parent':\n window.parent.location.href = item.url;\n break;\n default:\n window.location.href = item.url;\n }\n }\n this.closeMenu(null, e);\n var sli = this.getLIByClass(this.getUlByNavIdx(), SELECTED);\n if (sli) {\n sli.classList.add(FOCUSED);\n sli.focus();\n }\n }\n }\n }\n };\n MenuBase.prototype.leftEscKeyHandler = function (e) {\n if (this.navIdx.length) {\n this.keyType = 'left';\n this.closeMenu(this.navIdx.length, e);\n }\n else {\n if (e.action === ESCAPE) {\n this.closeMenu(null, e);\n }\n }\n };\n MenuBase.prototype.scrollHandler = function (e) {\n this.closeMenu(null, e);\n };\n MenuBase.prototype.touchHandler = function (e) {\n this.isTapHold = true;\n this.cmenuHandler(e.originalEvent);\n };\n MenuBase.prototype.cmenuHandler = function (e) {\n e.preventDefault();\n this.currentTarget = e.target;\n this.isCMenu = true;\n this.pageX = e.changedTouches ? e.changedTouches[0].pageX + 1 : e.pageX + 1;\n this.pageY = e.changedTouches ? e.changedTouches[0].pageY + 1 : e.pageY + 1;\n this.closeMenu(null, e);\n if (this.isCMenu) {\n if (this.canOpen(e.target)) {\n this.openMenu(null, null, this.pageY, this.pageX, e);\n }\n this.isCMenu = false;\n }\n };\n // eslint:disable-next-line:max-func-body-length\n MenuBase.prototype.closeMenu = function (ulIndex, e, isIterated) {\n var _this = this;\n if (ulIndex === void 0) { ulIndex = 0; }\n if (e === void 0) { e = null; }\n if (this.isMenuVisible()) {\n var sli = void 0;\n var item_1;\n var wrapper_1 = this.getWrapper();\n var beforeCloseArgs = void 0;\n var items_1;\n var popups = this.getPopups();\n var isClose = false;\n var cnt = this.isMenu ? popups.length + 1 : wrapper_1.childElementCount;\n var ul_1 = this.isMenu && cnt !== 1 ? select('.e-ul', popups[cnt - 2])\n : selectAll('.e-menu-parent', wrapper_1)[cnt - 1];\n if (this.isMenu && ul_1.classList.contains('e-menu')) {\n sli = this.getLIByClass(ul_1, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n isClose = true;\n }\n if (!isClose) {\n var liElem_1 = e && e.target && this.getLI(e.target);\n if (liElem_1) {\n this.cli = liElem_1;\n }\n else {\n this.cli = ul_1.children[0];\n }\n item_1 = this.navIdx.length ? this.getItem(this.navIdx) : null;\n items_1 = item_1 ? item_1.items : this.items;\n beforeCloseArgs = { element: ul_1, parentItem: item_1, items: items_1, event: e, cancel: false, isFocused: true };\n this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n var popupEle;\n var closeArgs;\n var popupId = '';\n var popupObj;\n var isOpen = !observedCloseArgs.cancel;\n if (isOpen || _this.isCMenu) {\n if (_this.isMenu) {\n popupEle = closest(ul_1, '.' + POPUP);\n if (_this.hamburgerMode) {\n popupEle.parentElement.style.minHeight = '';\n closest(ul_1, '.e-menu-item').setAttribute('aria-expanded', 'false');\n }\n _this.unWireKeyboardEvent(popupEle);\n destroyScroll(getInstance(popupEle.children[0], VScroll), popupEle.children[0]);\n popupObj = getInstance(popupEle, Popup);\n popupObj.hide();\n popupId = popupEle.id;\n popupObj.destroy();\n detach(popupEle);\n }\n else {\n _this.isContextMenuClosed = false;\n _this.toggleAnimation(ul_1, false);\n }\n closeArgs = { element: ul_1, parentItem: item_1, items: items_1 };\n _this.trigger('onClose', closeArgs);\n _this.navIdx.pop();\n if (_this.navIdx.length === 0 && e && e.type === 'keyup') {\n _this.showSubMenu = false;\n }\n if (!_this.isMenu) {\n EventHandler.remove(ul_1, 'keydown', _this.keyHandler);\n if (_this.keyType === 'right') {\n _this.keyType = '';\n }\n }\n }\n _this.updateReactTemplate();\n var trgtliId;\n var closedLi;\n var trgtLi;\n var trgtpopUp = _this.getWrapper() && _this.getUlByNavIdx();\n if (_this.isCMenu) {\n if (_this.canOpen(e.target)) {\n _this.openMenu(null, null, _this.pageY, _this.pageX, e);\n }\n _this.isCMenu = false;\n }\n if (_this.isMenu && trgtpopUp && popupId.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n trgtliId = new regExp('(.*)-ej2menu-' + _this.element.id + '-popup').exec(popupId)[1];\n closedLi = trgtpopUp.querySelector('[id=\"' + trgtliId + '\"]');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n else if (trgtpopUp) {\n closedLi = trgtpopUp.querySelector('.e-menu-item.e-selected');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n var submenus = liElem_1 && liElem_1.querySelectorAll('.e-menu-item');\n if (isOpen && _this.hamburgerMode && ulIndex && !(submenus.length)) {\n _this.afterCloseMenu(e);\n }\n else if (isOpen && !_this.hamburgerMode && closedLi && !trgtLi && _this.keyType !== 'left' && (_this.navIdx.length || !_this.isMenu && _this.navIdx.length === 0)) {\n var ele = (e && e.target.classList && (e.target.classList.contains('e-vscroll') || e.target.classList.contains('e-scroll-nav')))\n ? closest(e.target, '.e-menu-wrapper') : null;\n if (ele) {\n ele = ele.querySelector('.e-menu-item');\n if (_this.showItemOnClick || (ele && _this.getIndex(ele.id, true).length <= _this.navIdx.length)) {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e, true);\n }\n }\n else {\n if (!(e && e.target.classList && e.target.classList.contains('e-nav-arrow'))) {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e);\n }\n }\n }\n else if (isOpen && !isIterated && !ulIndex && ((_this.hamburgerMode && _this.navIdx.length) ||\n _this.navIdx.length === 1 && liElem_1 && trgtpopUp !== liElem_1.parentElement)) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && isNullOrUndefined(ulIndex) && _this.navIdx.length) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && !_this.isMenu && !ulIndex && _this.navIdx.length === 0 &&\n !_this.isMenusClosed && !_this.isCmenuHover) {\n _this.isMenusClosed = true;\n _this.closeMenu(0, e);\n }\n else if (isOpen && _this.isMenu && e && e.target &&\n _this.navIdx.length !== 0 && closest(e.target, '.e-menu-parent.e-control')) {\n _this.closeMenu(0, e);\n }\n else if (isOpen && !_this.isMenu && selectAll('.e-menu-parent', wrapper_1)[ulIndex - 1] && e.which === 3) {\n _this.closeMenu(null, e);\n }\n else {\n if (isOpen && (_this.keyType === 'right' || _this.keyType === 'click')) {\n _this.afterCloseMenu(e);\n }\n else {\n var cul = _this.getUlByNavIdx();\n var sli_1 = _this.getLIByClass(cul, SELECTED);\n if (sli_1) {\n sli_1.setAttribute('aria-expanded', 'false');\n sli_1.classList.remove(SELECTED);\n if (observedCloseArgs.isFocused && liElem_1 || _this.keyType === 'left') {\n sli_1.classList.add(FOCUSED);\n if (!e.target || !e.target.classList.contains('e-edit-template')) {\n sli_1.focus();\n }\n }\n }\n if (!isOpen && _this.hamburgerMode && liElem_1 && liElem_1.getAttribute('aria-expanded') === 'false' &&\n liElem_1.getAttribute('aria-haspopup') === 'true') {\n if (closest(liElem_1, '.e-menu-parent.e-control')) {\n _this.navIdx = [];\n }\n else {\n _this.navIdx.pop();\n }\n _this.navIdx.push(_this.cliIdx);\n var item_2 = _this.getItem(_this.navIdx);\n liElem_1.setAttribute('aria-expanded', 'true');\n _this.openMenu(liElem_1, item_2, -1, -1, e);\n }\n }\n if (_this.navIdx.length < 1) {\n if (_this.showSubMenuOn === 'Hover' || _this.showSubMenuOn === 'Click') {\n _this.showItemOnClick = _this.defaultOption;\n _this.showSubMenuOn = 'Auto';\n }\n }\n }\n _this.removeStateWrapper();\n });\n }\n }\n };\n MenuBase.prototype.updateReactTemplate = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && this.template && this.navIdx.length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var portals = void 0;\n if (this.portals) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n portals = this.portals.splice(0, this.items.length);\n }\n this.clearTemplate(['template']);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.portals = portals;\n this.renderReactTemplates();\n }\n };\n MenuBase.prototype.getMenuItemModel = function (item, level) {\n if (isNullOrUndefined(item)) {\n return null;\n }\n if (isNullOrUndefined(level)) {\n level = 0;\n }\n var fields = this.getFields(level);\n return { text: item[fields.text], id: item[fields.id], items: item[fields.child], separator: item[fields.separator],\n iconCss: item[fields.iconCss], url: item[fields.url] };\n };\n MenuBase.prototype.getPopups = function () {\n var _this = this;\n var popups = [];\n [].slice.call(document.querySelectorAll('.' + POPUP)).forEach(function (elem) {\n if (!isNullOrUndefined(elem.querySelector('.' + ITEM)) && _this.getIndex(elem.querySelector('.' + ITEM).id, true).length) {\n popups.push(elem);\n }\n });\n return popups;\n };\n MenuBase.prototype.isMenuVisible = function () {\n return (this.navIdx.length > 0 || (this.element.classList.contains('e-contextmenu') && isVisible(this.element).valueOf()));\n };\n MenuBase.prototype.canOpen = function (target) {\n var canOpen = true;\n if (this.filter) {\n canOpen = false;\n var filter = this.filter.split(' ');\n for (var i = 0, len = filter.length; i < len; i++) {\n if (closest(target, '.' + filter[i])) {\n canOpen = true;\n break;\n }\n }\n }\n return canOpen;\n };\n MenuBase.prototype.openMenu = function (li, item, top, left, e, target) {\n var _this = this;\n if (top === void 0) { top = 0; }\n if (left === void 0) { left = 0; }\n if (e === void 0) { e = null; }\n if (target === void 0) { target = this.targetElement; }\n var wrapper = this.getWrapper();\n this.lItem = li;\n var elemId = this.element.id !== '' ? this.element.id : 'menu';\n this.isMenusClosed = false;\n if (isNullOrUndefined(top)) {\n top = -1;\n }\n if (isNullOrUndefined(left)) {\n left = -1;\n }\n if (li) {\n this.uList = this.createItems(item[this.getField('children', this.navIdx.length - 1)]);\n if (!this.isMenu && Browser.isDevice) {\n wrapper.lastChild.style.display = 'none';\n var data = {\n text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous'\n };\n var hdata = new MenuItem(this.items[0], 'items', data, true);\n var hli = this.createItems([hdata]).children[0];\n hli.classList.add(HEADER);\n this.uList.insertBefore(hli, this.uList.children[0]);\n }\n if (this.isMenu) {\n this.popupWrapper = this.createElement('div', {\n className: 'e-' + this.getModuleName() + '-wrapper ' + POPUP, id: li.id + '-ej2menu-' + elemId + '-popup'\n });\n if (this.hamburgerMode) {\n top = li.offsetHeight;\n li.appendChild(this.popupWrapper);\n }\n else {\n document.body.appendChild(this.popupWrapper);\n }\n this.isNestedOrVertical = this.element.classList.contains('e-vertical') || this.navIdx.length !== 1;\n this.popupObj = this.generatePopup(this.popupWrapper, this.uList, li, this.isNestedOrVertical);\n if (this.template) {\n this.renderReactTemplates();\n }\n if (this.hamburgerMode) {\n this.calculateIndentSize(this.uList, li);\n }\n else {\n if (this.cssClass) {\n addClass([this.popupWrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.popupObj.hide();\n }\n if (!this.hamburgerMode && !this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, 0, 0, 'menu'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, 0, 0, 'menu');\n }\n }\n else {\n this.uList.style.zIndex = this.element.style.zIndex;\n wrapper.appendChild(this.uList);\n if (!this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, top, left, 'none'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n }\n else {\n this.uList = this.element;\n this.uList.style.zIndex = getZindexPartial(target ? target : this.element).toString();\n if (isNullOrUndefined(e)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ev = document.createEvent('MouseEvents');\n ev.initEvent('click', true, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var targetEvent = this.copyObject(ev, {});\n targetEvent.target = targetEvent.srcElement = target;\n targetEvent.currentTarget = target;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.triggerBeforeOpen(li, this.uList, item, targetEvent, top, left, 'none');\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MenuBase.prototype.copyObject = function (source, destination) {\n // eslint-disable-next-line guard-for-in\n for (var prop in source) {\n destination[\"\" + prop] = source[\"\" + prop];\n }\n return destination;\n };\n MenuBase.prototype.calculateIndentSize = function (ul, li) {\n var liStyle = getComputedStyle(li);\n var liIndent = parseInt(liStyle.textIndent, 10);\n if (this.navIdx.length < 2 && !li.classList.contains('e-blankicon')) {\n liIndent *= 2;\n }\n else {\n liIndent += (liIndent / 4);\n }\n ul.style.textIndent = liIndent + 'px';\n var blankIconElem = ul.querySelectorAll('.e-blankicon');\n if (blankIconElem && blankIconElem.length) {\n var menuIconElem = ul.querySelector('.e-menu-icon');\n var menuIconElemStyle = getComputedStyle(menuIconElem);\n var blankIconIndent = (parseInt(menuIconElemStyle.marginRight, 10) + menuIconElem.offsetWidth + liIndent);\n for (var i = 0; i < blankIconElem.length; i++) {\n blankIconElem[i].style.textIndent = blankIconIndent + 'px';\n }\n }\n };\n MenuBase.prototype.generatePopup = function (popupWrapper, ul, li, isNestedOrVertical) {\n var _this = this;\n var popupObj = new Popup(popupWrapper, {\n actionOnScroll: this.hamburgerMode ? 'none' : 'reposition',\n relateTo: li,\n collision: this.hamburgerMode ? { X: 'none', Y: 'none' } : { X: isNestedOrVertical ||\n this.enableRtl ? 'none' : 'flip', Y: 'fit' },\n position: (isNestedOrVertical && !this.hamburgerMode) ? { X: 'right', Y: 'top' } : { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n enableRtl: this.enableRtl,\n content: ul,\n open: function () {\n var scrollEle = select('.e-menu-vscroll', popupObj.element);\n if (scrollEle) {\n scrollEle.style.height = 'inherit';\n scrollEle.style.maxHeight = '';\n }\n var ul = select('.e-ul', popupObj.element);\n popupObj.element.style.maxHeight = '';\n ul.focus();\n _this.triggerOpen(ul);\n }\n });\n return popupObj;\n };\n MenuBase.prototype.createHeaderContainer = function (wrapper) {\n wrapper = wrapper || this.getWrapper();\n var spanElem = this.createElement('span', { className: 'e-' + this.getModuleName() + '-header' });\n var tempTitle = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.title) : this.title;\n var spanTitle = this.createElement('span', {\n className: 'e-' + this.getModuleName() + '-title', innerHTML: tempTitle\n });\n var spanIcon = this.createElement('span', {\n className: 'e-icons e-' + this.getModuleName() + '-icon', attrs: { 'tabindex': '0' }\n });\n spanElem.appendChild(spanTitle);\n spanElem.appendChild(spanIcon);\n wrapper.insertBefore(spanElem, this.element);\n };\n MenuBase.prototype.openHamburgerMenu = function (e) {\n if (this.hamburgerMode) {\n this.triggerBeforeOpen(null, this.element, null, e, 0, 0, 'hamburger');\n }\n };\n MenuBase.prototype.closeHamburgerMenu = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.element, parentItem: null, event: e,\n items: this.items, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedHamburgerCloseArgs) {\n if (!observedHamburgerCloseArgs.cancel) {\n _this.closeMenu(null, e);\n _this.element.classList.add('e-hide-menu');\n _this.trigger('onClose', { element: _this.element, parentItem: null, items: _this.items });\n }\n });\n };\n MenuBase.prototype.callFit = function (element, x, y, top, left) {\n return fit(element, null, { X: x, Y: y }, { top: top, left: left });\n };\n MenuBase.prototype.triggerBeforeOpen = function (li, ul, item, e, top, left, type) {\n var _this = this;\n var items = li ? item[this.getField('children', this.navIdx.length - 1)] : this.items;\n var eventArgs = {\n element: ul, items: items, parentItem: item, event: e, cancel: false, top: top, left: left, showSubMenuOn: 'Auto'\n };\n var menuType = type;\n this.trigger('beforeOpen', eventArgs, function (observedOpenArgs) {\n switch (menuType) {\n case 'menu':\n if (!_this.hamburgerMode) {\n if (observedOpenArgs.showSubMenuOn !== 'Auto') {\n _this.showItemOnClick = !_this.defaultOption;\n _this.showSubMenuOn = observedOpenArgs.showSubMenuOn;\n }\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n }\n _this.popupWrapper.style.display = 'block';\n if (!_this.hamburgerMode) {\n _this.popupWrapper.style.maxHeight = _this.popupWrapper.getBoundingClientRect().height + 'px';\n if (_this.enableScrolling) {\n addScrolling(_this.createElement, _this.popupWrapper, _this.uList, 'vscroll', _this.enableRtl);\n }\n _this.checkScrollOffset(e);\n }\n if (!_this.hamburgerMode && !_this.left && !_this.top) {\n _this.popupObj.refreshPosition(_this.lItem, true);\n _this.left = parseInt(_this.popupWrapper.style.left, 10);\n _this.top = parseInt(_this.popupWrapper.style.top, 10);\n if (_this.enableRtl) {\n _this.left =\n _this.isNestedOrVertical ? _this.left - _this.popupWrapper.offsetWidth - _this.lItem.parentElement.offsetWidth + 2\n : _this.left - _this.popupWrapper.offsetWidth + _this.lItem.offsetWidth;\n }\n // eslint-disable-next-line\n if (_this.template && (_this.isReact || _this.isAngular)) {\n requestAnimationFrame(function () {\n _this.collision();\n _this.popupWrapper.style.display = '';\n });\n }\n else {\n _this.collision();\n _this.popupWrapper.style.display = '';\n }\n }\n else {\n _this.popupObj.collision = { X: 'none', Y: 'none' };\n _this.popupWrapper.style.display = '';\n }\n break;\n case 'none':\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n _this.isContextMenuClosed = true;\n break;\n case 'hamburger':\n if (!observedOpenArgs.cancel) {\n _this.element.classList.remove('e-hide-menu');\n _this.triggerOpen(_this.element);\n }\n break;\n }\n if (menuType !== 'hamburger') {\n if (observedOpenArgs.cancel) {\n if (_this.isMenu) {\n _this.popupObj.destroy();\n detach(_this.popupWrapper);\n }\n else if (ul.className.indexOf('e-ul') > -1) {\n detach(ul);\n }\n _this.navIdx.pop();\n }\n else {\n if (_this.isMenu) {\n if (_this.hamburgerMode) {\n _this.popupWrapper.style.top = _this.top + 'px';\n _this.popupWrapper.style.left = 0 + 'px';\n _this.toggleAnimation(_this.popupWrapper);\n }\n else {\n _this.setBlankIconStyle(_this.popupWrapper);\n _this.wireKeyboardEvent(_this.popupWrapper);\n rippleEffect(_this.popupWrapper, { selector: '.' + ITEM });\n _this.popupWrapper.style.left = _this.left + 'px';\n _this.popupWrapper.style.top = _this.top + 'px';\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n _this.popupObj.show(animationOptions, _this.lItem);\n }\n }\n else {\n _this.setBlankIconStyle(_this.uList);\n _this.setPosition(_this.lItem, _this.uList, _this.top, _this.left);\n _this.toggleAnimation(_this.uList);\n }\n }\n }\n if (_this.keyType === 'right') {\n var cul = _this.getUlByNavIdx();\n li.classList.remove(FOCUSED);\n if (_this.isMenu && _this.navIdx.length === 1) {\n _this.removeLIStateByClass([SELECTED], [_this.getWrapper()]);\n }\n li.classList.add(SELECTED);\n if (_this.action === ENTER) {\n var eventArgs_1 = { element: li, item: item, event: e };\n _this.trigger('select', eventArgs_1);\n }\n li.focus();\n cul = _this.getUlByNavIdx();\n var index = _this.isValidLI(cul.children[0], 0, _this.action);\n cul.children[index].classList.add(FOCUSED);\n cul.children[index].focus();\n }\n });\n };\n MenuBase.prototype.collision = function () {\n var collide;\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if ((this.isNestedOrVertical || this.enableRtl) && (collide.indexOf('right') > -1\n || collide.indexOf('left') > -1)) {\n this.popupObj.collision.X = 'none';\n var offWidth = closest(this.lItem, '.e-' + this.getModuleName() + '-wrapper').offsetWidth;\n this.left =\n this.enableRtl ? calculatePosition(this.lItem, this.isNestedOrVertical ? 'right' : 'left', 'top').left\n : this.left - this.popupWrapper.offsetWidth - offWidth + 2;\n }\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if (collide.indexOf('left') > -1 || collide.indexOf('right') > -1) {\n this.left = this.callFit(this.popupWrapper, true, false, this.top, this.left).left;\n }\n this.popupWrapper.style.left = this.left + 'px';\n };\n MenuBase.prototype.setBlankIconStyle = function (menu) {\n var blankIconList = [].slice.call(menu.getElementsByClassName('e-blankicon'));\n if (!blankIconList.length) {\n return;\n }\n var iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)');\n if (!iconLi) {\n return;\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n if (!icon) {\n return;\n }\n var cssProp = this.enableRtl ? { padding: 'paddingRight', margin: 'marginLeft' } :\n { padding: 'paddingLeft', margin: 'marginRight' };\n var iconCssProps = getComputedStyle(icon);\n var iconSize = parseInt(iconCssProps.fontSize, 10);\n if (!!parseInt(iconCssProps.width, 10) && parseInt(iconCssProps.width, 10) > iconSize) {\n iconSize = parseInt(iconCssProps.width, 10);\n }\n // eslint:disable\n var size = iconSize + parseInt(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n iconCssProps[cssProp.margin], 10) + parseInt(getComputedStyle(iconLi)[cssProp.padding], 10) + \"px\";\n blankIconList.forEach(function (li) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n li.style[cssProp.padding] = size;\n });\n // eslint:enable\n };\n MenuBase.prototype.checkScrollOffset = function (e) {\n var wrapper = this.getWrapper();\n if (wrapper.children[0].classList.contains('e-menu-hscroll') && this.navIdx.length === 1) {\n var trgt = isNullOrUndefined(e) ? this.element : closest(e.target, '.' + ITEM);\n var offsetEle = select('.e-hscroll-bar', wrapper);\n if (offsetEle.scrollLeft > trgt.offsetLeft) {\n offsetEle.scrollLeft -= (offsetEle.scrollLeft - trgt.offsetLeft);\n }\n var offsetLeft = offsetEle.scrollLeft + offsetEle.offsetWidth;\n var offsetRight = trgt.offsetLeft + trgt.offsetWidth;\n if (offsetLeft < offsetRight) {\n offsetEle.scrollLeft += (offsetRight - offsetLeft);\n }\n }\n };\n MenuBase.prototype.setPosition = function (li, ul, top, left) {\n var px = 'px';\n this.toggleVisiblity(ul);\n if (ul === this.element || (left > -1 && top > -1)) {\n var collide = isCollide(ul, null, left, top);\n if (collide.indexOf('right') > -1) {\n left = left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n var offset = this.callFit(ul, false, true, top, left);\n top = offset.top - 20;\n if (top < 0) {\n var newTop = (pageYOffset + document.documentElement.clientHeight) - ul.getBoundingClientRect().height;\n if (newTop > -1) {\n top = newTop;\n }\n }\n }\n collide = isCollide(ul, null, left, top);\n if (collide.indexOf('left') > -1) {\n var offset = this.callFit(ul, true, false, top, left);\n left = offset.left;\n }\n }\n else {\n if (Browser.isDevice) {\n top = Number(this.element.style.top.replace(px, ''));\n left = Number(this.element.style.left.replace(px, ''));\n }\n else {\n var x = this.enableRtl ? 'left' : 'right';\n var offset = calculatePosition(li, x, 'top');\n top = offset.top;\n left = offset.left;\n var collide = isCollide(ul, null, this.enableRtl ? left - ul.offsetWidth : left, top);\n var xCollision = collide.indexOf('left') > -1 || collide.indexOf('right') > -1;\n if (xCollision) {\n offset = calculatePosition(li, this.enableRtl ? 'right' : 'left', 'top');\n left = offset.left;\n }\n if (this.enableRtl || xCollision) {\n left = (this.enableRtl && xCollision) ? left : left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n offset = this.callFit(ul, false, true, top, left);\n top = offset.top;\n }\n }\n }\n this.toggleVisiblity(ul, false);\n ul.style.top = top + px;\n ul.style.left = left + px;\n };\n MenuBase.prototype.toggleVisiblity = function (ul, isVisible) {\n if (isVisible === void 0) { isVisible = true; }\n ul.style.visibility = isVisible ? 'hidden' : '';\n ul.style.display = isVisible ? 'block' : 'none';\n };\n MenuBase.prototype.createItems = function (items) {\n var _this = this;\n var level = this.navIdx ? this.navIdx.length : 0;\n var fields = this.getFields(level);\n var showIcon = this.hasField(items, this.getField('iconCss', level));\n var listBaseOptions = {\n showIcon: showIcon,\n moduleName: 'menu',\n fields: fields,\n template: this.template,\n itemNavigable: true,\n itemCreating: function (args) {\n if (!args.curData[args.fields[fields.id]]) {\n args.curData[args.fields[fields.id]] = getUniqueID('menuitem');\n }\n if (isNullOrUndefined(args.curData.htmlAttributes)) {\n args.curData.htmlAttributes = {};\n }\n if (Browser.isIE) {\n args.curData.htmlAttributes.role = 'menuitem';\n args.curData.htmlAttributes.tabindex = '-1';\n }\n else {\n Object.assign(args.curData.htmlAttributes, { role: 'menuitem', tabindex: '-1' });\n }\n if (_this.isMenu && !args.curData[_this.getField('separator', level)]) {\n args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?\n args.curData[args.fields.text] : args.curData[args.fields.id];\n }\n if (args.curData[args.fields[fields.iconCss]] === '') {\n args.curData[args.fields[fields.iconCss]] = null;\n }\n },\n itemCreated: function (args) {\n if (args.curData[_this.getField('separator', level)]) {\n args.item.classList.add(SEPARATOR);\n args.item.setAttribute('role', 'separator');\n }\n if (showIcon && !args.curData[args.fields.iconCss]\n && !args.curData[_this.getField('separator', level)]) {\n args.item.classList.add('e-blankicon');\n }\n if (args.curData[args.fields.child]\n && args.curData[args.fields.child].length) {\n var span = _this.createElement('span', { className: ICONS + ' ' + CARET });\n args.item.appendChild(span);\n args.item.setAttribute('aria-haspopup', 'true');\n args.item.setAttribute('aria-expanded', 'false');\n args.item.classList.add('e-menu-caret-icon');\n }\n if (_this.isMenu && _this.template) {\n args.item.setAttribute('id', args.curData[args.fields.id].toString());\n args.item.removeAttribute('data-uid');\n if (args.item.classList.contains('e-level-1')) {\n args.item.classList.remove('e-level-1');\n }\n if (args.item.classList.contains('e-has-child')) {\n args.item.classList.remove('e-has-child');\n }\n args.item.removeAttribute('aria-level');\n }\n var eventArgs = { item: args.curData, element: args.item };\n _this.trigger('beforeItemRender', eventArgs);\n }\n };\n this.setProperties({ 'items': this.items }, true);\n if (this.isMenu) {\n listBaseOptions.templateID = this.element.id + TEMPLATE_PROPERTY;\n }\n var ul = ListBase.createList(this.createElement, items, listBaseOptions, !this.template, this);\n ul.setAttribute('tabindex', '0');\n if (this.isMenu) {\n ul.setAttribute('role', 'menu');\n }\n else {\n ul.setAttribute('role', 'menubar');\n }\n return ul;\n };\n MenuBase.prototype.moverHandler = function (e) {\n var trgt = e.target;\n this.liTrgt = trgt;\n if (!this.isMenu) {\n this.isCmenuHover = true;\n }\n var cli = this.getLI(trgt);\n var wrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : this.getWrapper();\n var hdrWrapper = this.getWrapper();\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var ulId;\n var isDifferentElem = false;\n if (!wrapper) {\n return;\n }\n if (wrapper.id !== '') {\n ulId = regex.exec(wrapper.id)[1];\n }\n else {\n ulId = wrapper.querySelector('ul').id;\n }\n if (ulId !== this.element.id) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [this.getWrapper()]);\n if (this.navIdx.length) {\n isDifferentElem = true;\n }\n else {\n return;\n }\n }\n if (cli && closest(cli, '.e-' + this.getModuleName() + '-wrapper') && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [wrapper].concat(this.getPopups()) : [wrapper]);\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [hdrWrapper].concat(this.getPopups()) : [hdrWrapper]);\n cli.classList.add(FOCUSED);\n if (!this.showItemOnClick) {\n this.clickHandler(e);\n }\n }\n else if (this.isMenu && this.showItemOnClick && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n }\n if (this.isMenu) {\n if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))\n && (!cli || (cli && !this.getIndex(cli.id, true).length)) && this.showSubMenuOn !== 'Hover') {\n this.removeLIStateByClass([FOCUSED], [wrapper]);\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n else if (isDifferentElem && !this.showItemOnClick) {\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n if (!this.isClosed) {\n this.removeStateWrapper();\n }\n this.isClosed = false;\n }\n if (!this.isMenu) {\n this.isCmenuHover = false;\n }\n };\n MenuBase.prototype.removeStateWrapper = function () {\n if (this.liTrgt) {\n var wrapper = closest(this.liTrgt, '.e-menu-vscroll');\n if (this.liTrgt.tagName === 'DIV' && wrapper) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);\n }\n }\n };\n MenuBase.prototype.removeLIStateByClass = function (classList, element) {\n var li;\n var _loop_1 = function (i) {\n classList.forEach(function (className) {\n li = select('.' + className, element[i]);\n if (li) {\n li.classList.remove(className);\n }\n });\n };\n for (var i = 0; i < element.length; i++) {\n _loop_1(i);\n }\n };\n MenuBase.prototype.getField = function (propName, level) {\n if (level === void 0) { level = 0; }\n var fieldName = this.fields[\"\" + propName];\n return typeof fieldName === 'string' ? fieldName :\n (!fieldName[level] ? fieldName[fieldName.length - 1].toString()\n : fieldName[level].toString());\n };\n MenuBase.prototype.getFields = function (level) {\n if (level === void 0) { level = 0; }\n return {\n id: this.getField('itemId', level),\n iconCss: this.getField('iconCss', level),\n text: this.getField('text', level),\n url: this.getField('url', level),\n child: this.getField('children', level),\n separator: this.getField('separator', level)\n };\n };\n MenuBase.prototype.hasField = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n MenuBase.prototype.menuHeaderClickHandler = function (e) {\n var menuWrapper = closest(e.target, '.e-menu-wrapper');\n if (menuWrapper && menuWrapper.querySelector('ul.e-menu-parent').id !== this.element.id) {\n return;\n }\n if (this.element.className.indexOf('e-hide-menu') > -1) {\n this.openHamburgerMenu(e);\n }\n else {\n this.closeHamburgerMenu(e);\n }\n };\n MenuBase.prototype.clickHandler = function (e) {\n this.isTapHold = this.isTapHold ? false : this.isTapHold;\n var wrapper = this.getWrapper();\n var trgt = e.target;\n var cli = this.cli = this.getLI(trgt);\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;\n var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0\n : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);\n if (Browser.isDevice && this.isMenu) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n this.mouseDownHandler(e);\n }\n if (cli && cliWrapper && this.isMenu) {\n var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;\n if (this.element.id !== cliWrapperId) {\n return;\n }\n }\n if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {\n this.setLISelected(cli);\n var navIdx = this.getIndex(cli.id, true);\n var item = this.getItem(navIdx);\n var eventArgs = { element: cli, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {\n var ul = void 0;\n if (cli.classList.contains(HEADER)) {\n ul = wrapper.children[this.navIdx.length - 1];\n this.toggleAnimation(ul);\n var sli = this.getLIByClass(ul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n detach(cli.parentNode);\n this.navIdx.pop();\n }\n else {\n if (!cli.classList.contains(SEPARATOR)) {\n this.showSubMenu = true;\n var cul = cli.parentNode;\n if (isNullOrUndefined(cul)) {\n return;\n }\n this.cliIdx = this.getIdx(cul, cli);\n if (this.isMenu || !Browser.isDevice) {\n var culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))\n : this.getIdx(wrapper, cul);\n if (this.navIdx[culIdx] === this.cliIdx) {\n this.showSubMenu = false;\n }\n if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n this.isClosed = true;\n this.keyType = 'click';\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n if (!this.isMenu) {\n this.isCmenuHover = true;\n }\n }\n this.closeMenu(culIdx + 1, e);\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n if (!this.isMenu) {\n this.isCmenuHover = false;\n }\n }\n }\n }\n if (!this.isClosed) {\n this.afterCloseMenu(e);\n }\n this.isClosed = false;\n }\n }\n }\n else {\n if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {\n var popupEle = closest(trgt, '.' + POPUP);\n var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;\n if (cIdx < this.navIdx.length) {\n this.closeMenu(cIdx + 1, e);\n if (popupEle) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);\n }\n }\n }\n else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'\n && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&\n !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {\n if (!cli) {\n this.removeLIStateByClass([SELECTED], [wrapper]);\n }\n if (!this.isAnimationNone && !cli || (cli && !cli.querySelector('.' + CARET))) {\n if (navigator.platform.toUpperCase().indexOf('MAC') < 0 || (navigator.platform.toUpperCase().indexOf('MAC') >= 0 && !e.ctrlKey)) {\n this.closeMenu(null, e);\n }\n }\n }\n }\n }\n };\n MenuBase.prototype.afterCloseMenu = function (e) {\n if (isNullOrUndefined(e)) {\n return;\n }\n var isHeader;\n if (this.showSubMenu) {\n if (this.showItemOnClick && this.navIdx.length === 0) {\n isHeader = closest(e.target, '.e-menu-parent.e-control');\n }\n else {\n isHeader = closest(this.element, '.e-menu-parent.e-control');\n }\n var idx = this.navIdx.concat(this.cliIdx);\n var item = this.getItem(idx);\n if (item && item[this.getField('children', idx.length - 1)] &&\n item[this.getField('children', idx.length - 1)].length) {\n if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {\n this.setLISelected(this.cli);\n }\n if ((!this.hamburgerMode && isHeader) || (this.hamburgerMode && this.cli.getAttribute('aria-expanded') === 'false')) {\n this.cli.setAttribute('aria-expanded', 'true');\n this.navIdx.push(this.cliIdx);\n this.openMenu(this.cli, item, null, null, e);\n }\n }\n else {\n if (e.type !== 'mouseover') {\n this.closeMenu(null, e);\n }\n }\n if (!isHeader) {\n var cul = this.getUlByNavIdx();\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.setAttribute('aria-expanded', 'false');\n sli.classList.remove(SELECTED);\n }\n }\n }\n this.keyType = '';\n };\n MenuBase.prototype.setLISelected = function (li) {\n var sli = this.getLIByClass(li.parentElement, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n if (!this.isMenu) {\n li.classList.remove(FOCUSED);\n }\n li.classList.add(SELECTED);\n };\n MenuBase.prototype.getLIByClass = function (ul, classname) {\n if (ul && ul.children) {\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains(classname)) {\n return ul.children[i];\n }\n }\n }\n return null;\n };\n /**\n * This method is used to get the index of the menu item in the Menu based on the argument.\n *\n * @param {MenuItem | string} item - item be passed to get the index | id to be passed to get the item index.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.getItemIndex = function (item, isUniqueId) {\n var idx;\n if (typeof item === 'string') {\n idx = item;\n }\n else {\n idx = item.id;\n }\n var isText = (isUniqueId === false) ? false : true;\n var navIdx = this.getIndex(idx, isText);\n return navIdx;\n };\n /**\n * This method is used to set the menu item in the Menu based on the argument.\n *\n * @param {MenuItem} item - item need to be updated.\n * @param {string} id - id / text to be passed to update the item.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.setItem = function (item, id, isUniqueId) {\n var idx;\n if (isUniqueId) {\n idx = id ? id : item.id;\n }\n else {\n idx = id ? id : item.text;\n }\n var navIdx = this.getIndex(idx, isUniqueId);\n var newItem = this.getItem(navIdx);\n Object.assign(newItem, item);\n };\n MenuBase.prototype.getItem = function (navIdx) {\n navIdx = navIdx.slice();\n var idx = navIdx.pop();\n var items = this.getItems(navIdx);\n return items[idx];\n };\n MenuBase.prototype.getItems = function (navIdx) {\n var items = this.items;\n for (var i = 0; i < navIdx.length; i++) {\n items = items[navIdx[i]][this.getField('children', i)];\n }\n return items;\n };\n MenuBase.prototype.setItems = function (newItems, navIdx) {\n var items = this.getItems(navIdx);\n items.splice(0, items.length);\n for (var i = 0; i < newItems.length; i++) {\n items.splice(i, 0, newItems[i]);\n }\n };\n MenuBase.prototype.getIdx = function (ul, li, skipHdr) {\n if (skipHdr === void 0) { skipHdr = true; }\n var idx = Array.prototype.indexOf.call(ul.children, li);\n if (skipHdr && ul.children[0].classList.contains(HEADER)) {\n idx--;\n }\n return idx;\n };\n MenuBase.prototype.getLI = function (elem) {\n if (elem.tagName === 'LI' && elem.classList.contains('e-menu-item')) {\n return elem;\n }\n return closest(elem, 'li.e-menu-item');\n };\n MenuBase.prototype.updateItemsByNavIdx = function () {\n var items = this.items;\n var count = 0;\n for (var index = 0; index < this.navIdx.length; index++) {\n items = items[index].items;\n if (!items) {\n break;\n }\n count++;\n var ul = this.getUlByNavIdx(count);\n if (!ul) {\n break;\n }\n this.updateItem(ul, items);\n }\n };\n MenuBase.prototype.removeChildElement = function (elem) {\n while (elem.firstElementChild) {\n elem.removeChild(elem.firstElementChild);\n }\n return elem;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuBaseModel} newProp - Specifies the new properties\n * @param {MenuBaseModel} oldProp - Specifies the old properties\n * @returns {void}\n */\n MenuBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n var wrapper = this.getWrapper();\n var _loop_2 = function (prop) {\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (this_1.enableRtl) {\n wrapper.classList.add(RTL);\n }\n else {\n wrapper.classList.remove(RTL);\n }\n break;\n case 'showItemOnClick':\n this_1.unWireEvents();\n this_1.showItemOnClick = newProp.showItemOnClick;\n this_1.wireEvents();\n break;\n case 'enableScrolling':\n if (newProp.enableScrolling) {\n var ul_2;\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n this_1.getPopups().forEach(function (wrapper) {\n ul_2 = select('.e-ul', wrapper);\n addScrolling(_this.createElement, wrapper, ul_2, 'vscroll', _this.enableRtl);\n });\n }\n else {\n var ul_3 = wrapper.children[0];\n if (this_1.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n }\n else {\n destroyScroll(getInstance(ul_3, HScroll), ul_3);\n }\n wrapper.style.overflow = '';\n wrapper.appendChild(this_1.element);\n this_1.getPopups().forEach(function (wrapper) {\n ul_3 = wrapper.children[0];\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n wrapper.style.overflow = '';\n });\n }\n break;\n case 'items': {\n var idx = void 0;\n var navIdx = void 0;\n var item = void 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this_1.isReact && this_1.template) {\n this_1.clearTemplate(['template']);\n }\n if (!Object.keys(oldProp.items).length) {\n this_1.updateItem(this_1.element, this_1.items);\n if (this_1.enableScrolling && this_1.element.parentElement.classList.contains('e-custom-scroll')) {\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n }\n if (!this_1.hamburgerMode) {\n for (var i = 1, count = wrapper.childElementCount; i < count; i++) {\n detach(wrapper.lastElementChild);\n }\n }\n this_1.navIdx = [];\n }\n else {\n var keys = Object.keys(newProp.items);\n for (var i = 0; i < keys.length; i++) {\n navIdx = this_1.getChangedItemIndex(newProp, [], Number(keys[i]));\n if (navIdx.length <= this_1.getWrapper().children.length) {\n idx = navIdx.pop();\n item = this_1.getItems(navIdx);\n this_1.insertAfter([item[idx]], item[idx].text);\n this_1.removeItem(item, navIdx, idx);\n this_1.setItems(item, navIdx);\n }\n navIdx.length = 0;\n }\n }\n break;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_2(prop);\n }\n };\n MenuBase.prototype.updateItem = function (ul, items) {\n if (isBlazor() && !this.isMenu) {\n ul = this.removeChildElement(ul);\n }\n else {\n if (this.enableScrolling) {\n var wrapper1 = this.getWrapper();\n var ul1 = wrapper1.children[0];\n if (this.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul1, VScroll), ul1);\n }\n else {\n destroyScroll(getInstance(ul1, HScroll), ul1);\n }\n }\n ul.innerHTML = '';\n }\n var lis = [].slice.call(this.createItems(items).children);\n lis.forEach(function (li) {\n ul.appendChild(li);\n });\n };\n MenuBase.prototype.getChangedItemIndex = function (newProp, index, idx) {\n index.push(idx);\n var key = Object.keys(newProp.items[idx]).pop();\n if (key === 'items') {\n var item = newProp.items[idx];\n var popStr = Object.keys(item.items).pop();\n if (popStr) {\n this.getChangedItemIndex(item, index, Number(popStr));\n }\n }\n else {\n if (key === 'isParentArray' && index.length > 1) {\n index.pop();\n }\n }\n return index;\n };\n MenuBase.prototype.removeItem = function (item, navIdx, idx) {\n item.splice(idx, 1);\n var uls = this.getWrapper().children;\n if (navIdx.length < uls.length) {\n detach(uls[navIdx.length].children[idx]);\n }\n };\n /**\n * Used to unwire the bind events.\n *\n * @private\n * @param {string} targetSelctor - Specifies the target selector\n * @returns {void}\n */\n MenuBase.prototype.unWireEvents = function (targetSelctor) {\n if (targetSelctor === void 0) { targetSelctor = this.target; }\n var wrapper = this.getWrapper();\n if (targetSelctor) {\n var target = void 0;\n var touchModule = void 0;\n var targetElems = selectAll(targetSelctor);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.remove(target, 'click', this.menuHeaderClickHandler);\n }\n else {\n if (Browser.isIos) {\n touchModule = getInstance(target, Touch);\n if (touchModule) {\n touchModule.destroy();\n }\n }\n else {\n EventHandler.remove(target, 'contextmenu', this.cmenuHandler);\n }\n }\n }\n if (!this.isMenu) {\n EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollHandler);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);\n EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);\n if (!this.isMenu && !this.target) {\n EventHandler.remove(document, 'scroll', this.scrollHandler);\n }\n }\n EventHandler.remove(document, 'click', this.delegateClickHandler);\n this.unWireKeyboardEvent(wrapper);\n this.rippleFn();\n };\n MenuBase.prototype.unWireKeyboardEvent = function (element) {\n var keyboardModule = getInstance(element, KeyboardEvents);\n if (keyboardModule) {\n keyboardModule.destroy();\n }\n };\n MenuBase.prototype.toggleAnimation = function (ul, isMenuOpen) {\n var _this = this;\n if (isMenuOpen === void 0) { isMenuOpen = true; }\n var pUlHeight;\n var pElement;\n if (this.animationSettings.effect === 'None' || !isMenuOpen) {\n if (this.hamburgerMode && ul) {\n ul.style.top = '0px';\n }\n this.isAnimationNone = this.animationSettings.effect === 'None';\n this.end(ul, isMenuOpen);\n }\n else {\n this.animation.animate(ul, {\n name: this.animationSettings.effect,\n duration: this.animationSettings.duration,\n timingFunction: this.animationSettings.easing,\n begin: function (options) {\n if (_this.hamburgerMode) {\n pElement = options.element.parentElement;\n options.element.style.position = 'absolute';\n if (pElement) {\n pUlHeight = pElement.offsetHeight;\n }\n options.element.style.maxHeight = options.element.offsetHeight + 'px';\n if (pElement) {\n pElement.style.maxHeight = '';\n }\n }\n else {\n options.element.style.display = 'block';\n options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px';\n }\n },\n progress: function (options) {\n if (_this.hamburgerMode && pElement) {\n pElement.style.minHeight = (pUlHeight + options.element.offsetHeight) + 'px';\n }\n },\n end: function (options) {\n if (_this.hamburgerMode) {\n options.element.style.position = '';\n options.element.style.maxHeight = '';\n if (pElement) {\n pElement.style.minHeight = '';\n }\n options.element.style.top = 0 + 'px';\n options.element.children[0].focus();\n _this.triggerOpen(options.element.children[0]);\n }\n else {\n _this.end(options.element, isMenuOpen);\n }\n }\n });\n }\n };\n MenuBase.prototype.triggerOpen = function (ul) {\n var item = this.navIdx.length ? this.getItem(this.navIdx) : null;\n var eventArgs = {\n element: ul, parentItem: item, items: item ? item.items : this.items\n };\n this.trigger('onOpen', eventArgs);\n if (!this.isMenu) {\n EventHandler.add(ul, 'keydown', this.keyHandler, this);\n }\n };\n MenuBase.prototype.end = function (ul, isMenuOpen) {\n if (isMenuOpen && (this.isMenu || (!this.isMenu && this.isContextMenuClosed))) {\n if (this.isMenu || !Browser.isDevice) {\n ul.style.display = 'block';\n }\n ul.style.maxHeight = '';\n this.triggerOpen(ul);\n if (ul.querySelector('.' + FOCUSED)) {\n ul.querySelector('.' + FOCUSED).focus();\n }\n else {\n var ele = this.getWrapper().children[this.getIdx(this.getWrapper(), ul) - 1];\n if (this.currentTarget) {\n if (!(this.currentTarget.classList.contains('e-numerictextbox') || this.currentTarget.classList.contains('e-textbox') || this.currentTarget.tagName === 'INPUT')) {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n else {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n }\n else {\n if (ul === this.element) {\n var fli = this.getLIByClass(this.element, FOCUSED);\n if (fli) {\n fli.classList.remove(FOCUSED);\n }\n var sli = this.getLIByClass(this.element, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n ul.style.display = 'none';\n this.isAnimationNone = false;\n }\n else {\n detach(ul);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n MenuBase.prototype.getPersistData = function () {\n return '';\n };\n /**\n * Get wrapper element.\n *\n * @returns {Element} - Wrapper element\n * @private\n */\n MenuBase.prototype.getWrapper = function () {\n return closest(this.element, '.e-' + this.getModuleName() + '-wrapper');\n };\n MenuBase.prototype.getIndex = function (data, isUniqueId, items, nIndex, isCallBack, level) {\n if (items === void 0) { items = this.items; }\n if (nIndex === void 0) { nIndex = []; }\n if (isCallBack === void 0) { isCallBack = false; }\n if (level === void 0) { level = 0; }\n var item;\n level = isCallBack ? level + 1 : 0;\n for (var i = 0, len = items.length; i < len; i++) {\n item = items[i];\n if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) {\n nIndex.push(i);\n break;\n }\n else if (item[this.getField('children', level)]\n && item[this.getField('children', level)].length) {\n nIndex = this.getIndex(data, isUniqueId, item[this.getField('children', level)], nIndex, true, level);\n if (nIndex[nIndex.length - 1] === -1) {\n if (i !== len - 1) {\n nIndex.pop();\n }\n }\n else {\n nIndex.unshift(i);\n break;\n }\n }\n else {\n if (i === len - 1) {\n nIndex.push(-1);\n }\n }\n }\n return (!isCallBack && nIndex[0] === -1) ? [] : nIndex;\n };\n /**\n * This method is used to enable or disable the menu items in the Menu based on the items and enable argument.\n *\n * @param {string[]} items - Text items that needs to be enabled/disabled.\n * @param {boolean} enable - Set `true`/`false` to enable/disable the list items.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.enableItems = function (items, enable, isUniqueId) {\n if (enable === void 0) { enable = true; }\n var ul;\n var idx;\n var navIdx;\n var disabled = DISABLED;\n var skipItem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n if (this.navIdx.length) {\n if (navIdx.length !== 1) {\n skipItem = false;\n for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) {\n if (navIdx[i_1] !== this.navIdx[i_1]) {\n skipItem = true;\n break;\n }\n }\n if (skipItem) {\n continue;\n }\n }\n }\n else {\n if (navIdx.length !== 1) {\n continue;\n }\n }\n idx = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul && !isNullOrUndefined(idx)) {\n if (enable) {\n if (this.isMenu) {\n ul.children[idx].classList.remove(disabled);\n ul.children[idx].removeAttribute('aria-disabled');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.remove(disabled);\n }\n else {\n ul.children[idx].classList.remove(disabled);\n }\n }\n }\n else {\n if (this.isMenu) {\n ul.children[idx].classList.add(disabled);\n ul.children[idx].setAttribute('aria-disabled', 'true');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.add(disabled);\n }\n else {\n ul.children[idx].classList.add(disabled);\n }\n }\n }\n }\n }\n };\n /**\n * This method is used to show the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be shown.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.showItems = function (items, isUniqueId) {\n this.showHideItems(items, false, isUniqueId);\n };\n /**\n * This method is used to hide the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be hidden.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.hideItems = function (items, isUniqueId) {\n this.showHideItems(items, true, isUniqueId);\n };\n MenuBase.prototype.showHideItems = function (items, ishide, isUniqueId) {\n var ul;\n var index;\n var navIdx;\n var item;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n index = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n item = this.getItems(navIdx);\n if (ul) {\n var validUl = isUniqueId ? ul.children[index].id : item[index].text.toString();\n if (ishide && validUl === items[i]) {\n ul.children[index].classList.add(HIDE);\n }\n else if (!ishide && validUl === items[i]) {\n ul.children[index].classList.remove(HIDE);\n }\n }\n }\n };\n /**\n * It is used to remove the menu items from the Menu based on the items text.\n *\n * @param {string[]} items Text items that needs to be removed.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.removeItems = function (items, isUniqueId) {\n var idx;\n var navIdx;\n var iitems;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n if (!isNullOrUndefined(idx)) {\n this.removeItem(iitems, navIdx, idx);\n }\n }\n };\n /**\n * It is used to insert the menu items after the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item after that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertAfter = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId);\n };\n /**\n * It is used to insert the menu items before the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item before that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertBefore = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId, false);\n };\n MenuBase.prototype.insertItems = function (items, text, isUniqueId, isAfter) {\n if (isAfter === void 0) { isAfter = true; }\n var li;\n var idx;\n var navIdx;\n var iitems;\n var menuitem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(text, isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n menuitem = new MenuItem(iitems[0], 'items', items[i], true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n menuitem.parentObj = iitems[0].parentObj;\n iitems.splice(isAfter ? idx + 1 : idx, 0, menuitem);\n var uls = this.isMenu ? [this.getWrapper()].concat(this.getPopups()) : [].slice.call(this.getWrapper().children);\n if (!isNullOrUndefined(idx) && navIdx.length < uls.length) {\n idx = isAfter ? idx + 1 : idx;\n li = this.createItems(iitems).children[idx];\n var ul = this.isMenu ? select('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length];\n ul.insertBefore(li, ul.children[idx]);\n if (i === items.length - 1 && !this.isMenu && ul.style.display === 'block') {\n this.setPosition(null, ul, parseFloat(ul.style.top), parseFloat(ul.style.left));\n ul.style.display = 'block';\n }\n }\n }\n };\n MenuBase.prototype.removeAttributes = function () {\n var _this = this;\n ['top', 'left', 'display', 'z-index'].forEach(function (key) {\n _this.element.style.removeProperty(key);\n });\n ['role', 'tabindex', 'class', 'style'].forEach(function (key) {\n if (key === 'class' && _this.element.classList.contains('e-menu-parent')) {\n _this.element.classList.remove('e-menu-parent');\n }\n if (['class', 'style'].indexOf(key) === -1 || !_this.element.getAttribute(key)) {\n _this.element.removeAttribute(key);\n }\n if (_this.isMenu && key === 'class' && _this.element.classList.contains('e-vertical')) {\n _this.element.classList.remove('e-vertical');\n }\n });\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n MenuBase.prototype.destroy = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n this.unWireEvents();\n if (!this.isMenu) {\n this.clonedElement.style.display = '';\n if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') {\n addClass([this.clonedElement], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.element = this.clonedElement;\n }\n else {\n if (this.refreshing && this.clonedElement.childElementCount && this.clonedElement.children[0].tagName === 'LI') {\n this.setProperties({ 'items': [] }, true);\n }\n if (document.getElementById(this.clonedElement.id)) {\n var refEle = this.clonedElement.nextElementSibling;\n if (refEle && refEle !== wrapper) {\n this.clonedElement.parentElement.insertBefore(this.element, refEle);\n }\n else {\n this.clonedElement.parentElement.appendChild(this.element);\n }\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n append([].slice.call(this.clonedElement.children), this.element);\n detach(this.clonedElement);\n this.removeAttributes();\n }\n }\n this.clonedElement = null;\n }\n else {\n this.closeMenu();\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n this.removeAttributes();\n wrapper.parentNode.insertBefore(this.element, wrapper);\n this.clonedElement = null;\n }\n detach(wrapper);\n _super.prototype.destroy.call(this);\n if (this.template) {\n this.clearTemplate(['template']);\n }\n }\n this.rippleFn = null;\n };\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"created\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], MenuBase.prototype, \"hoverDelay\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"showItemOnClick\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"filter\", void 0);\n __decorate([\n Property(null)\n ], MenuBase.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(true)\n ], MenuBase.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], MenuBase.prototype, \"fields\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuBase.prototype, \"items\", void 0);\n __decorate([\n Complex({ duration: 400, easing: 'ease', effect: 'SlideDown' }, MenuAnimationSettings)\n ], MenuBase.prototype, \"animationSettings\", void 0);\n MenuBase = __decorate([\n NotifyPropertyChanges\n ], MenuBase);\n return MenuBase;\n}(Component));\nexport { MenuBase };\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var ColumnsDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-columns';\n }\n }\n});\nexport var ColumnsPlugin = {\n name: 'e-columns',\n install: function (Vue) {\n Vue.component(ColumnsPlugin.name, ColumnsDirective);\n }\n};\n/**\n * `e-column` directive represent a column of the VueJS QueryBuilder.\n * It must be contained in a QueryBuilder component(`ejs-querybuilder`).\n * ```vue\n * \n * \n * \n * \n * \n * \n * ```\n */\nexport var ColumnDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-column';\n }\n }\n});\nexport var ColumnPlugin = {\n name: 'e-column',\n install: function (Vue) {\n Vue.component(ColumnPlugin.name, ColumnDirective);\n }\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n try {\n var result = state.done ? undefined : state.nextHandler();\n return createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, getUniqueID, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nimport { MenuBase, MenuItem } from '../common/menu-base';\n/**\n * The ContextMenu is a graphical user interface that appears on the user right click/touch hold operation.\n * ```html\n *
\n *
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar ContextMenu = /** @class */ (function (_super) {\n __extends(ContextMenu, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {ContextMenuModel} options - Specifies the context menu model\n * @param {string} element - Specifies the element\n */\n function ContextMenu(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.preRender = function () {\n this.isMenu = false;\n this.element.id = this.element.id || getUniqueID('ej2-contextmenu');\n _super.prototype.preRender.call(this);\n };\n ContextMenu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n this.element.style.zIndex = getZindexPartial(this.element).toString();\n };\n /**\n * This method is used to open the ContextMenu in specified position.\n *\n * @param {number} top - To specify ContextMenu vertical positioning.\n * @param {number} left - To specify ContextMenu horizontal positioning.\n * @param {HTMLElement} target - To calculate z-index for ContextMenu based upon the specified target.\n * @function open\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n _super.prototype.openMenu.call(this, null, null, top, left, null, target);\n };\n /**\n * Closes the ContextMenu if it is opened.\n *\n * @function close\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n _super.prototype.closeMenu.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {ContextMenuModel} newProp - Specifies new properties\n * @param {ContextMenuModel} oldProp - Specifies old properties\n * @returns {void}\n */\n ContextMenu.prototype.onPropertyChanged = function (newProp, oldProp) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'filter':\n this.close();\n this.filter = newProp.filter;\n break;\n case 'target':\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n break;\n }\n }\n };\n /**\n * Get module name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ContextMenu.prototype.getModuleName = function () {\n return 'contextmenu';\n };\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"filter\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], ContextMenu.prototype, \"items\", void 0);\n ContextMenu = __decorate([\n NotifyPropertyChanges\n ], ContextMenu);\n return ContextMenu;\n}(MenuBase));\nexport { ContextMenu };\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\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\nmodule.exports = mapToArray;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { Fetch } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Predicate, Query } from './query';\nimport { ODataAdaptor, JsonAdaptor, CacheAdaptor, RemoteSaveAdaptor, CustomDataAdaptor } from './adaptors';\n/**\n * DataManager is used to manage and manipulate relational data.\n */\nvar DataManager = /** @class */ (function () {\n /**\n * Constructor for DataManager class\n *\n * @param {DataOptions|JSON[]} dataSource?\n * @param {Query} query?\n * @param {AdaptorOptions|string} adaptor?\n * @param dataSource\n * @param query\n * @param adaptor\n * @hidden\n */\n function DataManager(dataSource, query, adaptor) {\n var _this = this;\n /** @hidden */\n this.dateParse = true;\n /** @hidden */\n this.timeZoneHandling = true;\n this.persistQuery = {};\n this.isInitialLoad = false;\n this.requests = [];\n this.isInitialLoad = true;\n if (!dataSource && !this.dataSource) {\n dataSource = [];\n }\n adaptor = adaptor || dataSource.adaptor;\n if (dataSource && dataSource.timeZoneHandling === false) {\n this.timeZoneHandling = dataSource.timeZoneHandling;\n }\n var data;\n if (dataSource instanceof Array) {\n data = {\n json: dataSource,\n offline: true\n };\n }\n else if (typeof dataSource === 'object') {\n if (!dataSource.json) {\n dataSource.json = [];\n }\n if (!dataSource.enablePersistence) {\n dataSource.enablePersistence = false;\n }\n if (!dataSource.id) {\n dataSource.id = '';\n }\n if (!dataSource.ignoreOnPersist) {\n dataSource.ignoreOnPersist = [];\n }\n data = {\n url: dataSource.url,\n insertUrl: dataSource.insertUrl,\n removeUrl: dataSource.removeUrl,\n updateUrl: dataSource.updateUrl,\n crudUrl: dataSource.crudUrl,\n batchUrl: dataSource.batchUrl,\n json: dataSource.json,\n headers: dataSource.headers,\n accept: dataSource.accept,\n data: dataSource.data,\n timeTillExpiration: dataSource.timeTillExpiration,\n cachingPageSize: dataSource.cachingPageSize,\n enableCaching: dataSource.enableCaching,\n requestType: dataSource.requestType,\n key: dataSource.key,\n crossDomain: dataSource.crossDomain,\n jsonp: dataSource.jsonp,\n dataType: dataSource.dataType,\n offline: dataSource.offline !== undefined ? dataSource.offline\n : dataSource.adaptor instanceof RemoteSaveAdaptor || dataSource.adaptor instanceof CustomDataAdaptor ?\n false : dataSource.url ? false : true,\n requiresFormat: dataSource.requiresFormat,\n enablePersistence: dataSource.enablePersistence,\n id: dataSource.id,\n ignoreOnPersist: dataSource.ignoreOnPersist\n };\n }\n else {\n DataUtil.throwError('DataManager: Invalid arguments');\n }\n if (data.requiresFormat === undefined && !DataUtil.isCors()) {\n data.requiresFormat = isNullOrUndefined(data.crossDomain) ? true : data.crossDomain;\n }\n if (data.dataType === undefined) {\n data.dataType = 'json';\n }\n this.dataSource = data;\n this.defaultQuery = query;\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n if (data.url && data.offline && !data.json.length) {\n this.isDataAvailable = false;\n this.adaptor = adaptor || new ODataAdaptor();\n this.dataSource.offline = false;\n this.ready = this.executeQuery(query || new Query());\n this.ready.then(function (e) {\n _this.dataSource.offline = true;\n _this.isDataAvailable = true;\n data.json = e.result;\n _this.adaptor = new JsonAdaptor();\n });\n }\n else {\n this.adaptor = data.offline ? new JsonAdaptor() : new ODataAdaptor();\n }\n if (!data.jsonp && this.adaptor instanceof ODataAdaptor) {\n data.jsonp = 'callback';\n }\n this.adaptor = adaptor || this.adaptor;\n if (data.enableCaching) {\n this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);\n }\n return this;\n }\n Object.defineProperty(DataManager.prototype, \"moduleName\", {\n /** @hidden */\n get: function () { return 'datamanager'; },\n enumerable: true,\n configurable: true\n });\n ;\n /**\n * Get the queries maintained in the persisted state.\n * @param {string} id - The identifier of the persisted query to retrieve.\n * @returns {object} The persisted data object.\n */\n DataManager.prototype.getPersistedData = function (id) {\n var persistedData = localStorage.getItem(id || this.dataSource.id);\n return JSON.parse(persistedData);\n };\n /**\n * Set the queries to be maintained in the persisted state.\n * @param {Event} e - The event parameter that triggers the setPersistData method.\n * @param {string} id - The identifier of the persisted query to set.\n * @param {object} persistData - The data to be persisted.\n * @returns {void} .\n */\n DataManager.prototype.setPersistData = function (e, id, persistData) {\n localStorage.setItem(id || this.dataSource.id, JSON.stringify(persistData || this.persistQuery));\n };\n DataManager.prototype.setPersistQuery = function (query) {\n var _this = this;\n var persistedQuery = this.getPersistedData();\n if (this.isInitialLoad && persistedQuery && Object.keys(persistedQuery).length) {\n this.persistQuery = persistedQuery;\n this.persistQuery.queries = this.persistQuery.queries.filter(function (query) {\n if (_this.dataSource.ignoreOnPersist && _this.dataSource.ignoreOnPersist.length) {\n if (query.fn && _this.dataSource.ignoreOnPersist.some(function (keyword) { return query.fn === keyword; })) {\n return false; // Exclude the matching query\n }\n }\n if (query.fn === 'onWhere') {\n var e = query.e;\n if (e && e.isComplex && e.predicates instanceof Array) {\n var allPredicates = e.predicates.map(function (predicateObj) {\n if (predicateObj.predicates && predicateObj.predicates instanceof Array) {\n // Process nested predicate array\n var nestedPredicates = predicateObj.predicates.map(function (nestedPredicate) {\n var field = nestedPredicate.field, operator = nestedPredicate.operator, value = nestedPredicate.value, ignoreCase = nestedPredicate.ignoreCase, ignoreAccent = nestedPredicate.ignoreAccent, matchCase = nestedPredicate.matchCase;\n return new Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase);\n });\n return predicateObj.condition === 'and' ? Predicate.and(nestedPredicates) : Predicate.or(nestedPredicates);\n }\n else {\n // Process individual predicate\n var field = predicateObj.field, operator = predicateObj.operator, value = predicateObj.value, ignoreCase = predicateObj.ignoreCase, ignoreAccent = predicateObj.ignoreAccent, matchCase = predicateObj.matchCase;\n return new Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase);\n }\n });\n query.e = new Predicate(allPredicates[0], e.condition, allPredicates.slice(1));\n }\n }\n return true; // Keep all other queries\n });\n var newQuery = extend(new Query(), this.persistQuery);\n this.isInitialLoad = false;\n return (newQuery);\n }\n else {\n this.persistQuery = query;\n this.isInitialLoad = false;\n return query;\n }\n };\n /**\n * Overrides DataManager's default query with given query.\n *\n * @param {Query} query - Defines the new default query.\n */\n DataManager.prototype.setDefaultQuery = function (query) {\n this.defaultQuery = query;\n return this;\n };\n /**\n * Executes the given query with local data source.\n *\n * @param {Query} query - Defines the query to retrieve data.\n */\n DataManager.prototype.executeLocal = function (query) {\n if (!this.defaultQuery && !(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeLocal() : A query is required to execute');\n }\n if (!this.dataSource.json) {\n DataUtil.throwError('DataManager - executeLocal() : Json data is required to execute');\n }\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\n }\n query = query || this.defaultQuery;\n var result = this.adaptor.processQuery(this, query);\n if (query.subQuery) {\n var from = query.subQuery.fromTable;\n var lookup = query.subQuery.lookups;\n var res = query.isCountRequired ? result.result :\n result;\n if (lookup && lookup instanceof Array) {\n DataUtil.buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key);\n }\n for (var j = 0; j < res.length; j++) {\n if (res[j][from] instanceof Array) {\n res[j] = extend({}, {}, res[j]);\n res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query);\n }\n }\n }\n return this.adaptor.processResponse(result, this, query);\n };\n /**\n * Executes the given query with either local or remote data source.\n * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed.\n *\n * @param {Query|Function} query - Defines the query to retrieve data.\n * @param {Function} done - Defines the callback function and triggers when the Promise is resolved.\n * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected.\n * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected.\n */\n DataManager.prototype.executeQuery = function (query, done, fail, always) {\n var _this = this;\n var makeRequest = 'makeRequest';\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\n }\n if (typeof query === 'function') {\n always = fail;\n fail = done;\n done = query;\n query = null;\n }\n if (!query) {\n query = this.defaultQuery;\n }\n if (!(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeQuery() : A query is required to execute');\n }\n var deffered = new Deferred();\n var args = { query: query };\n if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '')\n || (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {\n var result = this.adaptor.processQuery(this, query);\n if (!isNullOrUndefined(this.adaptor[makeRequest])) {\n this.adaptor[makeRequest](result, deffered, args, query);\n }\n else if (!isNullOrUndefined(result.url) || this.isCustomDataAdaptor(this.adaptor)) {\n this.requests = [];\n this.makeRequest(result, deffered, args, query);\n }\n else {\n args = DataManager.getDeferedArgs(query, result, args);\n deffered.resolve(args);\n }\n }\n else {\n DataManager.nextTick(function () {\n var res = _this.executeLocal(query);\n args = DataManager.getDeferedArgs(query, res, args);\n deffered.resolve(args);\n });\n }\n if (done || fail) {\n deffered.promise.then(done, fail);\n }\n if (always) {\n deffered.promise.then(always, always);\n }\n return deffered.promise;\n };\n DataManager.getDeferedArgs = function (query, result, args) {\n if (query.isCountRequired) {\n args.result = result.result;\n args.count = result.count;\n args.aggregates = result.aggregates;\n }\n else {\n args.result = result;\n }\n return args;\n };\n DataManager.nextTick = function (fn) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n (window.setImmediate || window.setTimeout)(fn, 0);\n /* eslint-enable @typescript-eslint/no-explicit-any */\n };\n DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) {\n return extend({}, {\n type: 'GET',\n dataType: this.dataSource.dataType,\n crossDomain: this.dataSource.crossDomain,\n jsonp: this.dataSource.jsonp,\n cache: true,\n processData: false,\n onSuccess: fnSuccess,\n onFailure: fnFail\n }, url);\n };\n // tslint:disable-next-line:max-func-body-length\n DataManager.prototype.makeRequest = function (url, deffered, args, query) {\n var _this = this;\n var isSelector = !!query.subQuerySelector;\n var fnFail = function (e) {\n args.error = e;\n deffered.reject(args);\n };\n var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) {\n args.xhr = xhr;\n args.count = count ? parseInt(count.toString(), 10) : 0;\n args.result = data;\n args.request = request;\n args.aggregates = aggregates;\n args.actual = actual;\n args.virtualSelectRecords = virtualSelectRecords;\n deffered.resolve(args);\n };\n var fnQueryChild = function (data, selector) {\n var subDeffer = new Deferred();\n var childArgs = { parent: args };\n query.subQuery.isChild = true;\n var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector);\n var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery);\n if (!isSelector) {\n subDeffer.then(function (subData) {\n if (data) {\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key);\n process(data, subData.count, subData.xhr);\n }\n }, fnFail);\n }\n return childReq;\n };\n var fnSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n return fnFail(data['errors'], request);\n }\n }\n if (_this.isCustomDataAdaptor(_this.adaptor)) {\n request = extend({}, _this.fetchReqOption, request);\n }\n if (request.contentType.indexOf('xml') === -1 && _this.dateParse) {\n data = DataUtil.parse.parseJson(data);\n }\n var result = _this.adaptor.processResponse(data, _this, query, request.fetchRequest, request);\n var count = 0;\n var aggregates = null;\n var virtualSelectRecords = 'virtualSelectRecords';\n var virtualRecords = data[virtualSelectRecords];\n if (query.isCountRequired) {\n count = result.count;\n aggregates = result.aggregates;\n result = result.result;\n }\n if (!query.subQuery) {\n process(result, count, request.fetchRequest, request.type, data, aggregates, virtualRecords);\n return;\n }\n if (!isSelector) {\n fnQueryChild(result, request);\n }\n };\n var req = this.extendRequest(url, fnSuccess, fnFail);\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var fetch_1 = new Fetch(req);\n fetch_1.beforeSend = function () {\n _this.beforeSend(fetch_1.fetchRequest, fetch_1);\n };\n req = fetch_1.send();\n req.catch(function (e) { return true; }); // to handle failure remote requests.\n this.requests.push(fetch_1);\n }\n else {\n this.fetchReqOption = req;\n var request = req;\n this.adaptor.options.getData({\n data: request.data,\n onSuccess: request.onSuccess, onFailure: request.onFailure\n });\n }\n if (isSelector) {\n var promise = void 0;\n var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query });\n if (res && res.length) {\n promise = Promise.all([req, fnQueryChild(null, res)]);\n promise.then(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = args[0];\n var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].fetchRequest, _this.requests[0]);\n var count = 0;\n if (query.isCountRequired) {\n count = pResult.count;\n pResult = pResult.result;\n }\n var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].fetchRequest, _this.requests[1]);\n count = 0;\n if (query.subQuery.isCountRequired) {\n count = cResult.count;\n cResult = cResult.result;\n }\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key);\n isSelector = false;\n process(pResult, count, _this.requests[0].fetchRequest);\n });\n }\n else {\n isSelector = false;\n }\n }\n return req;\n };\n DataManager.prototype.beforeSend = function (request, settings) {\n this.adaptor.beforeSend(this, request, settings);\n var headers = this.dataSource.headers;\n var props;\n for (var i = 0; headers && i < headers.length; i++) {\n props = [];\n var keys = Object.keys(headers[i]);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n props.push(prop);\n request.headers.set(prop, headers[i][prop]);\n }\n }\n };\n /**\n * Save bulk changes to the given table name.\n * User can add a new record, edit an existing record, and delete a record at the same time.\n * If the datasource from remote, then updated in a single post.\n *\n * @param {Object} changes - Defines the CrudOptions.\n * @param {string} key - Defines the column field.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) {\n var _this = this;\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var args = {\n url: tableName,\n key: key || this.dataSource.key\n };\n var req = this.adaptor.batchRequest(this, changes, args, query || new Query(), original);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](req);\n }\n else if (!this.isCustomDataAdaptor(this.adaptor)) {\n var deff_1 = new Deferred();\n var fetch_2 = new Fetch(req);\n fetch_2.beforeSend = function () {\n _this.beforeSend(fetch_2.fetchRequest, fetch_2);\n };\n fetch_2.onSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n fetch_2.onFailure(JSON.stringify(data['errors']));\n }\n }\n deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.fetchRequest, request, changes, args));\n };\n fetch_2.onFailure = function (e) {\n deff_1.reject([{ error: e }]);\n };\n fetch_2.send().catch(function (e) { return true; }); // to handle the failure requests.\n return deff_1.promise;\n }\n else {\n return this.dofetchRequest(req, this.adaptor.options.batchUpdate, changes);\n }\n };\n /**\n * Inserts new record in the given table.\n *\n * @param {Object} data - Defines the data to insert.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param position\n */\n DataManager.prototype.insert = function (data, tableName, query, position) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var req = this.adaptor.insert(this, data, tableName, query, position);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](req);\n }\n else {\n return this.dofetchRequest(req, this.adaptor.options.addRecord);\n }\n };\n /**\n * Removes data from the table with the given key.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.remove = function (keyField, value, tableName, query) {\n if (typeof value === 'object') {\n value = DataUtil.getObject(keyField, value);\n }\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.remove(this, keyField, value, tableName, query);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](res);\n }\n else {\n var remove = this.adaptor.options.deleteRecord;\n return this.dofetchRequest(res, remove);\n }\n };\n /**\n * Updates existing record in the given table.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.update = function (keyField, value, tableName, query, original) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.update(this, keyField, value, tableName, query, original);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](res);\n }\n else {\n var update = this.adaptor.options.updateRecord;\n return this.dofetchRequest(res, update);\n }\n };\n DataManager.prototype.isCustomDataAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'CustomDataAdaptor';\n };\n DataManager.prototype.isGraphQLAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'GraphQLAdaptor';\n };\n DataManager.prototype.successFunc = function (record, request, changes) {\n if (this.isGraphQLAdaptor(this.adaptor)) {\n var data = typeof record === 'object' ? record : JSON.parse(record);\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n this.failureFunc(JSON.stringify(data['errors']));\n }\n }\n if (this.isCustomDataAdaptor(this.adaptor)) {\n request = extend({}, this.fetchReqOption, request);\n }\n try {\n DataUtil.parse.parseJson(record);\n }\n catch (e) {\n record = [];\n }\n record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.fetchRequest, request, changes);\n this.fetchDeffered.resolve(record);\n };\n DataManager.prototype.failureFunc = function (e) {\n this.fetchDeffered.reject([{ error: e }]);\n };\n DataManager.prototype.dofetchRequest = function (res, fetchFunc, changes) {\n var _this = this;\n res = extend({}, {\n type: 'POST',\n contentType: 'application/json; charset=utf-8',\n processData: false\n }, res);\n this.fetchDeffered = new Deferred();\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var fetch_3 = new Fetch(res);\n fetch_3.beforeSend = function () {\n _this.beforeSend(fetch_3.fetchRequest, fetch_3);\n };\n fetch_3.onSuccess = this.successFunc.bind(this);\n fetch_3.onFailure = this.failureFunc.bind(this);\n fetch_3.send().catch(function (e) { return true; }); // to handle the failure requests.\n }\n else {\n this.fetchReqOption = res;\n fetchFunc.call(this, {\n data: res.data, onSuccess: this.successFunc.bind(this),\n onFailure: this.failureFunc.bind(this),\n changes: changes\n });\n }\n return this.fetchDeffered.promise;\n };\n DataManager.prototype.clearPersistence = function () {\n window.removeEventListener('unload', this.setPersistData.bind(this));\n this.dataSource.enablePersistence = false;\n this.persistQuery = {};\n window.localStorage.setItem(this.dataSource.id, '[]');\n };\n return DataManager;\n}());\nexport { DataManager };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Position library\n */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar elementRect;\nvar popupRect;\nvar element;\nvar parentDocument;\nvar fixedParent = false;\n/**\n *\n * @param {HTMLElement} anchor - specifies the element\n * @param {HTMLElement} element - specifies the element\n * @returns {OffsetPosition} - returns the value\n */\nexport function calculateRelativeBasedPosition(anchor, element) {\n var fixedElement = false;\n var anchorPos = { left: 0, top: 0 };\n var tempAnchor = anchor;\n if (!anchor || !element) {\n return anchorPos;\n }\n if (isNullOrUndefined(element.offsetParent) && element.style.position === 'fixed') {\n fixedElement = true;\n }\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left += anchor.offsetLeft;\n anchorPos.top += anchor.offsetTop;\n anchor = anchor.offsetParent;\n }\n anchor = tempAnchor;\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left -= anchor.scrollLeft;\n anchorPos.top -= anchor.scrollTop;\n anchor = anchor.parentElement;\n }\n return anchorPos;\n}\n/**\n *\n * @param {Element} currentElement - specifies the element\n * @param {string} positionX - specifies the position\n * @param {string} positionY - specifies the position\n * @param {boolean} parentElement - specifies the boolean\n * @param {ClientRect} targetValues - specifies the client\n * @returns {OffsetPosition} - returns the position\n */\nexport function calculatePosition(currentElement, positionX, positionY, parentElement, targetValues) {\n popupRect = undefined;\n popupRect = targetValues;\n fixedParent = parentElement ? true : false;\n if (!currentElement) {\n return { left: 0, top: 0 };\n }\n if (!positionX) {\n positionX = 'left';\n }\n if (!positionY) {\n positionY = 'top';\n }\n parentDocument = currentElement.ownerDocument;\n element = currentElement;\n var pos = { left: 0, top: 0 };\n return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos);\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosx(value, pos) {\n pos.left = value;\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosy(value, pos) {\n pos.top = value;\n}\n/**\n *\n * @param {string} posX - specifies the position\n * @param {string} posY - specifies the position\n * @param {OffsetPosition} pos - specifies the position\n * @returns {OffsetPosition} - returns the postion\n */\nfunction updatePosition(posX, posY, pos) {\n elementRect = element.getBoundingClientRect();\n switch (posY + posX) {\n case 'topcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'topright':\n setPosx(getElementRight(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'centercenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerright':\n setPosx(getElementRight(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'bottomcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomright':\n setPosx(getElementRight(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementBottom(), pos);\n break;\n default:\n case 'topleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementTop(), pos);\n break;\n }\n element = null;\n return pos;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollTop() {\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollLeft() {\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementBottom() {\n return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementVCenter() {\n return getElementTop() + (elementRect.height / 2);\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementTop() {\n return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementLeft() {\n return elementRect.left + getBodyScrollLeft();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementRight() {\n var popupWidth = (element && (element.classList.contains('e-date-wrapper') || element.classList.contains('e-datetime-wrapper') || (element.classList.contains('e-ddl') && element.classList.contains('e-rtl')) || element.classList.contains('e-date-range-wrapper'))) ? (popupRect ? popupRect.width : 0) :\n (popupRect && (elementRect.width >= popupRect.width) ? popupRect.width : 0);\n return elementRect.right + getBodyScrollLeft() - popupWidth;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementHCenter() {\n return getElementLeft() + (elementRect.width / 2);\n}\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\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 var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var arrayMap = require('./_arrayMap'),\n baseIndexOf = require('./_baseIndexOf'),\n baseIndexOfWith = require('./_baseIndexOfWith'),\n baseUnary = require('./_baseUnary'),\n copyArray = require('./_copyArray');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nmodule.exports = basePullAll;\n","var nativeCreate = require('./_nativeCreate');\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 this.size = 0;\n}\n\nmodule.exports = hashClear;\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","/**\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\nmodule.exports = copyArray;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","/**\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheGet;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","'use strict';\n\nvar escapedChars = {\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\'\n};\n\nvar A_CODE = 'a'.charCodeAt();\n\n\nexports.parse = function (source, _, options) {\n var pointers = {};\n var line = 0;\n var column = 0;\n var pos = 0;\n var bigint = options && options.bigint && typeof BigInt != 'undefined';\n return {\n data: _parse('', true),\n pointers: pointers\n };\n\n function _parse(ptr, topLevel) {\n whitespace();\n var data;\n map(ptr, 'value');\n var char = getChar();\n switch (char) {\n case 't': read('rue'); data = true; break;\n case 'f': read('alse'); data = false; break;\n case 'n': read('ull'); data = null; break;\n case '\"': data = parseString(); break;\n case '[': data = parseArray(ptr); break;\n case '{': data = parseObject(ptr); break;\n default:\n backChar();\n if ('-0123456789'.indexOf(char) >= 0)\n data = parseNumber();\n else\n unexpectedToken();\n }\n map(ptr, 'valueEnd');\n whitespace();\n if (topLevel && pos < source.length) unexpectedToken();\n return data;\n }\n\n function whitespace() {\n loop:\n while (pos < source.length) {\n switch (source[pos]) {\n case ' ': column++; break;\n case '\\t': column += 4; break;\n case '\\r': column = 0; break;\n case '\\n': column = 0; line++; break;\n default: break loop;\n }\n pos++;\n }\n }\n\n function parseString() {\n var str = '';\n var char;\n while (true) {\n char = getChar();\n if (char == '\"') {\n break;\n } else if (char == '\\\\') {\n char = getChar();\n if (char in escapedChars)\n str += escapedChars[char];\n else if (char == 'u')\n str += getCharCode();\n else\n wasUnexpectedToken();\n } else {\n str += char;\n }\n }\n return str;\n }\n\n function parseNumber() {\n var numStr = '';\n var integer = true;\n if (source[pos] == '-') numStr += getChar();\n\n numStr += source[pos] == '0'\n ? getChar()\n : getDigits();\n\n if (source[pos] == '.') {\n numStr += getChar() + getDigits();\n integer = false;\n }\n\n if (source[pos] == 'e' || source[pos] == 'E') {\n numStr += getChar();\n if (source[pos] == '+' || source[pos] == '-') numStr += getChar();\n numStr += getDigits();\n integer = false;\n }\n\n var result = +numStr;\n return bigint && integer && (result > Number.MAX_SAFE_INTEGER || result < Number.MIN_SAFE_INTEGER)\n ? BigInt(numStr)\n : result;\n }\n\n function parseArray(ptr) {\n whitespace();\n var arr = [];\n var i = 0;\n if (getChar() == ']') return arr;\n backChar();\n\n while (true) {\n var itemPtr = ptr + '/' + i;\n arr.push(_parse(itemPtr));\n whitespace();\n var char = getChar();\n if (char == ']') break;\n if (char != ',') wasUnexpectedToken();\n whitespace();\n i++;\n }\n return arr;\n }\n\n function parseObject(ptr) {\n whitespace();\n var obj = {};\n if (getChar() == '}') return obj;\n backChar();\n\n while (true) {\n var loc = getLoc();\n if (getChar() != '\"') wasUnexpectedToken();\n var key = parseString();\n var propPtr = ptr + '/' + escapeJsonPointer(key);\n mapLoc(propPtr, 'key', loc);\n map(propPtr, 'keyEnd');\n whitespace();\n if (getChar() != ':') wasUnexpectedToken();\n whitespace();\n obj[key] = _parse(propPtr);\n whitespace();\n var char = getChar();\n if (char == '}') break;\n if (char != ',') wasUnexpectedToken();\n whitespace();\n }\n return obj;\n }\n\n function read(str) {\n for (var i=0; i= 'a' && char <= 'f')\n code += char.charCodeAt() - A_CODE + 10;\n else if (char >= '0' && char <= '9')\n code += +char;\n else\n wasUnexpectedToken();\n }\n return String.fromCharCode(code);\n }\n\n function getDigits() {\n var digits = '';\n while (source[pos] >= '0' && source[pos] <= '9')\n digits += getChar();\n\n if (digits.length) return digits;\n checkUnexpectedEnd();\n unexpectedToken();\n }\n\n function map(ptr, prop) {\n mapLoc(ptr, prop, getLoc());\n }\n\n function mapLoc(ptr, prop, loc) {\n pointers[ptr] = pointers[ptr] || {};\n pointers[ptr][prop] = loc;\n }\n\n function getLoc() {\n return {\n line: line,\n column: column,\n pos: pos\n };\n }\n\n function unexpectedToken() {\n throw new SyntaxError('Unexpected token ' + source[pos] + ' in JSON at position ' + pos);\n }\n\n function wasUnexpectedToken() {\n backChar();\n unexpectedToken();\n }\n\n function checkUnexpectedEnd() {\n if (pos >= source.length)\n throw new SyntaxError('Unexpected end of JSON input');\n }\n};\n\n\nexports.stringify = function (data, _, options) {\n if (!validType(data)) return;\n var wsLine = 0;\n var wsPos, wsColumn;\n var whitespace = typeof options == 'object'\n ? options.space\n : options;\n switch (typeof whitespace) {\n case 'number':\n var len = whitespace > 10\n ? 10\n : whitespace < 0\n ? 0\n : Math.floor(whitespace);\n whitespace = len && repeat(len, ' ');\n wsPos = len;\n wsColumn = len;\n break;\n case 'string':\n whitespace = whitespace.slice(0, 10);\n wsPos = 0;\n wsColumn = 0;\n for (var j=0; j= 0;\n}\n\n\nvar ESC_QUOTE = /\"|\\\\/g;\nvar ESC_B = /[\\b]/g;\nvar ESC_F = /\\f/g;\nvar ESC_N = /\\n/g;\nvar ESC_R = /\\r/g;\nvar ESC_T = /\\t/g;\nfunction quoted(str) {\n str = str.replace(ESC_QUOTE, '\\\\$&')\n .replace(ESC_F, '\\\\f')\n .replace(ESC_B, '\\\\b')\n .replace(ESC_N, '\\\\n')\n .replace(ESC_R, '\\\\r')\n .replace(ESC_T, '\\\\t');\n return '\"' + str + '\"';\n}\n\n\nvar ESC_0 = /~/g;\nvar ESC_1 = /\\//g;\nfunction escapeJsonPointer(str) {\n return str.replace(ESC_0, '~0')\n .replace(ESC_1, '~1');\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nmodule.exports = {};\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","(function(t,e){\"object\"===typeof exports&&\"object\"===typeof module?module.exports=e(require(\"vue\")):\"function\"===typeof define&&define.amd?define([],e):\"object\"===typeof exports?exports[\"vue3-youtube\"]=e(require(\"vue\")):t[\"vue3-youtube\"]=e(t[\"Vue\"])})(\"undefined\"!==typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t[\"default\"]}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=\"fb15\")}({\"00ee\":function(t,e,n){var r=n(\"b622\"),o=r(\"toStringTag\"),i={};i[o]=\"z\",t.exports=\"[object z]\"===String(i)},\"0366\":function(t,e,n){var r=n(\"1c0b\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"06cf\":function(t,e,n){var r=n(\"83ab\"),o=n(\"d1e7\"),i=n(\"5c6c\"),c=n(\"fc6a\"),u=n(\"c04e\"),a=n(\"5135\"),f=n(\"0cfb\"),s=Object.getOwnPropertyDescriptor;e.f=r?s:function(t,e){if(t=c(t),e=u(e,!0),f)try{return s(t,e)}catch(n){}if(a(t,e))return i(!o.f.call(t,e),t[e])}},\"0cfb\":function(t,e,n){var r=n(\"83ab\"),o=n(\"d039\"),i=n(\"cc12\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},\"159b\":function(t,e,n){var r=n(\"da84\"),o=n(\"fdbc\"),i=n(\"17c2\"),c=n(\"9112\");for(var u in o){var a=r[u],f=a&&a.prototype;if(f&&f.forEach!==i)try{c(f,\"forEach\",i)}catch(s){f.forEach=i}}},\"17c2\":function(t,e,n){\"use strict\";var r=n(\"b727\").forEach,o=n(\"a640\"),i=n(\"ae40\"),c=o(\"forEach\"),u=i(\"forEach\");t.exports=c&&u?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},\"19aa\":function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},\"1be4\":function(t,e,n){var r=n(\"d066\");t.exports=r(\"document\",\"documentElement\")},\"1c0b\":function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},\"1c7e\":function(t,e,n){var r=n(\"b622\"),o=r(\"iterator\"),i=!1;try{var c=0,u={next:function(){return{done:!!c++}},return:function(){i=!0}};u[o]=function(){return this},Array.from(u,(function(){throw 2}))}catch(a){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(a){}return n}},\"1cdc\":function(t,e,n){var r=n(\"342f\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},\"1d80\":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},2266:function(t,e,n){var r=n(\"825a\"),o=n(\"e95a\"),i=n(\"50c4\"),c=n(\"0366\"),u=n(\"35a1\"),a=n(\"9bdd\"),f=function(t,e){this.stopped=t,this.result=e},s=t.exports=function(t,e,n,s,l){var p,d,v,h,y,b,g,m=c(e,n,s?2:1);if(l)p=t;else{if(d=u(t),\"function\"!=typeof d)throw TypeError(\"Target is not iterable\");if(o(d)){for(v=0,h=i(t.length);h>v;v++)if(y=s?m(r(g=t[v])[0],g[1]):m(t[v]),y&&y instanceof f)return y;return new f(!1)}p=d.call(t)}b=p.next;while(!(g=b.call(p)).done)if(y=a(p,m,g.value,s),\"object\"==typeof y&&y&&y instanceof f)return y;return new f(!1)};s.stop=function(t){return new f(!0,t)}},\"23cb\":function(t,e,n){var r=n(\"a691\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},\"23e7\":function(t,e,n){var r=n(\"da84\"),o=n(\"06cf\").f,i=n(\"9112\"),c=n(\"6eeb\"),u=n(\"ce4e\"),a=n(\"e893\"),f=n(\"94ca\");t.exports=function(t,e){var n,s,l,p,d,v,h=t.target,y=t.global,b=t.stat;if(s=y?r:b?r[h]||u(h,{}):(r[h]||{}).prototype,s)for(l in e){if(d=e[l],t.noTargetGet?(v=o(s,l),p=v&&v.value):p=s[l],n=f(y?l:h+(b?\".\":\"#\")+l,t.forced),!n&&void 0!==p){if(typeof d===typeof p)continue;a(d,p)}(t.sham||p&&p.sham)&&i(d,\"sham\",!0),c(s,l,d,t)}}},\"241c\":function(t,e,n){var r=n(\"ca84\"),o=n(\"7839\"),i=o.concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},2626:function(t,e,n){\"use strict\";var r=n(\"d066\"),o=n(\"9bf2\"),i=n(\"b622\"),c=n(\"83ab\"),u=i(\"species\");t.exports=function(t){var e=r(t),n=o.f;c&&e&&!e[u]&&n(e,u,{configurable:!0,get:function(){return this}})}},\"2cf4\":function(t,e,n){var r,o,i,c=n(\"da84\"),u=n(\"d039\"),a=n(\"c6b6\"),f=n(\"0366\"),s=n(\"1be4\"),l=n(\"cc12\"),p=n(\"1cdc\"),d=c.location,v=c.setImmediate,h=c.clearImmediate,y=c.process,b=c.MessageChannel,g=c.Dispatch,m=0,x={},w=\"onreadystatechange\",S=function(t){if(x.hasOwnProperty(t)){var e=x[t];delete x[t],e()}},j=function(t){return function(){S(t)}},P=function(t){S(t.data)},E=function(t){c.postMessage(t+\"\",d.protocol+\"//\"+d.host)};v&&h||(v=function(t){var e=[],n=1;while(arguments.length>n)e.push(arguments[n++]);return x[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},h=function(t){delete x[t]},\"process\"==a(y)?r=function(t){y.nextTick(j(t))}:g&&g.now?r=function(t){g.now(j(t))}:b&&!p?(o=new b,i=o.port2,o.port1.onmessage=P,r=f(i.postMessage,i,1)):!c.addEventListener||\"function\"!=typeof postMessage||c.importScripts||u(E)||\"file:\"===d.protocol?r=w in l(\"script\")?function(t){s.appendChild(l(\"script\"))[w]=function(){s.removeChild(this),S(t)}}:function(t){setTimeout(j(t),0)}:(r=E,c.addEventListener(\"message\",P,!1))),t.exports={set:v,clear:h}},\"2d00\":function(t,e,n){var r,o,i=n(\"da84\"),c=n(\"342f\"),u=i.process,a=u&&u.versions,f=a&&a.v8;f?(r=f.split(\".\"),o=r[0]+r[1]):c&&(r=c.match(/Edge\\/(\\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\\/(\\d+)/),r&&(o=r[1]))),t.exports=o&&+o},\"342f\":function(t,e,n){var r=n(\"d066\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},\"35a1\":function(t,e,n){var r=n(\"f5df\"),o=n(\"3f8c\"),i=n(\"b622\"),c=i(\"iterator\");t.exports=function(t){if(void 0!=t)return t[c]||t[\"@@iterator\"]||o[r(t)]}},\"37e8\":function(t,e,n){var r=n(\"83ab\"),o=n(\"9bf2\"),i=n(\"825a\"),c=n(\"df75\");t.exports=r?Object.defineProperties:function(t,e){i(t);var n,r=c(e),u=r.length,a=0;while(u>a)o.f(t,n=r[a++],e[n]);return t}},\"3bbe\":function(t,e,n){var r=n(\"861d\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},\"3f8c\":function(t,e){t.exports={}},4160:function(t,e,n){\"use strict\";var r=n(\"23e7\"),o=n(\"17c2\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},\"428f\":function(t,e,n){var r=n(\"da84\");t.exports=r},\"44ad\":function(t,e,n){var r=n(\"d039\"),o=n(\"c6b6\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},\"44de\":function(t,e,n){var r=n(\"da84\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},4840:function(t,e,n){var r=n(\"825a\"),o=n(\"1c0b\"),i=n(\"b622\"),c=i(\"species\");t.exports=function(t,e){var n,i=r(t).constructor;return void 0===i||void 0==(n=r(i)[c])?e:o(n)}},4930:function(t,e,n){var r=n(\"d039\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},\"4d64\":function(t,e,n){var r=n(\"fc6a\"),o=n(\"50c4\"),i=n(\"23cb\"),c=function(t){return function(e,n,c){var u,a=r(e),f=o(a.length),s=i(c,f);if(t&&n!=n){while(f>s)if(u=a[s++],u!=u)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===n)return t||s||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},\"50c4\":function(t,e,n){var r=n(\"a691\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},5135:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},5692:function(t,e,n){var r=n(\"c430\"),o=n(\"c6cd\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.5\",mode:r?\"pure\":\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})},\"56ef\":function(t,e,n){var r=n(\"d066\"),o=n(\"241c\"),i=n(\"7418\"),c=n(\"825a\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(c(t)),n=i.f;return n?e.concat(n(t)):e}},5899:function(t,e){t.exports=\"\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff\"},\"58a8\":function(t,e,n){var r=n(\"1d80\"),o=n(\"5899\"),i=\"[\"+o+\"]\",c=RegExp(\"^\"+i+i+\"*\"),u=RegExp(i+i+\"*$\"),a=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(c,\"\")),2&t&&(n=n.replace(u,\"\")),n}};t.exports={start:a(1),end:a(2),trim:a(3)}},\"5c6c\":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},\"65f0\":function(t,e,n){var r=n(\"861d\"),o=n(\"e8b5\"),i=n(\"b622\"),c=i(\"species\");t.exports=function(t,e){var n;return o(t)&&(n=t.constructor,\"function\"!=typeof n||n!==Array&&!o(n.prototype)?r(n)&&(n=n[c],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},\"69f3\":function(t,e,n){var r,o,i,c=n(\"7f9a\"),u=n(\"da84\"),a=n(\"861d\"),f=n(\"9112\"),s=n(\"5135\"),l=n(\"f772\"),p=n(\"d012\"),d=u.WeakMap,v=function(t){return i(t)?o(t):r(t,{})},h=function(t){return function(e){var n;if(!a(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}};if(c){var y=new d,b=y.get,g=y.has,m=y.set;r=function(t,e){return m.call(y,t,e),e},o=function(t){return b.call(y,t)||{}},i=function(t){return g.call(y,t)}}else{var x=l(\"state\");p[x]=!0,r=function(t,e){return f(t,x,e),e},o=function(t){return s(t,x)?t[x]:{}},i=function(t){return s(t,x)}}t.exports={set:r,get:o,has:i,enforce:v,getterFor:h}},\"6eeb\":function(t,e,n){var r=n(\"da84\"),o=n(\"9112\"),i=n(\"5135\"),c=n(\"ce4e\"),u=n(\"8925\"),a=n(\"69f3\"),f=a.get,s=a.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,u){var a=!!u&&!!u.unsafe,f=!!u&&!!u.enumerable,p=!!u&&!!u.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),s(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(a?!p&&t[e]&&(f=!0):delete t[e],f?t[e]=n:o(t,e,n)):f?t[e]=n:c(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&f(this).source||u(this)}))},7156:function(t,e,n){var r=n(\"861d\"),o=n(\"d2bb\");t.exports=function(t,e,n){var i,c;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(c=i.prototype)&&c!==n.prototype&&o(t,c),t}},7418:function(t,e){e.f=Object.getOwnPropertySymbols},7839:function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},\"7b0b\":function(t,e,n){var r=n(\"1d80\");t.exports=function(t){return Object(r(t))}},\"7c73\":function(t,e,n){var r,o=n(\"825a\"),i=n(\"37e8\"),c=n(\"7839\"),u=n(\"d012\"),a=n(\"1be4\"),f=n(\"cc12\"),s=n(\"f772\"),l=\">\",p=\"<\",d=\"prototype\",v=\"script\",h=s(\"IE_PROTO\"),y=function(){},b=function(t){return p+v+l+t+p+\"/\"+v+l},g=function(t){t.write(b(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},m=function(){var t,e=f(\"iframe\"),n=\"java\"+v+\":\";return e.style.display=\"none\",a.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(b(\"document.F=Object\")),t.close(),t.F},x=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(e){}x=r?g(r):m();var t=c.length;while(t--)delete x[d][c[t]];return x()};u[h]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(y[d]=o(t),n=new y,y[d]=null,n[h]=t):n=x(),void 0===e?n:i(n,e)}},\"7f9a\":function(t,e,n){var r=n(\"da84\"),o=n(\"8925\"),i=r.WeakMap;t.exports=\"function\"===typeof i&&/native code/.test(o(i))},\"825a\":function(t,e,n){var r=n(\"861d\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},\"83ab\":function(t,e,n){var r=n(\"d039\");t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},\"861d\":function(t,e){t.exports=function(t){return\"object\"===typeof t?null!==t:\"function\"===typeof t}},8875:function(t,e,n){var r,o,i;(function(n,c){o=[],r=c,i=\"function\"===typeof r?r.apply(e,o):r,void 0===i||(t.exports=i)})(\"undefined\"!==typeof self&&self,(function(){function t(){var e=Object.getOwnPropertyDescriptor(document,\"currentScript\");if(!e&&\"currentScript\"in document&&document.currentScript)return document.currentScript;if(e&&e.get!==t&&document.currentScript)return document.currentScript;try{throw new Error}catch(d){var n,r,o,i=/.*at [^(]*\\((.*):(.+):(.+)\\)$/gi,c=/@([^@]*):(\\d+):(\\d+)\\s*$/gi,u=i.exec(d.stack)||c.exec(d.stack),a=u&&u[1]||!1,f=u&&u[2]||!1,s=document.location.href.replace(document.location.hash,\"\"),l=document.getElementsByTagName(\"script\");a===s&&(n=document.documentElement.outerHTML,r=new RegExp(\"(?:[^\\\\n]+?\\\\n){0,\"+(f-2)+\"}[^<]*\n * ```\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(element, options) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Called internally if any of the property value changed.\n *\n * @param {PopupModel} newProp - specifies the new property\n * @param {PopupModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Popup.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'zIndex':\n setStyleAttribute(this.element, { 'zIndex': newProp.zIndex });\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'position':\n case 'relateTo':\n this.refreshPosition();\n break;\n case 'offsetX': {\n var x = newProp.offsetX - oldProp.offsetX;\n this.element.style.left = (parseInt(this.element.style.left, 10) + (x)).toString() + 'px';\n break;\n }\n case 'offsetY': {\n var y = newProp.offsetY - oldProp.offsetY;\n this.element.style.top = (parseInt(this.element.style.top, 10) + (y)).toString() + 'px';\n break;\n }\n case 'content':\n this.setContent();\n break;\n case 'actionOnScroll':\n if (newProp.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n else {\n this.unwireScrollEvents();\n }\n break;\n }\n }\n };\n /**\n * gets the Component module name.\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.getModuleName = function () {\n return 'popup';\n };\n /**\n * To resolve if any collision occurs.\n *\n * @returns {void}\n */\n Popup.prototype.resolveCollision = function () {\n this.checkCollision();\n };\n /**\n * gets the persisted state properties of the Component.\n *\n * @returns {void}\n */\n Popup.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To destroy the control.\n *\n * @returns {void}\n */\n Popup.prototype.destroy = function () {\n if (this.element.classList.contains('e-popup-open')) {\n this.unwireEvents();\n }\n this.element.classList.remove(CLASSNAMES.ROOT, CLASSNAMES.RTL, CLASSNAMES.OPEN, CLASSNAMES.CLOSE);\n this.content = null;\n this.relateTo = null;\n collisionDestroy();\n _super.prototype.destroy.call(this);\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.render = function () {\n this.element.classList.add(CLASSNAMES.ROOT);\n var styles = {};\n if (this.zIndex !== 1000) {\n styles.zIndex = this.zIndex;\n }\n if (this.width !== 'auto') {\n styles.width = formatUnit(this.width);\n }\n if (this.height !== 'auto') {\n styles.height = formatUnit(this.height);\n }\n setStyleAttribute(this.element, styles);\n this.fixedParent = false;\n this.setEnableRtl();\n this.setContent();\n };\n Popup.prototype.wireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.add(window, 'orientationchange', this.orientationOnChange, this);\n }\n if (this.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n };\n Popup.prototype.wireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollRefresh, this);\n }\n }\n };\n Popup.prototype.unwireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.remove(window, 'orientationchange', this.orientationOnChange);\n }\n if (this.actionOnScroll !== 'none') {\n this.unwireScrollEvents();\n }\n };\n Popup.prototype.unwireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollRefresh);\n }\n }\n };\n Popup.prototype.getRelateToElement = function () {\n var relateToElement = this.relateTo === '' || isNullOrUndefined(this.relateTo) ?\n document.body : this.relateTo;\n this.setProperties({ relateTo: relateToElement }, true);\n return ((typeof this.relateTo) === 'string') ?\n document.querySelector(this.relateTo) : this.relateTo;\n };\n Popup.prototype.scrollRefresh = function (e) {\n if (this.actionOnScroll === 'reposition') {\n if (!isNullOrUndefined(this.element) && !(this.element.offsetParent === e.target ||\n (this.element.offsetParent && this.element.offsetParent.tagName === 'BODY' &&\n e.target.parentElement == null))) {\n this.refreshPosition();\n }\n }\n else if (this.actionOnScroll === 'hide') {\n this.hide();\n }\n if (this.actionOnScroll !== 'none') {\n if (this.getRelateToElement()) {\n var targetVisible = this.isElementOnViewport(this.getRelateToElement(), e.target);\n if (!targetVisible && !this.targetInvisibleStatus) {\n this.trigger('targetExitViewport');\n this.targetInvisibleStatus = true;\n }\n else if (targetVisible) {\n this.targetInvisibleStatus = false;\n }\n }\n }\n };\n /**\n * This method is to get the element visibility on viewport when scroll\n * the page. This method will returns true even though 1 px of element\n * part is in visible.\n *\n * @param {HTMLElement} relateToElement - specifies the element\n * @param {HTMLElement} scrollElement - specifies the scroll element\n * @returns {boolean} - retruns the boolean\n */\n // eslint-disable-next-line\n Popup.prototype.isElementOnViewport = function (relateToElement, scrollElement) {\n var scrollParents = this.getScrollableParent(relateToElement);\n for (var parent_3 = 0; parent_3 < scrollParents.length; parent_3++) {\n if (this.isElementVisible(relateToElement, scrollParents[parent_3])) {\n continue;\n }\n else {\n return false;\n }\n }\n return true;\n };\n Popup.prototype.isElementVisible = function (relateToElement, scrollElement) {\n var rect = this.checkGetBoundingClientRect(relateToElement);\n if (!rect.height || !rect.width) {\n return false;\n }\n if (!isNullOrUndefined(this.checkGetBoundingClientRect(scrollElement))) {\n var parent_4 = scrollElement.getBoundingClientRect();\n return !(rect.bottom < parent_4.top) &&\n (!(rect.bottom > parent_4.bottom) &&\n (!(rect.right > parent_4.right) &&\n !(rect.left < parent_4.left)));\n }\n else {\n var win = window;\n var windowView = {\n top: win.scrollY,\n left: win.scrollX,\n right: win.scrollX + win.outerWidth,\n bottom: win.scrollY + win.outerHeight\n };\n var off = calculatePosition(relateToElement);\n var ele = {\n top: off.top,\n left: off.left,\n right: off.left + rect.width,\n bottom: off.top + rect.height\n };\n var elementView = {\n top: windowView.bottom - ele.top,\n left: windowView.right - ele.left,\n bottom: ele.bottom - windowView.top,\n right: ele.right - windowView.left\n };\n return elementView.top > 0\n && elementView.left > 0\n && elementView.right > 0\n && elementView.bottom > 0;\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.preRender = function () {\n //There is no event handler\n };\n Popup.prototype.setEnableRtl = function () {\n this.reposition();\n if (this.enableRtl) {\n this.element.classList.add(CLASSNAMES.RTL);\n }\n else {\n this.element.classList.remove(CLASSNAMES.RTL);\n }\n };\n Popup.prototype.setContent = function () {\n if (!isNullOrUndefined(this.content)) {\n this.element.innerHTML = '';\n if (typeof (this.content) === 'string') {\n this.element.textContent = this.content;\n }\n else {\n var relateToElem = this.getRelateToElement();\n // eslint-disable-next-line\n var props = this.content.props;\n if (!relateToElem.classList.contains('e-dropdown-btn') || isNullOrUndefined(props)) {\n this.element.appendChild(this.content);\n }\n }\n }\n };\n Popup.prototype.orientationOnChange = function () {\n var _this = this;\n setTimeout(function () {\n _this.refreshPosition();\n }, 200);\n };\n /**\n * Based on the `relative` element and `offset` values, `Popup` element position will refreshed.\n *\n * @param {HTMLElement} target - The target element.\n * @param {boolean} collision - Specifies whether to check for collision.\n * @returns {void}\n */\n Popup.prototype.refreshPosition = function (target, collision) {\n if (!isNullOrUndefined(target)) {\n this.checkFixedParent(target);\n }\n this.reposition();\n if (!collision) {\n this.checkCollision();\n }\n };\n Popup.prototype.reposition = function () {\n var pos;\n var position;\n var relateToElement = this.getRelateToElement();\n if (typeof this.position.X === 'number' && typeof this.position.Y === 'number') {\n pos = { left: this.position.X, top: this.position.Y };\n }\n else if ((typeof this.position.X === 'string' && typeof this.position.Y === 'number') ||\n (typeof this.position.X === 'number' && typeof this.position.Y === 'string')) {\n var parentDisplay = void 0;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n if (this.element.classList.contains('e-dlg-modal')) {\n parentDisplay = this.element.parentElement.style.display;\n this.element.parentElement.style.display = 'block';\n }\n position = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\n if (typeof this.position.X === 'string') {\n pos = { left: position.left, top: this.position.Y };\n }\n else {\n pos = { left: this.position.X, top: position.top };\n }\n this.element.style.display = display;\n if (this.element.classList.contains('e-dlg-modal')) {\n this.element.parentElement.style.display = parentDisplay;\n }\n }\n else if (relateToElement) {\n var height = this.element.clientHeight;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n pos = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY, height);\n this.element.style.display = display;\n }\n else {\n pos = { left: 0, top: 0 };\n }\n if (!isNullOrUndefined(pos)) {\n this.element.style.left = pos.left + 'px';\n this.element.style.top = pos.top + 'px';\n }\n };\n Popup.prototype.checkGetBoundingClientRect = function (ele) {\n var eleRect;\n try {\n eleRect = ele.getBoundingClientRect();\n return eleRect;\n }\n catch (error) {\n return null;\n }\n };\n Popup.prototype.getAnchorPosition = function (anchorEle, ele, position, offsetX, offsetY, height) {\n if (height === void 0) { height = 0; }\n var eleRect = this.checkGetBoundingClientRect(ele);\n var anchorRect = this.checkGetBoundingClientRect(anchorEle);\n if (isNullOrUndefined(eleRect) || isNullOrUndefined(anchorRect)) {\n return null;\n }\n var anchor = anchorEle;\n var anchorPos = { left: 0, top: 0 };\n if (ele.offsetParent && ele.offsetParent.tagName === 'BODY' && anchorEle.tagName === 'BODY') {\n anchorPos = calculatePosition(anchorEle);\n }\n else {\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName !== 'BODY')) {\n ele = ele.parentElement;\n }\n anchorPos = calculateRelativeBasedPosition(anchor, ele);\n }\n switch (position.X) {\n default:\n case 'left':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth / 2 - eleRect.width / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width / 2 - eleRect.width / 2);\n }\n else {\n anchorPos.left += (anchorRect.width / 2);\n }\n break;\n case 'right':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth - eleRect.width);\n }\n else if (this.targetType === 'container') {\n var scaleX = 1;\n var tranformElement = getTransformElement(ele);\n if (tranformElement) {\n var transformStyle = getComputedStyle(tranformElement).transform;\n if (transformStyle !== 'none') {\n var matrix = new DOMMatrix(transformStyle);\n scaleX = matrix.a;\n }\n var zoomStyle = getComputedStyle(tranformElement).zoom;\n if (zoomStyle !== 'none') {\n var bodyZoom = getZoomValue(document.body);\n scaleX = bodyZoom * scaleX;\n }\n }\n anchorPos.left += ((anchorRect.width - eleRect.width) / scaleX);\n }\n else {\n anchorPos.left += (anchorRect.width);\n }\n break;\n }\n switch (position.Y) {\n default:\n case 'top':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight / 2 - eleRect.height / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.top += (anchorRect.height / 2 - eleRect.height / 2);\n }\n else {\n anchorPos.top += (anchorRect.height / 2);\n }\n break;\n case 'bottom':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight - eleRect.height);\n }\n else if (this.targetType === 'container' && !ele.classList.contains('e-dialog')) {\n anchorPos.top += (anchorRect.height - eleRect.height);\n }\n else if (this.targetType === 'container' && ele.classList.contains('e-dialog')) {\n anchorPos.top += (anchorRect.height - height);\n }\n else {\n anchorPos.top += (anchorRect.height);\n }\n break;\n }\n anchorPos.left += offsetX;\n anchorPos.top += offsetY;\n return anchorPos;\n };\n Popup.prototype.callFlip = function (param) {\n var relateToElement = this.getRelateToElement();\n flip(this.element, relateToElement, this.offsetX, this.offsetY, this.position.X, this.position.Y, this.viewPortElement, param, this.fixedParent);\n };\n Popup.prototype.callFit = function (param) {\n if (isCollide(this.element, this.viewPortElement).length !== 0) {\n if (isNullOrUndefined(this.viewPortElement)) {\n var data = fit(this.element, this.viewPortElement, param);\n if (param.X) {\n this.element.style.left = data.left + 'px';\n }\n if (param.Y) {\n this.element.style.top = data.top + 'px';\n }\n }\n else {\n var elementRect = this.checkGetBoundingClientRect(this.element);\n var viewPortRect = this.checkGetBoundingClientRect(this.viewPortElement);\n if (isNullOrUndefined(elementRect) || isNullOrUndefined(viewPortRect)) {\n return null;\n }\n if (param && param.Y === true) {\n if (viewPortRect.top > elementRect.top) {\n this.element.style.top = '0px';\n }\n else if (viewPortRect.bottom < elementRect.bottom) {\n this.element.style.top = parseInt(this.element.style.top, 10) - (elementRect.bottom - viewPortRect.bottom) + 'px';\n }\n }\n if (param && param.X === true) {\n if (viewPortRect.right < elementRect.right) {\n this.element.style.left = parseInt(this.element.style.left, 10) - (elementRect.right - viewPortRect.right) + 'px';\n }\n else if (viewPortRect.left > elementRect.left) {\n this.element.style.left = parseInt(this.element.style.left, 10) + (viewPortRect.left - elementRect.left) + 'px';\n }\n }\n }\n }\n };\n Popup.prototype.checkCollision = function () {\n var horz = this.collision.X;\n var vert = this.collision.Y;\n if (horz === 'none' && vert === 'none') {\n return;\n }\n if (horz === 'flip' && vert === 'flip') {\n this.callFlip({ X: true, Y: true });\n }\n else if (horz === 'fit' && vert === 'fit') {\n this.callFit({ X: true, Y: true });\n }\n else {\n if (horz === 'flip') {\n this.callFlip({ X: true, Y: false });\n }\n else if (vert === 'flip') {\n this.callFlip({ Y: true, X: false });\n }\n if (horz === 'fit') {\n this.callFit({ X: true, Y: false });\n }\n else if (vert === 'fit') {\n this.callFit({ X: false, Y: true });\n }\n }\n };\n /**\n * Shows the popup element from screen.\n *\n * @returns {void}\n * @param {AnimationModel} animationOptions - specifies the model\n * @param { HTMLElement } relativeElement - To calculate the zIndex value dynamically.\n */\n Popup.prototype.show = function (animationOptions, relativeElement) {\n var _this = this;\n var relateToElement = this.getRelateToElement();\n if (relateToElement.classList.contains('e-filemanager')) {\n this.fmDialogContainer = this.element.getElementsByClassName('e-file-select-wrap')[0];\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.fmDialogContainer) && Browser.isIos) {\n this.fmDialogContainer.style.display = 'block';\n }\n if (this.zIndex === 1000 || !isNullOrUndefined(relativeElement)) {\n var zIndexElement = (isNullOrUndefined(relativeElement)) ? this.element : relativeElement;\n this.zIndex = getZindexPartial(zIndexElement);\n setStyleAttribute(this.element, { 'zIndex': this.zIndex });\n }\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.showAnimation;\n if (this.collision.X !== 'none' || this.collision.Y !== 'none') {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.checkCollision();\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n }\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.begin = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.CLOSE);\n addClass([_this.element], CLASSNAMES.OPEN);\n }\n };\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n _this.trigger('open');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.trigger('open');\n }\n };\n /**\n * Hides the popup element from screen.\n *\n * @param {AnimationModel} animationOptions - To give the animation options.\n * @returns {void}\n */\n Popup.prototype.hide = function (animationOptions) {\n var _this = this;\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.hideAnimation;\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.OPEN);\n addClass([_this.element], CLASSNAMES.CLOSE);\n _this.trigger('close');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n this.trigger('close');\n }\n this.unwireEvents();\n };\n /**\n * Gets scrollable parent elements for the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n */\n Popup.prototype.getScrollableParent = function (element) {\n this.checkFixedParent(element);\n return getScrollableParent(element, this.fixedParent);\n };\n Popup.prototype.checkFixedParent = function (element) {\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if ((parentStyle.position === 'fixed' || parentStyle.position === 'sticky') && !isNullOrUndefined(this.element) && this.element.offsetParent &&\n this.element.offsetParent.tagName === 'BODY' && getComputedStyle(this.element.offsetParent).overflow !== 'hidden') {\n this.element.style.top = window.scrollY > parseInt(this.element.style.top, 10) ?\n formatUnit(window.scrollY - parseInt(this.element.style.top, 10))\n : formatUnit(parseInt(this.element.style.top, 10) - window.scrollY);\n this.element.style.position = 'fixed';\n this.fixedParent = true;\n }\n parent = parent.parentElement;\n if (!isNullOrUndefined(this.element) && isNullOrUndefined(this.element.offsetParent) && parentStyle.position === 'fixed'\n && this.element.style.position === 'fixed') {\n this.fixedParent = true;\n }\n }\n };\n __decorate([\n Property('auto')\n ], Popup.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], Popup.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"content\", void 0);\n __decorate([\n Property('container')\n ], Popup.prototype, \"targetType\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"viewPortElement\", void 0);\n __decorate([\n Property({ X: 'none', Y: 'none' })\n ], Popup.prototype, \"collision\", void 0);\n __decorate([\n Property('')\n ], Popup.prototype, \"relateTo\", void 0);\n __decorate([\n Complex({}, PositionData)\n ], Popup.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetY\", void 0);\n __decorate([\n Property(1000)\n ], Popup.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], Popup.prototype, \"enableRtl\", void 0);\n __decorate([\n Property('reposition')\n ], Popup.prototype, \"actionOnScroll\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"showAnimation\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"hideAnimation\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"targetExitViewport\", void 0);\n Popup = __decorate([\n NotifyPropertyChanges\n ], Popup);\n return Popup;\n}(Component));\nexport { Popup };\n/**\n * Gets scrollable parent elements for the given element.\n *\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n * @param {boolean} fixedParent - specifies the parent element\n * @private\n * @returns {void}\n */\nexport function getScrollableParent(element, fixedParent) {\n var eleStyle = getComputedStyle(element);\n var scrollParents = [];\n var overflowRegex = /(auto|scroll)/;\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')\n && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {\n scrollParents.push(parent);\n }\n parent = parent.parentElement;\n }\n if (!fixedParent) {\n scrollParents.push(document);\n }\n return scrollParents;\n}\n/**\n * Gets the maximum z-index of the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the maximum z-index of it.\n * @private\n */\nexport function getZindexPartial(element) {\n // upto body traversal\n var parent = element.parentElement;\n var parentZindex = [];\n while (parent) {\n if (parent.tagName !== 'BODY') {\n var index = document.defaultView.getComputedStyle(parent, null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(parent, null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n parentZindex.push(index);\n }\n parent = parent.parentElement;\n }\n else {\n break;\n }\n }\n var childrenZindex = [];\n for (var i = 0; i < document.body.children.length; i++) {\n if (!element.isEqualNode(document.body.children[i])) {\n var index = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n childrenZindex.push(index);\n }\n }\n }\n childrenZindex.push('999');\n var siblingsZindex = [];\n if (!isNullOrUndefined(element.parentElement) && element.parentElement.tagName !== 'BODY') {\n var childNodes = [].slice.call(element.parentElement.children);\n for (var i = 0; i < childNodes.length; i++) {\n if (!element.isEqualNode(childNodes[i])) {\n var index = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n siblingsZindex.push(index);\n }\n }\n }\n }\n var finalValue = parentZindex.concat(childrenZindex, siblingsZindex);\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, finalValue) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n/**\n * Gets the maximum z-index of the page.\n *\n * @returns {void}\n * @param { HTMLElement } tagName - Specify the tagName to get the maximum z-index of it.\n * @private\n */\nexport function getMaxZindex(tagName) {\n if (tagName === void 0) { tagName = ['*']; }\n var maxZindex = [];\n for (var i = 0; i < tagName.length; i++) {\n var elements = document.getElementsByTagName(tagName[i]);\n for (var i_1 = 0; i_1 < elements.length; i_1++) {\n var index = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n maxZindex.push(index);\n }\n }\n }\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, maxZindex) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\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\nmodule.exports = stackHas;\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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\nmodule.exports = isLength;\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","'use strict';\nmodule.exports = {};\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n\r\nvar browsers = [\r\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\r\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\r\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)$/],\r\n ['edge', /Edge\\/([0-9\\._]+)/],\r\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+)\\).*Gecko$/],\r\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\r\n ['ie', /MSIE\\s(7\\.0)/],\r\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\r\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\r\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\r\n ['android', /Android\\s([0-9\\.]+)/],\r\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\r\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\r\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/]\r\n];\r\nvar os = [\r\n 'Windows Phone',\r\n 'Android',\r\n 'CentOS',\r\n { name: 'Chrome OS', pattern: 'CrOS' },\r\n 'Debian',\r\n 'Fedora',\r\n 'FreeBSD',\r\n 'Gentoo',\r\n 'Haiku',\r\n 'Kubuntu',\r\n 'Linux Mint',\r\n 'OpenBSD',\r\n 'Red Hat',\r\n 'SuSE',\r\n 'Ubuntu',\r\n 'Xubuntu',\r\n 'Cygwin',\r\n 'Symbian OS',\r\n 'hpwOS',\r\n 'webOS ',\r\n 'webOS',\r\n 'Tablet OS',\r\n 'Tizen',\r\n 'Linux',\r\n 'Mac OS X',\r\n 'Macintosh',\r\n 'Mac',\r\n 'Windows 98;',\r\n 'Windows '\r\n];\r\nvar osVersions = {\r\n '10.0': '10',\r\n '6.4': '10 Technical Preview',\r\n '6.3': '8.1',\r\n '6.2': '8',\r\n '6.1': 'Server 2008 R2 / 7',\r\n '6.0': 'Server 2008 / Vista',\r\n '5.2': 'Server 2003 / XP 64-bit',\r\n '5.1': 'XP',\r\n '5.01': '2000 SP1',\r\n '5.0': '2000',\r\n '4.0': 'NT',\r\n '4.90': 'ME'\r\n};\r\n\r\nvar mobileRegExp = new RegExp(['(android|bb\\\\d+|meego).+mobile|avantgo|bada\\\\/|blackberry|blazer|',\r\n 'compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|',\r\n 'midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)',\r\n '\\\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\\\.(browser|link)|vodafone|',\r\n 'wap|windows ce|xda|xiino'].join(''), 'i');\r\nvar mobilePrefixRegExp = new RegExp(['1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\\\-)|',\r\n 'ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\\\-m|r |s )|',\r\n 'avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\\\-(n|u)|c55\\\\/|capi|ccwa|cdm\\\\-|',\r\n 'cell|chtm|cldc|cmd\\\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\\\-s|devi|dica|dmob|do(c|p)o|',\r\n 'ds(12|\\\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\\\-|_)|',\r\n 'g1 u|g560|gene|gf\\\\-5|g\\\\-mo|go(\\\\.w|od)|gr(ad|un)|haie|hcit|hd\\\\-(m|p|t)|hei\\\\-|',\r\n 'hi(pt|ta)|hp( i|ip)|hs\\\\-c|ht(c(\\\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\\\-(20|go|ma)|',\r\n 'i230|iac( |\\\\-|\\\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|',\r\n 'kddi|keji|kgt( |\\\\/)|klon|kpt |kwc\\\\-|kyo(c|k)|le(no|xi)|lg( g|\\\\/(k|l|u)|50|54|\\\\-[a-w])',\r\n '|libw|lynx|m1\\\\-w|m3ga|m50\\\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\\\-cr|me(rc|ri)|mi(o8|oa|ts)|',\r\n 'mmef|mo(01|02|bi|de|do|t(\\\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|',\r\n 'n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|',\r\n 'op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\\\-2|',\r\n 'po(ck|rt|se)|prox|psio|pt\\\\-g|qa\\\\-a|qc(07|12|21|32|60|\\\\-[2-7]|i\\\\-)|qtek|r380|r600|',\r\n 'raks|rim9|ro(ve|zo)|s55\\\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\\\-|oo|p\\\\-)|sdk\\\\/|',\r\n 'se(c(\\\\-|0|1)|47|mc|nd|ri)|sgh\\\\-|shar|sie(\\\\-|m)|k\\\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|',\r\n 'so(ft|ny)|sp(01|h\\\\-|v\\\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\\\-|tdg\\\\-|',\r\n 'tel(i|m)|tim\\\\-|t\\\\-mo|to(pl|sh)|ts(70|m\\\\-|m3|m5)|tx\\\\-9|up(\\\\.b|g1|si)|utst|v400|v750|',\r\n 'veri|vi(rg|te)|vk(40|5[0-3]|\\\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|',\r\n 'w3c(\\\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\\\-|your|zeto|zte\\\\-'].join(''), 'i');\r\n\r\nvar Detector = /** @class */ (function () {\r\n function Detector(userAgent, navigator, process) {\r\n this.navigator = navigator;\r\n this.process = process;\r\n this.userAgent = userAgent\r\n ? userAgent\r\n : this.navigator ? (navigator.userAgent || navigator.vendor) : '';\r\n }\r\n Detector.prototype.detect = function () {\r\n if (this.process && !this.userAgent) {\r\n var version = this.process.version.slice(1).split('.').slice(0, 3);\r\n var versionTail = Array.prototype.slice.call(version, 1).join('') || '0';\r\n return {\r\n name: 'node',\r\n version: version.join('.'),\r\n versionNumber: parseFloat(version[0] + \".\" + versionTail),\r\n mobile: false,\r\n os: this.process.platform\r\n };\r\n }\r\n if (!this.userAgent)\r\n this.handleMissingError();\r\n return __assign({}, this.checkBrowser(), this.checkMobile(), this.checkOs());\r\n };\r\n Detector.prototype.checkBrowser = function () {\r\n var _this = this;\r\n return browsers\r\n .filter(function (definition) { return definition[1].test(_this.userAgent); })\r\n .map(function (definition) {\r\n var match = definition[1].exec(_this.userAgent);\r\n var version = match && match[1].split(/[._]/).slice(0, 3);\r\n var versionTails = Array.prototype.slice.call(version, 1).join('') || '0';\r\n if (version && version.length < 3)\r\n Array.prototype.push.apply(version, version.length === 1 ? [0, 0] : [0]);\r\n return {\r\n name: String(definition[0]),\r\n version: version.join('.'),\r\n versionNumber: Number(version[0] + \".\" + versionTails)\r\n };\r\n })\r\n .shift();\r\n };\r\n Detector.prototype.checkMobile = function () {\r\n var agentPrefix = this.userAgent.substr(0, 4);\r\n var mobile = mobileRegExp.test(this.userAgent) || mobilePrefixRegExp.test(agentPrefix);\r\n return { mobile: mobile };\r\n };\r\n Detector.prototype.checkOs = function () {\r\n var _this = this;\r\n return os\r\n .map(function (definition) {\r\n var name = definition.name || definition;\r\n var pattern = _this.getOsPattern(definition);\r\n return {\r\n name: name,\r\n pattern: pattern,\r\n value: RegExp(\"\\\\b\" + pattern.replace(/([ -])(?!$)/g, '$1?') + \"(?:x?[\\\\d._]+|[ \\\\w.]*)\", 'i').exec(_this.userAgent)\r\n };\r\n })\r\n .filter(function (definition) { return definition.value; })\r\n .map(function (definition) {\r\n var os$$1 = definition.value[0] || '';\r\n var osSuffix;\r\n if (definition.pattern &&\r\n definition.name &&\r\n /^Win/i.test(os$$1) &&\r\n !/^Windows Phone /i.test(os$$1) &&\r\n (osSuffix = osVersions[os$$1.replace(/[^\\d.]/g, '')]))\r\n os$$1 = \"Windows \" + osSuffix;\r\n if (definition.pattern && definition.name)\r\n os$$1 = os$$1.replace(RegExp(definition.pattern, 'i'), definition.name);\r\n os$$1 = os$$1\r\n .replace(/ ce$/i, ' CE')\r\n .replace(/\\bhpw/i, 'web')\r\n .replace(/\\bMacintosh\\b/, 'Mac OS')\r\n .replace(/_PowerPC\\b/i, ' OS')\r\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\r\n .replace(/\\bMac (OS X)\\b/, '$1')\r\n .replace(/\\/(\\d)/, ' $1')\r\n .replace(/_/g, '.')\r\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\r\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\r\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\r\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\r\n .split(' on ')[0]\r\n .trim();\r\n os$$1 = /^(?:webOS|i(?:OS|P))/.test(os$$1)\r\n ? os$$1\r\n : (os$$1.charAt(0).toUpperCase() + os$$1.slice(1));\r\n return { os: os$$1 };\r\n })\r\n .shift();\r\n };\r\n Detector.prototype.getOsPattern = function (definition) {\r\n var definitionInterface = definition;\r\n return (typeof definition === 'string'\r\n ? definition\r\n : undefined) ||\r\n definitionInterface.pattern ||\r\n definitionInterface.name;\r\n };\r\n Detector.prototype.handleMissingError = function () {\r\n throw new Error('Please give user-agent.\\n> browser(navigator.userAgent or res.headers[\\'user-agent\\']).');\r\n };\r\n return Detector;\r\n}());\r\n\r\nfunction createCommonjsModule(fn, module) {\r\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\r\n}\r\n\r\nvar _global = createCommonjsModule(function (module) {\r\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\r\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\r\n ? window : typeof self != 'undefined' && self.Math == Math ? self\r\n // eslint-disable-next-line no-new-func\r\n : Function('return this')();\r\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\r\n});\r\n\r\nvar _core = createCommonjsModule(function (module) {\r\nvar core = module.exports = { version: '2.5.7' };\r\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\r\n});\r\nvar _core_1 = _core.version;\r\n\r\nvar _isObject = function (it) {\r\n return typeof it === 'object' ? it !== null : typeof it === 'function';\r\n};\r\n\r\nvar _anObject = function (it) {\r\n if (!_isObject(it)) throw TypeError(it + ' is not an object!');\r\n return it;\r\n};\r\n\r\nvar _fails = function (exec) {\r\n try {\r\n return !!exec();\r\n } catch (e) {\r\n return true;\r\n }\r\n};\r\n\r\n// Thank's IE8 for his funny defineProperty\r\nvar _descriptors = !_fails(function () {\r\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\r\n});\r\n\r\nvar document = _global.document;\r\n// typeof document.createElement is 'object' in old IE\r\nvar is = _isObject(document) && _isObject(document.createElement);\r\nvar _domCreate = function (it) {\r\n return is ? document.createElement(it) : {};\r\n};\r\n\r\nvar _ie8DomDefine = !_descriptors && !_fails(function () {\r\n return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;\r\n});\r\n\r\n// 7.1.1 ToPrimitive(input [, PreferredType])\r\n\r\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\r\n// and the second argument - flag - preferred type is a string\r\nvar _toPrimitive = function (it, S) {\r\n if (!_isObject(it)) return it;\r\n var fn, val;\r\n if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;\r\n if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;\r\n if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;\r\n throw TypeError(\"Can't convert object to primitive value\");\r\n};\r\n\r\nvar dP = Object.defineProperty;\r\n\r\nvar f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {\r\n _anObject(O);\r\n P = _toPrimitive(P, true);\r\n _anObject(Attributes);\r\n if (_ie8DomDefine) try {\r\n return dP(O, P, Attributes);\r\n } catch (e) { /* empty */ }\r\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\r\n if ('value' in Attributes) O[P] = Attributes.value;\r\n return O;\r\n};\r\n\r\nvar _objectDp = {\r\n\tf: f\r\n};\r\n\r\nvar _propertyDesc = function (bitmap, value) {\r\n return {\r\n enumerable: !(bitmap & 1),\r\n configurable: !(bitmap & 2),\r\n writable: !(bitmap & 4),\r\n value: value\r\n };\r\n};\r\n\r\nvar _hide = _descriptors ? function (object, key, value) {\r\n return _objectDp.f(object, key, _propertyDesc(1, value));\r\n} : function (object, key, value) {\r\n object[key] = value;\r\n return object;\r\n};\r\n\r\nvar hasOwnProperty = {}.hasOwnProperty;\r\nvar _has = function (it, key) {\r\n return hasOwnProperty.call(it, key);\r\n};\r\n\r\nvar id = 0;\r\nvar px = Math.random();\r\nvar _uid = function (key) {\r\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\r\n};\r\n\r\nvar _redefine = createCommonjsModule(function (module) {\r\nvar SRC = _uid('src');\r\nvar TO_STRING = 'toString';\r\nvar $toString = Function[TO_STRING];\r\nvar TPL = ('' + $toString).split(TO_STRING);\r\n\r\n_core.inspectSource = function (it) {\r\n return $toString.call(it);\r\n};\r\n\r\n(module.exports = function (O, key, val, safe) {\r\n var isFunction = typeof val == 'function';\r\n if (isFunction) _has(val, 'name') || _hide(val, 'name', key);\r\n if (O[key] === val) return;\r\n if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\r\n if (O === _global) {\r\n O[key] = val;\r\n } else if (!safe) {\r\n delete O[key];\r\n _hide(O, key, val);\r\n } else if (O[key]) {\r\n O[key] = val;\r\n } else {\r\n _hide(O, key, val);\r\n }\r\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\r\n})(Function.prototype, TO_STRING, function toString() {\r\n return typeof this == 'function' && this[SRC] || $toString.call(this);\r\n});\r\n});\r\n\r\nvar _aFunction = function (it) {\r\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\r\n return it;\r\n};\r\n\r\n// optional / simple context binding\r\n\r\nvar _ctx = function (fn, that, length) {\r\n _aFunction(fn);\r\n if (that === undefined) return fn;\r\n switch (length) {\r\n case 1: return function (a) {\r\n return fn.call(that, a);\r\n };\r\n case 2: return function (a, b) {\r\n return fn.call(that, a, b);\r\n };\r\n case 3: return function (a, b, c) {\r\n return fn.call(that, a, b, c);\r\n };\r\n }\r\n return function (/* ...args */) {\r\n return fn.apply(that, arguments);\r\n };\r\n};\r\n\r\nvar PROTOTYPE = 'prototype';\r\n\r\nvar $export = function (type, name, source) {\r\n var IS_FORCED = type & $export.F;\r\n var IS_GLOBAL = type & $export.G;\r\n var IS_STATIC = type & $export.S;\r\n var IS_PROTO = type & $export.P;\r\n var IS_BIND = type & $export.B;\r\n var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];\r\n var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});\r\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\r\n var key, own, out, exp;\r\n if (IS_GLOBAL) source = name;\r\n for (key in source) {\r\n // contains in native\r\n own = !IS_FORCED && target && target[key] !== undefined;\r\n // export native or passed\r\n out = (own ? target : source)[key];\r\n // bind timers to global for call from export context\r\n exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;\r\n // extend global\r\n if (target) _redefine(target, key, out, type & $export.U);\r\n // export\r\n if (exports[key] != out) _hide(exports, key, exp);\r\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\r\n }\r\n};\r\n_global.core = _core;\r\n// type bitmap\r\n$export.F = 1; // forced\r\n$export.G = 2; // global\r\n$export.S = 4; // static\r\n$export.P = 8; // proto\r\n$export.B = 16; // bind\r\n$export.W = 32; // wrap\r\n$export.U = 64; // safe\r\n$export.R = 128; // real proto method for `library`\r\nvar _export = $export;\r\n\r\nvar toString = {}.toString;\r\n\r\nvar _cof = function (it) {\r\n return toString.call(it).slice(8, -1);\r\n};\r\n\r\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\r\n\r\n// eslint-disable-next-line no-prototype-builtins\r\nvar _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\r\n return _cof(it) == 'String' ? it.split('') : Object(it);\r\n};\r\n\r\n// 7.2.1 RequireObjectCoercible(argument)\r\nvar _defined = function (it) {\r\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\r\n return it;\r\n};\r\n\r\n// 7.1.13 ToObject(argument)\r\n\r\nvar _toObject = function (it) {\r\n return Object(_defined(it));\r\n};\r\n\r\n// 7.1.4 ToInteger\r\nvar ceil = Math.ceil;\r\nvar floor = Math.floor;\r\nvar _toInteger = function (it) {\r\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\r\n};\r\n\r\n// 7.1.15 ToLength\r\n\r\nvar min = Math.min;\r\nvar _toLength = function (it) {\r\n return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\r\n};\r\n\r\n// 7.2.2 IsArray(argument)\r\n\r\nvar _isArray = Array.isArray || function isArray(arg) {\r\n return _cof(arg) == 'Array';\r\n};\r\n\r\nvar _shared = createCommonjsModule(function (module) {\r\nvar SHARED = '__core-js_shared__';\r\nvar store = _global[SHARED] || (_global[SHARED] = {});\r\n\r\n(module.exports = function (key, value) {\r\n return store[key] || (store[key] = value !== undefined ? value : {});\r\n})('versions', []).push({\r\n version: _core.version,\r\n mode: 'global',\r\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\r\n});\r\n});\r\n\r\nvar _wks = createCommonjsModule(function (module) {\r\nvar store = _shared('wks');\r\n\r\nvar Symbol = _global.Symbol;\r\nvar USE_SYMBOL = typeof Symbol == 'function';\r\n\r\nvar $exports = module.exports = function (name) {\r\n return store[name] || (store[name] =\r\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));\r\n};\r\n\r\n$exports.store = store;\r\n});\r\n\r\nvar SPECIES = _wks('species');\r\n\r\nvar _arraySpeciesConstructor = function (original) {\r\n var C;\r\n if (_isArray(original)) {\r\n C = original.constructor;\r\n // cross-realm fallback\r\n if (typeof C == 'function' && (C === Array || _isArray(C.prototype))) C = undefined;\r\n if (_isObject(C)) {\r\n C = C[SPECIES];\r\n if (C === null) C = undefined;\r\n }\r\n } return C === undefined ? Array : C;\r\n};\r\n\r\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\r\n\r\n\r\nvar _arraySpeciesCreate = function (original, length) {\r\n return new (_arraySpeciesConstructor(original))(length);\r\n};\r\n\r\n// 0 -> Array#forEach\r\n// 1 -> Array#map\r\n// 2 -> Array#filter\r\n// 3 -> Array#some\r\n// 4 -> Array#every\r\n// 5 -> Array#find\r\n// 6 -> Array#findIndex\r\n\r\n\r\n\r\n\r\n\r\nvar _arrayMethods = function (TYPE, $create) {\r\n var IS_MAP = TYPE == 1;\r\n var IS_FILTER = TYPE == 2;\r\n var IS_SOME = TYPE == 3;\r\n var IS_EVERY = TYPE == 4;\r\n var IS_FIND_INDEX = TYPE == 6;\r\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\r\n var create = $create || _arraySpeciesCreate;\r\n return function ($this, callbackfn, that) {\r\n var O = _toObject($this);\r\n var self = _iobject(O);\r\n var f = _ctx(callbackfn, that, 3);\r\n var length = _toLength(self.length);\r\n var index = 0;\r\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\r\n var val, res;\r\n for (;length > index; index++) if (NO_HOLES || index in self) {\r\n val = self[index];\r\n res = f(val, index, O);\r\n if (TYPE) {\r\n if (IS_MAP) result[index] = res; // map\r\n else if (res) switch (TYPE) {\r\n case 3: return true; // some\r\n case 5: return val; // find\r\n case 6: return index; // findIndex\r\n case 2: result.push(val); // filter\r\n } else if (IS_EVERY) return false; // every\r\n }\r\n }\r\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\r\n };\r\n};\r\n\r\nvar _strictMethod = function (method, arg) {\r\n return !!method && _fails(function () {\r\n // eslint-disable-next-line no-useless-call\r\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\r\n });\r\n};\r\n\r\nvar $filter = _arrayMethods(2);\r\n\r\n_export(_export.P + _export.F * !_strictMethod([].filter, true), 'Array', {\r\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\r\n filter: function filter(callbackfn /* , thisArg */) {\r\n return $filter(this, callbackfn, arguments[1]);\r\n }\r\n});\r\n\r\nvar filter = _core.Array.filter;\r\n\r\nvar $map = _arrayMethods(1);\r\n\r\n_export(_export.P + _export.F * !_strictMethod([].map, true), 'Array', {\r\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\r\n map: function map(callbackfn /* , thisArg */) {\r\n return $map(this, callbackfn, arguments[1]);\r\n }\r\n});\r\n\r\nvar map = _core.Array.map;\r\n\r\nvar _stringWs = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\r\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\r\n\r\nvar space = '[' + _stringWs + ']';\r\nvar non = '\\u200b\\u0085';\r\nvar ltrim = RegExp('^' + space + space + '*');\r\nvar rtrim = RegExp(space + space + '*$');\r\n\r\nvar exporter = function (KEY, exec, ALIAS) {\r\n var exp = {};\r\n var FORCE = _fails(function () {\r\n return !!_stringWs[KEY]() || non[KEY]() != non;\r\n });\r\n var fn = exp[KEY] = FORCE ? exec(trim) : _stringWs[KEY];\r\n if (ALIAS) exp[ALIAS] = fn;\r\n _export(_export.P + _export.F * FORCE, 'String', exp);\r\n};\r\n\r\n// 1 -> String#trimLeft\r\n// 2 -> String#trimRight\r\n// 3 -> String#trim\r\nvar trim = exporter.trim = function (string, TYPE) {\r\n string = String(_defined(string));\r\n if (TYPE & 1) string = string.replace(ltrim, '');\r\n if (TYPE & 2) string = string.replace(rtrim, '');\r\n return string;\r\n};\r\n\r\nvar _stringTrim = exporter;\r\n\r\n// 21.1.3.25 String.prototype.trim()\r\n_stringTrim('trim', function ($trim) {\r\n return function trim() {\r\n return $trim(this, 3);\r\n };\r\n});\r\n\r\nvar trim$1 = _core.String.trim;\r\n\r\nvar injectableNavigator = typeof window !== 'undefined'\r\n ? window.navigator\r\n : undefined;\r\nvar injectableProcess = typeof process !== 'undefined'\r\n ? process\r\n : undefined;\r\nfunction browserDetect (userAgent) {\r\n var detector = new Detector(userAgent, injectableNavigator, injectableProcess);\r\n return detector.detect();\r\n}\r\n\r\nexport default browserDetect;\r\n//# sourceMappingURL=browser-detect.es5.js.map\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach, createElement as buildTag } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-vscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_VSCROLLBAR = 'e-vscroll-bar';\nvar CLS_VSCROLLCON = 'e-vscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVUPARROW = 'e-nav-up-arrow';\nvar CLS_NAVDOWNARROW = 'e-nav-down-arrow';\nvar CLS_VSCROLLNAV = 'e-scroll-nav';\nvar CLS_VSCROLLNAVUP = 'e-scroll-up-nav';\nvar CLS_VSCROLLNAVDOWN = 'e-scroll-down-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_UPOVERLAY = 'e-scroll-up-overlay';\nvar CLS_DOWNOVERLAY = 'e-scroll-down-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * VScroll module is introduces vertical scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs vertical scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
    \n * \n * ```\n */\nvar VScroll = /** @class */ (function (_super) {\n __extends(VScroll, _super);\n /**\n * Initializes a new instance of the VScroll class.\n *\n * @param {VScrollModel} options - Specifies VScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which vertical scrolling applies.\n */\n function VScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var ele = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (ele.id === '') {\n ele.id = getUniqueID('vscroll');\n this.uniqueId = true;\n }\n ele.style.display = 'block';\n if (this.enableRtl) {\n ele.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the vertical scroll rendering\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollEventHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlayElement(this.element);\n }\n this.setScrollState();\n EventHandler.add(this.element, 'wheel', this.wheelEventHandler, this);\n };\n VScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetHeight;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n VScroll.prototype.initialize = function () {\n var scrollCnt = buildTag('div', { className: CLS_VSCROLLCON });\n var scrollBar = buildTag('div', { className: CLS_VSCROLLBAR });\n scrollBar.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollCnt.appendChild(ele_1);\n }\n scrollBar.appendChild(scrollCnt);\n ele.appendChild(scrollBar);\n scrollBar.style.overflow = 'hidden';\n this.scrollEle = scrollBar;\n this.scrollItems = scrollCnt;\n };\n VScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n VScroll.prototype.getModuleName = function () {\n return 'vScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n VScroll.prototype.destroy = function () {\n var el = this.element;\n el.style.display = '';\n removeClass([this.element], [CLS_ROOT, CLS_DEVICE, CLS_RTL]);\n var navs = selectAll('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el);\n var overlays = selectAll('.' + CLS_OVERLAY, el);\n [].slice.call(overlays).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n el.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (navs.length > 0) {\n detach(navs[0]);\n if (!isNullOrUndefined(navs[1])) {\n detach(navs[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollEventHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the VScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, VScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n VScroll.prototype.disable = function (value) {\n var navEle = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEle).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n VScroll.prototype.createOverlayElement = function (element) {\n var id = element.id.concat('_nav');\n var downOverlayEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_DOWNOVERLAY });\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var downEle = buildTag('div', { id: id.concat('down'), className: clsDown });\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n downEle.appendChild(navItem);\n var upEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_UPOVERLAY });\n if (this.ieCheck) {\n downEle.classList.add('e-ie-align');\n }\n element.appendChild(downOverlayEle);\n element.appendChild(downEle);\n element.insertBefore(upEle, element.firstChild);\n this.eventBinding([downEle]);\n };\n VScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var nav = buildTag('div', { id: id.concat('_down'), className: clsDown });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsUp = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVUP);\n var navElement = buildTag('div', { id: id.concat('_up'), className: clsUp + ' ' + CLS_DISABLE });\n navElement.setAttribute('aria-disabled', 'true');\n var navUpItem = buildTag('div', { className: CLS_NAVUPARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navElement.appendChild(navUpItem);\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n element.appendChild(nav);\n element.insertBefore(navElement, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navElement.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navElement]);\n };\n VScroll.prototype.onKeyPress = function (ev) {\n var _this = this;\n if (ev.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, ev.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n VScroll.prototype.onKeyUp = function (ev) {\n if (ev.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n ev.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n VScroll.prototype.eventBinding = function (element) {\n var _this = this;\n [].slice.call(element).forEach(function (ele) {\n new Touch(ele, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n ele.addEventListener('keydown', _this.onKeyPress.bind(_this));\n ele.addEventListener('keyup', _this.onKeyUp.bind(_this));\n ele.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n ele.addEventListener('touchend', _this.repeatScroll.bind(_this));\n ele.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(ele, 'click', _this.clickEventHandler, _this);\n });\n };\n VScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n VScroll.prototype.tabHoldHandler = function (ev) {\n var _this = this;\n var trgt = ev.originalEvent.target;\n trgt = this.contains(trgt, CLS_VSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDistance = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDistance, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n VScroll.prototype.contains = function (element, className) {\n return element.classList.contains(className);\n };\n VScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var classList = trgt.classList;\n if (classList.contains(CLS_VSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (classList.contains(CLS_NAVDOWNARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else if (classList.contains(CLS_NAVUPARROW)) {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n };\n VScroll.prototype.clickEventHandler = function (event) {\n this.eleScrolling(this.scrollStep, event.target, false);\n };\n VScroll.prototype.wheelEventHandler = function (e) {\n e.preventDefault();\n this.frameScrollRequest(this.scrollStep, (e.deltaY > 0 ? 'add' : ''), false);\n };\n VScroll.prototype.swipeHandler = function (e) {\n var swipeElement = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceY / (e.velocity * 10);\n }\n else {\n distance = e.distanceY / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Up') {\n swipeElement.scrollTop += distance * step;\n }\n else if (e.swipeDirection === 'Down') {\n swipeElement.scrollTop -= distance * step;\n }\n start -= 0.02;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollTop += scrollVal;\n }\n else {\n this.scrollEle.scrollTop -= scrollVal;\n }\n };\n VScroll.prototype.frameScrollRequest = function (scrollValue, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollValue, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollValue -= el.offsetHeight;\n });\n }\n var animate = function () {\n if (scrollValue < step) {\n window.cancelAnimationFrame(step);\n }\n else {\n _this.scrollUpdating(step, action);\n scrollValue -= step;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.touchHandler = function (e) {\n var el = this.scrollEle;\n var distance = e.distanceY;\n if (e.scrollDirection === 'Up') {\n el.scrollTop = el.scrollTop + distance;\n }\n else if (e.scrollDirection === 'Down') {\n el.scrollTop = el.scrollTop - distance;\n }\n };\n VScroll.prototype.arrowDisabling = function (addDisableCls, removeDisableCls) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisableCls) ? removeDisableCls : addDisableCls;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisableCls)) {\n classList(arrowIcon, [CLS_NAVDOWNARROW], [CLS_NAVUPARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVUPARROW], [CLS_NAVDOWNARROW]);\n }\n }\n else {\n addDisableCls.classList.add(CLS_DISABLE);\n addDisableCls.setAttribute('aria-disabled', 'true');\n addDisableCls.removeAttribute('tabindex');\n removeDisableCls.classList.remove(CLS_DISABLE);\n removeDisableCls.setAttribute('aria-disabled', 'false');\n removeDisableCls.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n VScroll.prototype.scrollEventHandler = function (e) {\n var target = e.target;\n var height = target.offsetHeight;\n var navUpEle = this.element.querySelector('.' + CLS_VSCROLLNAVUP);\n var navDownEle = this.element.querySelector('.' + CLS_VSCROLLNAVDOWN);\n var upOverlay = this.element.querySelector('.' + CLS_UPOVERLAY);\n var downOverlay = this.element.querySelector('.' + CLS_DOWNOVERLAY);\n var scrollTop = target.scrollTop;\n if (scrollTop <= 0) {\n scrollTop = -scrollTop;\n }\n if (this.isDevice) {\n if (scrollTop < OVERLAY_MAXWID) {\n upOverlay.style.height = scrollTop + 'px';\n }\n else {\n upOverlay.style.height = '40px';\n }\n if ((target.scrollHeight - Math.ceil(height + scrollTop)) < OVERLAY_MAXWID) {\n downOverlay.style.height = (target.scrollHeight - Math.ceil(height + scrollTop)) + 'px';\n }\n else {\n downOverlay.style.height = '40px';\n }\n }\n if (scrollTop === 0) {\n this.arrowDisabling(navUpEle, navDownEle);\n }\n else if (Math.ceil(height + scrollTop + .1) >= target.scrollHeight) {\n this.arrowDisabling(navDownEle, navUpEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_VSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {VScrollModel} newProp - It contains the new value of data.\n * @param {VScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n VScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(CLS_RTL);\n }\n else {\n this.element.classList.remove(CLS_RTL);\n }\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], VScroll.prototype, \"scrollStep\", void 0);\n VScroll = __decorate([\n NotifyPropertyChanges\n ], VScroll);\n return VScroll;\n}(Component));\nexport { VScroll };\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","/*!\n * pinia v2.1.7\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, del, nextTick, computed, toRefs } from 'vue-demi';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n/**\n * Should we add the devtools plugins.\n * - only if dev mode or forced through the prod devtools flag\n * - not in test\n * - only if window exists (could change in the future)\n */\nconst USE_DEVTOOLS = ((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test') && IS_CLIENT;\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = \n typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload, ctx) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload, ctx) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n if (!isVue2) {\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n }\n },\n use(plugin) {\n if (!this._a && !isVue2) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if (USE_DEVTOOLS && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n if (isVue2) {\n set(newState, key, subPatch);\n }\n else {\n newState[key] = subPatch;\n }\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n // Handle Set instances\n if (target instanceof Set && patchToApply instanceof Set) {\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\nconst skipHydrateMap = /*#__PURE__*/ new WeakMap();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return isVue2\n ? // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...\n /* istanbul ignore next */ skipHydrateMap.set(obj, 1) && obj\n : Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return isVue2\n ? /* istanbul ignore next */ !skipHydrateMap.has(obj)\n : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, id, state ? state() : {});\n }\n else {\n pinia.state.value[id] = state ? state() : {};\n }\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n /* istanbul ignore next */\n if (isVue2 && !store._r)\n return;\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = {\n deep: true,\n // flush: 'post',\n };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production') && !isVue2) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = [];\n let actionSubscriptions = [];\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, $id, {});\n }\n else {\n pinia.state.value[$id] = {};\n }\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Wraps an action to handle subscriptions.\n *\n * @param name - name of the action\n * @param action - action to wrap\n * @returns a wrapped action to handle subscriptions\n */\n function wrapAction(name, action) {\n return function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name,\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = action.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n }\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n /* istanbul ignore if */\n if (isVue2) {\n // start as non ready\n partialStore._r = false;\n }\n const store = reactive((process.env.NODE_ENV !== 'production') || USE_DEVTOOLS\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(setup)));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n set(hotState.value, key, toRef(setupStore, key));\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value[$id], key, prop);\n }\n else {\n pinia.state.value[$id][key] = prop;\n }\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n // @ts-expect-error: we are overriding the function we avoid wrapping if\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : wrapAction(key, prop);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n /* istanbul ignore if */\n if (isVue2) {\n set(setupStore, key, actionValue);\n }\n else {\n // @ts-expect-error\n setupStore[key] = actionValue;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n if (isVue2) {\n Object.keys(setupStore).forEach((key) => {\n set(store, key, setupStore[key]);\n });\n }\n else {\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n }\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n set(store, stateKey, toRef(newStore.$state, stateKey));\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n del(store, stateKey);\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const action = newStore[actionName];\n set(store, actionName, wrapAction(actionName, action));\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n set(store, getterName, getterValue);\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n del(store, key);\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n del(store, key);\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if (USE_DEVTOOLS) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n /* istanbul ignore if */\n if (isVue2) {\n // mark the store as ready before plugins\n store._r = true;\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n const extensions = scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\nfunction defineStore(\n// TODO: add proper types from above\nidOrOptions, setup, setupOptions) {\n let id;\n let options;\n const isSetupStore = typeof setup === 'function';\n if (typeof idOrOptions === 'string') {\n id = idOrOptions;\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n }\n else {\n options = idOrOptions;\n id = idOrOptions.id;\n if ((process.env.NODE_ENV !== 'production') && typeof id !== 'string') {\n throw new Error(`[🍍]: \"defineStore()\" must be passed a store id as its first argument.`);\n }\n }\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n // See https://github.com/vuejs/pinia/issues/852\n // It's easier to just use toRefs() even if it includes more stuff\n if (isVue2) {\n // @ts-expect-error: toRefs include methods and others\n return toRefs(store);\n }\n else {\n store = toRaw(store);\n const refs = {};\n for (const key in store) {\n const value = store[key];\n if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n }\n}\n\n/**\n * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need\n * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:\n * https://pinia.vuejs.org/ssr/nuxt.html.\n *\n * @example\n * ```js\n * import Vue from 'vue'\n * import { PiniaVuePlugin, createPinia } from 'pinia'\n *\n * Vue.use(PiniaVuePlugin)\n * const pinia = createPinia()\n *\n * new Vue({\n * el: '#app',\n * // ...\n * pinia,\n * })\n * ```\n *\n * @param _Vue - `Vue` imported from 'vue'.\n */\nconst PiniaVuePlugin = function (_Vue) {\n // Equivalent of\n // app.config.globalProperties.$pinia = pinia\n _Vue.mixin({\n beforeCreate() {\n const options = this.$options;\n if (options.pinia) {\n const pinia = options.pinia;\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31\n /* istanbul ignore else */\n if (!this._provided) {\n const provideCache = {};\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n });\n }\n this._provided[piniaSymbol] = pinia;\n // propagate the pinia instance in an SSR friendly way\n // avoid adding it to nuxt twice\n /* istanbul ignore else */\n if (!this.$pinia) {\n this.$pinia = pinia;\n }\n pinia._a = this;\n if (IS_CLIENT) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n }\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(pinia._a, pinia);\n }\n }\n else if (!this.$pinia && options.parent && options.parent.$pinia) {\n this.$pinia = options.parent.$pinia;\n }\n },\n destroyed() {\n delete this._pStores;\n },\n });\n};\n\nexport { MutationType, PiniaVuePlugin, acceptHMRUpdate, createPinia, defineStore, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, skipHydrate, storeToRefs };\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nconst IPV4_REG = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(IPV4_REG) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !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 * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(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 {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var 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 var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\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: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\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\nmodule.exports = initCloneObject;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, 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(createError('Request aborted', config, 'ECONNABORTED', 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(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\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 if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","/**\n * Parse a JSON Pointer\n */\nexport function parseJSONPointer(pointer) {\n const path = pointer.split('/');\n path.shift(); // remove the first empty entry\n\n return path.map(p => p.replace(/~1/g, '/').replace(/~0/g, '~'));\n}\n\n/**\n * Compile a JSON Pointer\n */\nexport function compileJSONPointer(path) {\n return path.map(compileJSONPointerProp).join('');\n}\n\n/**\n * Compile a single path property from a JSONPath\n */\nexport function compileJSONPointerProp(pathProp) {\n return '/' + String(pathProp).replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n/**\n * Append a path property to a JSONPointer\n */\nexport function appendToJSONPointer(pointer, pathProp) {\n return pointer + compileJSONPointerProp(pathProp);\n}\n\n/**\n * Test whether `pointer` starts with `searchPointer`\n */\nexport function startsWithJSONPointer(pointer, searchPointer) {\n return pointer.startsWith(searchPointer) && (pointer.length === searchPointer.length || pointer[searchPointer.length] === '/');\n}\n//# sourceMappingURL=jsonPointer.js.map","export function isJSONArray(value) {\n return Array.isArray(value);\n}\nexport function isJSONObject(value) {\n return value !== null && typeof value === 'object' && (value.constructor === undefined ||\n // for example Object.create(null)\n value.constructor.name === 'Object') // do not match on classes or Array\n ;\n}\nexport function isJSONPatchOperation(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? typeof value.op === 'string' : false;\n}\nexport function isJSONPatchAdd(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'add' : false;\n}\nexport function isJSONPatchRemove(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'remove' : false;\n}\nexport function isJSONPatchReplace(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'replace' : false;\n}\nexport function isJSONPatchCopy(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'copy' : false;\n}\nexport function isJSONPatchMove(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'move' : false;\n}\nexport function isJSONPatchTest(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'test' : false;\n}\n//# sourceMappingURL=typeguards.js.map","/**\n * Test deep equality of two JSON values, objects, or arrays\n */\n// TODO: write unit tests\nexport function isEqual(a, b) {\n // FIXME: this function will return false for two objects with the same keys\n // but different order of keys\n return JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n * Test whether two values are strictly equal\n */\nexport function strictEqual(a, b) {\n return a === b;\n}\n\n/**\n * Get all but the last items from an array\n */\n// TODO: write unit tests\nexport function initial(array) {\n return array.slice(0, array.length - 1);\n}\n\n/**\n * Get the last item from an array\n */\n// TODO: write unit tests\nexport function last(array) {\n return array[array.length - 1];\n}\n\n/**\n * Test whether array1 starts with array2\n * @param array1\n * @param array2\n * @param [isEqual] Optional function to check equality\n */\nexport function startsWith(array1, array2) {\n let isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEqual;\n if (array1.length < array2.length) {\n return false;\n }\n for (let i = 0; i < array2.length; i++) {\n if (!isEqual(array1[i], array2[i])) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Test whether a value is an Object or an Array (and not a primitive JSON value)\n */\n// TODO: write unit tests\nexport function isObjectOrArray(value) {\n return typeof value === 'object' && value !== null;\n}\n//# sourceMappingURL=utils.js.map","/**\n * Immutability helpers\n *\n * inspiration:\n *\n * https://www.npmjs.com/package/seamless-immutable\n * https://www.npmjs.com/package/ih\n * https://www.npmjs.com/package/mutatis\n * https://github.com/mariocasciaro/object-path-immutable\n */\nimport { isJSONArray, isJSONObject } from './typeguards.js';\nimport { isObjectOrArray } from './utils.js';\n\n/**\n * Shallow clone of an Object, Array, or value\n * Symbols are cloned too.\n */\nexport function shallowClone(value) {\n if (isJSONArray(value)) {\n // copy array items\n const copy = value.slice();\n\n // copy all symbols\n Object.getOwnPropertySymbols(value).forEach(symbol => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n copy[symbol] = value[symbol];\n });\n return copy;\n } else if (isJSONObject(value)) {\n // copy object properties\n const copy = {\n ...value\n };\n\n // copy all symbols\n Object.getOwnPropertySymbols(value).forEach(symbol => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n copy[symbol] = value[symbol];\n });\n return copy;\n } else {\n return value;\n }\n}\n\n/**\n * Update a value in an object in an immutable way.\n * If the value is unchanged, the original object will be returned\n */\nexport function applyProp(object, key, value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (object[key] === value) {\n // return original object unchanged when the new value is identical to the old one\n return object;\n } else {\n const updatedObject = shallowClone(object);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n updatedObject[key] = value;\n return updatedObject;\n }\n}\n\n/**\n * helper function to get a nested property in an object or array\n *\n * @return Returns the field when found, or undefined when the path doesn't exist\n */\nexport function getIn(object, path) {\n let value = object;\n let i = 0;\n while (i < path.length) {\n if (isJSONObject(value)) {\n value = value[path[i]];\n } else if (isJSONArray(value)) {\n value = value[parseInt(path[i])];\n } else {\n value = undefined;\n }\n i++;\n }\n return value;\n}\n\n/**\n * helper function to replace a nested property in an object with a new value\n * without mutating the object itself.\n *\n * @param object\n * @param path\n * @param value\n * @param [createPath=false]\n * If true, `path` will be created when (partly) missing in\n * the object. For correctly creating nested Arrays or\n * Objects, the function relies on `path` containing number\n * in case of array indexes.\n * If false (default), an error will be thrown when the\n * path doesn't exist.\n * @return Returns a new, updated object or array\n */\nexport function setIn(object, path, value) {\n let createPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (path.length === 0) {\n return value;\n }\n const key = path[0];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const updatedValue = setIn(object ? object[key] : undefined, path.slice(1), value, createPath);\n if (isJSONObject(object) || isJSONArray(object)) {\n return applyProp(object, key, updatedValue);\n } else {\n if (createPath) {\n const newObject = IS_INTEGER_REGEX.test(key) ? [] : {};\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n newObject[key] = updatedValue;\n return newObject;\n } else {\n throw new Error('Path does not exist');\n }\n }\n}\nconst IS_INTEGER_REGEX = /^\\d+$/;\n\n/**\n * helper function to replace a nested property in an object with a new value\n * without mutating the object itself.\n *\n * @return Returns a new, updated object or array\n */\nexport function updateIn(object, path, transform) {\n if (path.length === 0) {\n return transform(object);\n }\n if (!isObjectOrArray(object)) {\n throw new Error('Path doesn\\'t exist');\n }\n const key = path[0];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const updatedValue = updateIn(object[key], path.slice(1), transform);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return applyProp(object, key, updatedValue);\n}\n\n/**\n * helper function to delete a nested property in an object\n * without mutating the object itself.\n *\n * @return Returns a new, updated object or array\n */\nexport function deleteIn(object, path) {\n if (path.length === 0) {\n return object;\n }\n if (!isObjectOrArray(object)) {\n throw new Error('Path does not exist');\n }\n if (path.length === 1) {\n const key = path[0];\n if (!(key in object)) {\n // key doesn't exist. return object unchanged\n return object;\n } else {\n const updatedObject = shallowClone(object);\n if (isJSONArray(updatedObject)) {\n updatedObject.splice(parseInt(key), 1);\n }\n if (isJSONObject(updatedObject)) {\n delete updatedObject[key];\n }\n return updatedObject;\n }\n }\n const key = path[0];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const updatedValue = deleteIn(object[key], path.slice(1));\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return applyProp(object, key, updatedValue);\n}\n\n/**\n * Insert a new item in an array at a specific index.\n * Example usage:\n *\n * insertAt({arr: [1,2,3]}, ['arr', '2'], 'inserted') // [1,2,'inserted',3]\n */\nexport function insertAt(document, path, value) {\n const parentPath = path.slice(0, path.length - 1);\n const index = path[path.length - 1];\n return updateIn(document, parentPath, items => {\n if (!Array.isArray(items)) {\n throw new TypeError('Array expected at path ' + JSON.stringify(parentPath));\n }\n const updatedItems = shallowClone(items);\n updatedItems.splice(parseInt(index), 0, value);\n return updatedItems;\n });\n}\n\n/**\n * Transform a JSON object, traverse over the whole object,\n * and allow replacing Objects/Arrays/values.\n */\nexport function transform(document, callback) {\n let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n // eslint-disable-next-line n/no-callback-literal\n const updated1 = callback(document, path);\n if (isJSONArray(updated1)) {\n // array\n let updated2;\n for (let i = 0; i < updated1.length; i++) {\n const before = updated1[i];\n // we stringify the index here, so the path only contains strings and can be safely\n // stringified/parsed to JSONPointer without loosing information.\n // We do not want to rely on path keys being numeric/string.\n const after = transform(before, callback, path.concat(i + ''));\n if (after !== before) {\n if (!updated2) {\n updated2 = shallowClone(updated1);\n }\n updated2[i] = after;\n }\n }\n return updated2 || updated1;\n } else if (isJSONObject(updated1)) {\n // object\n let updated2;\n for (const key in updated1) {\n if (Object.hasOwnProperty.call(updated1, key)) {\n const before = updated1[key];\n const after = transform(before, callback, path.concat(key));\n if (after !== before) {\n if (!updated2) {\n updated2 = shallowClone(updated1);\n }\n updated2[key] = after;\n }\n }\n }\n return updated2 || updated1;\n } else {\n // number, string, boolean, null\n return updated1;\n }\n}\n\n/**\n * Test whether a path exists in a JSON object\n * @return Returns true if the path exists, else returns false\n */\nexport function existsIn(document, path) {\n if (document === undefined) {\n return false;\n }\n if (path.length === 0) {\n return true;\n }\n if (document === null) {\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return existsIn(document[path[0]], path.slice(1));\n}\n//# sourceMappingURL=immutabilityHelpers.js.map","import { deleteIn, existsIn, getIn, insertAt, setIn } from './immutabilityHelpers.js';\nimport { compileJSONPointer, parseJSONPointer } from './jsonPointer.js';\nimport { initial, isEqual, last } from './utils.js';\n\n/**\n * Apply a patch to a JSON object\n * The original JSON object will not be changed,\n * instead, the patch is applied in an immutable way\n */\nexport function immutableJSONPatch(document, operations, options) {\n let updatedDocument = document;\n for (let i = 0; i < operations.length; i++) {\n validateJSONPatchOperation(operations[i]);\n let operation = operations[i];\n\n // TODO: test before\n if (options && options.before) {\n const result = options.before(updatedDocument, operation);\n if (result !== undefined) {\n if (result.document !== undefined) {\n updatedDocument = result.document;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (result.json !== undefined) {\n // TODO: deprecated since v5.0.0. Cleanup this warning some day\n throw new Error('Deprecation warning: returned object property \".json\" has been renamed to \".document\"');\n }\n if (result.operation !== undefined) {\n operation = result.operation;\n }\n }\n }\n const previousDocument = updatedDocument;\n const path = parsePath(updatedDocument, operation.path);\n if (operation.op === 'add') {\n updatedDocument = add(updatedDocument, path, operation.value);\n } else if (operation.op === 'remove') {\n updatedDocument = remove(updatedDocument, path);\n } else if (operation.op === 'replace') {\n updatedDocument = replace(updatedDocument, path, operation.value);\n } else if (operation.op === 'copy') {\n updatedDocument = copy(updatedDocument, path, parseFrom(operation.from));\n } else if (operation.op === 'move') {\n updatedDocument = move(updatedDocument, path, parseFrom(operation.from));\n } else if (operation.op === 'test') {\n test(updatedDocument, path, operation.value);\n } else {\n throw new Error('Unknown JSONPatch operation ' + JSON.stringify(operation));\n }\n\n // TODO: test after\n if (options && options.after) {\n const result = options.after(updatedDocument, operation, previousDocument);\n if (result !== undefined) {\n updatedDocument = result;\n }\n }\n }\n return updatedDocument;\n}\n\n/**\n * Replace an existing item\n */\nexport function replace(document, path, value) {\n return setIn(document, path, value);\n}\n\n/**\n * Remove an item or property\n */\nexport function remove(document, path) {\n return deleteIn(document, path);\n}\n\n/**\n * Add an item or property\n */\nexport function add(document, path, value) {\n if (isArrayItem(document, path)) {\n return insertAt(document, path, value);\n } else {\n return setIn(document, path, value);\n }\n}\n\n/**\n * Copy a value\n */\nexport function copy(document, path, from) {\n const value = getIn(document, from);\n if (isArrayItem(document, path)) {\n return insertAt(document, path, value);\n } else {\n const value = getIn(document, from);\n return setIn(document, path, value);\n }\n}\n\n/**\n * Move a value\n */\nexport function move(document, path, from) {\n const value = getIn(document, from);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const removedJson = deleteIn(document, from);\n return isArrayItem(removedJson, path) ? insertAt(removedJson, path, value) : setIn(removedJson, path, value);\n}\n\n/**\n * Test whether the data contains the provided value at the specified path.\n * Throws an error when the test fails\n */\nexport function test(document, path, value) {\n if (value === undefined) {\n throw new Error(`Test failed: no value provided (path: \"${compileJSONPointer(path)}\")`);\n }\n if (!existsIn(document, path)) {\n throw new Error(`Test failed: path not found (path: \"${compileJSONPointer(path)}\")`);\n }\n const actualValue = getIn(document, path);\n if (!isEqual(actualValue, value)) {\n throw new Error(`Test failed, value differs (path: \"${compileJSONPointer(path)}\")`);\n }\n}\nexport function isArrayItem(document, path) {\n if (path.length === 0) {\n return false;\n }\n const parent = getIn(document, initial(path));\n return Array.isArray(parent);\n}\n\n/**\n * Resolve the path index of an array, resolves indexes '-'\n * @returns Returns the resolved path\n */\nexport function resolvePathIndex(document, path) {\n if (last(path) !== '-') {\n return path;\n }\n const parentPath = initial(path);\n const parent = getIn(document, parentPath);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return parentPath.concat(parent.length);\n}\n\n/**\n * Validate a JSONPatch operation.\n * Throws an error when there is an issue\n */\nexport function validateJSONPatchOperation(operation) {\n // TODO: write unit tests\n const ops = ['add', 'remove', 'replace', 'copy', 'move', 'test'];\n if (!ops.includes(operation.op)) {\n throw new Error('Unknown JSONPatch op ' + JSON.stringify(operation.op));\n }\n if (typeof operation.path !== 'string') {\n throw new Error('Required property \"path\" missing or not a string in operation ' + JSON.stringify(operation));\n }\n if (operation.op === 'copy' || operation.op === 'move') {\n if (typeof operation.from !== 'string') {\n throw new Error('Required property \"from\" missing or not a string in operation ' + JSON.stringify(operation));\n }\n }\n}\nexport function parsePath(document, pointer) {\n return resolvePathIndex(document, parseJSONPointer(pointer));\n}\nexport function parseFrom(fromPointer) {\n return parseJSONPointer(fromPointer);\n}\n//# sourceMappingURL=immutableJSONPatch.js.map","import { existsIn, getIn } from './immutabilityHelpers.js';\nimport { immutableJSONPatch, isArrayItem, parseFrom, parsePath } from './immutableJSONPatch.js';\nimport { compileJSONPointer } from './jsonPointer.js';\nimport { startsWith } from './utils.js';\n\n/**\n * Create the inverse of a set of json patch operations\n * @param document\n * @param operations Array with JSON patch actions\n * @param [options]\n * @return Returns the operations to revert the changes\n */\nexport function revertJSONPatch(document, operations, options) {\n let allRevertOperations = [];\n const before = (document, operation) => {\n let revertOperations;\n const path = parsePath(document, operation.path);\n if (operation.op === 'add') {\n revertOperations = revertAdd(document, path);\n } else if (operation.op === 'remove') {\n revertOperations = revertRemove(document, path);\n } else if (operation.op === 'replace') {\n revertOperations = revertReplace(document, path);\n } else if (operation.op === 'copy') {\n revertOperations = revertCopy(document, path);\n } else if (operation.op === 'move') {\n revertOperations = revertMove(document, path, parseFrom(operation.from));\n } else if (operation.op === 'test') {\n revertOperations = [];\n } else {\n throw new Error('Unknown JSONPatch operation ' + JSON.stringify(operation));\n }\n let updatedJson;\n if (options && options.before) {\n const res = options.before(document, operation, revertOperations);\n if (res && res.revertOperations) {\n revertOperations = res.revertOperations;\n }\n if (res && res.document) {\n updatedJson = res.document;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (res && res.json) {\n // TODO: deprecated since v5.0.0. Cleanup this warning some day\n throw new Error('Deprecation warning: returned object property \".json\" has been renamed to \".document\"');\n }\n }\n allRevertOperations = revertOperations.concat(allRevertOperations);\n if (updatedJson !== undefined) {\n return {\n document: updatedJson\n };\n }\n };\n immutableJSONPatch(document, operations, {\n before\n });\n return allRevertOperations;\n}\nfunction revertReplace(document, path) {\n return [{\n op: 'replace',\n path: compileJSONPointer(path),\n value: getIn(document, path)\n }];\n}\nfunction revertRemove(document, path) {\n return [{\n op: 'add',\n path: compileJSONPointer(path),\n value: getIn(document, path)\n }];\n}\nfunction revertAdd(document, path) {\n if (isArrayItem(document, path) || !existsIn(document, path)) {\n return [{\n op: 'remove',\n path: compileJSONPointer(path)\n }];\n } else {\n return revertReplace(document, path);\n }\n}\nfunction revertCopy(document, path) {\n return revertAdd(document, path);\n}\nfunction revertMove(document, path, from) {\n if (path.length < from.length && startsWith(from, path)) {\n // replacing the parent with the child\n return [{\n op: 'replace',\n path: compileJSONPointer(path),\n value: document\n }];\n }\n const move = {\n op: 'move',\n from: compileJSONPointer(path),\n path: compileJSONPointer(from)\n };\n if (!isArrayItem(document, path) && existsIn(document, path)) {\n // the move replaces an existing value in an object\n return [move, ...revertRemove(document, path)];\n } else {\n return [move];\n }\n}\n//# sourceMappingURL=revertJSONPatch.js.map","export class JSONRepairError extends Error {\n constructor(message, position) {\n super(\"\".concat(message, \" at position \").concat(position));\n this.position = position;\n }\n}\n//# sourceMappingURL=JSONRepairError.js.map","const codeSpace = 0x20; // \" \"\nconst codeNewline = 0xa; // \"\\n\"\nconst codeTab = 0x9; // \"\\t\"\nconst codeReturn = 0xd; // \"\\r\"\nconst codeNonBreakingSpace = 0xa0;\nconst codeEnQuad = 0x2000;\nconst codeHairSpace = 0x200a;\nconst codeNarrowNoBreakSpace = 0x202f;\nconst codeMediumMathematicalSpace = 0x205f;\nconst codeIdeographicSpace = 0x3000;\nexport function isHex(char) {\n return /^[0-9A-Fa-f]$/.test(char);\n}\nexport function isDigit(char) {\n return char >= '0' && char <= '9';\n}\nexport function isValidStringCharacter(char) {\n // note that the valid range is between \\u{0020} and \\u{10ffff},\n // but in JavaScript it is not possible to create a code point larger than\n // \\u{10ffff}, so there is no need to test for that here.\n return char >= '\\u0020';\n}\nexport function isDelimiter(char) {\n return ',:[]/{}()\\n+'.includes(char);\n}\nexport function isFunctionNameCharStart(char) {\n return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' || char === '_' || char === '$';\n}\nexport function isFunctionNameChar(char) {\n return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' || char === '_' || char === '$' || char >= '0' && char <= '9';\n}\n\n// matches \"https://\" and other schemas\nexport const regexUrlStart = /^(http|https|ftp|mailto|file|data|irc):\\/\\/$/;\n\n// matches all valid URL characters EXCEPT \"[\", \"]\", and \",\", since that are important JSON delimiters\nexport const regexUrlChar = /^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;\nexport function isUnquotedStringDelimiter(char) {\n return ',[]/{}\\n+'.includes(char);\n}\nexport function isStartOfValue(char) {\n return isQuote(char) || regexStartOfValue.test(char);\n}\n\n// alpha, number, minus, or opening bracket or brace\nconst regexStartOfValue = /^[[{\\w-]$/;\nexport function isControlCharacter(char) {\n return char === '\\n' || char === '\\r' || char === '\\t' || char === '\\b' || char === '\\f';\n}\n/**\n * Check if the given character is a whitespace character like space, tab, or\n * newline\n */\nexport function isWhitespace(text, index) {\n const code = text.charCodeAt(index);\n return code === codeSpace || code === codeNewline || code === codeTab || code === codeReturn;\n}\n\n/**\n * Check if the given character is a whitespace character like space or tab,\n * but NOT a newline\n */\nexport function isWhitespaceExceptNewline(text, index) {\n const code = text.charCodeAt(index);\n return code === codeSpace || code === codeTab || code === codeReturn;\n}\n\n/**\n * Check if the given character is a special whitespace character, some\n * unicode variant\n */\nexport function isSpecialWhitespace(text, index) {\n const code = text.charCodeAt(index);\n return code === codeNonBreakingSpace || code >= codeEnQuad && code <= codeHairSpace || code === codeNarrowNoBreakSpace || code === codeMediumMathematicalSpace || code === codeIdeographicSpace;\n}\n\n/**\n * Test whether the given character is a quote or double quote character.\n * Also tests for special variants of quotes.\n */\nexport function isQuote(char) {\n // the first check double quotes, since that occurs most often\n return isDoubleQuoteLike(char) || isSingleQuoteLike(char);\n}\n\n/**\n * Test whether the given character is a double quote character.\n * Also tests for special variants of double quotes.\n */\nexport function isDoubleQuoteLike(char) {\n return char === '\"' || char === '\\u201c' || char === '\\u201d';\n}\n\n/**\n * Test whether the given character is a double quote character.\n * Does NOT test for special variants of double quotes.\n */\nexport function isDoubleQuote(char) {\n return char === '\"';\n}\n\n/**\n * Test whether the given character is a single quote character.\n * Also tests for special variants of single quotes.\n */\nexport function isSingleQuoteLike(char) {\n return char === \"'\" || char === '\\u2018' || char === '\\u2019' || char === '\\u0060' || char === '\\u00b4';\n}\n\n/**\n * Test whether the given character is a single quote character.\n * Does NOT test for special variants of single quotes.\n */\nexport function isSingleQuote(char) {\n return char === \"'\";\n}\n\n/**\n * Strip last occurrence of textToStrip from text\n */\nexport function stripLastOccurrence(text, textToStrip) {\n let stripRemainingText = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const index = text.lastIndexOf(textToStrip);\n return index !== -1 ? text.substring(0, index) + (stripRemainingText ? '' : text.substring(index + 1)) : text;\n}\nexport function insertBeforeLastWhitespace(text, textToInsert) {\n let index = text.length;\n if (!isWhitespace(text, index - 1)) {\n // no trailing whitespaces\n return text + textToInsert;\n }\n while (isWhitespace(text, index - 1)) {\n index--;\n }\n return text.substring(0, index) + textToInsert + text.substring(index);\n}\nexport function removeAtIndex(text, start, count) {\n return text.substring(0, start) + text.substring(start + count);\n}\n\n/**\n * Test whether a string ends with a newline or comma character and optional whitespace\n */\nexport function endsWithCommaOrNewline(text) {\n return /[,\\n][ \\t\\r]*$/.test(text);\n}\n//# sourceMappingURL=stringUtils.js.map","import { JSONRepairError } from '../utils/JSONRepairError.js';\nimport { endsWithCommaOrNewline, insertBeforeLastWhitespace, isControlCharacter, isDelimiter, isDigit, isDoubleQuote, isDoubleQuoteLike, isFunctionNameChar, isFunctionNameCharStart, isHex, isQuote, isSingleQuote, isSingleQuoteLike, isSpecialWhitespace, isStartOfValue, isUnquotedStringDelimiter, isValidStringCharacter, isWhitespace, isWhitespaceExceptNewline, regexUrlChar, regexUrlStart, removeAtIndex, stripLastOccurrence } from '../utils/stringUtils.js';\nconst controlCharacters = {\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t'\n};\n\n// map with all escape characters\nconst escapeCharacters = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n // note that \\u is handled separately in parseString()\n};\n\n/**\n * Repair a string containing an invalid JSON document.\n * For example changes JavaScript notation into JSON notation.\n *\n * Example:\n *\n * try {\n * const json = \"{name: 'John'}\"\n * const repaired = jsonrepair(json)\n * console.log(repaired)\n * // '{\"name\": \"John\"}'\n * } catch (err) {\n * console.error(err)\n * }\n *\n */\nexport function jsonrepair(text) {\n let i = 0; // current index in text\n let output = ''; // generated output\n\n parseMarkdownCodeBlock();\n const processed = parseValue();\n if (!processed) {\n throwUnexpectedEnd();\n }\n parseMarkdownCodeBlock();\n const processedComma = parseCharacter(',');\n if (processedComma) {\n parseWhitespaceAndSkipComments();\n }\n if (isStartOfValue(text[i]) && endsWithCommaOrNewline(output)) {\n // start of a new value after end of the root level object: looks like\n // newline delimited JSON -> turn into a root level array\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n parseNewlineDelimitedJSON();\n } else if (processedComma) {\n // repair: remove trailing comma\n output = stripLastOccurrence(output, ',');\n }\n\n // repair redundant end quotes\n while (text[i] === '}' || text[i] === ']') {\n i++;\n parseWhitespaceAndSkipComments();\n }\n if (i >= text.length) {\n // reached the end of the document properly\n return output;\n }\n throwUnexpectedCharacter();\n function parseValue() {\n parseWhitespaceAndSkipComments();\n const processed = parseObject() || parseArray() || parseString() || parseNumber() || parseKeywords() || parseUnquotedString(false) || parseRegex();\n parseWhitespaceAndSkipComments();\n return processed;\n }\n function parseWhitespaceAndSkipComments() {\n let skipNewline = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n const start = i;\n let changed = parseWhitespace(skipNewline);\n do {\n changed = parseComment();\n if (changed) {\n changed = parseWhitespace(skipNewline);\n }\n } while (changed);\n return i > start;\n }\n function parseWhitespace(skipNewline) {\n const _isWhiteSpace = skipNewline ? isWhitespace : isWhitespaceExceptNewline;\n let whitespace = '';\n while (true) {\n if (_isWhiteSpace(text, i)) {\n whitespace += text[i];\n i++;\n } else if (isSpecialWhitespace(text, i)) {\n // repair special whitespace\n whitespace += ' ';\n i++;\n } else {\n break;\n }\n }\n if (whitespace.length > 0) {\n output += whitespace;\n return true;\n }\n return false;\n }\n function parseComment() {\n // find a block comment '/* ... */'\n if (text[i] === '/' && text[i + 1] === '*') {\n // repair block comment by skipping it\n while (i < text.length && !atEndOfBlockComment(text, i)) {\n i++;\n }\n i += 2;\n return true;\n }\n\n // find a line comment '// ...'\n if (text[i] === '/' && text[i + 1] === '/') {\n // repair line comment by skipping it\n while (i < text.length && text[i] !== '\\n') {\n i++;\n }\n return true;\n }\n return false;\n }\n function parseMarkdownCodeBlock() {\n // find and skip over a Markdown fenced code block:\n // ``` ... ```\n // or\n // ```json ... ```\n if (text.slice(i, i + 3) === '```') {\n i += 3;\n if (isFunctionNameCharStart(text[i])) {\n // strip the optional language specifier like \"json\"\n while (i < text.length && isFunctionNameChar(text[i])) {\n i++;\n }\n }\n parseWhitespaceAndSkipComments();\n return true;\n }\n return false;\n }\n function parseCharacter(char) {\n if (text[i] === char) {\n output += text[i];\n i++;\n return true;\n }\n return false;\n }\n function skipCharacter(char) {\n if (text[i] === char) {\n i++;\n return true;\n }\n return false;\n }\n function skipEscapeCharacter() {\n return skipCharacter('\\\\');\n }\n\n /**\n * Skip ellipsis like \"[1,2,3,...]\" or \"[1,2,3,...,9]\" or \"[...,7,8,9]\"\n * or a similar construct in objects.\n */\n function skipEllipsis() {\n parseWhitespaceAndSkipComments();\n if (text[i] === '.' && text[i + 1] === '.' && text[i + 2] === '.') {\n // repair: remove the ellipsis (three dots) and optionally a comma\n i += 3;\n parseWhitespaceAndSkipComments();\n skipCharacter(',');\n return true;\n }\n return false;\n }\n\n /**\n * Parse an object like '{\"key\": \"value\"}'\n */\n function parseObject() {\n if (text[i] === '{') {\n output += '{';\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: skip leading comma like in {, message: \"hi\"}\n if (skipCharacter(',')) {\n parseWhitespaceAndSkipComments();\n }\n let initial = true;\n while (i < text.length && text[i] !== '}') {\n let processedComma;\n if (!initial) {\n processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n parseWhitespaceAndSkipComments();\n } else {\n processedComma = true;\n initial = false;\n }\n skipEllipsis();\n const processedKey = parseString() || parseUnquotedString(true);\n if (!processedKey) {\n if (text[i] === '}' || text[i] === '{' || text[i] === ']' || text[i] === '[' || text[i] === undefined) {\n // repair trailing comma\n output = stripLastOccurrence(output, ',');\n } else {\n throwObjectKeyExpected();\n }\n break;\n }\n parseWhitespaceAndSkipComments();\n const processedColon = parseCharacter(':');\n const truncatedText = i >= text.length;\n if (!processedColon) {\n if (isStartOfValue(text[i]) || truncatedText) {\n // repair missing colon\n output = insertBeforeLastWhitespace(output, ':');\n } else {\n throwColonExpected();\n }\n }\n const processedValue = parseValue();\n if (!processedValue) {\n if (processedColon || truncatedText) {\n // repair missing object value\n output += 'null';\n } else {\n throwColonExpected();\n }\n }\n }\n if (text[i] === '}') {\n output += '}';\n i++;\n } else {\n // repair missing end bracket\n output = insertBeforeLastWhitespace(output, '}');\n }\n return true;\n }\n return false;\n }\n\n /**\n * Parse an array like '[\"item1\", \"item2\", ...]'\n */\n function parseArray() {\n if (text[i] === '[') {\n output += '[';\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: skip leading comma like in [,1,2,3]\n if (skipCharacter(',')) {\n parseWhitespaceAndSkipComments();\n }\n let initial = true;\n while (i < text.length && text[i] !== ']') {\n if (!initial) {\n const processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n } else {\n initial = false;\n }\n skipEllipsis();\n const processedValue = parseValue();\n if (!processedValue) {\n // repair trailing comma\n output = stripLastOccurrence(output, ',');\n break;\n }\n }\n if (text[i] === ']') {\n output += ']';\n i++;\n } else {\n // repair missing closing array bracket\n output = insertBeforeLastWhitespace(output, ']');\n }\n return true;\n }\n return false;\n }\n\n /**\n * Parse and repair Newline Delimited JSON (NDJSON):\n * multiple JSON objects separated by a newline character\n */\n function parseNewlineDelimitedJSON() {\n // repair NDJSON\n let initial = true;\n let processedValue = true;\n while (processedValue) {\n if (!initial) {\n // parse optional comma, insert when missing\n const processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair: add missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n } else {\n initial = false;\n }\n processedValue = parseValue();\n }\n if (!processedValue) {\n // repair: remove trailing comma\n output = stripLastOccurrence(output, ',');\n }\n\n // repair: wrap the output inside array brackets\n output = \"[\\n\".concat(output, \"\\n]\");\n }\n\n /**\n * Parse a string enclosed by double quotes \"...\". Can contain escaped quotes\n * Repair strings enclosed in single quotes or special quotes\n * Repair an escaped string\n *\n * The function can run in two stages:\n * - First, it assumes the string has a valid end quote\n * - If it turns out that the string does not have a valid end quote followed\n * by a delimiter (which should be the case), the function runs again in a\n * more conservative way, stopping the string at the first next delimiter\n * and fixing the string by inserting a quote there, or stopping at a\n * stop index detected in the first iteration.\n */\n function parseString() {\n let stopAtDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n let stopAtIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n let skipEscapeChars = text[i] === '\\\\';\n if (skipEscapeChars) {\n // repair: remove the first escape character\n i++;\n skipEscapeChars = true;\n }\n if (isQuote(text[i])) {\n // double quotes are correct JSON,\n // single quotes come from JavaScript for example, we assume it will have a correct single end quote too\n // otherwise, we will match any double-quote-like start with a double-quote-like end,\n // or any single-quote-like start with a single-quote-like end\n const isEndQuote = isDoubleQuote(text[i]) ? isDoubleQuote : isSingleQuote(text[i]) ? isSingleQuote : isSingleQuoteLike(text[i]) ? isSingleQuoteLike : isDoubleQuoteLike;\n const iBefore = i;\n const oBefore = output.length;\n let str = '\"';\n i++;\n while (true) {\n if (i >= text.length) {\n // end of text, we are missing an end quote\n\n const iPrev = prevNonWhitespaceIndex(i - 1);\n if (!stopAtDelimiter && isDelimiter(text.charAt(iPrev))) {\n // if the text ends with a delimiter, like [\"hello],\n // so the missing end quote should be inserted before this delimiter\n // retry parsing the string, stopping at the first next delimiter\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(true);\n }\n\n // repair missing quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n return true;\n // biome-ignore lint/style/noUselessElse: \n } else if (i === stopAtIndex) {\n // use the stop index detected in the first iteration, and repair end quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n return true;\n // biome-ignore lint/style/noUselessElse: \n } else if (isEndQuote(text[i])) {\n // end quote\n // let us check what is before and after the quote to verify whether this is a legit end quote\n const iQuote = i;\n const oQuote = str.length;\n str += '\"';\n i++;\n output += str;\n parseWhitespaceAndSkipComments(false);\n if (stopAtDelimiter || i >= text.length || isDelimiter(text[i]) || isQuote(text[i]) || isDigit(text[i])) {\n // The quote is followed by the end of the text, a delimiter,\n // or a next value. So the quote is indeed the end of the string.\n parseConcatenatedString();\n return true;\n }\n const iPrevChar = prevNonWhitespaceIndex(iQuote - 1);\n const prevChar = text.charAt(iPrevChar);\n if (prevChar === ',') {\n // A comma followed by a quote, like '{\"a\":\"b,c,\"d\":\"e\"}'.\n // We assume that the quote is a start quote, and that the end quote\n // should have been located right before the comma but is missing.\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(false, iPrevChar);\n }\n if (isDelimiter(prevChar)) {\n // This is not the right end quote: it is preceded by a delimiter,\n // and NOT followed by a delimiter. So, there is an end quote missing\n // parse the string again and then stop at the first next delimiter\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(true);\n }\n\n // revert to right after the quote but before any whitespace, and continue parsing the string\n output = output.substring(0, oBefore);\n i = iQuote + 1;\n\n // repair unescaped quote\n str = \"\".concat(str.substring(0, oQuote), \"\\\\\").concat(str.substring(oQuote));\n } else if (stopAtDelimiter && isUnquotedStringDelimiter(text[i])) {\n // we're in the mode to stop the string at the first delimiter\n // because there is an end quote missing\n\n // test start of an url like \"https://...\" (this would be parsed as a comment)\n if (text[i - 1] === ':' && regexUrlStart.test(text.substring(iBefore + 1, i + 2))) {\n while (i < text.length && regexUrlChar.test(text[i])) {\n str += text[i];\n i++;\n }\n }\n\n // repair missing quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n parseConcatenatedString();\n return true;\n } else if (text[i] === '\\\\') {\n // handle escaped content like \\n or \\u2605\n const char = text.charAt(i + 1);\n const escapeChar = escapeCharacters[char];\n if (escapeChar !== undefined) {\n str += text.slice(i, i + 2);\n i += 2;\n } else if (char === 'u') {\n let j = 2;\n while (j < 6 && isHex(text[i + j])) {\n j++;\n }\n if (j === 6) {\n str += text.slice(i, i + 6);\n i += 6;\n } else if (i + j >= text.length) {\n // repair invalid or truncated unicode char at the end of the text\n // by removing the unicode char and ending the string here\n i = text.length;\n } else {\n throwInvalidUnicodeCharacter();\n }\n } else {\n // repair invalid escape character: remove it\n str += char;\n i += 2;\n }\n } else {\n // handle regular characters\n const char = text.charAt(i);\n if (char === '\"' && text[i - 1] !== '\\\\') {\n // repair unescaped double quote\n str += \"\\\\\".concat(char);\n i++;\n } else if (isControlCharacter(char)) {\n // unescaped control character\n str += controlCharacters[char];\n i++;\n } else {\n if (!isValidStringCharacter(char)) {\n throwInvalidCharacter(char);\n }\n str += char;\n i++;\n }\n }\n if (skipEscapeChars) {\n // repair: skipped escape character (nothing to do)\n skipEscapeCharacter();\n }\n }\n }\n return false;\n }\n\n /**\n * Repair concatenated strings like \"hello\" + \"world\", change this into \"helloworld\"\n */\n function parseConcatenatedString() {\n let processed = false;\n parseWhitespaceAndSkipComments();\n while (text[i] === '+') {\n processed = true;\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: remove the end quote of the first string\n output = stripLastOccurrence(output, '\"', true);\n const start = output.length;\n const parsedStr = parseString();\n if (parsedStr) {\n // repair: remove the start quote of the second string\n output = removeAtIndex(output, start, 1);\n } else {\n // repair: remove the + because it is not followed by a string\n output = insertBeforeLastWhitespace(output, '\"');\n }\n }\n return processed;\n }\n\n /**\n * Parse a number like 2.4 or 2.4e6\n */\n function parseNumber() {\n const start = i;\n if (text[i] === '-') {\n i++;\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n }\n\n // Note that in JSON leading zeros like \"00789\" are not allowed.\n // We will allow all leading zeros here though and at the end of parseNumber\n // check against trailing zeros and repair that if needed.\n // Leading zeros can have meaning, so we should not clear them.\n while (isDigit(text[i])) {\n i++;\n }\n if (text[i] === '.') {\n i++;\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n while (isDigit(text[i])) {\n i++;\n }\n }\n if (text[i] === 'e' || text[i] === 'E') {\n i++;\n if (text[i] === '-' || text[i] === '+') {\n i++;\n }\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n while (isDigit(text[i])) {\n i++;\n }\n }\n\n // if we're not at the end of the number by this point, allow this to be parsed as another type\n if (!atEndOfNumber()) {\n i = start;\n return false;\n }\n if (i > start) {\n // repair a number with leading zeros like \"00789\"\n const num = text.slice(start, i);\n const hasInvalidLeadingZero = /^0\\d/.test(num);\n output += hasInvalidLeadingZero ? \"\\\"\".concat(num, \"\\\"\") : num;\n return true;\n }\n return false;\n }\n\n /**\n * Parse keywords true, false, null\n * Repair Python keywords True, False, None\n */\n function parseKeywords() {\n return parseKeyword('true', 'true') || parseKeyword('false', 'false') || parseKeyword('null', 'null') ||\n // repair Python keywords True, False, None\n parseKeyword('True', 'true') || parseKeyword('False', 'false') || parseKeyword('None', 'null');\n }\n function parseKeyword(name, value) {\n if (text.slice(i, i + name.length) === name) {\n output += value;\n i += name.length;\n return true;\n }\n return false;\n }\n\n /**\n * Repair an unquoted string by adding quotes around it\n * Repair a MongoDB function call like NumberLong(\"2\")\n * Repair a JSONP function call like callback({...});\n */\n function parseUnquotedString(isKey) {\n // note that the symbol can end with whitespaces: we stop at the next delimiter\n // also, note that we allow strings to contain a slash / in order to support repairing regular expressions\n const start = i;\n if (isFunctionNameCharStart(text[i])) {\n while (i < text.length && isFunctionNameChar(text[i])) {\n i++;\n }\n let j = i;\n while (isWhitespace(text, j)) {\n j++;\n }\n if (text[j] === '(') {\n // repair a MongoDB function call like NumberLong(\"2\")\n // repair a JSONP function call like callback({...});\n i = j + 1;\n parseValue();\n if (text[i] === ')') {\n // repair: skip close bracket of function call\n i++;\n if (text[i] === ';') {\n // repair: skip semicolon after JSONP call\n i++;\n }\n }\n return true;\n }\n }\n while (i < text.length && !isUnquotedStringDelimiter(text[i]) && !isQuote(text[i]) && (!isKey || text[i] !== ':')) {\n i++;\n }\n\n // test start of an url like \"https://...\" (this would be parsed as a comment)\n if (text[i - 1] === ':' && regexUrlStart.test(text.substring(start, i + 2))) {\n while (i < text.length && regexUrlChar.test(text[i])) {\n i++;\n }\n }\n if (i > start) {\n // repair unquoted string\n // also, repair undefined into null\n\n // first, go back to prevent getting trailing whitespaces in the string\n while (isWhitespace(text, i - 1) && i > 0) {\n i--;\n }\n const symbol = text.slice(start, i);\n output += symbol === 'undefined' ? 'null' : JSON.stringify(symbol);\n if (text[i] === '\"') {\n // we had a missing start quote, but now we encountered the end quote, so we can skip that one\n i++;\n }\n return true;\n }\n }\n function parseRegex() {\n if (text[i] === '/') {\n const start = i;\n i++;\n while (i < text.length && (text[i] !== '/' || text[i - 1] === '\\\\')) {\n i++;\n }\n i++;\n output += \"\\\"\".concat(text.substring(start, i), \"\\\"\");\n return true;\n }\n }\n function prevNonWhitespaceIndex(start) {\n let prev = start;\n while (prev > 0 && isWhitespace(text, prev)) {\n prev--;\n }\n return prev;\n }\n function atEndOfNumber() {\n return i >= text.length || isDelimiter(text[i]) || isWhitespace(text, i);\n }\n function repairNumberEndingWithNumericSymbol(start) {\n // repair numbers cut off at the end\n // this will only be called when we end after a '.', '-', or 'e' and does not\n // change the number more than it needs to make it valid JSON\n output += \"\".concat(text.slice(start, i), \"0\");\n }\n function throwInvalidCharacter(char) {\n throw new JSONRepairError(\"Invalid character \".concat(JSON.stringify(char)), i);\n }\n function throwUnexpectedCharacter() {\n throw new JSONRepairError(\"Unexpected character \".concat(JSON.stringify(text[i])), i);\n }\n function throwUnexpectedEnd() {\n throw new JSONRepairError('Unexpected end of json string', text.length);\n }\n function throwObjectKeyExpected() {\n throw new JSONRepairError('Object key expected', i);\n }\n function throwColonExpected() {\n throw new JSONRepairError('Colon expected', i);\n }\n function throwInvalidUnicodeCharacter() {\n const chars = text.slice(i, i + 6);\n throw new JSONRepairError(\"Invalid unicode character \\\"\".concat(chars, \"\\\"\"), i);\n }\n}\nfunction atEndOfBlockComment(text, i) {\n return text[i] === '*' && text[i + 1] === '/';\n}\n//# sourceMappingURL=jsonrepair.js.map","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\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\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\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 != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\nfunction baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n}\n\nexport default baseToNumber;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\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\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToNumber from './_baseToNumber.js';\nimport baseToString from './_baseToString.js';\n\n/**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\nfunction createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n}\n\nexport default createMathOperation;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\nvar add = createMathOperation(function(augend, addend) {\n return augend + addend;\n}, 0);\n\nexport default add;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\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 != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\nfunction after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\nexport default after;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\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\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\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 detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to 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/**\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) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\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\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\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\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import WeakMap from './_WeakMap.js';\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nexport default metaMap;\n","import identity from './identity.js';\nimport metaMap from './_metaMap.js';\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nexport default baseSetData;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nexport default createCtor;\n","import createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nexport default createBind;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nexport default composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nexport default composeArgsRight;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nexport default countHolders;\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nexport default baseLodash;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nexport default LazyWrapper;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import metaMap from './_metaMap.js';\nimport noop from './noop.js';\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nexport default getData;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nexport default realNames;\n","import realNames from './_realNames.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nexport default getFuncName;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nexport default LodashWrapper;\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\nexport default copyArray;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport copyArray from './_copyArray.js';\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nexport default wrapperClone;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport baseLodash from './_baseLodash.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nexport default lodash;\n","import LazyWrapper from './_LazyWrapper.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport lodash from './wrapperLodash.js';\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nexport default isLaziable;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetData from './_baseSetData.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nexport default setData;\n","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nexport default getWrapDetails;\n","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nexport default insertWrapDetails;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\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 == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import arrayEach from './_arrayEach.js';\nimport arrayIncludes from './_arrayIncludes.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nexport default updateWrapDetails;\n","import getWrapDetails from './_getWrapDetails.js';\nimport insertWrapDetails from './_insertWrapDetails.js';\nimport setToString from './_setToString.js';\nimport updateWrapDetails from './_updateWrapDetails.js';\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nexport default setWrapToString;\n","import isLaziable from './_isLaziable.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nexport default createRecurry;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nexport default getHolder;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import copyArray from './_copyArray.js';\nimport isIndex from './_isIndex.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nexport default reorder;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nexport default replaceHolders;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport countHolders from './_countHolders.js';\nimport createCtor from './_createCtor.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport reorder from './_reorder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nexport default createHybrid;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport createHybrid from './_createHybrid.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nexport default createCurry;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nexport default createPartial;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nexport default mergeData;\n","import baseSetData from './_baseSetData.js';\nimport createBind from './_createBind.js';\nimport createCurry from './_createCurry.js';\nimport createHybrid from './_createHybrid.js';\nimport createPartial from './_createPartial.js';\nimport getData from './_getData.js';\nimport mergeData from './_mergeData.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nexport default createWrap;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nexport default ary;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\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\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * 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 baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\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 var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\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\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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\nexport default isPrototype;\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\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\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\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\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 mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\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/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\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\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * 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\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\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\nexport default keys;\n","import assignValue from './_assignValue.js';\nimport copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport isArrayLike from './isArrayLike.js';\nimport isPrototype from './_isPrototype.js';\nimport keys from './keys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nexport default assign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nexport default assignIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nexport default assignInWith;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n/**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n});\n\nexport default assignWith;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\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 this.size = 0;\n}\n\nexport default hashClear;\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 var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\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 this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\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\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\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 == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\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.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\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\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\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\nexport default getMapData;\n","import getMapData from './_getMapData.js';\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 var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\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 var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\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 == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import get from './get.js';\n\n/**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\nfunction baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n}\n\nexport default baseAt;\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\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import baseAt from './_baseAt.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\nvar at = flatRest(baseAt);\n\nexport default at;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nexport default isError;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport isError from './isError.js';\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n});\n\nexport default attempt;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\nexport default before;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nexport default bind;\n","import arrayEach from './_arrayEach.js';\nimport baseAssignValue from './_baseAssignValue.js';\nimport bind from './bind.js';\nimport flatRest from './_flatRest.js';\nimport toKey from './_toKey.js';\n\n/**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\nvar bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n});\n\nexport default bindAll;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\nvar bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n});\n\n// Assign default placeholders.\nbindKey.placeholder = {};\n\nexport default bindKey;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\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 == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import isArray from './isArray.js';\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nexport default castArray;\n","import root from './_root.js';\nimport toInteger from './toInteger.js';\nimport toNumber from './toNumber.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite,\n nativeMin = Math.min;\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n}\n\nexport default createRound;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\nvar ceil = createRound('ceil');\n\nexport default ceil;\n","import lodash from './wrapperLodash.js';\n\n/**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\nfunction chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n}\n\nexport default chain;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n","import baseClamp from './_baseClamp.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nexport default clamp;\n","import ListCache from './_ListCache.js';\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 this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\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\nexport default stackGet;\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\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\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 data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\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 var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\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\nexport default Stack;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\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\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\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 length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\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\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\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\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\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\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\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/**\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 and promises in Node.js < 6.\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 = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * 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 = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\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\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\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\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\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\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\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 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\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\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\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n 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 * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\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\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 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/** 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/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\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, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneDeepWith;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\nfunction cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneWith;\n","import LodashWrapper from './_LodashWrapper.js';\n\n/**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\nfunction wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n}\n\nexport default wrapperCommit;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","import arrayPush from './_arrayPush.js';\nimport baseFlatten from './_baseFlatten.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nexport default concat;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\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\nexport default mapToArray;\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\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\nfunction cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = baseIteratee;\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n}\n\nexport default cond;\n","/**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\nfunction baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport default baseConformsTo;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n}\n\nexport default baseConforms;\n","import baseClone from './_baseClone.js';\nimport baseConforms from './_baseConforms.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\nfunction conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default conforms;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\nfunction conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n}\n\nexport default conformsTo;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\nvar countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n});\n\nexport default countBy;\n","import baseAssign from './_baseAssign.js';\nimport baseCreate from './_baseCreate.js';\n\n/**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\nfunction create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n}\n\nexport default create;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nexport default curry;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_RIGHT_FLAG = 16;\n\n/**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\nfunction curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurryRight.placeholder = {};\n\nexport default curryRight;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\nfunction defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n}\n\nexport default defaultTo;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport isObject from './isObject.js';\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\nexport default customDefaultsMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport customDefaultsMerge from './_customDefaultsMerge.js';\nimport mergeWith from './mergeWith.js';\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\nexport default defaultsDeep;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nexport default baseDelay;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nexport default defer;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nexport default delay;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default differenceBy;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nexport default differenceWith;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\nvar divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n}, 1);\n\nexport default divide;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default dropRight;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n}\n\nexport default baseWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true, true)\n : [];\n}\n\nexport default dropRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true)\n : [];\n}\n\nexport default dropWhile;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","/**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEachRight;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseForRight = createBaseFor(true);\n\nexport default baseForRight;\n","import baseForRight from './_baseForRight.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n}\n\nexport default baseForOwnRight;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEachRight = createBaseEach(baseForOwnRight, true);\n\nexport default baseEachRight;\n","import arrayEachRight from './_arrayEachRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\nfunction forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEachRight;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\nfunction endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n}\n\nexport default endsWith;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\nfunction baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n}\n\nexport default baseToPairs;\n","/**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\nfunction setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n}\n\nexport default setToPairs;\n","import baseToPairs from './_baseToPairs.js';\nimport getTag from './_getTag.js';\nimport mapToArray from './_mapToArray.js';\nimport setToPairs from './_setToPairs.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\nfunction createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n}\n\nexport default createToPairs;\n","import createToPairs from './_createToPairs.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\nvar toPairs = createToPairs(keys);\n\nexport default toPairs;\n","import createToPairs from './_createToPairs.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\nvar toPairsIn = createToPairs(keysIn);\n\nexport default toPairsIn;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n","import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n","import toString from './toString.js';\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 reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nexport default arrayEvery;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nexport default baseEvery;\n","import arrayEvery from './_arrayEvery.js';\nimport baseEvery from './_baseEvery.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default every;\n","import baseClamp from './_baseClamp.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\nfunction toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n}\n\nexport default toLength;\n","import toInteger from './toInteger.js';\nimport toLength from './toLength.js';\n\n/**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\nfunction baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n}\n\nexport default baseFill;\n","import baseFill from './_baseFill.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\nfunction fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n}\n\nexport default fill;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","/**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\nfunction baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nexport default baseFindKey;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\nfunction findKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwn);\n}\n\nexport default findKey;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nexport default findLastIndex;\n","import createFind from './_createFind.js';\nimport findLastIndex from './findLastIndex.js';\n\n/**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\nvar findLast = createFind(findLastIndex);\n\nexport default findLast;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwnRight from './_baseForOwnRight.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\nfunction findLastKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwnRight);\n}\n\nexport default findLastKey;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nexport default flatMap;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n}\n\nexport default flatMapDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\nimport toInteger from './toInteger.js';\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\nfunction flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n}\n\nexport default flatMapDepth;\n","import baseFlatten from './_baseFlatten.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nexport default flattenDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\nfunction flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n}\n\nexport default flattenDepth;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\nfunction flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n}\n\nexport default flip;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\nvar floor = createRound('floor');\n\nexport default floor;\n","import LodashWrapper from './_LodashWrapper.js';\nimport flatRest from './_flatRest.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport isArray from './isArray.js';\nimport isLaziable from './_isLaziable.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\nfunction createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n}\n\nexport default createFlow;\n","import createFlow from './_createFlow.js';\n\n/**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flow = createFlow();\n\nexport default flow;\n","import createFlow from './_createFlow.js';\n\n/**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flowRight = createFlow(true);\n\nexport default flowRight;\n","import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n","import baseForRight from './_baseForRight.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\nfunction forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, castFunction(iteratee), keysIn);\n}\n\nexport default forInRight;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\nfunction forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, castFunction(iteratee));\n}\n\nexport default forOwnRight;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nexport default fromPairs;\n","import arrayFilter from './_arrayFilter.js';\nimport isFunction from './isFunction.js';\n\n/**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n}\n\nexport default baseFunctions;\n","import baseFunctions from './_baseFunctions.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nexport default functions;\n","import baseFunctions from './_baseFunctions.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\nfunction functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n}\n\nexport default functionsIn;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nexport default groupBy;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import toNumber from './toNumber.js';\n\n/**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\nfunction createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n}\n\nexport default createRelationalOperation;\n","import baseGt from './_baseGt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\nvar gt = createRelationalOperation(baseGt);\n\nexport default gt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\nvar gte = createRelationalOperation(function(value, other) {\n return value >= other;\n});\n\nexport default gte;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n","import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\nfunction initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n}\n\nexport default initial;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\nvar intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default intersectionBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\nvar intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n});\n\nexport default intersectionWith;\n","import baseForOwn from './_baseForOwn.js';\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nexport default baseInverter;\n","import baseInverter from './_baseInverter.js';\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nexport default createInverter;\n","import constant from './constant.js';\nimport createInverter from './_createInverter.js';\nimport identity from './identity.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nexport default invert;\n","import baseIteratee from './_baseIteratee.js';\nimport createInverter from './_createInverter.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\nvar invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n}, baseIteratee);\n\nexport default invertBy;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import apply from './_apply.js';\nimport castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\nfunction baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n}\n\nexport default baseInvoke;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\nvar invoke = baseRest(baseInvoke);\n\nexport default invoke;\n","import apply from './_apply.js';\nimport baseEach from './_baseEach.js';\nimport baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\nvar invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n});\n\nexport default invokeMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\n\n/**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\nfunction baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n}\n\nexport default baseIsArrayBuffer;\n","import baseIsArrayBuffer from './_baseIsArrayBuffer.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;\n\n/**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\nvar isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\nexport default isArrayBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n","import root from './_root.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite;\n\n/**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\nfunction isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n}\n\nexport default isFinite;\n","import toInteger from './toInteger.js';\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\nexport default isInteger;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\nfunction isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n}\n\nexport default isMatch;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\nfunction isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n}\n\nexport default isMatchWith;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","import coreJsData from './_coreJsData.js';\nimport isFunction from './isFunction.js';\nimport stubFalse from './stubFalse.js';\n\n/**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\nvar isMaskable = coreJsData ? isFunction : stubFalse;\n\nexport default isMaskable;\n","import baseIsNative from './_baseIsNative.js';\nimport isMaskable from './_isMaskable.js';\n\n/** Error message constants. */\nvar CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';\n\n/**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n}\n\nexport default isNative;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","import isInteger from './isInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\nfunction isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isSafeInteger;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nexport default isWeakMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakSetTag = '[object WeakSet]';\n\n/**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\nfunction isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n}\n\nexport default isWeakSet;\n","import baseClone from './_baseClone.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nexport default iteratee;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeJoin = arrayProto.join;\n\n/**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\nfunction join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n}\n\nexport default join;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nexport default keyBy;\n","/**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n}\n\nexport default strictLastIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictLastIndexOf from './_strictLastIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\nfunction lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n}\n\nexport default lastIndexOf;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\nvar lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n});\n\nexport default lowerCase;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\nvar lowerFirst = createCaseFirst('toLowerCase');\n\nexport default lowerFirst;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import baseLt from './_baseLt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\nvar lt = createRelationalOperation(baseLt);\n\nexport default lt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\nvar lte = createRelationalOperation(function(value, other) {\n return value <= other;\n});\n\nexport default lte;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n","import baseClone from './_baseClone.js';\nimport baseMatches from './_baseMatches.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default matches;\n","import baseClone from './_baseClone.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n}\n\nexport default matchesProperty;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nexport default maxBy;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import baseSum from './_baseSum.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\nfunction baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n}\n\nexport default baseMean;\n","import baseMean from './_baseMean.js';\nimport identity from './identity.js';\n\n/**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\nfunction mean(array) {\n return baseMean(array, identity);\n}\n\nexport default mean;\n","import baseIteratee from './_baseIteratee.js';\nimport baseMean from './_baseMean.js';\n\n/**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\nfunction meanBy(array, iteratee) {\n return baseMean(array, baseIteratee(iteratee, 2));\n}\n\nexport default meanBy;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\nvar method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default method;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\nvar methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default methodOf;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n","import arrayEach from './_arrayEach.js';\nimport arrayPush from './_arrayPush.js';\nimport baseFunctions from './_baseFunctions.js';\nimport copyArray from './_copyArray.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport keys from './keys.js';\n\n/**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\nfunction mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n}\n\nexport default mixin;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\nvar multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n}, 1);\n\nexport default multiply;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n","/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n}\n\nexport default iteratorToArray;\n","import Symbol from './_Symbol.js';\nimport copyArray from './_copyArray.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport iteratorToArray from './_iteratorToArray.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\nimport stringToArray from './_stringToArray.js';\nimport values from './values.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Built-in value references. */\nvar symIterator = Symbol ? Symbol.iterator : undefined;\n\n/**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\nfunction toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n}\n\nexport default toArray;\n","import toArray from './toArray.js';\n\n/**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\nfunction wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n}\n\nexport default wrapperNext;\n","import isIndex from './_isIndex.js';\n\n/**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\nfunction baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n}\n\nexport default baseNth;\n","import baseNth from './_baseNth.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\nfunction nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n}\n\nexport default nth;\n","import baseNth from './_baseNth.js';\nimport baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\nfunction nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n}\n\nexport default nthArg;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import baseIteratee from './_baseIteratee.js';\nimport negate from './negate.js';\nimport pickBy from './pickBy.js';\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nexport default omitBy;\n","import before from './before.js';\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\nexport default once;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n","import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n","import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n","import baseOrderBy from './_baseOrderBy.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nexport default orderBy;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\nfunction createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n}\n\nexport default createOver;\n","import arrayMap from './_arrayMap.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\nvar over = createOver(arrayMap);\n\nexport default over;\n","import baseRest from './_baseRest.js';\n\n/**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nvar castRest = baseRest;\n\nexport default castRest;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport castRest from './_castRest.js';\nimport isArray from './isArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\nvar overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(baseIteratee))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(baseIteratee));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n});\n\nexport default overArgs;\n","import arrayEvery from './_arrayEvery.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\nvar overEvery = createOver(arrayEvery);\n\nexport default overEvery;\n","import arraySome from './_arraySome.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\nvar overSome = createOver(arraySome);\n\nexport default overSome;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeFloor = Math.floor;\n\n/**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\nfunction pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n}\n\nexport default pad;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\nfunction padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n}\n\nexport default padEnd;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import root from './_root.js';\nimport toString from './toString.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeParseInt = root.parseInt;\n\n/**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\nfunction parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n}\n\nexport default parseInt;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\nvar partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartial.placeholder = {};\n\nexport default partial;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\nvar partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartialRight.placeholder = {};\n\nexport default partialRight;\n","import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import baseLodash from './_baseLodash.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\nfunction wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n}\n\nexport default wrapperPlant;\n","import baseGet from './_baseGet.js';\n\n/**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\nfunction propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n}\n\nexport default propertyOf;\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseIndexOfWith;\n","import arrayMap from './_arrayMap.js';\nimport baseIndexOf from './_baseIndexOf.js';\nimport baseIndexOfWith from './_baseIndexOfWith.js';\nimport baseUnary from './_baseUnary.js';\nimport copyArray from './_copyArray.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nexport default basePullAll;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nexport default pullAll;\n","import baseRest from './_baseRest.js';\nimport pullAll from './pullAll.js';\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nexport default pull;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\nfunction pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, baseIteratee(iteratee, 2))\n : array;\n}\n\nexport default pullAllBy;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\nfunction pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n}\n\nexport default pullAllWith;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","import arrayMap from './_arrayMap.js';\nimport baseAt from './_baseAt.js';\nimport basePullAt from './_basePullAt.js';\nimport compareAscending from './_compareAscending.js';\nimport flatRest from './_flatRest.js';\nimport isIndex from './_isIndex.js';\n\n/**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\nvar pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n});\n\nexport default pullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nexport default baseRandom;\n","import baseRandom from './_baseRandom.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseFloat = parseFloat;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min,\n nativeRandom = Math.random;\n\n/**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\nfunction random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n}\n\nexport default random;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import createRange from './_createRange.js';\n\n/**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\nvar rangeRight = createRange(true);\n\nexport default rangeRight;\n","import createWrap from './_createWrap.js';\nimport flatRest from './_flatRest.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nexport default rearg;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","/**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n}\n\nexport default arrayReduceRight;\n","import arrayReduceRight from './_arrayReduceRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\nfunction reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n}\n\nexport default reduceRight;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport negate from './negate.js';\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nexport default reject;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseRepeat from './_baseRepeat.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\n\nexport default repeat;\n","import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n","import baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n}\n\nexport default rest;\n","import castPath from './_castPath.js';\nimport isFunction from './isFunction.js';\nimport toKey from './_toKey.js';\n\n/**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\nfunction result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n}\n\nexport default result;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeReverse = arrayProto.reverse;\n\n/**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\nfunction reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n}\n\nexport default reverse;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nexport default round;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\nfunction arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n}\n\nexport default arraySample;\n","import arraySample from './_arraySample.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\nfunction baseSample(collection) {\n return arraySample(values(collection));\n}\n\nexport default baseSample;\n","import arraySample from './_arraySample.js';\nimport baseSample from './_baseSample.js';\nimport isArray from './isArray.js';\n\n/**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\nfunction sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n}\n\nexport default sample;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\nfunction shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n}\n\nexport default shuffleSelf;\n","import baseClamp from './_baseClamp.js';\nimport copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n}\n\nexport default arraySampleSize;\n","import baseClamp from './_baseClamp.js';\nimport shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n}\n\nexport default baseSampleSize;\n","import arraySampleSize from './_arraySampleSize.js';\nimport baseSampleSize from './_baseSampleSize.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\nfunction sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n}\n\nexport default sampleSize;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSet from './_baseSet.js';\n\n/**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\nfunction setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n}\n\nexport default setWith;\n","import copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n}\n\nexport default arrayShuffle;\n","import shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction baseShuffle(collection) {\n return shuffleSelf(values(collection));\n}\n\nexport default baseShuffle;\n","import arrayShuffle from './_arrayShuffle.js';\nimport baseShuffle from './_baseShuffle.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\nfunction shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n}\n\nexport default shuffle;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport stringSize from './_stringSize.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nexport default size;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nexport default slice;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nexport default snakeCase;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n","import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n","import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n","import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\nfunction sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2));\n}\n\nexport default sortedIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\nfunction sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedIndexOf;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\nfunction sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n}\n\nexport default sortedLastIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\nfunction sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2), true);\n}\n\nexport default sortedLastIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\nfunction sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedLastIndexOf;\n","import eq from './eq.js';\n\n/**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n}\n\nexport default baseSortedUniq;\n","import baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\nfunction sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n}\n\nexport default sortedUniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\nfunction sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, baseIteratee(iteratee, 2))\n : [];\n}\n\nexport default sortedUniqBy;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport isRegExp from './isRegExp.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\nfunction split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n}\n\nexport default split;\n","import apply from './_apply.js';\nimport arrayPush from './_arrayPush.js';\nimport baseRest from './_baseRest.js';\nimport castSlice from './_castSlice.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\nfunction spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n}\n\nexport default spread;\n","import createCompounder from './_createCompounder.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\nexport default startCase;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nexport default startsWith;\n","/**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\nfunction stubObject() {\n return {};\n}\n\nexport default stubObject;\n","/**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\nfunction stubString() {\n return '';\n}\n\nexport default stubString;\n","/**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\nfunction stubTrue() {\n return true;\n}\n\nexport default stubTrue;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\nvar subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n}, 0);\n\nexport default subtract;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSum from './_baseSum.js';\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nexport default sumBy;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\nfunction tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n}\n\nexport default tail;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\nfunction take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default take;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\nfunction takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default takeRight;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\nfunction takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), false, true)\n : [];\n}\n\nexport default takeRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\nfunction takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3))\n : [];\n}\n\nexport default takeWhile;\n","/**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\nfunction tap(value, interceptor) {\n interceptor(value);\n return value;\n}\n\nexport default tap;\n","import eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nexport default customDefaultsAssignIn;\n","/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n}\n\nexport default escapeStringChar;\n","/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nexport default reInterpolate;\n","/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nexport default reEscape;\n","/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nexport default reEvaluate;\n","import escape from './escape.js';\nimport reEscape from './_reEscape.js';\nimport reEvaluate from './_reEvaluate.js';\nimport reInterpolate from './_reInterpolate.js';\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': { 'escape': escape }\n }\n};\n\nexport default templateSettings;\n","import assignInWith from './assignInWith.js';\nimport attempt from './attempt.js';\nimport baseValues from './_baseValues.js';\nimport customDefaultsAssignIn from './_customDefaultsAssignIn.js';\nimport escapeStringChar from './_escapeStringChar.js';\nimport isError from './isError.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keys from './keys.js';\nimport reInterpolate from './_reInterpolate.js';\nimport templateSettings from './templateSettings.js';\nimport toString from './toString.js';\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '\n * ```\n */\nvar Splitter = /** @class */ (function (_super) {\n __extends(Splitter, _super);\n /**\n * Initializes a new instance of the Splitter class.\n *\n * @param options - Specifies Splitter model properties as options.\n * @param element - Specifies the element that is rendered as an Splitter.\n */\n function Splitter(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {SplitterModel} newProp - specifies the new property\n * @param {SplitterModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n Splitter.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'height':\n this.setSplitterSize(this.element, newProp.height, 'height');\n break;\n case 'width':\n this.setSplitterSize(this.element, newProp.width, 'width');\n break;\n case 'cssClass':\n this.setCssClass(this.element, newProp.cssClass);\n break;\n case 'enabled':\n this.isEnabled(this.enabled);\n break;\n case 'enableReversePanes':\n this.setReversePane();\n break;\n case 'separatorSize':\n this.setSeparatorSize(newProp.separatorSize);\n break;\n case 'orientation':\n this.changeOrientation(newProp.orientation);\n break;\n case 'paneSettings': {\n if (!(newProp.paneSettings instanceof Array && oldProp.paneSettings instanceof Array)) {\n var paneCounts = Object.keys(newProp.paneSettings);\n var isPaneContentChanged = paneCounts.some(function (count) {\n return !isNullOrUndefined(newProp.paneSettings[count].content);\n });\n if (this.isReact && isPaneContentChanged) {\n var cPaneCount = 0;\n for (var k = 0; k < this.paneSettings.length; k++) {\n if (typeof (this.paneSettings[k].content) === 'function') {\n cPaneCount = cPaneCount + 1;\n }\n }\n var hasAllContent = cPaneCount === this.paneSettings.length;\n if (hasAllContent) {\n this.clearTemplate();\n }\n }\n for (var i = 0; i < paneCounts.length; i++) {\n var index = parseInt(Object.keys(newProp.paneSettings)[i], 10);\n var changedPropsCount = Object.keys(newProp.paneSettings[index]).length;\n for (var j = 0; j < changedPropsCount; j++) {\n var property = Object.keys(newProp.paneSettings[index])[j];\n switch (property) {\n case 'content': {\n var newValue = Object(newProp.paneSettings[index])[\"\" + property];\n if (!isNullOrUndefined(newValue)) {\n this.allPanes[index].innerHTML = '';\n this.setTemplate(newValue, this.allPanes[index]);\n }\n break;\n }\n case 'resizable': {\n var newVal = Object(newProp.paneSettings[index])[\"\" + property];\n this.resizableModel(index, newVal);\n break;\n }\n case 'collapsible':\n this.collapsibleModelUpdate(index);\n break;\n case 'collapsed':\n if (newProp.paneSettings[index].collapsed) {\n this.isCollapsed(index);\n }\n else {\n this.collapsedOnchange(index);\n }\n break;\n case 'cssClass':\n this.setCssClass(this.allPanes[index], newProp.paneSettings[index].cssClass);\n break;\n case 'size': {\n var newValSize = Object(newProp.paneSettings[index])[\"\" + property];\n if (newValSize !== '' && !isNullOrUndefined(newValSize)) {\n this.updatePaneSize(newValSize, index);\n }\n break;\n }\n }\n }\n }\n }\n else {\n this.clearTemplate();\n this.destroyPaneSettings();\n this.allBars = [];\n this.allPanes = [];\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setRTL(this.enableRtl);\n this.isCollapsed();\n }\n break;\n }\n case 'enableRtl':\n this.setRTL(newProp.enableRtl);\n break;\n }\n }\n };\n Splitter.prototype.updatePaneSize = function (newValSize, index) {\n this.allPanes[index].style.flexBasis = newValSize;\n var flexPaneIndexes = [];\n var staticPaneWidth;\n var flexCount = 0;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.paneSettings[i].size && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n else if (this.paneSettings[i].size) {\n staticPaneWidth = this.orientation === 'Horizontal' ? this.allPanes[index].offsetWidth : this.allPanes[index].offsetHeight;\n }\n }\n staticPaneWidth = this.orientation === 'Horizontal' ? (this.allBars[0].offsetWidth * this.allBars.length) + staticPaneWidth :\n (this.allBars[0].offsetHeight * this.allBars.length) + staticPaneWidth;\n var flexPaneWidth = (this.orientation === 'Horizontal' ? this.element.offsetWidth : this.element.offsetHeight)\n - staticPaneWidth - (this.border * 2);\n var avgDiffWidth = flexPaneWidth / flexPaneIndexes.length;\n for (var j = 0; j < flexPaneIndexes.length; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = avgDiffWidth + 'px';\n }\n }\n this.allPanes[index].classList.add(STATIC_PANE);\n };\n Splitter.prototype.initializeValues = function () {\n this.allPanes = [];\n this.paneOrder = [];\n this.separatorOrder = [];\n this.allBars = [];\n this.previousCoordinates = {};\n this.currentCoordinates = {};\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n this.panesDimensions = [];\n this.border = 0;\n this.validDataAttributes = ['data-size', 'data-min', 'data-max', 'data-collapsible',\n 'data-resizable', 'data-content', 'data-collapsed'];\n this.validElementAttributes = ['data-orientation', 'data-width', 'data-height'];\n this.iconsDelay = 300;\n this.templateElement = [];\n this.collapseFlag = false;\n this.expandFlag = true;\n };\n Splitter.prototype.preRender = function () {\n this.initializeValues();\n this.onReportWindowSize = this.reportWindowSize.bind(this);\n this.onMouseMoveHandler = this.onMouseMove.bind(this);\n this.onMouseUpHandler = this.onMouseUp.bind(this);\n this.onTouchMoveHandler = this.onMouseMove.bind(this);\n this.onTouchEndHandler = this.onMouseUp.bind(this);\n this.wrapper = this.element.cloneNode(true);\n this.wrapperParent = this.element.parentElement;\n removeClass([this.wrapper], ['e-control', 'e-lib', ROOT]);\n var orientation = this.orientation === 'Horizontal' ? HORIZONTAL_PANE : VERTICAL_PANE;\n addClass([this.element], orientation);\n var name = Browser.info.name;\n var css = (name === 'msie') ? 'e-ie' : '';\n this.setCssClass(this.element, css);\n if (Browser.isDevice) {\n addClass([this.element], SPLIT_TOUCH);\n }\n };\n Splitter.prototype.getPersistData = function () {\n return this.addOnPersist(['paneSettings']);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - returns the string value\n * @private\n */\n Splitter.prototype.getModuleName = function () {\n return 'splitter';\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Splitter.prototype.render = function () {\n this.checkDataAttributes();\n this.setCssClass(this.element, this.cssClass);\n this.isEnabled(this.enabled);\n this.setDimension(this.getHeight(this.element), this.getWidth(this.element));\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setPaneSettings();\n this.setRTL(this.enableRtl);\n if (this.enableReversePanes) {\n this.setReversePane();\n }\n this.collapseFlag = true;\n this.isCollapsed();\n this.collapseFlag = false;\n EventHandler.add(document, 'touchstart click', this.onDocumentClick, this);\n this.renderComplete();\n this.element.ownerDocument.defaultView.addEventListener('resize', this.onReportWindowSize, true);\n EventHandler.add(this.element, 'keydown', this.onMove, this);\n };\n Splitter.prototype.onDocumentClick = function (e) {\n if (!e.target.classList.contains(SPLIT_BAR) && !isNullOrUndefined(this.currentSeparator)) {\n this.currentSeparator.classList.remove(SPLIT_BAR_HOVER);\n this.currentSeparator.classList.remove(SPLIT_BAR_ACTIVE);\n }\n };\n Splitter.prototype.checkPaneSize = function (e) {\n var prePaneSize = this.orientation === 'Horizontal' ? this.previousPane.offsetWidth : this.previousPane.offsetHeight;\n var nextPaneSize = this.orientation === 'Horizontal' ? this.nextPane.offsetWidth : this.nextPane.offsetHeight;\n var splitBarSize = isNullOrUndefined(this.separatorSize) ? BAR_SIZE_DEFAULT : this.separatorSize;\n if ((this.previousPane.style.flexBasis.indexOf('%') > 0 || this.previousPane.style.flexBasis.indexOf('p') > 0 || this.nextPane.style.flexBasis.indexOf('%') > 0)) {\n var previousFlexBasis = this.updatePaneFlexBasis(this.previousPane);\n var nextFlexBasis = this.updatePaneFlexBasis(this.nextPane);\n this.totalPercent = previousFlexBasis + nextFlexBasis;\n this.totalWidth = this.convertPercentageToPixel(this.totalPercent + '%');\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) <\n this.convertPercentageToPixel((nextFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis + 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis - 1) + '%';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) <\n this.convertPercentageToPixel((previousFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis - 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis + 1) + '%';\n }\n }\n }\n else {\n this.totalWidth = (this.orientation === 'Horizontal') ? this.previousPane.offsetWidth + this.nextPane.offsetWidth :\n this.previousPane.offsetHeight + this.nextPane.offsetHeight;\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) < (nextPaneSize + splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize + splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize < splitBarSize) ? '0px' :\n (nextPaneSize - splitBarSize) + 'px';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) < (prePaneSize - splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize < splitBarSize) ? '0px' :\n (prePaneSize - splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize + splitBarSize) + 'px';\n }\n }\n }\n };\n Splitter.prototype.onMove = function (event) {\n if (this.allPanes.length > 1) {\n var index = this.getSeparatorIndex(this.currentSeparator);\n var isPrevpaneCollapsed = this.previousPane.classList.contains(COLLAPSE_PANE);\n var isPrevpaneExpanded = this.previousPane.classList.contains(EXPAND_PANE);\n var isNextpaneCollapsed = this.nextPane.classList.contains(COLLAPSE_PANE);\n if (((this.orientation !== 'Horizontal' && event.keyCode === 38) || (this.orientation === 'Horizontal' &&\n event.keyCode === 39) ||\n (this.orientation === 'Horizontal' && event.keyCode === 37) || (this.orientation !== 'Horizontal' && event.keyCode === 40))\n && (!isPrevpaneExpanded && !isNextpaneCollapsed && !isPrevpaneCollapsed || (isPrevpaneExpanded) && !isNextpaneCollapsed) &&\n document.activeElement.classList.contains(SPLIT_BAR) && (this.paneSettings[index].resizable &&\n this.paneSettings[index + 1].resizable)) {\n event.preventDefault();\n this.checkPaneSize(event);\n this.triggerResizing(event);\n }\n else if (event.keyCode === 13 && this.paneSettings[index].collapsible &&\n document.activeElement.classList.contains(SPLIT_BAR) && this.currentSeparator.classList.contains(SPLIT_BAR_ACTIVE)) {\n if (!this.previousPane.classList.contains(COLLAPSE_PANE)) {\n this.collapse(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n else {\n this.expand(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n }\n }\n };\n Splitter.prototype.getMinInPixel = function (minValue) {\n if (isNullOrUndefined(minValue)) {\n return 0;\n }\n var paneMinRange = this.convertPixelToNumber(minValue.toString());\n if (minValue.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(minValue);\n }\n var min = this.convertPixelToNumber((paneMinRange).toString());\n return min;\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {string} returns the string\n * @hidden\n */\n Splitter.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNullOrUndefined(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n Splitter.prototype.checkDataAttributes = function () {\n var api;\n var value;\n // Element values\n for (var dataIndex = 0; dataIndex < this.validElementAttributes.length; dataIndex++) {\n value = this.element.getAttribute(this.validElementAttributes[dataIndex]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validElementAttributes[dataIndex]);\n // eslint-disable-next-line\n this[api] = value;\n }\n }\n // Pane values\n for (var paneIndex = 0; paneIndex < this.element.children.length; paneIndex++) {\n for (var dataAttr = 0; dataAttr < this.validDataAttributes.length; dataAttr++) {\n value = this.element.children[paneIndex].getAttribute(this.validDataAttributes[dataAttr]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validDataAttributes[dataAttr]);\n value = (api === 'collapsible' || api === 'resizable') ? (value === 'true') : value;\n if (isNullOrUndefined(this.paneSettings[paneIndex])) {\n this.paneSettings[paneIndex] = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsible: false,\n collapsed: false\n };\n }\n // eslint-disable-next-line\n var paneAPI = this.paneSettings[paneIndex][api];\n if (api === 'resizable' || api === 'collapsible' || api === 'collapsed') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n if (isNullOrUndefined(paneAPI) || paneAPI === '') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n }\n }\n }\n };\n Splitter.prototype.destroyPaneSettings = function () {\n [].slice.call(this.element.children).forEach(function (el) {\n detach(el);\n });\n this.restoreElem();\n };\n Splitter.prototype.setPaneSettings = function () {\n var childCount = this.allPanes.length;\n var paneCollection = [];\n var paneValue = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsed: false,\n collapsible: false,\n cssClass: ''\n };\n for (var i = 0; i < childCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i])) {\n paneCollection[i] = paneValue;\n }\n else {\n paneCollection[i] = this.paneSettings[i];\n }\n }\n this.setProperties({ 'paneSettings': paneCollection }, true);\n };\n Splitter.prototype.checkArrow = function (paneIndex, targetArrow) {\n return (this.allBars[paneIndex].querySelector('.' + NAVIGATE_ARROW + '.' + targetArrow));\n };\n Splitter.prototype.removeDataPrefix = function (attribute) {\n return attribute.slice(attribute.lastIndexOf('-') + 1);\n };\n Splitter.prototype.setRTL = function (rtl) {\n if (rtl) {\n addClass([this.element], RTL);\n }\n else {\n removeClass([this.element], RTL);\n }\n };\n Splitter.prototype.setReversePane = function () {\n this.allPanes = this.allPanes.reverse();\n this.allBars = this.allBars.reverse();\n addClass([this.allBars[this.allBars.length - 1]], LAST_BAR);\n removeClass([this.allBars[0]], LAST_BAR);\n this.setProperties({ 'paneSettings': this.paneSettings.reverse() }, true);\n if (this.enableReversePanes) {\n this.element.setAttribute('dir', 'rtl');\n }\n else {\n this.element.removeAttribute('dir');\n }\n };\n Splitter.prototype.setSplitterSize = function (element, size, property) {\n var style = property === 'width' ? { 'width': formatUnit(size) } : { 'height': formatUnit(size) };\n setStyleAttribute(element, style);\n };\n Splitter.prototype.getPanesDimensions = function () {\n for (var index = 0; index < this.allPanes.length; index++) {\n if (this.orientation === 'Horizontal') {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().width);\n }\n else {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().height);\n }\n }\n };\n Splitter.prototype.setCssClass = function (element, className) {\n if (className) {\n addClass([element], className.split(className.indexOf(',') > -1 ? ',' : ' '));\n }\n };\n Splitter.prototype.hideResizer = function (target) {\n addClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n };\n Splitter.prototype.showResizer = function (target) {\n if (!isNullOrUndefined(this.previousPane) && this.previousPane.classList.contains(RESIZABLE_PANE) &&\n !isNullOrUndefined(this.nextPane) && this.nextPane.classList.contains(RESIZABLE_PANE)) {\n removeClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n }\n };\n Splitter.prototype.resizableModel = function (index, newVal) {\n var paneIndex = (index === (this.allBars.length)) ? (index - 1) : index;\n var i = index;\n EventHandler.remove(this.allBars[paneIndex], 'mousedown', this.onMouseDown);\n if (newVal) {\n EventHandler.add(this.allBars[paneIndex], 'mousedown', this.onMouseDown, this);\n if (this.isResizable()) {\n this.showResizer(this.allBars[paneIndex]);\n removeClass([select('.' + RESIZE_BAR, this.allBars[paneIndex])], HIDE_HANDLER);\n this.allBars[paneIndex].classList.add(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.add(RESIZABLE_PANE);\n }\n this.updateResizablePanes(i);\n }\n }\n else {\n this.updateResizablePanes(i);\n this.hideResizer(this.allBars[paneIndex]);\n this.allBars[paneIndex].classList.remove(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.remove(RESIZABLE_PANE);\n }\n }\n };\n Splitter.prototype.collapsibleModelUpdate = function (index) {\n var paneIndex = index === (this.allBars.length) ? (index - 1) : index;\n var arrow2 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_LEFT) : this.checkArrow(paneIndex, ARROW_UP);\n var arrow1 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_RIGHT) : this.checkArrow(paneIndex, ARROW_DOWN);\n this.paneCollapsible(this.allPanes[index], index);\n this.updateCollapseIcons(paneIndex, arrow1, arrow2);\n };\n Splitter.prototype.collapseArrow = function (barIndex, arrow) {\n return selectAll('.' + arrow, this.allBars[barIndex])[0];\n };\n Splitter.prototype.updateIsCollapsed = function (index, collapseArrow, lastBarArrow) {\n if (!isNullOrUndefined(index)) {\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, lastBarArrow) : this.collapseArrow(barIndex, collapseArrow);\n }\n targetEle.click();\n }\n };\n Splitter.prototype.isCollapsed = function (index) {\n var _this = this;\n if (!isNullOrUndefined(index) && this.paneSettings[index].collapsed\n && isNullOrUndefined(this.allPanes[index].classList.contains(COLLAPSE_PANE))) {\n return;\n }\n this.expandFlag = false;\n if (!isNullOrUndefined(index)) {\n this.collapseFlag = true;\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, this.targetArrows().lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, this.targetArrows().lastBarArrow) :\n this.collapseArrow(barIndex, this.targetArrows().collapseArrow);\n }\n var event_1 = { target: targetEle };\n var eventArgs = this.beforeAction(event_1);\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n var collapsedindex = [];\n collapsedindex[0] = index;\n var j = 1;\n for (var i = 0; i < _this.allPanes.length; i++) {\n if (_this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n collapsedindex[j] = i;\n j++;\n }\n }\n collapsedindex = collapsedindex.sort();\n _this.updateIsCollapsed(index, _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n for (var i = 0; i < collapsedindex.length; i++) {\n if (!_this.allPanes[collapsedindex[i]].classList.contains(COLLAPSE_PANE)) {\n _this.updateIsCollapsed(collapsedindex[i], _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n }\n }\n for (var i = collapsedindex.length; i > 0; i--) {\n if (!_this.allPanes[collapsedindex[i - 1]].classList.contains(COLLAPSE_PANE)) {\n var targetArrow = _this.targetArrows();\n _this.updateIsCollapsed(collapsedindex[i - 1], targetArrow.collapseArrow, targetArrow.lastBarArrow);\n }\n }\n var collapseEventArgs = _this.afterAction(event_1);\n _this.trigger('collapsed', collapseEventArgs);\n _this.collapseFlag = false;\n }\n });\n }\n else {\n for (var m = 0; m < this.allPanes.length; m++) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed) {\n this.updateIsCollapsed(m, this.targetArrows().collapseArrow, this.targetArrows().lastBarArrow);\n }\n }\n for (var m = this.allPanes.length - 1; m >= 0; m--) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed &&\n !this.allPanes[m].classList.contains(COLLAPSE_PANE)) {\n var collapseArrow = this.orientation === 'Horizontal' ? ARROW_RIGHT : ARROW_DOWN;\n if (m !== 0) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n if (!this.nextPane.classList.contains(COLLAPSE_PANE)) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n }\n }\n }\n this.expandFlag = true;\n };\n Splitter.prototype.targetArrows = function () {\n this.splitterProperty();\n return {\n collapseArrow: (this.orientation === 'Horizontal') ? ARROW_LEFT : ARROW_UP,\n lastBarArrow: (this.orientation === 'Vertical') ? ARROW_DOWN : ARROW_RIGHT\n };\n };\n Splitter.prototype.collapsedOnchange = function (index) {\n if (!isNullOrUndefined(this.paneSettings[index]) && !isNullOrUndefined(this.paneSettings[index].collapsed)\n && this.allPanes[index].classList.contains(COLLAPSE_PANE)) {\n this.updateIsCollapsed(index, this.targetArrows().lastBarArrow, this.targetArrows().collapseArrow);\n }\n };\n Splitter.prototype.isEnabled = function (enabled) {\n if (enabled) {\n removeClass([this.element], DISABLED);\n }\n else {\n addClass([this.element], DISABLED);\n }\n };\n Splitter.prototype.setSeparatorSize = function (size) {\n var sizeValue = isNullOrUndefined(size) ? 'auto' : size + 'px';\n var separator = this.orientation === 'Horizontal' ? SPLIT_H_BAR : SPLIT_V_BAR;\n for (var index = 0; index < this.allBars.length; index++) {\n var splitBar = selectAll('.' + separator, this.element)[index];\n var resizeBar = selectAll('.' + RESIZE_BAR, splitBar)[0];\n if (this.orientation === 'Horizontal') {\n splitBar.style.width = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.width = sizeValue;\n }\n }\n else {\n splitBar.style.height = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.height = sizeValue;\n }\n }\n }\n };\n Splitter.prototype.changeOrientation = function (orientation) {\n var isVertical = orientation === 'Vertical';\n this.element.classList.remove(isVertical ? HORIZONTAL_PANE : VERTICAL_PANE);\n this.element.classList.add(isVertical ? VERTICAL_PANE : HORIZONTAL_PANE);\n for (var index = 0; index < this.allPanes.length; index++) {\n this.allPanes[index].classList.remove(isVertical ? SPLIT_H_PANE : SPLIT_V_PANE);\n this.allPanes[index].classList.add(isVertical ? SPLIT_V_PANE : SPLIT_H_PANE);\n }\n for (var index = 0; index < this.allBars.length; index++) {\n detach(this.allBars[index]);\n }\n this.allBars = [];\n this.addSeparator(this.element);\n };\n Splitter.prototype.checkSplitPane = function (currentBar, elementIndex) {\n var paneEle = this.collectPanes(currentBar.parentElement.children)[elementIndex];\n return paneEle;\n };\n Splitter.prototype.collectPanes = function (childNodes) {\n var elements = [];\n for (var i = 0; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(PANE)) {\n elements.push(childNodes[i]);\n }\n }\n return elements;\n };\n Splitter.prototype.getPrevPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order + 1) : this.getOrderPane(order - 1);\n };\n Splitter.prototype.getNextPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order - 1) : this.getOrderPane(order + 1);\n };\n Splitter.prototype.getOrderPane = function (order) {\n var pane;\n for (var i = 0; i < this.element.children.length; i++) {\n if (parseInt(this.element.children[i].style.order, 10) === order) {\n pane = this.element.children[i];\n }\n }\n return pane;\n };\n Splitter.prototype.getOrderIndex = function (order, type) {\n var index;\n var panes;\n if (type === 'pane') {\n panes = this.allPanes;\n }\n else {\n panes = this.allBars;\n }\n for (var i = 0; i < panes.length; i++) {\n if (parseInt(panes[i].style.order, 10) === order) {\n index = i;\n }\n }\n return index;\n };\n Splitter.prototype.updateSeparatorSize = function (resizeHanlder) {\n var sizeValue = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n if (this.orientation === 'Horizontal') {\n resizeHanlder.style.width = sizeValue;\n }\n else {\n resizeHanlder.style.height = sizeValue;\n }\n };\n Splitter.prototype.addResizeHandler = function (currentBar) {\n var resizeHanlder = this.createElement('div');\n addClass([resizeHanlder], [RESIZE_BAR, E_ICONS]);\n this.updateSeparatorSize(resizeHanlder);\n currentBar.appendChild(resizeHanlder);\n };\n Splitter.prototype.getHeight = function (target) {\n var height = this.height;\n height = target.style.height !== '' && this.height === '100%' ? target.style.height : this.height;\n return height;\n };\n Splitter.prototype.getWidth = function (target) {\n var width = this.width;\n width = target.style.width !== '' && this.width === '100%' ? target.style.width : this.width;\n return width;\n };\n Splitter.prototype.setDimension = function (height, width) {\n setStyleAttribute(this.element, { 'height': height, 'width': width });\n };\n Splitter.prototype.updateCollapseIcons = function (index, arrow1, arrow2) {\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].collapsible)) {\n if (this.paneSettings[index].collapsible) {\n removeClass([arrow2], [HIDE_ICON]);\n }\n else {\n addClass([arrow2], [HIDE_ICON]);\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if ((this.paneSettings[index + 1].collapsible)) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n }\n }\n }\n };\n Splitter.prototype.updateIconClass = function () {\n if (this.orientation === 'Horizontal') {\n this.leftArrow = ARROW_LEFT;\n this.rightArrow = ARROW_RIGHT;\n }\n else {\n this.leftArrow = ARROW_UP;\n this.rightArrow = ARROW_DOWN;\n }\n };\n Splitter.prototype.createSeparator = function (i) {\n var separator = this.createElement('div');\n this.allBars.push(separator);\n var arrow1 = this.createElement('button');\n var arrow2 = this.createElement('button');\n arrow1.setAttribute('tabindex', '-1');\n arrow2.setAttribute('tabindex', '-1');\n arrow1.setAttribute('aria-label', 'Toggle navigation');\n arrow2.setAttribute('aria-label', 'Toggle navigation');\n arrow1.setAttribute('type', 'button');\n arrow2.setAttribute('type', 'button');\n var size = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n var proxy = null || this;\n if (this.orientation === 'Horizontal') {\n this.updateIconClass();\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_LEFT, HIDE_ICON]);\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_RIGHT, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_H_BAR]);\n separator.style.width = size;\n }\n else {\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_DOWN, HIDE_ICON]);\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_UP, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_V_BAR]);\n this.updateIconClass();\n separator.style.height = size;\n }\n this.addMouseActions(separator);\n separator.appendChild(arrow2);\n this.addResizeHandler(separator);\n separator.appendChild(arrow1);\n this.updateCollapseIcons(i, arrow1, arrow2);\n separator.setAttribute('tabindex', '-1');\n separator.setAttribute('aria-hidden', 'true');\n if (this.enableReversePanes) {\n separator.setAttribute('dir', 'ltr');\n }\n else {\n separator.removeAttribute('dir');\n }\n separator.addEventListener('focus', function () {\n separator.classList.add(SPLIT_BAR_ACTIVE);\n proxy.currentSeparator = separator;\n proxy.getPaneDetails();\n });\n separator.addEventListener('blur', function () {\n separator.classList.remove(SPLIT_BAR_ACTIVE);\n });\n return separator;\n };\n Splitter.prototype.updateResizablePanes = function (index) {\n this.getPaneDetails();\n if (this.isResizable()) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n };\n Splitter.prototype.addSeparator = function (target) {\n var childCount = this.allPanes.length;\n var clonedEle = target.children;\n var separator;\n for (var i = 0; i < childCount; i++) {\n if (i < childCount - 1) {\n separator = this.createSeparator(i);\n setStyleAttribute(separator, { 'order': (i * 2) + 1 });\n this.separatorOrder.push((i * 2) + 1);\n clonedEle[i].parentNode.appendChild(separator);\n this.currentSeparator = separator;\n separator.setAttribute('role', 'separator');\n separator.setAttribute('aria-valuenow', i.toString());\n if (!isNullOrUndefined(this.orientation)) {\n separator.setAttribute('aria-orientation', this.orientation.toLowerCase());\n }\n this.wireClickEvents();\n if (!isNullOrUndefined(separator)) {\n if (this.isResizable()) {\n EventHandler.add(separator, 'mousedown', this.onMouseDown, this);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(separator, eventName, this.onMouseDown, this);\n separator.classList.add(RESIZABLE_BAR);\n this.updateResizablePanes(i);\n }\n else {\n addClass([select('.' + RESIZE_BAR, separator)], HIDE_HANDLER);\n }\n }\n }\n else {\n if (separator) {\n addClass([separator], LAST_BAR);\n }\n if (childCount > 1) {\n this.updateResizablePanes(i);\n }\n }\n }\n if (Browser.info.name === 'msie') {\n var allBar = this.element.querySelectorAll('.e-splitter .e-resize-handler');\n for (var i = 0; i < allBar.length; i++) {\n var sepSize = isNullOrUndefined(this.separatorSize) ? 1 : this.separatorSize;\n allBar[i].style.paddingLeft = sepSize / 2 + 'px';\n allBar[i].style.paddingRight = sepSize / 2 + 'px';\n }\n }\n };\n Splitter.prototype.isResizable = function () {\n var resizable = false;\n if ((!isNullOrUndefined(this.paneSettings[this.getPreviousPaneIndex()]) &&\n this.paneSettings[this.getPreviousPaneIndex()].resizable &&\n !isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()]) &&\n this.paneSettings[this.getNextPaneIndex()].resizable) ||\n isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()])) {\n resizable = true;\n }\n return resizable;\n };\n Splitter.prototype.addMouseActions = function (separator) {\n var _this = this;\n var sTout;\n var hoverTimeOut;\n separator.addEventListener('mouseenter', function () {\n /* istanbul ignore next */\n sTout = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n }, _this.iconsDelay);\n });\n separator.addEventListener('mouseleave', function () {\n clearTimeout(sTout);\n removeClass([separator], [SPLIT_BAR_HOVER]);\n });\n separator.addEventListener('mouseout', function () {\n clearTimeout(hoverTimeOut);\n });\n separator.addEventListener('mouseover', function () {\n /* istanbul ignore next */\n hoverTimeOut = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n });\n });\n };\n Splitter.prototype.getEventType = function (e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n };\n Splitter.prototype.updateCurrentSeparator = function (target) {\n this.currentSeparator = this.isSeparator(target) ? target.parentElement : target;\n };\n Splitter.prototype.isSeparator = function (target) {\n return (target.classList.contains(SPLIT_BAR) ? false : true);\n };\n Splitter.prototype.isMouseEvent = function (e) {\n var isMouse = false;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType) &&\n this.getEventType(e.pointerType) === 'mouse')) {\n isMouse = true;\n }\n return isMouse;\n };\n Splitter.prototype.updateCursorPosition = function (e, type) {\n if (this.isMouseEvent(e)) {\n this.changeCoordinates({ x: e.pageX, y: e.pageY }, type);\n }\n else {\n var eventType = Browser.info.name !== 'msie' ? e.touches[0] : e;\n this.changeCoordinates({ x: eventType.pageX, y: eventType.pageY }, type);\n }\n };\n Splitter.prototype.changeCoordinates = function (coordinates, type) {\n if (type === 'previous') {\n this.previousCoordinates = coordinates;\n }\n else {\n this.currentCoordinates = coordinates;\n }\n };\n Splitter.prototype.reportWindowSize = function () {\n var _this = this;\n var paneCount = this.allPanes.length;\n if (!document.body.contains(this.element)) {\n document.defaultView.removeEventListener('resize', this.onReportWindowSize);\n return;\n }\n for (var i = 0; i < paneCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n if (paneCount - 1 === i) {\n var staticPaneCount = this.element.querySelectorAll('.' + STATIC_PANE).length;\n if (staticPaneCount === paneCount) {\n if (this.allPanes[i].style.flexBasis === '') {\n removeClass([this.allPanes[i]], STATIC_PANE);\n }\n }\n }\n }\n if (paneCount > 0) {\n setTimeout(function () {\n _this.updateSplitterSize(true);\n }, 200);\n }\n };\n Splitter.prototype.updateSplitterSize = function (iswindowResize) {\n var totalWidth = 0;\n var flexPaneIndexes = [];\n var flexCount = 0;\n var children = this.element.children;\n for (var i = 0, len = children.length; i < len; i++) {\n totalWidth += this.orientation === 'Horizontal' ? children[i].offsetWidth :\n children[i].offsetHeight;\n }\n for (var j = 0, len = this.allBars.length; j < len; j++) {\n totalWidth += this.orientation === 'Horizontal' ? parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) :\n parseInt(getComputedStyle(this.allBars[j]).marginTop, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginBottom, 10);\n }\n var diff = this.orientation === 'Horizontal' ? this.element.offsetWidth -\n ((this.border * 2) + totalWidth) :\n this.element.offsetHeight - ((this.border * 2) + totalWidth);\n for (var i = 0, len = this.allPanes.length; i < len; i++) {\n if (this.allPanes[i].innerText === '' ? !(this.paneSettings[i].size) || !(this.allPanes[i].innerText === '')\n : !(this.paneSettings[i].size) && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n }\n var avgDiffWidth = diff / flexPaneIndexes.length;\n for (var j = 0, len = flexPaneIndexes.length; j < len; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = this.orientation === 'Horizontal' ?\n (this.allPanes[flexPaneIndexes[j]].offsetWidth + avgDiffWidth) + 'px' :\n (this.allPanes[flexPaneIndexes[j]].offsetHeight + avgDiffWidth) + 'px';\n }\n }\n if (this.allPanes.length === 2 && iswindowResize) {\n var paneCount = this.allPanes.length;\n var minValue = void 0;\n var paneMinRange = void 0;\n var paneIndex = 0;\n var updatePane = void 0;\n var flexPane = void 0;\n for (var i = 0; i < paneCount; i++) {\n if (!isNullOrUndefined(this.paneSettings[i].min)) {\n paneMinRange = this.convertPixelToNumber((this.paneSettings[i].min).toString());\n if (this.paneSettings[i].min.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(this.paneSettings[i].min);\n }\n minValue = this.convertPixelToNumber((paneMinRange).toString());\n if ((this.orientation === 'Horizontal' ? this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight) < minValue) {\n if (i === paneIndex) {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i + 1];\n }\n else {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i - 1];\n }\n var sizeDiff = minValue - (this.orientation === 'Horizontal' ?\n this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight);\n var isPercent = updatePane.style.flexBasis.indexOf('%') > -1;\n var updatePaneOffset = this.orientation === 'Horizontal' ? updatePane.offsetWidth : updatePane.offsetHeight;\n if (!isNullOrUndefined(updatePane) && updatePane.style.flexBasis !== '' && updatePane.classList.contains(STATIC_PANE)) {\n updatePane.style.flexBasis = isPercent ? this.convertPixelToPercentage(updatePaneOffset + sizeDiff) + '%'\n : (updatePaneOffset + sizeDiff) + 'px';\n }\n var flexPaneOffset = this.orientation === 'Horizontal' ? flexPane.offsetWidth : flexPane.offsetHeight;\n if (!isNullOrUndefined(flexPane) && flexPane.style.flexBasis !== '' && !flexPane.classList.contains(STATIC_PANE)) {\n flexPane.style.flexBasis = flexPane.style.flexBasis.indexOf('%') > -1 ?\n this.convertPixelToPercentage(flexPaneOffset - sizeDiff) + '%' : (flexPaneOffset - sizeDiff) + 'px';\n }\n }\n }\n }\n }\n };\n Splitter.prototype.wireResizeEvents = function () {\n document.addEventListener('mousemove', this.onMouseMoveHandler, true);\n document.addEventListener('mouseup', this.onMouseUpHandler, true);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.addEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.addEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.unwireResizeEvents = function () {\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.removeEventListener('mousemove', this.onMouseMoveHandler, true);\n document.removeEventListener('mouseup', this.onMouseUpHandler, true);\n document.removeEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.removeEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.wireClickEvents = function () {\n EventHandler.add(this.currentSeparator, 'touchstart click', this.clickHandler, this);\n };\n Splitter.prototype.clickHandler = function (e) {\n if (!e.target.classList.contains(NAVIGATE_ARROW)) {\n var hoverBars = selectAll('.' + ROOT + ' > .' + SPLIT_BAR + '.' + SPLIT_BAR_HOVER);\n if (hoverBars.length > 0) {\n removeClass(hoverBars, SPLIT_BAR_HOVER);\n }\n e.target.classList.add(SPLIT_BAR_HOVER);\n }\n this.splitterDetails(e);\n var icon = e.target;\n if (icon.classList.contains(ARROW_LEFT) || icon.classList.contains(ARROW_RIGHT) ||\n icon.classList.contains(ARROW_DOWN) || icon.classList.contains(ARROW_UP)) {\n if (!this.nextPane.classList.contains(PANE_HIDDEN) && !this.previousPane.classList.contains(PANE_HIDDEN)) {\n this.collapseAction(e);\n }\n else {\n this.expandAction(e);\n }\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.expandAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.expandFlag) {\n this.trigger('beforeExpand', eventArgs, function (beforeExpandArgs) {\n if (!beforeExpandArgs.cancel) {\n _this.expandPane(e);\n }\n var expandEventArgs = _this.afterAction(e);\n _this.trigger('expanded', expandEventArgs);\n });\n }\n else {\n this.expandPane(e);\n }\n };\n Splitter.prototype.getIcon = function (e) {\n var targetClass = e.target.className.split(' ').filter(function (className) {\n return className !== NAVIGATE_ARROW && className !== HIDE_ICON;\n });\n return targetClass[0];\n };\n Splitter.prototype.expandPane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (!this.previousPane.classList.contains(COLLAPSE_PANE) &&\n this.previousPane.classList.contains(STATIC_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.nextPane.classList.contains(EXPAND_PANE) && this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) && !(collapseCount === this.allPanes.length - 2));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.nextPane : this.previousPane;\n var expandPane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPaneIndex = isLeftOrUp ? this.nextPaneIndex : this.prevPaneIndex;\n removeClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'false');\n // cCount is calculated after removing the COLLAPSE_PANE\n var cCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n if (cCount > 0) {\n if (!expandPane.classList.contains(COLLAPSE_PANE)) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n else if (cCount === 0) {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n removeClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'false');\n }\n }\n }\n if (this.expandFlag) {\n this.updatePaneSettings(expandPaneIndex, false);\n }\n this.updateIconsOnExpand(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.previousPane.classList.remove(EXPAND_PANE);\n this.previousPane.setAttribute('aria-expanded', 'false');\n this.previousPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.updateFlexGrow = function () {\n var collapseCount = 0;\n for (var j = 0; j < this.element.children.length; j++) {\n if (this.element.children[j].classList.contains(COLLAPSE_PANE)) {\n collapseCount = collapseCount + 1;\n }\n }\n var visiblePane = collapseCount === this.allPanes.length - 2;\n var panes = this.allPanes;\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.flexGrow = '';\n if (visiblePane && this.allPanes[i].classList.contains(COLLAPSE_PANE) && this.paneSettings[i].size &&\n i !== this.allPanes.length - 1) {\n panes[i].style.flexGrow = '';\n }\n if (panes[i].classList.contains(EXPAND_PANE)) {\n panes[i].style.flexGrow = '1';\n }\n else if (panes[i].classList.contains(COLLAPSE_PANE)) {\n panes[i].style.flexGrow = '0';\n }\n }\n };\n Splitter.prototype.hideTargetBarIcon = function (targetBar, targetArrow) {\n addClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.showTargetBarIcon = function (targetBar, targetArrow) {\n removeClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.updateIconsOnCollapse = function (e, targetIcon) {\n this.splitterProperty();\n var removeIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ? this.currentBarIndex - 1\n : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n if (this.splitInstance.prevPaneCollapsed || this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.resizableModel(this.currentBarIndex, false);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 1) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n this.resizableModel(otherBarIndex, false);\n }\n else if (collapsecount === 2) {\n this.hideBarIcons(otherBar);\n this.resizableModel(otherBarIndex, false);\n }\n if (!this.paneSettings[otherPrevPaneIndex].collapsible ||\n !this.paneSettings[otherNextPaneIndex].collapsible) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n }\n }\n }\n else {\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n if (!isNullOrUndefined(otherBar)) {\n this.resizableModel(otherBarIndex, true);\n }\n if (!this.paneSettings[this.prevPaneIndex].collapsible || !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n this.hideTargetBarIcon(this.currentSeparator, removeIcon);\n }\n else {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n }\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n }\n }\n };\n Splitter.prototype.collapseAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.collapseFlag) {\n this.collapsePane(e);\n }\n else {\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n _this.collapsePane(e);\n var collapseEventArgs = _this.afterAction(e);\n _this.trigger('collapsed', collapseEventArgs);\n }\n });\n }\n };\n Splitter.prototype.collapsePane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (this.previousPane.classList.contains(STATIC_PANE) &&\n !this.previousPane.classList.contains(COLLAPSE_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(COLLAPSE_PANE) &&\n !(collapseCount === this.allPanes.length - 2)) || (this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.previousPane.classList.contains(STATIC_PANE) && this.nextPane.classList.contains(STATIC_PANE));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPane = isLeftOrUp ? this.nextPane : this.previousPane;\n var collapsePaneIndex = isLeftOrUp ? this.prevPaneIndex : this.nextPaneIndex;\n removeClass([collapsePane], EXPAND_PANE);\n collapsePane.setAttribute('aria-expanded', 'false');\n addClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'true');\n var isFlexPane = collapsePane.style.flexBasis === '';\n if (isFlexPane) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n else {\n var isFlexPaneHidden = true;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n if (this.allPanes[i].style.flexBasis === '' && !this.allPanes[i].classList.contains(COLLAPSE_PANE)\n && !this.allPanes[i].classList.contains(EXPAND_PANE)) {\n addClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'true');\n isFlexPaneHidden = false;\n break;\n }\n }\n }\n if (isFlexPaneHidden) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n if (!this.collapseFlag) {\n this.updatePaneSettings(collapsePaneIndex, true);\n }\n this.updateIconsOnCollapse(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.nextPane.classList.remove(EXPAND_PANE);\n this.nextPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.removeStaticPanes = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n }\n };\n Splitter.prototype.beforeAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n cancel: false\n };\n return eventArgs;\n };\n Splitter.prototype.updatePaneSettings = function (index, collapsed) {\n var paneValues = this.paneSettings;\n paneValues[index].collapsed = collapsed;\n this.setProperties({ 'paneSettings': paneValues }, true);\n };\n Splitter.prototype.splitterProperty = function () {\n this.splitInstance = {\n currentBarIndex: this.currentBarIndex,\n nextPaneCollapsible: this.nextPane.classList.contains(COLLAPSIBLE),\n prevPaneCollapsible: this.previousPane.classList.contains(COLLAPSIBLE),\n prevPaneExpanded: this.previousPane.classList.contains(EXPAND_PANE),\n nextPaneExpanded: this.nextPane.classList.contains(EXPAND_PANE),\n nextPaneCollapsed: this.nextPane.classList.contains(COLLAPSE_PANE),\n prevPaneCollapsed: this.previousPane.classList.contains(COLLAPSE_PANE),\n nextPaneIndex: this.getNextPaneIndex(),\n prevPaneIndex: this.getPreviousPaneIndex(),\n nextPaneNextEle: this.nextPane.nextElementSibling,\n prevPanePreEle: this.previousPane.previousElementSibling\n };\n };\n Splitter.prototype.showCurrentBarIcons = function () {\n removeClass([select('.' + this.arrow, this.currentSeparator)], HIDE_ICON);\n };\n Splitter.prototype.hideBarIcons = function (bar) {\n addClass([select('.' + this.arrow, bar)], HIDE_ICON);\n };\n Splitter.prototype.getCollapseCount = function (prevPaneIndex, nextPaneIndex) {\n var collapsecount = 0;\n if (this.allPanes[prevPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n if (this.allPanes[nextPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n return collapsecount;\n };\n Splitter.prototype.checkResizableProp = function (prevPaneIndex, nextPaneIndex) {\n if (this.paneSettings[prevPaneIndex].resizable && this.paneSettings[nextPaneIndex].resizable) {\n return true;\n }\n else {\n return false;\n }\n };\n Splitter.prototype.updateIconsOnExpand = function (e, targetIcon) {\n this.splitterProperty();\n var showIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ?\n this.currentBarIndex - 1 : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n // prevPane ! collapsed && nextPane ! collapsed\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.showCurrentBarIcons();\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 0) {\n this.showTargetBarIcon(otherBar, targetIcon);\n this.showTargetBarIcon(otherBar, showIcon);\n if (this.checkResizableProp(otherPrevPaneIndex, otherNextPaneIndex)) {\n this.resizableModel(otherBarIndex, true);\n }\n }\n else if (collapsecount === 1) {\n this.hideBarIcons(otherBar);\n // If condition Edge case in flexible cases\n if (this.allPanes[otherPrevPaneIndex].classList.contains(EXPAND_PANE) ||\n this.allPanes[otherNextPaneIndex].classList.contains(EXPAND_PANE)) {\n this.showTargetBarIcon(otherBar, showIcon);\n }\n else {\n // Common case\n this.showTargetBarIcon(otherBar, targetIcon);\n }\n this.resizableModel(otherBarIndex, false);\n }\n }\n }\n }\n else {\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.showTargetBarIcon(this.currentSeparator, showIcon);\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n }\n else {\n if (!this.paneSettings[this.prevPaneIndex].collapsible && !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n }\n };\n Splitter.prototype.afterAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator\n };\n return eventArgs;\n };\n Splitter.prototype.currentIndex = function (e) {\n this.currentBarIndex = this.getOrderIndex(parseInt(e.target.parentElement.style.order, 10), 'splitbar');\n };\n Splitter.prototype.getSeparatorIndex = function (target) {\n var array = [].slice.call(this.allBars);\n array = this.enableReversePanes ? array.reverse() : array;\n return array.indexOf(target);\n };\n Splitter.prototype.getPrevBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar - 1)];\n return prevbar;\n };\n Splitter.prototype.getNextBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar + 1)];\n return prevbar;\n };\n Splitter.prototype.updateBars = function (index) {\n this.prevBar = this.getPrevBar(index);\n this.nextBar = this.getNextBar(index);\n };\n Splitter.prototype.splitterDetails = function (e) {\n if (this.orientation === 'Horizontal') {\n this.arrow = e.target.classList.contains(ARROW_LEFT) ? ARROW_RIGHT : ARROW_LEFT;\n }\n else {\n this.arrow = e.target.classList.contains(ARROW_UP) ? ARROW_DOWN : ARROW_UP;\n }\n this.updateCurrentSeparator(e.target);\n this.currentIndex(e);\n this.updateBars(this.currentBarIndex);\n this.getPaneDetails();\n };\n Splitter.prototype.triggerResizing = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n paneSize: [this.prePaneDimenson, this.nextPaneDimension],\n separator: this.currentSeparator\n };\n this.trigger('resizing', eventArgs);\n };\n Splitter.prototype.onMouseDown = function (e) {\n var _this = this;\n e.preventDefault();\n var target = e.target;\n if (target.classList.contains(NAVIGATE_ARROW)) {\n return;\n }\n this.updateCurrentSeparator(target);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.updateCursorPosition(e, 'previous');\n this.getPaneDetails();\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.getPreviousPaneIndex(), this.getNextPaneIndex()],\n separator: this.currentSeparator,\n cancel: false\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'none';\n }\n this.trigger('resizeStart', eventArgs, function (resizeStartArgs) {\n if (!resizeStartArgs.cancel) {\n _this.wireResizeEvents();\n _this.checkPaneSize(e);\n }\n });\n };\n Splitter.prototype.updatePaneFlexBasis = function (pane) {\n var previous;\n if (pane.style.flexBasis.indexOf('%') > 0) {\n previous = this.removePercentageUnit(pane.style.flexBasis);\n }\n else {\n if (pane.style.flexBasis !== '') {\n previous = this.convertPixelToPercentage(this.convertPixelToNumber(pane.style.flexBasis));\n }\n else {\n var offset = (this.orientation === 'Horizontal') ? (pane.offsetWidth) : (pane.offsetHeight);\n previous = this.convertPixelToPercentage(offset);\n }\n }\n return previous;\n };\n Splitter.prototype.removePercentageUnit = function (value) {\n return parseFloat(value.slice(0, value.indexOf('%')));\n };\n Splitter.prototype.convertPercentageToPixel = function (value, targetElement) {\n var percentage = value.toString();\n var convertedValue;\n if (percentage.indexOf('%') > -1) {\n convertedValue = parseFloat(percentage.slice(0, percentage.indexOf('%')));\n var offsetValue = void 0;\n if (!isNullOrUndefined(targetElement)) {\n offsetValue = this.panesDimensions[this.allPanes.indexOf(targetElement)];\n }\n else {\n offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n }\n convertedValue = Math.ceil(offsetValue * (convertedValue / 100));\n }\n else {\n convertedValue = parseInt(percentage, 10);\n }\n return convertedValue;\n };\n Splitter.prototype.convertPixelToPercentage = function (value) {\n var offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return (value / offsetValue) * 100;\n };\n Splitter.prototype.convertPixelToNumber = function (value) {\n value = value.toString();\n if (value.indexOf('p') > -1) {\n return parseFloat(value.slice(0, value.indexOf('p')));\n }\n else {\n return parseFloat(value);\n }\n };\n Splitter.prototype.calcDragPosition = function (rectValue, offsetValue) {\n var separatorPosition = this.orientation === 'Horizontal' ? (this.currentCoordinates.x - rectValue) :\n (this.currentCoordinates.y - rectValue);\n var separator;\n separator = separatorPosition / offsetValue;\n separator = (separator > 1) ? 1 : (separator < 0) ? 0 : separator;\n return separator * offsetValue;\n };\n Splitter.prototype.getSeparatorPosition = function (e) {\n this.updateCursorPosition(e, 'current');\n var rectBound = (this.orientation === 'Horizontal') ? this.element.getBoundingClientRect().left + window.scrollX :\n this.element.getBoundingClientRect().top + window.scrollY;\n var offSet = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return this.calcDragPosition(rectBound, offSet);\n };\n Splitter.prototype.getMinMax = function (paneIndex, target, selection) {\n var defaultVal = selection === 'min' ? 0 : null;\n // eslint-disable-next-line\n var paneValue = null;\n if (selection === 'min') {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneValue = this.paneSettings[paneIndex].min;\n }\n }\n else {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneValue = this.paneSettings[paneIndex].max;\n }\n }\n if (this.paneSettings.length > 0 && !isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(paneValue)) {\n if (paneValue.indexOf('%') > 0) {\n paneValue = this.convertPercentageToPixel(paneValue).toString();\n }\n return this.convertPixelToNumber(paneValue);\n }\n else {\n return defaultVal;\n }\n };\n Splitter.prototype.getPreviousPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) + 1 :\n parseInt(this.currentSeparator.style.order, 10) - 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getNextPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) - 1 :\n parseInt(this.currentSeparator.style.order, 10) + 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getPaneDetails = function () {\n var prevPane = null;\n var nextPane = null;\n this.order = parseInt(this.currentSeparator.style.order, 10);\n if (this.allPanes.length > 1) {\n prevPane = this.getPrevPane(this.order);\n nextPane = this.getNextPane(this.order);\n }\n if (prevPane && nextPane) {\n this.previousPane = prevPane;\n this.nextPane = nextPane;\n this.prevPaneIndex = this.getPreviousPaneIndex();\n this.nextPaneIndex = this.getNextPaneIndex();\n }\n else {\n return;\n }\n };\n Splitter.prototype.getPaneHeight = function (pane) {\n return ((this.orientation === 'Horizontal') ? pane.offsetWidth.toString() :\n pane.offsetHeight.toString());\n };\n Splitter.prototype.isValidSize = function (paneIndex) {\n var isValid = false;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].size) &&\n this.paneSettings[paneIndex].size.indexOf('%') > -1) {\n isValid = true;\n }\n return isValid;\n };\n Splitter.prototype.getPaneDimensions = function () {\n this.previousPaneHeightWidth = (this.previousPane.style.flexBasis === '') ? this.getPaneHeight(this.previousPane) :\n this.previousPane.style.flexBasis;\n this.nextPaneHeightWidth = (this.nextPane.style.flexBasis === '') ? this.getPaneHeight(this.nextPane) :\n this.nextPane.style.flexBasis;\n if (this.isValidSize(this.prevPaneIndex)) {\n this.previousPaneHeightWidth = this.convertPercentageToPixel(this.previousPaneHeightWidth).toString();\n this.updatePrePaneInPercentage = true;\n }\n if (this.isValidSize(this.nextPaneIndex)) {\n this.nextPaneHeightWidth = this.convertPercentageToPixel(this.nextPaneHeightWidth).toString();\n this.updateNextPaneInPercentage = true;\n }\n this.prePaneDimenson = this.convertPixelToNumber(this.previousPaneHeightWidth.toString());\n this.nextPaneDimension = this.convertPixelToNumber(this.nextPaneHeightWidth.toString());\n };\n Splitter.prototype.checkCoordinates = function (pageX, pageY) {\n var coordinatesChanged = true;\n if ((pageX === this.previousCoordinates.x && pageY === this.previousCoordinates.y)) {\n coordinatesChanged = false;\n }\n return coordinatesChanged;\n };\n Splitter.prototype.isCursorMoved = function (e) {\n var cursorMoved = true;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType)) &&\n this.getEventType(e.pointerType) === 'mouse') {\n cursorMoved = this.checkCoordinates(e.pageX, e.pageY);\n }\n else {\n cursorMoved = (Browser.info.name !== 'msie') ?\n this.checkCoordinates(e.touches[0].pageX, e.touches[0].pageY) :\n this.checkCoordinates(e.pageX, e.pageY);\n }\n return cursorMoved;\n };\n Splitter.prototype.getBorder = function () {\n this.border = 0;\n var border = this.orientation === 'Horizontal' ? ((this.element.offsetWidth - this.element.clientWidth) / 2) :\n (this.element.offsetHeight - this.element.clientHeight) / 2;\n this.border = Browser.info.name !== 'chrome' ? this.border : border;\n };\n Splitter.prototype.onMouseMove = function (e) {\n if (!this.isCursorMoved(e)) {\n return;\n }\n this.getPaneDetails();\n this.getPaneDimensions();\n this.triggerResizing(e);\n var left = this.validateDraggedPosition(this.getSeparatorPosition(e), this.prePaneDimenson, this.nextPaneDimension);\n var separatorNewPosition;\n this.getBorder();\n if (this.orientation === 'Horizontal') {\n separatorNewPosition = (this.element.getBoundingClientRect().left + left) -\n this.currentSeparator.getBoundingClientRect().left + this.border;\n }\n else {\n separatorNewPosition = (this.element.getBoundingClientRect().top + left) -\n this.currentSeparator.getBoundingClientRect().top + this.border;\n }\n this.nextPaneHeightWidth =\n (typeof (this.nextPaneHeightWidth) === 'string' && this.nextPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.nextPaneHeightWidth) : parseInt(this.nextPaneHeightWidth, 10);\n this.previousPaneHeightWidth =\n (typeof (this.previousPaneHeightWidth) === 'string' && this.previousPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.previousPaneHeightWidth) : parseInt(this.previousPaneHeightWidth, 10);\n this.prevPaneCurrentWidth = separatorNewPosition + this.previousPaneHeightWidth;\n this.nextPaneCurrentWidth = this.nextPaneHeightWidth - separatorNewPosition;\n this.validateMinMaxValues();\n if (this.nextPaneCurrentWidth < 0) {\n this.nextPaneCurrentWidth = 0;\n }\n /* istanbul ignore next */\n if (this.prevPaneCurrentWidth < 0) {\n this.prevPaneCurrentWidth = 0;\n }\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) > this.totalWidth) {\n if (this.nextPaneCurrentWidth < this.prevPaneCurrentWidth) {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n else {\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n }\n /* istanbul ignore next */\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) < this.totalWidth) {\n var difference = this.totalWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth));\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + difference;\n }\n this.calculateCurrentDimensions();\n this.addStaticPaneClass();\n var flexPaneCount = 0;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (this.paneSettings[i].size === '') {\n flexPaneCount = flexPaneCount + 1;\n }\n else if (this.allPanes[i].style.flexBasis !== '') {\n this.paneSettings[i].size = this.allPanes[i].style.flexBasis;\n }\n }\n var allFlexiblePanes = flexPaneCount === this.allPanes.length;\n // Two flexible Pane Case.\n if (this.previousPane.style.flexBasis === '' && this.nextPane.style.flexBasis === '' && !allFlexiblePanes) {\n var middlePaneIndex = this.allPanes.length % this.allBars.length;\n if (this.prevPaneIndex === middlePaneIndex) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n else if (this.nextPaneIndex === middlePaneIndex) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n }\n else {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n } // All panes are flexible\n else if (allFlexiblePanes) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n } // Two Panesa are Static Pane\n else {\n if (this.previousPane.style.flexBasis !== '' && this.previousPane.classList.contains(STATIC_PANE)) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n }\n if (this.nextPane.style.flexBasis !== '' && this.nextPane.classList.contains(STATIC_PANE)) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n }\n }\n var isStaticPanes = this.previousPane.style.flexBasis !== '' && this.nextPane.style.flexBasis !== '';\n if (!(this.allPanes.length > 2) && isStaticPanes) {\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.validateMinRange = function (paneIndex, paneCurrentWidth) {\n var paneMinRange = null;\n var paneMinDimensions;\n var difference = 0;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneMinRange = this.paneSettings[paneIndex].min.toString();\n }\n if (!isNullOrUndefined(paneMinRange)) {\n if (paneMinRange.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(paneMinRange).toString();\n }\n paneMinDimensions = this.convertPixelToNumber(paneMinRange);\n if (paneCurrentWidth < paneMinDimensions) {\n difference = (paneCurrentWidth - paneMinDimensions) <= 0 ? 0 :\n (paneCurrentWidth - paneMinDimensions);\n this.totalWidth = this.totalWidth - difference;\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMinDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMaxRange = function (paneIndex, paneCurrentWidth) {\n var paneMaxRange = null;\n var paneMaxDimensions;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneMaxRange = this.paneSettings[paneIndex].max.toString();\n }\n if (!isNullOrUndefined(paneMaxRange)) {\n if (paneMaxRange.indexOf('%') > 0) {\n paneMaxRange = this.convertPercentageToPixel(paneMaxRange).toString();\n }\n paneMaxDimensions = this.convertPixelToNumber(paneMaxRange);\n if (paneCurrentWidth > paneMaxDimensions) {\n this.totalWidth = this.totalWidth - (paneCurrentWidth - paneMaxDimensions);\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMaxDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMinMaxValues = function () {\n //validate previous pane minimum range\n this.prevPaneCurrentWidth = this.validateMinRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // Validate next pane minimum range\n this.nextPaneCurrentWidth = this.validateMinRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n // validate previous pane maximum range\n this.prevPaneCurrentWidth = this.validateMaxRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // validate next pane maximum range\n this.nextPaneCurrentWidth = this.validateMaxRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n };\n Splitter.prototype.equatePaneWidths = function () {\n var difference;\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) > this.totalPercent) {\n difference = (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) - this.totalPercent;\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - (difference / 2) + '%';\n }\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) < this.totalPercent) {\n difference = this.totalPercent - (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth);\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + (difference / 2) + '%';\n }\n };\n Splitter.prototype.calculateCurrentDimensions = function () {\n if (this.updatePrePaneInPercentage || this.updateNextPaneInPercentage) {\n this.prevPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.prevPaneCurrentWidth)\n * 10) / 10));\n this.nextPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.nextPaneCurrentWidth)\n * 10) / 10));\n if (this.prevPaneCurrentWidth === 0) {\n this.nextPaneCurrentWidth = this.totalPercent;\n }\n if (this.nextPaneCurrentWidth === 0) {\n this.prevPaneCurrentWidth = this.totalPercent;\n }\n if (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth !== this.totalPercent) {\n this.equatePaneWidths();\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + '%';\n }\n this.prevPaneCurrentWidth = (this.updatePrePaneInPercentage) ? this.prevPaneCurrentWidth :\n this.convertPercentageToPixel(this.prevPaneCurrentWidth) + 'px';\n this.nextPaneCurrentWidth = (this.updateNextPaneInPercentage) ? this.nextPaneCurrentWidth :\n this.convertPercentageToPixel(this.nextPaneCurrentWidth) + 'px';\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + 'px';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + 'px';\n }\n };\n Splitter.prototype.addStaticPaneClass = function () {\n if (!this.previousPane.classList.contains(STATIC_PANE) && !(this.previousPane.style.flexBasis === '') && !this.previousPane.classList.contains(EXPAND_PANE)) {\n this.previousPane.classList.add(STATIC_PANE);\n }\n if (!this.nextPane.classList.contains(STATIC_PANE) && !(this.nextPane.style.flexBasis === '') && !this.nextPane.classList.contains(EXPAND_PANE)) {\n this.nextPane.classList.add(STATIC_PANE);\n }\n };\n Splitter.prototype.validateDraggedPosition = function (draggedPos, prevPaneHeightWidth, nextPaneHeightWidth) {\n var separatorTopLeft = (this.orientation === 'Horizontal') ? this.currentSeparator.offsetLeft :\n this.currentSeparator.offsetTop;\n var prePaneRange = separatorTopLeft - prevPaneHeightWidth;\n var nextPaneRange = nextPaneHeightWidth + separatorTopLeft;\n var pane1MinSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'min');\n var pane2MinSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'min');\n var pane1MaxSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'max');\n var pane2MaxSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'max');\n var validatedSize = draggedPos;\n if (draggedPos > nextPaneRange - pane2MinSize) {\n validatedSize = nextPaneRange - pane2MinSize;\n }\n else if (draggedPos < prePaneRange + pane1MinSize) {\n validatedSize = prePaneRange + pane1MinSize;\n }\n if (!isNullOrUndefined(pane1MaxSize)) {\n if (draggedPos > prePaneRange + pane1MaxSize) {\n validatedSize = prePaneRange + pane1MaxSize;\n }\n }\n else if (!isNullOrUndefined(pane2MaxSize)) {\n if (draggedPos < nextPaneRange - pane2MaxSize) {\n validatedSize = nextPaneRange - pane2MaxSize;\n }\n }\n return validatedSize;\n };\n Splitter.prototype.onMouseUp = function (e) {\n removeClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.unwireResizeEvents();\n var eventArgs = {\n event: e,\n element: this.element,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n paneSize: [this.prePaneDimenson, this.nextPaneDimension]\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'auto';\n }\n this.trigger('resizeStop', eventArgs);\n if (this.enablePersistence) {\n var paneValues = this.paneSettings;\n paneValues[this.getPreviousPaneIndex()].size = this.allPanes[this.getPreviousPaneIndex()].style.flexBasis;\n paneValues[this.getNextPaneIndex()].size = this.allPanes[this.getNextPaneIndex()].style.flexBasis;\n this.setProperties({ 'paneSettings': paneValues }, true);\n }\n };\n Splitter.prototype.panesDimension = function (index, child) {\n var childCount = child.length;\n var size;\n parseInt(this.getHeight(this.element), 10);\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].size)) {\n size = this.paneSettings[index].size;\n if (index < childCount) {\n setStyleAttribute(child[index], { 'flex-basis': size, 'order': index * 2 });\n if (index < childCount - 1 && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n else if (!this.sizeFlag) {\n child[index].style.flexBasis = null;\n }\n if ((index === childCount - 1) && this.sizeFlag && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n }\n }\n else {\n this.sizeFlag = true;\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n }\n else {\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n this.paneOrder.push(index * 2);\n };\n Splitter.prototype.setTemplate = function (template, toElement) {\n toElement.innerHTML = '';\n template = typeof (template) === 'string' ? this.sanitizeHelper(template) : template;\n this.templateCompile(toElement, template);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n // eslint-disable-next-line\n Splitter.prototype.templateCompile = function (ele, cnt) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n var tempEle = this.createElement('div');\n this.compileElement(tempEle, cnt, 'content');\n if (tempEle.childNodes.length !== 0) {\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\n ele.appendChild(childEle);\n });\n }\n };\n Splitter.prototype.compileElement = function (ele, val, prop) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (typeof (val) === 'string') {\n if (val[0] === '.' || val[0] === '#') {\n var eleVal = document.querySelector(val);\n if (!isNullOrUndefined(eleVal)) {\n this.templateElement.push(eleVal);\n if (eleVal.style.display === 'none') {\n eleVal.style.removeProperty('display');\n }\n if (eleVal.getAttribute('style') === '') {\n eleVal.removeAttribute('style');\n }\n ele.appendChild(eleVal);\n return;\n }\n else {\n val = val.trim();\n }\n }\n else {\n val = val.trim();\n }\n }\n var templateFn;\n if (!isNullOrUndefined(val.outerHTML)) {\n templateFn = compile(val.outerHTML);\n }\n else {\n templateFn = compile(val);\n }\n var templateFUN;\n if (!isNullOrUndefined(templateFn)) {\n templateFUN = templateFn({}, this, prop, this.element.id + 'content' + this.allPanes.length.toString(), true);\n }\n if (!isNullOrUndefined(templateFn) && templateFUN && templateFUN.length > 0) {\n [].slice.call(templateFUN).forEach(function (el) {\n ele.appendChild(el);\n });\n }\n };\n Splitter.prototype.paneCollapsible = function (pane, index) {\n // eslint-disable-next-line\n this.paneSettings[index].collapsible ? addClass([pane], COLLAPSIBLE) : removeClass([pane], COLLAPSIBLE);\n };\n Splitter.prototype.createSplitPane = function (target) {\n var childCount = target.children.length;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (childCount < this.paneSettings.length) {\n var childElement = this.createElement('div');\n this.element.appendChild(childElement);\n childCount = childCount + 1;\n }\n }\n childCount = target.children.length;\n var child = [].slice.call(target.children);\n this.sizeFlag = false;\n if (childCount > 0) {\n for (var i = 0; i < childCount; i++) {\n // To accept only div and span element as pane\n if (child[i].nodeName === 'DIV' || child[i].nodeName === 'SPAN') {\n this.allPanes.push(child[i]);\n if (this.orientation === 'Horizontal') {\n addClass([child[i]], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n else {\n addClass([child[i]], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && !isNullOrUndefined(this.paneSettings[i].content)) {\n this.setTemplate(this.paneSettings[i].content, child[i]);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && this.paneSettings[i].cssClass) {\n this.setCssClass(child[i], this.paneSettings[i].cssClass);\n }\n if (!isNullOrUndefined(this.paneSettings[i])) {\n this.paneCollapsible(child[i], i);\n }\n }\n }\n }\n };\n /**\n * expands corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be expanded at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.expand = function (index) {\n this.collapsedOnchange(index);\n this.updatePaneSettings(index, false);\n };\n /**\n * collapses corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be collapsed at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.collapse = function (index) {\n this.isCollapsed(index);\n this.updatePaneSettings(index, true);\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Splitter.prototype.destroy = function () {\n if (!this.isDestroyed) {\n _super.prototype.destroy.call(this);\n EventHandler.remove(document, 'touchstart click', this.onDocumentClick);\n EventHandler.remove(this.element, 'keydown', this.onMove);\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize, true);\n while (this.element.attributes.length > 0) {\n this.element.removeAttribute(this.element.attributes[0].name);\n }\n this.element.innerHTML = this.wrapper.innerHTML;\n for (var i = 0; i < this.wrapper.attributes.length; i++) {\n this.element.setAttribute(this.wrapper.attributes[i].name, this.wrapper.attributes[i].value);\n }\n if (this.refreshing) {\n addClass([this.element], ['e-control', 'e-lib', ROOT]);\n this.allBars = [];\n this.allPanes = [];\n }\n this.restoreElem();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n this.allBars = [];\n this.allPanes = [];\n this.previousPane = null;\n this.nextPane = null;\n this.currentSeparator = null;\n }\n };\n Splitter.prototype.restoreElem = function () {\n if (this.templateElement.length > 0) {\n for (var i = 0; i < this.templateElement.length; i++) {\n this.templateElement[i].style.display = 'none';\n document.body.appendChild(this.templateElement[i]);\n }\n }\n };\n Splitter.prototype.addPaneClass = function (pane) {\n if (this.orientation === 'Horizontal') {\n addClass([pane], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n }\n else {\n addClass([pane], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n }\n return pane;\n };\n Splitter.prototype.removePaneOrders = function (paneClass) {\n var childNodes = this.element.childNodes;\n var panes = [];\n for (var i = 0; childNodes.length < 0; i++) {\n if (childNodes[i].classList.contains(paneClass)) {\n panes.push(childNodes[i]);\n }\n }\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.removeProperty('order');\n }\n };\n Splitter.prototype.setPaneOrder = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n this.panesDimension(i, this.allPanes);\n }\n };\n Splitter.prototype.removeSeparator = function () {\n for (var i = 0; i < this.allBars.length; i++) {\n detach(this.allBars[i]);\n }\n this.allBars = [];\n };\n Splitter.prototype.updatePanes = function () {\n this.setPaneOrder();\n this.removeSeparator();\n this.addSeparator(this.element);\n };\n /**\n * Allows you to add a pane dynamically to the specified index position by passing the pane properties.\n *\n * @param { PanePropertiesModel } paneProperties - Specifies the pane’s properties that apply to new pane.\n * @param { number } index - Specifies the index where the pane will be inserted.\n * @returns {void}\n */\n Splitter.prototype.addPane = function (paneProperties, index) {\n var newPane = this.createElement('div');\n newPane = this.addPaneClass(newPane);\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var paneDetails = {\n size: isNullOrUndefined(paneProperties.size) ? '' : paneProperties.size,\n min: isNullOrUndefined(paneProperties.min) ? null : paneProperties.min,\n max: isNullOrUndefined(paneProperties.max) ? null : paneProperties.max,\n content: isNullOrUndefined(paneProperties.content) ? '' : paneProperties.content,\n resizable: isNullOrUndefined(paneProperties.resizable) ? true : paneProperties.resizable,\n collapsible: isNullOrUndefined(paneProperties.collapsible) ? false : paneProperties.collapsible,\n collapsed: isNullOrUndefined(paneProperties.collapsed) ? false : paneProperties.collapsed,\n cssClass: isNullOrUndefined(paneProperties.cssClass) ? '' : paneProperties.cssClass\n };\n this.paneSettings.splice(index, 0, paneDetails);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.orientation === 'Horizontal') {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_H_PANE)[index]);\n this.removePaneOrders(SPLIT_H_PANE);\n }\n else {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_V_PANE)[index]);\n this.removePaneOrders(SPLIT_V_PANE);\n }\n this.allPanes.splice(index, 0, newPane);\n this.updatePanes();\n this.setTemplate(this.paneSettings[index].content, newPane);\n this.setCssClass(this.allPanes[index], paneProperties.cssClass);\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n };\n /**\n * Allows you to remove the specified pane dynamically by passing its index value.\n *\n * @param { number } index - Specifies the index value to remove the corresponding pane.\n * @returns {void}\n */\n Splitter.prototype.removePane = function (index) {\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var elementClass = (this.orientation === 'Horizontal') ? SPLIT_H_PANE : SPLIT_V_PANE;\n if (isNullOrUndefined(this.element.querySelectorAll('.' + elementClass)[index])) {\n return;\n }\n detach(this.element.querySelectorAll('.' + elementClass)[index]);\n this.allPanes.splice(index, 1);\n this.removePaneOrders(elementClass);\n this.updatePanes();\n this.paneSettings.splice(index, 1);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.allPanes.length > 0) {\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n }\n };\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"height\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enableReversePanes\", void 0);\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enablePersistence\", void 0);\n __decorate([\n Collection([], PaneProperties)\n ], Splitter.prototype, \"paneSettings\", void 0);\n __decorate([\n Property('Horizontal')\n ], Splitter.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Splitter.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enabled\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Splitter.prototype, \"separatorSize\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeCollapse\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeExpand\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"collapsed\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"expanded\", void 0);\n Splitter = __decorate([\n NotifyPropertyChanges\n ], Splitter);\n return Splitter;\n}(Component));\nexport { Splitter };\n","import { ComponentBase, gh, getProps, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Splitter } from '@syncfusion/ej2-layouts';\nimport { PanesDirective, PaneDirective, PanesPlugin, PanePlugin } from './panesettings.directive';\nexport var properties = ['isLazyUpdate', 'plugins', 'cssClass', 'enableHtmlSanitizer', 'enablePersistence', 'enableReversePanes', 'enableRtl', 'enabled', 'height', 'locale', 'orientation', 'paneSettings', 'separatorSize', 'width', 'beforeCollapse', 'beforeExpand', 'beforeSanitizeHtml', 'collapsed', 'created', 'expanded', 'resizeStart', 'resizeStop', 'resizing'];\nexport var modelProps = [];\nexport var testProp = getProps({ props: properties });\nexport var props = testProp[0], watch = testProp[1], emitProbs = Object.keys(watch);\nemitProbs.push('modelchanged', 'update:modelValue');\nfor (var _i = 0, modelProps_1 = modelProps; _i < modelProps_1.length; _i++) {\n var props_1 = modelProps_1[_i];\n emitProbs.push('update:' + props_1);\n}\n/**\n * Represents the VueJS Splitter component\n * ```html\n * \n * ```\n */\nexport var SplitterComponent = vueDefineComponent({\n name: 'SplitterComponent',\n mixins: [ComponentBase],\n props: props,\n watch: watch,\n emits: emitProbs,\n provide: function () { return { custom: this.custom }; },\n data: function () {\n return {\n ej2Instances: new Splitter({}),\n propKeys: properties,\n models: modelProps,\n hasChildDirective: true,\n hasInjectedModules: false,\n tagMapper: { \"e-panes\": \"e-pane\" },\n tagNameMapper: { \"e-panes\": \"e-paneSettings\" },\n isVue3: !isExecute,\n templateCollection: {},\n };\n },\n created: function () {\n this.bindProperties();\n this.ej2Instances._setProperties = this.ej2Instances.setProperties;\n this.ej2Instances.setProperties = this.setProperties;\n this.ej2Instances.clearTemplate = this.clearTemplate;\n this.updated = this.updated;\n },\n render: function (createElement) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', slots);\n },\n methods: {\n clearTemplate: function (templateNames) {\n if (!templateNames) {\n templateNames = Object.keys(this.templateCollection || {});\n }\n if (templateNames.length && this.templateCollection) {\n for (var _i = 0, templateNames_1 = templateNames; _i < templateNames_1.length; _i++) {\n var tempName = templateNames_1[_i];\n var elementCollection = this.templateCollection[tempName];\n if (elementCollection && elementCollection.length) {\n for (var _a = 0, elementCollection_1 = elementCollection; _a < elementCollection_1.length; _a++) {\n var ele = elementCollection_1[_a];\n this.destroyPortals(ele);\n }\n delete this.templateCollection[tempName];\n }\n }\n }\n },\n setProperties: function (prop, muteOnChange) {\n var _this = this;\n if (this.isVue3) {\n this.models = !this.models ? this.ej2Instances.referModels : this.models;\n }\n if (this.ej2Instances && this.ej2Instances._setProperties) {\n this.ej2Instances._setProperties(prop, muteOnChange);\n }\n if (prop && this.models && this.models.length) {\n Object.keys(prop).map(function (key) {\n _this.models.map(function (model) {\n if ((key === model) && !(/datasource/i.test(key))) {\n if (_this.isVue3) {\n _this.ej2Instances.vueInstance.$emit('update:' + key, prop[key]);\n }\n else {\n _this.$emit('update:' + key, prop[key]);\n _this.$emit('modelchanged', prop[key]);\n }\n }\n });\n });\n }\n },\n custom: function () {\n this.updated();\n },\n addPane: function (paneProperties, index) {\n return this.ej2Instances.addPane(paneProperties, index);\n },\n collapse: function (index) {\n return this.ej2Instances.collapse(index);\n },\n destroy: function () {\n return this.ej2Instances.destroy();\n },\n expand: function (index) {\n return this.ej2Instances.expand(index);\n },\n removePane: function (index) {\n return this.ej2Instances.removePane(index);\n },\n }\n});\nexport var SplitterPlugin = {\n name: 'ejs-splitter',\n install: function (Vue) {\n Vue.component(SplitterPlugin.name, SplitterComponent);\n Vue.component(PanePlugin.name, PaneDirective);\n Vue.component(PanesPlugin.name, PanesDirective);\n }\n};\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\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 == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","var baseMean = require('./_baseMean'),\n identity = require('./identity');\n\n/**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\nfunction mean(array) {\n return baseMean(array, identity);\n}\n\nmodule.exports = mean;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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\nmodule.exports = isPrototype;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","/**\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\nmodule.exports = isArray;\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"vue\"),require(\"clipboard\")):\"function\"==typeof define&&define.amd?define([\"vue\",\"clipboard\"],t):\"object\"==typeof exports?exports.JsonView=t(require(\"vue\"),require(\"clipboard\")):e.JsonView=t(e.vue,e.clipboard)}(this,function(n,o){return a={},r.m=i=[function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=(e,t)=>{const n=e.__vccOpts||e;for(var[o,r]of t)n[o]=r;return n}},function(e,t){e.exports=n},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});a(n(1));var o=a(n(22)),r=a(n(42)),i=n(43);function a(e){return e&&e.__esModule?e:{default:e}}t.default={name:\"JsonViewer\",components:{JsonBox:o.default},props:{value:{type:[Object,Array,String,Number,Boolean,Function],required:!0},expanded:{type:Boolean,default:!1},expandDepth:{type:Number,default:1},copyable:{type:[Boolean,Object],default:!1},sort:{type:Boolean,default:!1},boxed:{type:Boolean,default:!1},theme:{type:String,default:\"jv-light\"},timeformat:{type:Function,default:function(e){return e.toLocaleString()}},previewMode:{type:Boolean,default:!1},showArrayIndex:{type:Boolean,default:!0},showDoubleQuotes:{type:Boolean,default:!1}},provide:function(){return{expandDepth:this.expandDepth,timeformat:this.timeformat,onKeyclick:this.onKeyclick}},data:function(){return{copied:!1,expandableCode:!1,expandCode:this.expanded}},computed:{jvClass:function(){return\"jv-container \"+this.theme+(this.boxed?\" boxed\":\"\")},copyText:function(){var e=this.copyable;return{copyText:e.copyText||\"copy\",copiedText:e.copiedText||\"copied!\",timeout:e.timeout||2e3,align:e.align}}},watch:{value:function(){this.onResized()}},mounted:function(){var t=this;this.debounceResized=(0,i.debounce)(this.debResized.bind(this),200),this.boxed&&this.$refs.jsonBox&&(this.onResized(),this.$refs.jsonBox.$el.addEventListener(\"resized\",this.onResized,!0)),this.copyable&&new r.default(this.$refs.clip,{container:this.$refs.viewer,text:function(){return JSON.stringify(t.value,null,2)}}).on(\"success\",function(e){t.onCopied(e)})},methods:{onResized:function(){this.debounceResized()},debResized:function(){var e=this;this.$nextTick(function(){e.$refs.jsonBox&&(250<=e.$refs.jsonBox.$el.clientHeight?e.expandableCode=!0:e.expandableCode=!1)})},onCopied:function(e){var t=this;this.copied||(this.copied=!0,setTimeout(function(){t.copied=!1},this.copyText.timeout),this.$emit(\"copied\",e))},toggleExpandCode:function(){this.expandCode=!this.expandCode},onKeyclick:function(e){this.$emit(\"keyclick\",e)}}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},i=n(1),a=o(n(31)),s=o(n(32)),u=o(n(33)),l=o(n(34)),c=o(n(35)),d=o(n(36)),f=o(n(37)),p=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:\"JsonBox\",inject:[\"expandDepth\",\"onKeyclick\"],props:{value:{type:[Object,Array,String,Number,Boolean,Function,Date],default:null},keyName:{type:String,default:\"\"},sort:Boolean,depth:{type:Number,default:0},previewMode:Boolean,forceExpand:Boolean,showArrayIndex:Boolean,showDoubleQuotes:Boolean,path:{type:String,default:\"$\"}},data:function(){return{expand:!0,forceExpandMe:this.forceExpand}},mounted:function(){this.expand=this.previewMode||!(this.depth>=this.expandDepth)||this.forceExpandMe},methods:{toggle:function(){this.expand=!this.expand,this.dispatchEvent()},toggleAll:function(){this.expand=!this.expand,this.forceExpandMe=this.expand,this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}},getPath:function(){for(var e=[this.keyName],t=this.$parent;t.depth;)t.$el.classList.contains(\"jv-node\")&&e.push(t.keyName),t=t.$parent;return e.reverse()}},render:function(){var t=this,e=[],n=void 0;null===this.value||void 0===this.value?n=s.default:Array.isArray(this.value)?n=d.default:\"[object Date]\"===Object.prototype.toString.call(this.value)?n=p.default:\"object\"===r(this.value)?n=c.default:\"number\"==typeof this.value?n=u.default:\"string\"==typeof this.value?n=a.default:\"boolean\"==typeof this.value?n=l.default:\"function\"==typeof this.value&&(n=f.default);var o=this.keyName&&this.value&&(Array.isArray(this.value)||\"object\"===r(this.value)&&\"[object Date]\"!==Object.prototype.toString.call(this.value));return!this.previewMode&&o&&e.push((0,i.h)(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},onClick:function(e){e.altKey?t.toggleAll():t.toggle()}})),this.keyName&&e.push((0,i.h)(\"span\",{class:{\"jv-key\":!0},innerText:this.showDoubleQuotes?'\"'+this.keyName+'\":':this.keyName+\":\",onClick:function(){t.onKeyclick(t.path)}})),e.push((0,i.h)(n,{class:{\"jv-push\":!0},jsonValue:this.value,keyName:this.keyName,sort:this.sort,depth:this.depth,expand:this.expand,previewMode:this.previewMode,forceExpand:this.forceExpandMe,showArrayIndex:this.showArrayIndex,showDoubleQuotes:this.showDoubleQuotes,path:this.path,\"onUpdate:expand\":function(e){t.expand=e},\"onUpdate:expandAll\":function(e){t.expand=e,t.forceExpandMe=t.expand}})),(0,i.h)(\"div\",{class:{\"jv-node\":!0,\"jv-key-node\":Boolean(this.keyName)&&!o,toggle:!this.previewMode&&o}},e)}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1),r=/^\\w+:\\/\\//;t.default={name:\"JsonString\",props:{jsonValue:{type:String,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var e=this.jsonValue,t=r.test(e),n=void 0;return this.expand?(n={class:{\"jv-item\":!0,\"jv-string\":!0},ref:\"itemRef\"},t?n.innerHTML='\"'+(e=''+e+\"\").toString()+'\"':n.innerText='\"'+e.toString()+'\"'):n={class:{\"jv-ellipsis\":!0},onClick:this.toggle,innerText:\"...\"},(0,o.h)(\"span\",{},[this.canExtend&&(0,o.h)(\"span\",{class:{\"jv-toggle\":!0,open:this.expand},onClick:this.toggle}),(0,o.h)(\"span\",{class:{\"jv-holder-node\":!0},ref:\"holderRef\"}),(0,o.h)(\"span\",n)])}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonUndefined\",functional:!0,props:{jsonValue:{type:Object,default:null}},render:function(){return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-undefined\":!0},innerText:null===this.jsonValue?\"null\":\"undefined\"})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonNumber\",functional:!0,props:{jsonValue:{type:Number,required:!0}},render:function(){var e=Number.isInteger(this.jsonValue);return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-number\":!0,\"jv-number-integer\":e,\"jv-number-float\":!e},innerText:this.jsonValue.toString()})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonBoolean\",functional:!0,props:{jsonValue:Boolean},render:function(){return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-boolean\":!0},innerText:this.jsonValue.toString()})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),n=n(22),i=(n=n)&&n.__esModule?n:{default:n};t.default={name:\"JsonObject\",props:{jsonValue:{type:Object,required:!0},keyName:{type:String,default:\"\"},depth:{type:Number,default:0},expand:Boolean,forceExpand:Boolean,sort:Boolean,previewMode:Boolean,showArrayIndex:Boolean,showDoubleQuotes:Boolean,path:String},data:function(){return{value:{}}},computed:{ordered:function(){var t=this;if(!this.sort)return this.value;var n={};return Object.keys(this.value).sort().forEach(function(e){n[e]=t.value[e]}),n}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this;setTimeout(function(){t.value=e},0)},toggle:function(){this.$emit(\"update:expand\",!this.expand),this.dispatchEvent()},toggleAll:function(){this.$emit(\"update:expandAll\",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var e,t=this,n=[];if(this.previewMode||this.keyName||n.push((0,r.h)(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},onClick:function(e){e.altKey?t.toggleAll():t.toggle()}})),n.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-object\":!0},innerText:\"{\"})),this.expand)for(var o in this.ordered)this.ordered.hasOwnProperty(o)&&(e=this.ordered[o],n.push((0,r.h)(i.default,{key:o,style:{display:this.expand?void 0:\"none\"},sort:this.sort,keyName:o,depth:this.depth+1,value:e,previewMode:this.previewMode,forceExpand:this.forceExpand,showArrayIndex:this.showArrayIndex,showDoubleQuotes:this.showDoubleQuotes,path:this.path+\".\"+o})));return!this.expand&&Object.keys(this.value).length&&n.push((0,r.h)(\"span\",{class:{\"jv-ellipsis\":!0},onClick:function(e){e.altKey?t.toggleAll():t.toggle()},title:\"click to reveal object content (keys: \"+Object.keys(this.ordered).join(\", \")+\")\",innerText:\"...\"})),n.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-object\":!0},innerText:\"}\"})),(0,r.h)(\"span\",n)}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),n=n(22),i=(n=n)&&n.__esModule?n:{default:n};t.default={name:\"JsonArray\",props:{jsonValue:{type:Array,required:!0},keyName:{type:String,default:\"\"},depth:{type:Number,default:0},sort:Boolean,expand:Boolean,forceExpand:Boolean,previewMode:Boolean,showArrayIndex:Boolean,showDoubleQuotes:Boolean,path:String},data:function(){return{value:[]}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this,n=1n&&(t.value.push(e[n]),t.setValue(e,n+1))},0)},toggle:function(){this.$emit(\"update:expand\",!this.expand),this.dispatchEvent()},toggleAll:function(){this.$emit(\"update:expandAll\",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var n=this,o=[];return this.previewMode||this.keyName||o.push((0,r.h)(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},onClick:function(e){e.altKey?n.toggleAll():n.toggle()}})),o.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-array\":!0},innerText:\"[\"})),this.expand&&this.value.forEach(function(e,t){o.push((0,r.h)(i.default,{key:t,style:{display:n.expand?void 0:\"none\"},sort:n.sort,keyName:n.showArrayIndex?\"\"+t:\"\",depth:n.depth+1,value:e,previewMode:n.previewMode,forceExpand:n.forceExpand,showArrayIndex:n.showArrayIndex,showDoubleQuotes:n.showDoubleQuotes,path:n.path+\".\"+t}))}),!this.expand&&this.value.length&&o.push((0,r.h)(\"span\",{class:{\"jv-ellipsis\":!0},onClick:function(e){e.altKey?n.toggleAll():n.toggle()},title:\"click to reveal \"+this.value.length+\" hidden items\",innerText:\"...\"})),o.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-array\":!0},innerText:\"]\"})),(0,r.h)(\"span\",o)}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonFunction\",functional:!0,props:{jsonValue:{type:Function,required:!0}},render:function(){return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-function\":!0},attrs:{title:this.jsonValue.toString()},innerHTML:\"<function>\"})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonDate\",inject:[\"timeformat\"],functional:!0,props:{jsonValue:{type:Date,required:!0}},render:function(){var e=this.jsonValue,t=this.timeformat;return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-string\":!0},innerText:'\"'+t(e)+'\"'})}}},function(e,t,n){\"use strict\";n.r(t);var o,r=n(2),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(3),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(4),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(5),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(6),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(7),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(8),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(9),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(10),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(11),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(13);for(o in r)\"default\"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);n(39);var i=n(0),i=n.n(i)()(r.default,[[\"__file\",\"lib/json-box.vue\"]]);t.default=i},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.render=function(e,t,n,o,r,i){var a=(0,s.resolveComponent)(\"json-box\");return(0,s.openBlock)(),(0,s.createElementBlock)(\"div\",{ref:\"viewer\",class:(0,s.normalizeClass)(i.jvClass)},[n.copyable?((0,s.openBlock)(),(0,s.createElementBlock)(\"div\",{key:0,class:(0,s.normalizeClass)(\"jv-tooltip \"+(i.copyText.align||\"right\"))},[(0,s.createElementVNode)(\"span\",{ref:\"clip\",class:(0,s.normalizeClass)([\"jv-button\",{copied:r.copied}])},[(0,s.renderSlot)(e.$slots,\"copy\",{copied:r.copied},function(){return[(0,s.createTextVNode)((0,s.toDisplayString)(r.copied?i.copyText.copiedText:i.copyText.copyText),1)]})],2)],2)):(0,s.createCommentVNode)(\"v-if\",!0),(0,s.createElementVNode)(\"div\",{class:(0,s.normalizeClass)([\"jv-code\",{open:r.expandCode,boxed:n.boxed}])},[(0,s.createVNode)(a,{ref:\"jsonBox\",value:n.value,sort:n.sort,\"preview-mode\":n.previewMode,\"show-array-index\":n.showArrayIndex,\"show-double-quotes\":n.showDoubleQuotes,onKeyclick:i.onKeyclick},null,8,[\"value\",\"sort\",\"preview-mode\",\"show-array-index\",\"show-double-quotes\",\"onKeyclick\"])],2),r.expandableCode&&n.boxed?((0,s.openBlock)(),(0,s.createElementBlock)(\"div\",{key:1,class:\"jv-more\",onClick:t[0]||(t[0]=function(){return i.toggleExpandCode&&i.toggleExpandCode.apply(i,arguments)})},[(0,s.createElementVNode)(\"span\",{class:(0,s.normalizeClass)([\"jv-toggle\",{open:!!r.expandCode}])},null,2)])):(0,s.createCommentVNode)(\"v-if\",!0)],2)};var s=n(1)},function(e,t,n){var o=n(40);\"string\"==typeof o&&(o=[[e.i,o,\"\"]]);var r={hmr:!0,transform:void 0};n(26)(o,r);o.locals&&(e.exports=o.locals)},function(e,t,n){\"use strict\";e.exports=function(n){var u=[];return u.toString=function(){return this.map(function(e){var t=function(e,t){var n=e[1]||\"\",o=e[3];if(!o)return n;if(t&&\"function\"==typeof btoa){e=function(e){e=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),e=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(e);return\"/*# \".concat(e,\" */\")}(o),t=o.sources.map(function(e){return\"/*# sourceURL=\".concat(o.sourceRoot||\"\").concat(e,\" */\")});return[n].concat(t).concat([e]).join(\"\\n\")}return[n].join(\"\\n\")}(e,n);return e[2]?\"@media \".concat(e[2],\" {\").concat(t,\"}\"):t}).join(\"\")},u.i=function(e,t,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);var o={};if(n)for(var r=0;r (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(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[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var SeriesCollectionDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-series-collection';\n }\n }\n});\nexport var SeriesCollectionPlugin = {\n name: 'e-series-collection',\n install: function (Vue) {\n Vue.component(SeriesCollectionPlugin.name, SeriesCollectionDirective);\n }\n};\nexport var SeriesDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-series';\n }\n }\n});\nexport var SeriesPlugin = {\n name: 'e-series',\n install: function (Vue) {\n Vue.component(SeriesPlugin.name, SeriesDirective);\n }\n};\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n __proto__: null,\n 'double': '\"',\n single: \"'\"\n};\nvar quoteREs = {\n __proto__: null,\n 'double': /([\"\\\\])/g,\n single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var style = opts.quoteStyle || defaultStyle;\n var quoteChar = quotes[style];\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction canTrustToString(obj) {\n return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n quoteRE.lastIndex = 0;\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nexport var AggregateDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-aggregate';\n }\n }\n});\nexport var AggregatePlugin = {\n name: 'e-aggregate',\n install: function (Vue) {\n Vue.component(AggregatePlugin.name, AggregateDirective);\n }\n};\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Component, isBlazor, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, Event, detach, removeClass } from '@syncfusion/ej2-base';\nimport { rippleEffect, EventHandler, Observer, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getTextNode } from '../common/common';\n/**\n * Defines the icon position of button.\n */\nexport var IconPosition;\n(function (IconPosition) {\n /**\n * Positions the Icon at the left of the text content in the Button.\n */\n IconPosition[\"Left\"] = \"Left\";\n /**\n * Positions the Icon at the right of the text content in the Button.\n */\n IconPosition[\"Right\"] = \"Right\";\n /**\n * Positions the Icon at the top of the text content in the Button.\n */\n IconPosition[\"Top\"] = \"Top\";\n /**\n * Positions the Icon at the bottom of the text content in the Button.\n */\n IconPosition[\"Bottom\"] = \"Bottom\";\n})(IconPosition || (IconPosition = {}));\nexport var buttonObserver = new Observer();\nvar cssClassName = {\n RTL: 'e-rtl',\n BUTTON: 'e-btn',\n PRIMARY: 'e-primary',\n ICONBTN: 'e-icon-btn'\n};\n/**\n * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {ButtonModel} options - Specifies the button model\n * @param {string|HTMLButtonElement} element - Specifies the target element\n */\n function Button(options, element) {\n return _super.call(this, options, element) || this;\n }\n Button.prototype.preRender = function () {\n // pre render code snippets\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Button.prototype.render = function () {\n this.initialize();\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + cssClassName.BUTTON });\n this.renderComplete();\n };\n Button.prototype.initialize = function () {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n if (!isBlazor() || (isBlazor() && this.getModuleName() !== 'progress-btn')) {\n if (this.content) {\n var tempContent = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\n this.element.innerHTML = tempContent;\n }\n this.setIconCss();\n }\n if (this.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n if (this.disabled) {\n this.controlStatus(this.disabled);\n }\n else {\n this.wireEvents();\n }\n };\n Button.prototype.controlStatus = function (disabled) {\n this.element.disabled = disabled;\n };\n Button.prototype.setIconCss = function () {\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add(cssClassName.ICONBTN);\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = this.element.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n this.element.insertBefore(span, node);\n }\n else {\n this.element.appendChild(span);\n }\n }\n };\n Button.prototype.wireEvents = function () {\n if (this.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n };\n Button.prototype.unWireEvents = function () {\n if (this.isToggle) {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n }\n };\n Button.prototype.btnClickHandler = function () {\n if (this.element.classList.contains('e-active')) {\n this.element.classList.remove('e-active');\n }\n else {\n this.element.classList.add('e-active');\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n Button.prototype.destroy = function () {\n var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger',\n 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',\n 'e-top-icon-btn', 'e-bottom-icon-btn'];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n _super.prototype.destroy.call(this);\n removeClass([this.element], classList);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n if (this.content) {\n this.element.innerHTML = this.element.innerHTML.replace(this.content, '');\n }\n var span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.unWireEvents();\n if (isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module name\n * @private\n */\n Button.prototype.getModuleName = function () {\n return 'btn';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist Data\n * @private\n */\n Button.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @private\n * @returns {void}\n */\n Button.Inject = function () {\n // Inject code snippets\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ButtonModel} newProp - Specifies new properties\n * @param {ButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Button.prototype.onPropertyChanged = function (newProp, oldProp) {\n var span = this.element.querySelector('span.e-btn-icon');\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'isPrimary':\n if (newProp.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n else {\n this.element.classList.remove(cssClassName.PRIMARY);\n }\n break;\n case 'disabled':\n this.controlStatus(newProp.disabled);\n break;\n case 'iconCss': {\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n if (newProp.iconCss) {\n span.className = 'e-btn-icon ' + newProp.iconCss;\n if (this.element.textContent.trim()) {\n if (this.iconPosition === 'Left') {\n span.classList.add('e-icon-left');\n }\n else {\n span.classList.add('e-icon-right');\n }\n }\n }\n else {\n detach(span);\n }\n }\n else {\n this.setIconCss();\n }\n break;\n }\n case 'iconPosition':\n removeClass([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']);\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.setIconCss();\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n else {\n this.element.classList.remove(cssClassName.RTL);\n }\n break;\n case 'content': {\n var node = getTextNode(this.element);\n if (!node) {\n this.element.classList.remove(cssClassName.ICONBTN);\n }\n if (!isBlazor() || (isBlazor() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) {\n if (this.enableHtmlSanitizer) {\n newProp.content = SanitizeHtmlHelper.sanitize(newProp.content);\n }\n this.element.innerHTML = newProp.content;\n this.setIconCss();\n }\n break;\n }\n case 'isToggle':\n if (newProp.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n else {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n removeClass([this.element], ['e-active']);\n }\n break;\n }\n }\n };\n /**\n * Click the button element\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to Button\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('Left')\n ], Button.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isToggle\", void 0);\n __decorate([\n Property()\n ], Button.prototype, \"locale\", void 0);\n __decorate([\n Property(true)\n ], Button.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Button.prototype, \"created\", void 0);\n Button = __decorate([\n NotifyPropertyChanges\n ], Button);\n return Button;\n}(Component));\nexport { Button };\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\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} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\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.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\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\nmodule.exports = stubArray;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\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\nmodule.exports = stackGet;\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 this.size = 0;\n}\n\nmodule.exports = listCacheClear;\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 var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\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 var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var 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 var 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);\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\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 * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = 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 response.data,\n response.headers,\n config.transformResponse\n );\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 reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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\nmodule.exports = isArrayLike;\n","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var instances = 'ej2_instances';\nvar uid = 0;\nvar isBlazorPlatform = false;\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function disableBlazorMode() {\n isBlazorPlatform = false;\n}\n/**\n * Create Instance from constructor function with desired parameters.\n *\n * @param {Function} classFunction - Class function to which need to create instance\n * @param {any[]} params - Parameters need to passed while creating instance\n * @returns {any} ?\n * @private\n */\nexport function createInstance(classFunction, params) {\n var arrayParam = params;\n arrayParam.unshift(undefined);\n return new (Function.prototype.bind.apply(classFunction, arrayParam));\n}\n/**\n * To run a callback function immediately after the browser has completed other operations.\n *\n * @param {Function} handler - callback function to be triggered.\n * @returns {Function} ?\n * @private\n */\nexport function setImmediate(handler) {\n var unbind;\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n intCrypto.getRandomValues(num);\n var secret = 'ej2' + combineArray(num);\n var messageHandler = function (event) {\n if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) {\n handler();\n unbind();\n }\n };\n window.addEventListener('message', messageHandler, false);\n window.postMessage(secret, '*');\n return unbind = function () {\n window.removeEventListener('message', messageHandler);\n handler = messageHandler = secret = undefined;\n };\n}\n/**\n * To get nameSpace value from the desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\nexport function getValue(nameSpace, obj) {\n var value = obj;\n var splits = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n for (var i = 0; i < splits.length && !isUndefined(value); i++) {\n value = value[splits[parseInt(i.toString(), 10)]];\n }\n return value;\n}\n/**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\nexport function setValue(nameSpace, value, obj) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n var start = obj || {};\n var fromObj = start;\n var i;\n var length = keys.length;\n var key;\n for (i = 0; i < length; i++) {\n key = keys[parseInt(i.toString(), 10)];\n if (i + 1 === length) {\n fromObj[\"\" + key] = value === undefined ? {} : value;\n }\n else if (isNullOrUndefined(fromObj[\"\" + key])) {\n fromObj[\"\" + key] = {};\n }\n fromObj = fromObj[\"\" + key];\n }\n return start;\n}\n/**\n * Delete an item from Object\n *\n * @param {any} obj - Object in which we need to delete an item.\n * @param {string} key - String value to the get the inner object\n * @returns {void} ?\n * @private\n */\nexport function deleteObject(obj, key) {\n delete obj[\"\" + key];\n}\n/**\n *@private\n */\nexport var containerObject = typeof window !== 'undefined' ? window : {};\n/**\n * Check weather the given argument is only object.\n *\n * @param {any} obj - Object which is need to check.\n * @returns {boolean} ?\n * @private\n */\nexport function isObject(obj) {\n var objCon = {};\n return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor);\n}\n/**\n * To get enum value by giving the string.\n *\n * @param {any} enumObject - Enum object.\n * @param {string} enumValue - Enum value to be searched\n * @returns {any} ?\n * @private\n */\nexport function getEnumValue(enumObject, enumValue) {\n return enumObject[\"\" + enumValue];\n}\n/**\n * Merge the source object into destination object.\n *\n * @param {any} source - source object which is going to merge with destination object\n * @param {any} destination - object need to be merged\n * @returns {void} ?\n * @private\n */\nexport function merge(source, destination) {\n if (!isNullOrUndefined(destination)) {\n var temrObj = source;\n var tempProp = destination;\n var keys = Object.keys(destination);\n var deepmerge = 'deepMerge';\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!isNullOrUndefined(temrObj[\"\" + deepmerge]) && (temrObj[\"\" + deepmerge].indexOf(key) !== -1) &&\n (isObject(tempProp[\"\" + key]) || Array.isArray(tempProp[\"\" + key]))) {\n extend(temrObj[\"\" + key], temrObj[\"\" + key], tempProp[\"\" + key], true);\n }\n else {\n temrObj[\"\" + key] = tempProp[\"\" + key];\n }\n }\n }\n}\n/**\n * Extend the two object with newer one.\n *\n * @param {any} copied - Resultant object after merged\n * @param {Object} first - First object need to merge\n * @param {Object} second - Second object need to merge\n * @param {boolean} deep ?\n * @returns {Object} ?\n * @private\n */\nexport function extend(copied, first, second, deep) {\n var result = copied && typeof copied === 'object' ? copied : {};\n var length = arguments.length;\n var args = [copied, first, second, deep];\n if (deep) {\n length = length - 1;\n }\n var _loop_1 = function (i) {\n if (!args[parseInt(i.toString(), 10)]) {\n return \"continue\";\n }\n var obj1 = args[parseInt(i.toString(), 10)];\n Object.keys(obj1).forEach(function (key) {\n var src = result[\"\" + key];\n var copy = obj1[\"\" + key];\n var clone;\n var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);\n var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true;\n if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) {\n if (isObject(copy)) {\n clone = src ? src : {};\n if (Array.isArray(clone) && Object.prototype.hasOwnProperty.call(clone, 'isComplexArray')) {\n extend(clone, {}, copy, deep);\n }\n else {\n result[\"\" + key] = extend(clone, {}, copy, deep);\n }\n }\n else {\n /* istanbul ignore next */\n clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];\n result[\"\" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));\n }\n }\n else {\n result[\"\" + key] = copy;\n }\n });\n };\n for (var i = 1; i < length; i++) {\n _loop_1(i);\n }\n return result;\n}\n/**\n * To check whether the object is null or undefined.\n *\n * @param {any} value - To check the object is null or undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isNullOrUndefined(value) {\n return value === undefined || value === null;\n}\n/**\n * To check whether the object is undefined.\n *\n * @param {any} value - To check the object is undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isUndefined(value) {\n return ('undefined' === typeof value);\n}\n/**\n * To return the generated unique name\n *\n * @param {string} definedName - To concatenate the unique id to provided name\n * @returns {string} ?\n * @private\n */\nexport function getUniqueID(definedName) {\n return definedName + '_' + uid++;\n}\n/**\n * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly.\n *\n * @param {Function} eventFunction - Specifies the function to run when the event occurs\n * @param {number} delay - A number that specifies the milliseconds for function delay call option\n * @returns {Function} ?\n * @private\n */\nexport function debounce(eventFunction, delay) {\n var out;\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var later = function () {\n out = null;\n return eventFunction.apply(_this, args);\n };\n clearTimeout(out);\n out = setTimeout(later, delay);\n };\n}\n/**\n * To convert the object to string for query url\n *\n * @param {Object} data ?\n * @returns {string} ?\n * @private\n */\nexport function queryParams(data) {\n var array = [];\n var keys = Object.keys(data);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[\"\" + key]));\n }\n return array.join('&');\n}\n/**\n * To check whether the given array contains object.\n *\n * @param {any} value - Specifies the T type array to be checked.\n * @returns {boolean} ?\n * @private\n */\nexport function isObjectArray(value) {\n var parser = Object.prototype.toString;\n if (parser.call(value) === '[object Array]') {\n if (parser.call(value[0]) === '[object Object]') {\n return true;\n }\n }\n return false;\n}\n/**\n * To check whether the child element is descendant to parent element or parent and child are same element.\n *\n * @param {Element} child - Specifies the child element to compare with parent.\n * @param {Element} parent - Specifies the parent element.\n * @returns {boolean} ?\n * @private\n */\nexport function compareElementParent(child, parent) {\n var node = child;\n if (node === parent) {\n return true;\n }\n else if (node === document || !node) {\n return false;\n }\n else {\n return compareElementParent(node.parentNode, parent);\n }\n}\n/**\n * To throw custom error message.\n *\n * @param {string} message - Specifies the error message to be thrown.\n * @returns {void} ?\n * @private\n */\nexport function throwError(message) {\n try {\n throw new Error(message);\n }\n catch (e) {\n throw new Error(e.message + '\\n' + e.stack);\n }\n}\n/**\n * This function is used to print given element\n *\n * @param {Element} element - Specifies the print content element.\n * @param {Window} printWindow - Specifies the print window.\n * @returns {Window} ?\n * @private\n */\nexport function print(element, printWindow) {\n var div = document.createElement('div');\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style'));\n var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));\n if (blinks.length) {\n for (var l = 0, len = blinks.length; l < len; l++) {\n links.push(blinks[parseInt(l.toString(), 10)]);\n }\n }\n var reference = '';\n if (isNullOrUndefined(printWindow)) {\n printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no');\n }\n div.appendChild(element.cloneNode(true));\n for (var i = 0, len = links.length; i < len; i++) {\n reference += links[parseInt(i.toString(), 10)].outerHTML;\n }\n printWindow.document.write(' ' + reference + '' + div.innerHTML +\n '' + '');\n printWindow.document.close();\n printWindow.focus();\n var interval = setInterval(function () {\n if (printWindow.ready) {\n printWindow.print();\n printWindow.close();\n clearInterval(interval);\n }\n }, 500);\n return printWindow;\n}\n/**\n * Function to normalize the units applied to the element.\n *\n * @param {number|string} value ?\n * @returns {string} result\n * @private\n */\nexport function formatUnit(value) {\n var result = value + '';\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\n return result;\n }\n return result + 'px';\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function enableBlazorMode() {\n isBlazorPlatform = true;\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {boolean} result\n * @private\n */\nexport function isBlazor() {\n return isBlazorPlatform;\n}\n/**\n * Function to convert xPath to DOM element in blazor platform\n *\n * @returns {HTMLElement} result\n * @param {HTMLElement | object} element ?\n * @private\n */\nexport function getElement(element) {\n var xPath = 'xPath';\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[\"\" + xPath])) {\n return document.evaluate(element[\"\" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n }\n return element;\n}\n/**\n * Function to fetch the Instances of a HTML element for the given component.\n *\n * @param {string | HTMLElement} element ?\n * @param {any} component ?\n * @returns {Object} ?\n * @private\n */\nexport function getInstance(element, component) {\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n for (var _i = 0, _a = elem[\"\" + instances]; _i < _a.length; _i++) {\n var inst = _a[_i];\n if (inst instanceof component) {\n return inst;\n }\n }\n }\n return null;\n}\n/**\n * Function to add instances for the given element.\n *\n * @param {string | HTMLElement} element ?\n * @param {Object} instance ?\n * @returns {void} ?\n * @private\n */\nexport function addInstance(element, instance) {\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n elem[\"\" + instances].push(instance);\n }\n else {\n elem[\"\" + instances] = [instance];\n }\n}\n/**\n * Function to generate the unique id.\n *\n * @returns {any} ?\n * @private\n */\nexport function uniqueID() {\n if ((typeof window) === 'undefined') {\n return;\n }\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n return intCrypto.getRandomValues(num);\n}\n/**\n *\n * @param {Int16Array} num ?\n * @returns {string} ?\n */\nfunction combineArray(num) {\n var ret = '';\n for (var i = 0; i < 5; i++) {\n ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];\n }\n return ret;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Parser\n */\nvar defaultNumberingSystem = {\n 'latn': {\n '_digits': '0123456789',\n '_type': 'numeric'\n }\n};\nimport { isUndefined, getValue, isBlazor } from '../util';\nvar defaultNumberSymbols = {\n 'decimal': '.',\n 'group': ',',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'exponential': 'E'\n};\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n/**\n * Interface for parser base\n *\n * @private\n */\nvar ParserBase = /** @class */ (function () {\n function ParserBase() {\n }\n /**\n * Returns the cldr object for the culture specifies\n *\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\n * @param {string} cName - Specifies the culture name.\n * @returns {Object} ?\n */\n ParserBase.getMainObject = function (obj, cName) {\n var value = isBlazor() ? cName : 'main.' + cName;\n return getValue(value, obj);\n };\n /**\n * Returns the numbering system object from given cldr data.\n *\n * @param {Object} obj - Specifies the object from which number system is acquired.\n * @returns {Object} ?\n */\n ParserBase.getNumberingSystem = function (obj) {\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\n };\n /**\n * Returns the reverse of given object keys or keys specified.\n *\n * @param {Object} prop - Specifies the object to be reversed.\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\n * @returns {Object} ?\n */\n ParserBase.reverseObject = function (prop, keys) {\n var propKeys = keys || Object.keys(prop);\n var res = {};\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n if (!Object.prototype.hasOwnProperty.call(res, prop[\"\" + key])) {\n res[prop[\"\" + key]] = key;\n }\n }\n return res;\n };\n /**\n * Returns the symbol regex by skipping the escape sequence.\n *\n * @param {string[]} props - Specifies the array values to be skipped.\n * @returns {RegExp} ?\n */\n ParserBase.getSymbolRegex = function (props) {\n var regexStr = props.map(function (str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n }).join('|');\n var regExp = RegExp;\n return new regExp(regexStr, 'g');\n };\n /**\n *\n * @param {Object} prop ?\n * @returns {Object} ?\n */\n ParserBase.getSymbolMatch = function (prop) {\n var matchKeys = Object.keys(defaultNumberSymbols);\n var ret = {};\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\n var key = matchKeys_1[_i];\n ret[prop[\"\" + key]] = defaultNumberSymbols[\"\" + key];\n }\n return ret;\n };\n /**\n * Returns regex string for provided value\n *\n * @param {string} val ?\n * @returns {string} ?\n */\n ParserBase.constructRegex = function (val) {\n var len = val.length;\n var ret = '';\n for (var i = 0; i < len; i++) {\n if (i !== len - 1) {\n ret += val[parseInt(i.toString(), 10)] + '|';\n }\n else {\n ret += val[parseInt(i.toString(), 10)];\n }\n }\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {string} value - Specifies the values to be replaced.\n * @param {RegExp} regex - Specifies the regex to search.\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\n * @returns {string} ?\n */\n ParserBase.convertValueParts = function (value, regex, obj) {\n return value.replace(regex, function (str) {\n return obj[\"\" + str];\n });\n };\n /**\n * Returns default numbering system object for formatting from cldr data\n *\n * @param {Object} obj ?\n * @returns {NumericObject} ?\n */\n ParserBase.getDefaultNumberingSystem = function (obj) {\n var ret = {};\n ret.obj = getValue('numbers', obj);\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} needSymbols ?\n * @param {boolean} blazorMode ?\n * @returns {Object} ?\n */\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\n var ret = {};\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem) || blazorMode) {\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\n var regExp = RegExp;\n ret.numberParseRegex = new regExp(this.constructRegex(digits), 'g');\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\n if (needSymbols) {\n ret.numericRegex = digits[0] + '-' + digits[9];\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\n ret.numberSystem = cur.nSystem;\n }\n }\n }\n return ret;\n };\n /**\n * Returns number mapper object for the provided cldr data\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} isNumber ?\n * @returns {NumberMapper} ?\n */\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\n var ret = { mapper: {} };\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem)) {\n ret.numberSystem = cur.nSystem;\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\n var i = latnNumberSystem_1[_i];\n ret.mapper[parseInt(i.toString(), 10)] = digits[parseInt(i.toString(), 10)];\n }\n }\n }\n return ret;\n };\n ParserBase.nPair = 'numericPair';\n ParserBase.nRegex = 'numericRegex';\n ParserBase.numberingSystems = defaultNumberingSystem;\n return ParserBase;\n}());\nexport { ParserBase };\n/**\n * @private\n */\nvar blazorCurrencyData = {\n 'DJF': 'Fdj',\n 'ERN': 'Nfk',\n 'ETB': 'Br',\n 'NAD': '$',\n 'ZAR': 'R',\n 'XAF': 'FCFA',\n 'GHS': 'GH₵',\n 'XDR': 'XDR',\n 'AED': 'د.إ.',\n 'BHD': 'د.ب.',\n 'DZD': 'د.ج.',\n 'EGP': 'ج.م.',\n 'ILS': '₪',\n 'IQD': 'د.ع.',\n 'JOD': 'د.ا.',\n 'KMF': 'CF',\n 'KWD': 'د.ك.',\n 'LBP': 'ل.ل.',\n 'LYD': 'د.ل.',\n 'MAD': 'د.م.',\n 'MRU': 'أ.م.',\n 'OMR': 'ر.ع.',\n 'QAR': 'ر.ق.',\n 'SAR': 'ر.س.',\n 'SDG': 'ج.س.',\n 'SOS': 'S',\n 'SSP': '£',\n 'SYP': 'ل.س.',\n 'TND': 'د.ت.',\n 'YER': 'ر.ي.',\n 'CLP': '$',\n 'INR': '₹',\n 'TZS': 'TSh',\n 'EUR': '€',\n 'AZN': '₼',\n 'RUB': '₽',\n 'BYN': 'Br',\n 'ZMW': 'K',\n 'BGN': 'лв.',\n 'NGN': '₦',\n 'XOF': 'CFA',\n 'BDT': '৳',\n 'CNY': '¥',\n 'BAM': 'КМ',\n 'UGX': 'USh',\n 'USD': '$',\n 'CZK': 'Kč',\n 'GBP': '£',\n 'DKK': 'kr.',\n 'KES': 'Ksh',\n 'CHF': 'CHF',\n 'MVR': 'ރ.',\n 'BTN': 'Nu.',\n 'XCD': 'EC$',\n 'AUD': '$',\n 'BBD': '$',\n 'BIF': 'FBu',\n 'BMD': '$',\n 'BSD': '$',\n 'BWP': 'P',\n 'BZD': '$',\n 'CAD': '$',\n 'NZD': '$',\n 'FJD': '$',\n 'FKP': '£',\n 'GIP': '£',\n 'GMD': 'D',\n 'GYD': '$',\n 'HKD': '$',\n 'IDR': 'Rp',\n 'JMD': '$',\n 'KYD': '$',\n 'LRD': '$',\n 'MGA': 'Ar',\n 'MOP': 'MOP$',\n 'MUR': 'Rs',\n 'MWK': 'MK',\n 'MYR': 'RM',\n 'PGK': 'K',\n 'PHP': '₱',\n 'PKR': 'Rs',\n 'RWF': 'RF',\n 'SBD': '$',\n 'SCR': 'SR',\n 'SEK': 'kr',\n 'SGD': '$',\n 'SHP': '£',\n 'SLL': 'Le',\n 'ANG': 'NAf.',\n 'SZL': 'E',\n 'TOP': 'T$',\n 'TTD': '$',\n 'VUV': 'VT',\n 'WST': 'WS$',\n 'ARS': '$',\n 'BOB': 'Bs',\n 'BRL': 'R$',\n 'COP': '$',\n 'CRC': '₡',\n 'CUP': '$',\n 'DOP': '$',\n 'GTQ': 'Q',\n 'HNL': 'L',\n 'MXN': '$',\n 'NIO': 'C$',\n 'PAB': 'B/.',\n 'PEN': 'S/',\n 'PYG': '₲',\n 'UYU': '$',\n 'VES': 'Bs.S',\n 'IRR': 'ريال',\n 'GNF': 'FG',\n 'CDF': 'FC',\n 'HTG': 'G',\n 'XPF': 'FCFP',\n 'HRK': 'kn',\n 'HUF': 'Ft',\n 'AMD': '֏',\n 'ISK': 'kr',\n 'JPY': '¥',\n 'GEL': '₾',\n 'CVE': '​',\n 'KZT': '₸',\n 'KHR': '៛',\n 'KPW': '₩',\n 'KRW': '₩',\n 'KGS': 'сом',\n 'AOA': 'Kz',\n 'LAK': '₭',\n 'MZN': 'MTn',\n 'MKD': 'ден',\n 'MNT': '₮',\n 'BND': '$',\n 'MMK': 'K',\n 'NOK': 'kr',\n 'NPR': 'रु',\n 'AWG': 'Afl.',\n 'SRD': '$',\n 'PLN': 'zł',\n 'AFN': '؋',\n 'STN': 'Db',\n 'MDL': 'L',\n 'RON': 'lei',\n 'UAH': '₴',\n 'LKR': 'රු.',\n 'ALL': 'Lekë',\n 'RSD': 'дин.',\n 'TJS': 'смн',\n 'THB': '฿',\n 'TMT': 'm.',\n 'TRY': '₺',\n 'UZS': 'сўм',\n 'VND': '₫',\n 'TWD': 'NT$'\n};\n/**\n *\n * @param {string} currencyCode ?\n * @returns {string} ?\n */\nexport function getBlazorCurrencySymbol(currencyCode) {\n return getValue(currencyCode || '', blazorCurrencyData);\n}\n","/***\n * Hijri parser\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var HijriParser;\n(function (HijriParser) {\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\n ];\n /**\n *\n * @param {Date} gDate ?\n * @returns {Object} ?\n */\n function getHijriDate(gDate) {\n var day = gDate.getDate();\n var month = gDate.getMonth();\n var year = gDate.getFullYear();\n var tMonth = month + 1;\n var tYear = year;\n if (tMonth < 3) {\n tYear -= 1;\n tMonth += 12;\n }\n var yPrefix = Math.floor(tYear / 100);\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\n var b = julianNumber + julilanOffset + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var tempMonth = Math.floor((b - d) / 30.6001);\n day = (b - d) - Math.floor(30.6001 * tempMonth);\n month = Math.floor((b - d) / 20.6001);\n if (month > 13) {\n c += 1;\n month -= 12;\n }\n month -= 1;\n year = c - 4716;\n var modifiedJulianDate = julianNumber - 2400000;\n // date calculation for year after 2077\n var iyear = 10631 / 30;\n var z = julianNumber - 1948084;\n var cyc = Math.floor(z / 10631.);\n z = z - 10631 * cyc;\n var j = Math.floor((z - 0.1335) / iyear);\n var iy = 30 * cyc + j;\n z = z - Math.floor(j * iyear + 0.1335);\n var im = Math.floor((z + 28.5001) / 29.5);\n /* istanbul ignore next */\n if (im === 13) {\n im = 12;\n }\n var tempDay = z - Math.floor(29.5001 * im - 29);\n var i = 0;\n for (; i < dateCorrection.length; i++) {\n if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {\n break;\n }\n }\n var iln = i + 16260;\n var ii = Math.floor((iln - 1) / 12);\n var hYear = ii + 1;\n var hmonth = iln - 12 * ii;\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\n if ((hDate + '').length > 2) {\n hDate = tempDay;\n hmonth = im;\n hYear = iy;\n }\n return { year: hYear, month: hmonth, date: hDate };\n }\n HijriParser.getHijriDate = getHijriDate;\n /**\n *\n * @param {number} year ?\n * @param {number} month ?\n * @param {number} day ?\n * @returns {Date} ?\n */\n function toGregorian(year, month, day) {\n var iy = year;\n var im = month;\n var id = day;\n var ii = iy - 1;\n var iln = (ii * 12) + 1 + (im - 1);\n var i = iln - 16260;\n var mcjdn = id + dateCorrection[i - 1] - 1;\n var julianDate = mcjdn + 2400000;\n var z = Math.floor(julianDate + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var gDay = b - d - Math.floor(e * 30.6001);\n var gMonth = e - (e > 13.5 ? 13 : 1);\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\n /* istanbul ignore next */\n if (gYear <= 0) {\n gMonth--;\n } // No year zero\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\n }\n HijriParser.toGregorian = toGregorian;\n})(HijriParser || (HijriParser = {}));\n","import { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\nimport { HijriParser } from '../hijri-parser';\nimport { isNullOrUndefined, extend } from '../util';\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\nvar standalone = 'stand-alone';\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\nvar timeSetter = {\n m: 'getMinutes',\n h: 'getHours',\n H: 'getHours',\n s: 'getSeconds',\n d: 'getDate',\n f: 'getMilliseconds'\n};\nexport var datePartMatcher = {\n 'M': 'month',\n 'd': 'day',\n 'E': 'weekday',\n 'c': 'weekday',\n 'y': 'year',\n 'm': 'minute',\n 'h': 'hour',\n 'H': 'hour',\n 's': 'second',\n 'L': 'month',\n 'a': 'designator',\n 'z': 'timeZone',\n 'Z': 'timeZone',\n 'G': 'era',\n 'f': 'milliseconds'\n};\nvar timeSeparator = 'timeSeparator';\n/**\n * Date Format is a framework provides support for date formatting.\n *\n * @private\n */\nvar DateFormat = /** @class */ (function () {\n function DateFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which date will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateFormat.dateFormat = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numObject = getValue('parserObject.numbers', dependable);\n var dateObject = dependable.dateObject;\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n if (isBlazor()) {\n resPattern = resPattern.replace(/tt/, 'a');\n }\n formatOptions.pattern = resPattern;\n formatOptions.numMapper = isBlazor() ?\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\n var str = patternMatch_1[_i];\n var len = str.length;\n var char = str[0];\n if (char === 'K') {\n char = 'h';\n }\n switch (char) {\n case 'E':\n case 'c':\n if (isBlazor()) {\n formatOptions.weekday = getValue('days.' + base.monthIndex[\"\" + len], dateObject);\n }\n else {\n formatOptions.weekday = dependable.dateObject[\"\" + base.days][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n break;\n case 'M':\n case 'L':\n if (isBlazor()) {\n formatOptions.month = getValue('months.' + base.monthIndex[\"\" + len], dateObject);\n }\n else {\n formatOptions.month = dependable.dateObject[\"\" + base.month][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n break;\n case 'a':\n formatOptions.designator = isBlazor() ?\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\n break;\n case 'G': {\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\n break;\n }\n case 'z':\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n break;\n }\n }\n }\n return function (value) {\n if (isNaN(value.getDate())) {\n return null;\n }\n return _this.intDateFormatter(value, formatOptions);\n };\n };\n /**\n * Returns formatted date string based on options passed.\n *\n * @param {Date} value ?\n * @param {FormatOptions} options ?\n * @returns {string} ?\n */\n DateFormat.intDateFormatter = function (value, options) {\n var pattern = options.pattern;\n var ret = '';\n var matches = pattern.match(base.dateParseRegex);\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n var length_1 = match.length;\n var char = match[0];\n if (char === 'K') {\n char = 'h';\n }\n var curval = void 0;\n var curvalstr = '';\n var isNumber = void 0;\n var processNumber = void 0;\n var curstr = '';\n switch (char) {\n case 'M':\n case 'L':\n curval = dObject.month;\n if (length_1 > 2) {\n ret += options.month[\"\" + curval];\n }\n else {\n isNumber = true;\n }\n break;\n case 'E':\n case 'c':\n ret += options.weekday[\"\" + weekdayKey[value.getDay()]];\n break;\n case 'H':\n case 'h':\n case 'm':\n case 's':\n case 'd':\n case 'f':\n isNumber = true;\n if (char === 'd') {\n curval = dObject.date;\n }\n else if (char === 'f') {\n isNumber = false;\n processNumber = true;\n curvalstr = value[\"\" + timeSetter[\"\" + char]]().toString();\n curvalstr = curvalstr.substring(0, length_1);\n var curlength = curvalstr.length;\n if (length_1 !== curlength) {\n if (length_1 > 3) {\n continue;\n }\n for (var i = 0; i < length_1 - curlength; i++) {\n curvalstr = '0' + curvalstr.toString();\n }\n }\n curstr += curvalstr;\n }\n else {\n curval = value[\"\" + timeSetter[\"\" + char]]();\n }\n if (char === 'h') {\n curval = curval % 12 || 12;\n }\n break;\n case 'y':\n processNumber = true;\n curstr += dObject.year;\n if (length_1 === 2) {\n curstr = curstr.substr(curstr.length - 2);\n }\n break;\n case 'a': {\n var desig = value.getHours() < 12 ? 'am' : 'pm';\n ret += options.designator[\"\" + desig];\n break;\n }\n case 'G': {\n var dec = value.getFullYear() < 0 ? 0 : 1;\n var retu = options.era[\"\" + dec];\n if (isNullOrUndefined(retu)) {\n retu = options.era[dec ? 0 : 1];\n }\n ret += retu || '';\n break;\n }\n case '\\'':\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\n break;\n case 'z': {\n var timezone = value.getTimezoneOffset();\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\n if (timezone === 0) {\n ret += options.timeZone.gmtZeroFormat;\n }\n else {\n processNumber = true;\n curstr = this.getTimeZoneValue(timezone, pattern_1);\n }\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\n break;\n }\n case ':':\n ret += options.numMapper.numberSymbols[\"\" + timeSeparator];\n break;\n case '/':\n ret += options.dateSeperator;\n break;\n case 'W':\n isNumber = true;\n curval = base.getWeekOfYear(value);\n break;\n default:\n ret += match;\n }\n if (isNumber) {\n processNumber = true;\n curstr = this.checkTwodigitNumber(curval, length_1);\n }\n if (processNumber) {\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\n }\n }\n return ret;\n };\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\n if (isIslamic) {\n return HijriParser.getHijriDate(value);\n }\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\n };\n /**\n * Returns two digit numbers for given value and length\n *\n * @param {number} val ?\n * @param {number} len ?\n * @returns {string} ?\n */\n DateFormat.checkTwodigitNumber = function (val, len) {\n var ret = val + '';\n if (len === 2 && ret.length !== 2) {\n return '0' + ret;\n }\n return ret;\n };\n /**\n * Returns the value of the Time Zone.\n *\n * @param {number} tVal ?\n * @param {string} pattern ?\n * @returns {string} ?\n * @private\n */\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\n var _this = this;\n var splt = pattern.split(';');\n var curPattern = splt[tVal > 0 ? 1 : 0];\n var no = Math.abs(tVal);\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\n var len = str.length;\n var ishour = str.indexOf('H') !== -1;\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\n });\n };\n return DateFormat;\n}());\nexport { DateFormat };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\nimport { defaultCurrencyCode } from '../internationalization';\nimport { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nvar errorText = {\n 'ms': 'minimumSignificantDigits',\n 'ls': 'maximumSignificantDigits',\n 'mf': 'minimumFractionDigits',\n 'lf': 'maximumFractionDigits'\n};\nvar percentSign = 'percentSign';\nvar minusSign = 'minusSign';\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\n/**\n * Module for number formatting.\n *\n * @private\n */\nvar NumberFormat = /** @class */ (function () {\n function NumberFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberFormat.numberFormatter = function (culture, option, cldr) {\n var _this = this;\n var fOptions = extend({}, option);\n var cOptions = {};\n var dOptions = {};\n var symbolPattern;\n var dependable = base.getDependables(cldr, culture, '', true);\n var numObject = dependable.numericObject;\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol, option.ignoreCurrency);\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + percentSign];\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + minusSign];\n var symbols = dOptions.numberMapper.numberSymbols;\n if ((option.format) && !(base.formatRegex.test(option.format))) {\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\n if (!isUndefined(fOptions.useGrouping) && fOptions.useGrouping) {\n fOptions.useGrouping = cOptions.pData.useGrouping;\n }\n }\n else {\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\n fOptions.isCurrency = fOptions.type === 'currency';\n fOptions.isPercent = fOptions.type === 'percent';\n if (!isBlazor()) {\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\n }\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\n if (!isUndefined(fOptions.fractionDigits)) {\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\n }\n if (isUndefined(fOptions.useGrouping)) {\n fOptions.useGrouping = true;\n }\n if (fOptions.isCurrency && !isBlazor()) {\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\n }\n if (!isBlazor()) {\n var split = symbolPattern.split(';');\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\n if (fOptions.useGrouping) {\n fOptions.groupSeparator = symbols[mapper[2]];\n fOptions.groupData = this.getGroupingDetails(split[0]);\n }\n }\n else {\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\n if (fOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\n }\n }\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\n if (minFrac) {\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\n }\n if (isUndefined(fOptions.maximumFractionDigits)) {\n var mval = cOptions.nData.maximumFraction;\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\n }\n var mfrac = fOptions.minimumFractionDigits;\n var lfrac = fOptions.maximumFractionDigits;\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\n if (mfrac > lfrac) {\n fOptions.maximumFractionDigits = mfrac;\n }\n }\n }\n extend(cOptions.nData, fOptions);\n extend(cOptions.pData, fOptions);\n return function (value) {\n if (isNaN(value)) {\n return symbols[mapper[1]];\n }\n else if (!isFinite(value)) {\n return symbols[mapper[0]];\n }\n return _this.intNumberFormatter(value, cOptions, dOptions, option);\n };\n };\n /**\n * Returns grouping details for the pattern provided\n *\n * @param {string} pattern ?\n * @returns {GroupDetails} ?\n */\n NumberFormat.getGroupingDetails = function (pattern) {\n var ret = {};\n var match = pattern.match(base.negativeDataRegex);\n if (match && match[4]) {\n var pattern_1 = match[4];\n var p = pattern_1.lastIndexOf(',');\n if (p !== -1) {\n var temp = pattern_1.split('.')[0];\n ret.primary = (temp.length - p) - 1;\n var s = pattern_1.lastIndexOf(',', p - 1);\n if (s !== -1) {\n ret.secondary = p - 1 - s;\n }\n }\n }\n return ret;\n };\n /**\n * Returns if the provided integer range is valid.\n *\n * @param {number} val1 ?\n * @param {number} val2 ?\n * @param {boolean} checkbothExist ?\n * @param {boolean} isFraction ?\n * @returns {boolean} ?\n */\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\n var decide = isFraction ? 'f' : 's';\n var dint = 0;\n var str1 = errorText['l' + decide];\n var str2 = errorText['m' + decide];\n if (!isUndefined(val1)) {\n this.checkRange(val1, str1, isFraction);\n dint++;\n }\n if (!isUndefined(val2)) {\n this.checkRange(val2, str2, isFraction);\n dint++;\n }\n if (dint === 2) {\n if (val1 < val2) {\n throwError(str2 + 'specified must be less than the' + str1);\n }\n else {\n return true;\n }\n }\n else if (checkbothExist && dint === 1) {\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\n }\n return false;\n };\n /**\n * Check if the provided fraction range is valid\n *\n * @param {number} val ?\n * @param {string} text ?\n * @param {boolean} isFraction ?\n * @returns {void} ?\n */\n NumberFormat.checkRange = function (val, text, isFraction) {\n var range = isFraction ? [0, 20] : [1, 21];\n if (val < range[0] || val > range[1]) {\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\n }\n };\n /**\n * Returns formatted numeric string for provided formatting options\n *\n * @param {number} value ?\n * @param {base.GenericFormatOptions} fOptions ?\n * @param {CommonOptions} dOptions ?\n * @param {NumberFormatOptions} [option] ?\n * @returns {string} ?\n */\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions, option) {\n var curData;\n if (isUndefined(fOptions.nData.type)) {\n return undefined;\n }\n else {\n if (value < 0) {\n value = value * -1;\n curData = fOptions.nData;\n }\n else if (value === 0) {\n curData = fOptions.zeroData || fOptions.pData;\n }\n else {\n curData = fOptions.pData;\n }\n var fValue = '';\n if (curData.isPercent) {\n value = value * 100;\n }\n if (curData.groupOne) {\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\n }\n else {\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits, option);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[parseInt(i.toString(), 10)] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\n }\n }\n if (curData.type === 'scientific') {\n fValue = value.toExponential(curData.maximumFractionDigits);\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\n }\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\n fValue = curData.format === '#,###,,;(#,###,,)' ? this.customPivotFormat(parseInt(fValue, 10)) : fValue;\n if (curData.useGrouping) {\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\n }\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\n if (curData.nlead === 'N/A') {\n return curData.nlead;\n }\n else {\n if (fValue === '0' && option && option.format === '0') {\n return fValue + curData.nend;\n }\n return curData.nlead + fValue + curData.nend;\n }\n }\n };\n /**\n * Returns significant digits processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processSignificantDigits = function (value, min, max) {\n var temp = value + '';\n var tn;\n var length = temp.length;\n if (length < min) {\n return value.toPrecision(min);\n }\n else {\n temp = value.toPrecision(max);\n tn = +temp;\n return tn + '';\n }\n };\n /**\n * Returns grouped numeric string\n *\n * @param {string} val ?\n * @param {number} level1 ?\n * @param {string} sep ?\n * @param {string} decimalSymbol ?\n * @param {number} level2 ?\n * @returns {string} ?\n */\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\n var split = val.split(decimalSymbol);\n var prefix = split[0];\n var length = prefix.length;\n var str = '';\n while (length > level1) {\n str = prefix.slice(length - level1, length) + (str.length ?\n (sep + str) : '');\n length -= level1;\n if (flag) {\n level1 = level2;\n flag = false;\n }\n }\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\n return split.join(decimalSymbol);\n };\n /**\n * Returns fraction processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @param {NumberFormatOptions} [option] ?\n * @returns {string} ?\n */\n NumberFormat.processFraction = function (value, min, max, option) {\n var temp = (value + '').split('.')[1];\n var length = temp ? temp.length : 0;\n if (min && length < min) {\n var ret = '';\n if (length === 0) {\n ret = value.toFixed(min);\n }\n else {\n ret += value;\n for (var j = 0; j < min - length; j++) {\n ret += '0';\n }\n return ret;\n }\n return value.toFixed(min);\n }\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\n return value.toFixed(max);\n }\n var str = value + '';\n if (str[0] === '0' && option && option.format === '###.00') {\n str = str.slice(1);\n }\n return str;\n };\n /**\n * Returns integer processed numeric string\n *\n * @param {string} value ?\n * @param {number} min ?\n * @returns {string} ?\n */\n NumberFormat.processMinimumIntegers = function (value, min) {\n var temp = value.split('.');\n var lead = temp[0];\n var len = lead.length;\n if (len < min) {\n for (var i = 0; i < min - len; i++) {\n lead = '0' + lead;\n }\n temp[0] = lead;\n }\n return temp.join('.');\n };\n /**\n * Returns custom format for pivot table\n *\n * @param {number} value ?\n * @returns {string} ?\n */\n NumberFormat.customPivotFormat = function (value) {\n if (value >= 500000) {\n value /= 1000000;\n var _a = value.toString().split('.'), integer = _a[0], decimal = _a[1];\n return decimal && +decimal.substring(0, 1) >= 5\n ? Math.ceil(value).toString()\n : Math.floor(value).toString();\n }\n return '';\n };\n return NumberFormat;\n}());\nexport { NumberFormat };\n","import { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nimport { isUndefined, throwError, getValue, isNullOrUndefined, isBlazor } from '../util';\nimport { datePartMatcher } from './date-formatter';\nimport { HijriParser } from '../hijri-parser';\nvar standalone = 'stand-alone';\nvar latnRegex = /^[0-9]*$/;\nvar timeSetter = {\n minute: 'setMinutes',\n hour: 'setHours',\n second: 'setSeconds',\n day: 'setDate',\n month: 'setMonth',\n milliseconds: 'setMilliseconds'\n};\nvar month = 'months';\n/**\n * Date Parser.\n *\n * @private\n */\nvar DateParser = /** @class */ (function () {\n function DateParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which string date will be parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateParser.dateParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), false, isBlazor());\n var parseOptions = {};\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n var regexString = '';\n var hourOnly;\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n parseOptions = { isIslamic: base.islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture };\n var patternMatch = resPattern.match(base.dateParseRegex) || [];\n var length_1 = patternMatch.length;\n var gmtCorrection = 0;\n var zCorrectTemp = 0;\n var isgmtTraversed = false;\n var nRegx = numOptions.numericRegex;\n var numMapper = isBlazor() ? dependable.parserObject.numbers\n : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n for (var i = 0; i < length_1; i++) {\n var str = patternMatch[parseInt(i.toString(), 10)];\n var len = str.length;\n var char = (str[0] === 'K') ? 'h' : str[0];\n var isNumber = void 0;\n var canUpdate = void 0;\n var charKey = datePartMatcher[\"\" + char];\n var optional = (len === 2) ? '' : '?';\n if (isgmtTraversed) {\n gmtCorrection = zCorrectTemp;\n isgmtTraversed = false;\n }\n switch (char) {\n case 'E':\n case 'c': {\n var weekData = void 0;\n if (isBlazor()) {\n weekData = getValue('days.' + base.monthIndex[\"\" + len], dependable.dateObject);\n }\n else {\n weekData = dependable.dateObject[\"\" + base.days][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n var weekObject = parser.reverseObject(weekData);\n regexString += '(' + Object.keys(weekObject).join('|') + ')';\n break;\n }\n case 'M':\n case 'L':\n case 'd':\n case 'm':\n case 's':\n case 'h':\n case 'H':\n case 'f':\n canUpdate = true;\n if ((char === 'M' || char === 'L') && len > 2) {\n var monthData = void 0;\n if (isBlazor()) {\n monthData = getValue('months.' + base.monthIndex[\"\" + len], dependable.dateObject);\n }\n else {\n monthData = dependable.dateObject[\"\" + month][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n parseOptions[\"\" + charKey] = parser.reverseObject(monthData);\n regexString += '(' + Object.keys(parseOptions[\"\" + charKey]).join('|') + ')';\n }\n else if (char === 'f') {\n if (len > 3) {\n continue;\n }\n isNumber = true;\n regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')';\n }\n else {\n isNumber = true;\n regexString += '(' + nRegx + nRegx + optional + ')';\n }\n if (char === 'h') {\n parseOptions.hour12 = true;\n }\n break;\n case 'W': {\n var opt = len === 1 ? '?' : '';\n regexString += '(' + nRegx + opt + nRegx + ')';\n break;\n }\n case 'y':\n canUpdate = isNumber = true;\n if (len === 2) {\n regexString += '(' + nRegx + nRegx + ')';\n }\n else {\n regexString += '(' + nRegx + '{' + len + ',})';\n }\n break;\n case 'a': {\n canUpdate = true;\n var periodValur = isBlazor() ?\n getValue('dayPeriods', dependable.dateObject) :\n getValue('dayPeriods.format.wide', dependable.dateObject);\n parseOptions[\"\" + charKey] = parser.reverseObject(periodValur);\n regexString += '(' + Object.keys(parseOptions[\"\" + charKey]).join('|') + ')';\n break;\n }\n case 'G': {\n canUpdate = true;\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n parseOptions[\"\" + charKey] = parser.reverseObject(isBlazor() ?\n getValue('eras', dependable.dateObject) : getValue('eras.' + eText, dependable.dateObject));\n regexString += '(' + Object.keys(parseOptions[\"\" + charKey]).join('|') + '?)';\n break;\n }\n case 'z': {\n var tval = new Date().getTimezoneOffset();\n canUpdate = (tval !== 0);\n parseOptions[\"\" + charKey] = getValue('dates.timeZoneNames', dependable.parserObject);\n var tzone = parseOptions[\"\" + charKey];\n hourOnly = (len < 4);\n var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat;\n hpattern = hpattern.replace(/:/g, numMapper.timeSeparator);\n regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?';\n isgmtTraversed = true;\n zCorrectTemp = hourOnly ? 6 : 12;\n break;\n }\n case '\\'': {\n var iString = str.replace(/'/g, '');\n regexString += '(' + iString + ')?';\n break;\n }\n default:\n regexString += '([\\\\D])';\n break;\n }\n if (canUpdate) {\n parseOptions.evalposition[\"\" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };\n }\n if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {\n var regExp = RegExp;\n parseOptions.parserRegex = new regExp('^' + regexString + '$', 'i');\n }\n }\n }\n return function (value) {\n var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions);\n if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {\n return null;\n }\n if (parseOptions.isIslamic) {\n var dobj = {};\n var tYear = parsedDateParts.year;\n var tDate = parsedDateParts.day;\n var tMonth = parsedDateParts.month;\n var ystrig = tYear ? (tYear + '') : '';\n var is2DigitYear = (ystrig.length === 2);\n if (!tYear || !tMonth || !tDate || is2DigitYear) {\n dobj = HijriParser.getHijriDate(new Date());\n }\n if (is2DigitYear) {\n tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);\n }\n var dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);\n parsedDateParts.year = dateObject.getFullYear();\n parsedDateParts.month = dateObject.getMonth() + 1;\n parsedDateParts.day = dateObject.getDate();\n }\n return _this.getDateObject(parsedDateParts);\n };\n };\n /**\n * Returns date object for provided date options\n *\n * @param {DateParts} options ?\n * @param {Date} value ?\n * @returns {Date} ?\n */\n DateParser.getDateObject = function (options, value) {\n var res = value || new Date();\n res.setMilliseconds(0);\n var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day'];\n var y = options.year;\n var desig = options.designator;\n var tzone = options.timeZone;\n if (!isUndefined(y)) {\n var len = (y + '').length;\n if (len <= 2) {\n var century = Math.floor(res.getFullYear() / 100) * 100;\n y += century;\n }\n res.setFullYear(y);\n }\n for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) {\n var key = tKeys_1[_i];\n var tValue = options[\"\" + key];\n if (isUndefined(tValue) && key === 'day') {\n res.setDate(1);\n }\n if (!isUndefined(tValue)) {\n if (key === 'month') {\n tValue -= 1;\n if (tValue < 0 || tValue > 11) {\n return new Date('invalid');\n }\n var pDate = res.getDate();\n res.setDate(1);\n res[timeSetter[\"\" + key]](tValue);\n var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate();\n res.setDate(pDate < lDate ? pDate : lDate);\n }\n else {\n if (key === 'day') {\n var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate();\n if ((tValue < 1 || tValue > lastDay)) {\n return null;\n }\n }\n res[\"\" + timeSetter[\"\" + key]](tValue);\n }\n }\n }\n if (!isUndefined(desig)) {\n var hour = res.getHours();\n if (desig === 'pm') {\n res.setHours(hour + (hour === 12 ? 0 : 12));\n }\n else if (hour === 12) {\n res.setHours(0);\n }\n }\n if (!isUndefined(tzone)) {\n var tzValue = tzone - res.getTimezoneOffset();\n if (tzValue !== 0) {\n res.setMinutes(res.getMinutes() + tzValue);\n }\n }\n return res;\n };\n /**\n * Returns date parsing options for provided value along with parse and numeric options\n *\n * @param {string} value ?\n * @param {ParseOptions} parseOptions ?\n * @param {NumericOptions} num ?\n * @returns {DateParts} ?\n */\n DateParser.internalDateParse = function (value, parseOptions, num) {\n var matches = value.match(parseOptions.parserRegex);\n var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 };\n if (isNullOrUndefined(matches)) {\n return null;\n }\n else {\n var props = Object.keys(parseOptions.evalposition);\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var curObject = parseOptions.evalposition[\"\" + prop];\n var matchString = matches[curObject.pos];\n if (curObject.isNumber) {\n retOptions[\"\" + prop] = this.internalNumberParser(matchString, num);\n }\n else {\n if (prop === 'timeZone' && !isUndefined(matchString)) {\n var pos = curObject.pos;\n var val = void 0;\n var tmatch = matches[pos + 1];\n var flag = !isUndefined(tmatch);\n if (curObject.hourOnly) {\n val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60;\n }\n else {\n val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60;\n val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);\n }\n if (!isNullOrUndefined(val)) {\n retOptions[\"\" + prop] = val;\n }\n }\n else {\n var cultureOptions = ['en-US', 'en-MH', 'en-MP'];\n matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))\n ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;\n matchString = ((prop !== 'month') && (prop === 'designator') && parseOptions.culture && parseOptions.culture.indexOf('en-') !== -1 && cultureOptions.indexOf(parseOptions.culture) === -1)\n ? matchString.toLowerCase() : matchString;\n retOptions[\"\" + prop] = parseOptions[\"\" + prop][\"\" + matchString];\n }\n }\n }\n if (parseOptions.hour12) {\n retOptions.hour12 = true;\n }\n }\n return retOptions;\n };\n /**\n * Returns parsed number for provided Numeric string and Numeric Options\n *\n * @param {string} value ?\n * @param {NumericOptions} option ?\n * @returns {number} ?\n */\n DateParser.internalNumberParser = function (value, option) {\n value = parser.convertValueParts(value, option.numberParseRegex, option.numericPair);\n if (latnRegex.test(value)) {\n return +value;\n }\n return null;\n };\n /**\n * Returns parsed time zone RegExp for provided hour format and time zone\n *\n * @param {string} hourFormat ?\n * @param {base.TimeZoneOptions} tZone ?\n * @param {string} nRegex ?\n * @returns {string} ?\n */\n DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) {\n var pattern = tZone.gmtFormat;\n var ret;\n var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')';\n ret = hourFormat.replace('+', '\\\\+');\n if (hourFormat.indexOf('HH') !== -1) {\n ret = ret.replace(/HH|mm/g, '(' + cRegex + ')');\n }\n else {\n ret = ret.replace(/H|m/g, '(' + cRegex + '?)');\n }\n var splitStr = (ret.split(';').map(function (str) {\n return pattern.replace('{0}', str);\n }));\n ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat;\n return ret;\n };\n /**\n * Returns zone based value.\n *\n * @param {boolean} flag ?\n * @param {string} val1 ?\n * @param {string} val2 ?\n * @param {NumericOptions} num ?\n * @returns {number} ?\n */\n DateParser.getZoneValue = function (flag, val1, val2, num) {\n var ival = flag ? val1 : val2;\n if (!ival) {\n return 0;\n }\n var value = this.internalNumberParser(ival, num);\n if (flag) {\n return -value;\n }\n return value;\n };\n return DateParser;\n}());\nexport { DateParser };\n","import { extend, isNullOrUndefined, isBlazor, getValue } from '../util';\nimport { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nvar regExp = RegExp;\nvar parseRegex = new regExp('^([^0-9]*)' + '(([0-9,]*[0-9]+)(.[0-9]+)?)' + '([Ee][+-]?[0-9]+)?([^0-9]*)$');\nvar groupRegex = /,/g;\nvar keys = ['minusSign', 'infinity'];\n/**\n * Module for Number Parser.\n *\n * @private\n */\nvar NumberParser = /** @class */ (function () {\n function NumberParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberParser.numberParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n if ((base.formatRegex.test(option.format)) || !(option.format)) {\n extend(parseOptions, base.getProperNumericSkeleton(option.format || 'N'));\n parseOptions.custom = false;\n if (!parseOptions.fractionDigits) {\n if (option.maximumFractionDigits) {\n parseOptions.maximumFractionDigits = option.maximumFractionDigits;\n }\n }\n }\n else {\n extend(parseOptions, base.customFormat(option.format, null, null));\n }\n var numbers = getValue('numbers', dependable.parserObject);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), true, isBlazor());\n parseOptions.symbolRegex = parser.getSymbolRegex(Object.keys(numOptions.symbolMatch));\n parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]];\n var symbolpattern;\n if (!isBlazor()) {\n symbolpattern = base.getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount);\n if (symbolpattern) {\n symbolpattern = symbolpattern.replace(/\\u00A4/g, base.defaultCurrency);\n var split = symbolpattern.split(';');\n parseOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, '');\n parseOptions.pData = base.getFormatData(split[0], true, '');\n }\n }\n else {\n parseOptions.nData = extend({}, {}, getValue(parseOptions.type + 'nData', numbers));\n parseOptions.pData = extend({}, {}, getValue(parseOptions.type + 'pData', numbers));\n if (parseOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], getValue('currencySymbol', numbers), option.currency);\n }\n }\n return function (value) {\n return _this.getParsedNumber(value, parseOptions, numOptions);\n };\n };\n /**\n * Returns parsed number for the provided formatting options\n *\n * @param {string} value ?\n * @param {NumericParts} options ?\n * @param {NumericOptions} numOptions ?\n * @returns {number} ?\n */\n NumberParser.getParsedNumber = function (value, options, numOptions) {\n var isNegative;\n var isPercent;\n var tempValue;\n var lead;\n var end;\n var ret;\n if (value.indexOf(options.infinity) !== -1) {\n return Infinity;\n }\n else {\n value = parser.convertValueParts(value, options.symbolRegex, numOptions.symbolMatch);\n value = parser.convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair);\n value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value;\n if (value.indexOf('.') === 0) {\n value = '0' + value;\n }\n var matches = value.match(parseRegex);\n if (isNullOrUndefined(matches)) {\n return NaN;\n }\n lead = matches[1];\n tempValue = matches[2];\n var exponent = matches[5];\n end = matches[6];\n isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) :\n ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1));\n isPercent = isNegative ?\n options.nData.isPercent :\n options.pData.isPercent;\n tempValue = tempValue.replace(groupRegex, '');\n if (exponent) {\n tempValue += exponent;\n }\n ret = +tempValue;\n if (options.type === 'percent' || isPercent) {\n ret = ret / 100;\n }\n if (options.custom || options.fractionDigits) {\n ret = parseFloat(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits));\n }\n if (options.maximumFractionDigits) {\n ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative);\n }\n if (isNegative) {\n ret *= -1;\n }\n return ret;\n }\n };\n NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) {\n var decimalSplitValue = value.split('.');\n if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) {\n ret = +(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits));\n }\n return ret;\n };\n return NumberParser;\n}());\nexport { NumberParser };\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\nimport { isNullOrUndefined, getValue, extend, isBlazor } from './util';\nvar Observer = /** @class */ (function () {\n function Observer(context) {\n this.ranArray = [];\n this.boundedEvents = {};\n if (isNullOrUndefined(context)) {\n return;\n }\n this.context = context;\n }\n /**\n * To attach handler for given property in current context.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Specifies the handler function to be called while event notified.\n * @param {Object} context - Specifies the context binded to the handler.\n * @param {string} id - specifies the random generated id.\n * @returns {void}\n */\n Observer.prototype.on = function (property, handler, context, id) {\n if (isNullOrUndefined(handler)) {\n return;\n }\n var cntxt = context || this.context;\n if (this.notExist(property)) {\n this.boundedEvents[\"\" + property] = [{ handler: handler, context: cntxt, id: id }];\n return;\n }\n if (!isNullOrUndefined(id)) {\n if (this.ranArray.indexOf(id) === -1) {\n this.ranArray.push(id);\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt, id: id });\n }\n }\n else if (!this.isHandlerPresent(this.boundedEvents[\"\" + property], handler)) {\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt });\n }\n };\n /**\n * To remove handlers from a event attached using on() function.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\n * @param {string} id - specifies the random generated id.\n * @returns {void} ?\n */\n Observer.prototype.off = function (property, handler, id) {\n if (this.notExist(property)) {\n return;\n }\n var curObject = getValue(property, this.boundedEvents);\n if (handler) {\n for (var i = 0; i < curObject.length; i++) {\n if (id) {\n if (curObject[parseInt(i.toString(), 10)].id === id) {\n curObject.splice(i, 1);\n var indexLocation = this.ranArray.indexOf(id);\n if (indexLocation !== -1) {\n this.ranArray.splice(indexLocation, 1);\n }\n break;\n }\n }\n else if (handler === curObject[parseInt(i.toString(), 10)].handler) {\n curObject.splice(i, 1);\n break;\n }\n }\n }\n else {\n delete this.boundedEvents[\"\" + property];\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\n * @returns {void} ?\n */\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\n if (this.notExist(property)) {\n if (successHandler) {\n successHandler.call(this, argument);\n }\n return;\n }\n if (argument) {\n argument.name = property;\n }\n var blazor = 'Blazor';\n var curObject = getValue(property, this.boundedEvents).slice(0);\n if (window[\"\" + blazor]) {\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\n }\n else {\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\n var cur = curObject_1[_i];\n cur.handler.call(cur.context, argument);\n }\n if (successHandler) {\n successHandler.call(this, argument);\n }\n }\n };\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\n var _this = this;\n var isTrigger = index === objs.length - 1;\n if (index < objs.length) {\n var obj_1 = objs[parseInt(index.toString(), 10)];\n var promise = obj_1.handler.call(obj_1.context, argument);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n return promise;\n }\n promise.then(function (data) {\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\n extend(argument, argument, data, true);\n if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }).catch(function (data) {\n if (errorHandler) {\n errorHandler.call(obj_1.context, typeof data === 'string' &&\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\n }\n });\n }\n else if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }\n };\n Observer.prototype.dateReviver = function (key, value) {\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\n return (new Date(value));\n }\n return (value);\n };\n Observer.prototype.isJson = function (value) {\n try {\n JSON.parse(value);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n /**\n * To destroy handlers in the event\n *\n * @returns {void} ?\n */\n Observer.prototype.destroy = function () {\n this.boundedEvents = this.context = undefined;\n };\n /**\n * To remove internationalization events\n *\n * @returns {void} ?\n */\n Observer.prototype.offIntlEvents = function () {\n var eventsArr = this.boundedEvents['notifyExternalChange'];\n if (eventsArr) {\n for (var i = 0; i < eventsArr.length; i++) {\n var curContext = eventsArr[parseInt(i.toString(), 10)].context;\n if (curContext && curContext.detectFunction && curContext.randomId && curContext.isReactMock) {\n this.off('notifyExternalChange', curContext.detectFunction, curContext.randomId);\n i--;\n }\n }\n if (!this.boundedEvents['notifyExternalChange'].length) {\n delete this.boundedEvents['notifyExternalChange'];\n }\n }\n };\n /**\n * Returns if the property exists.\n *\n * @param {string} prop ?\n * @returns {boolean} ?\n */\n Observer.prototype.notExist = function (prop) {\n return Object.prototype.hasOwnProperty.call(this.boundedEvents, prop) === false || this.boundedEvents[\"\" + prop].length <= 0;\n };\n /**\n * Returns if the handler is present.\n *\n * @param {BoundOptions[]} boundedEvents ?\n * @param {Function} handler ?\n * @returns {boolean} ?\n */\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\n var cur = boundedEvents_1[_i];\n if (cur.handler === handler) {\n return true;\n }\n }\n return false;\n };\n return Observer;\n}());\nexport { Observer };\n","import { DateFormat } from './intl/date-formatter';\nimport { NumberFormat } from './intl/number-formatter';\nimport { DateParser } from './intl/date-parser';\nimport { NumberParser } from './intl/number-parser';\nimport { IntlBase } from './intl/intl-base';\nimport { extend, getValue, isBlazor } from './util';\nimport { Observer } from './observer';\n/**\n * Specifies the observer used for external change detection.\n */\nexport var onIntlChange = new Observer();\n/**\n * Specifies the default rtl status for EJ2 components.\n */\nexport var rightToLeft = false;\n/**\n * Specifies the CLDR data loaded for internationalization functionalities.\n *\n * @private\n */\nexport var cldrData = {};\n/**\n * Specifies the default culture value to be considered.\n *\n * @private\n */\nexport var defaultCulture = 'en-US';\n/**\n * Specifies default currency code to be considered\n *\n * @private\n */\nexport var defaultCurrencyCode = 'USD';\nvar mapper = ['numericObject', 'dateObject'];\n/**\n * Internationalization class provides support to parse and format the number and date object to the desired format.\n * ```typescript\n * // To set the culture globally\n * setCulture('en-GB');\n *\n * // To set currency code globally\n * setCurrencyCode('EUR');\n *\n * //Load cldr data\n * loadCldr(gregorainData);\n * loadCldr(timeZoneData);\n * loadCldr(numbersData);\n * loadCldr(numberSystemData);\n *\n * // To use formatter in component side\n * let Intl:Internationalization = new Internationalization();\n *\n * // Date formatting\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\n * dateFormatter(new Date('11/2/2016'));\n * dateFormatter(new Date('25/2/2030'));\n * Intl.formatDate(new Date(),{skeleton:'E'});\n *\n * //Number formatting\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\n * numberFormatter(24563334);\n * Intl.formatNumber(123123,{skeleton:'p2'});\n *\n * // Date parser\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\n * dateParser('10:30 PM');\n * Intl.parseDate('10',{skeleton:'H'});\n * ```\n */\nvar Internationalization = /** @class */ (function () {\n function Internationalization(cultureName) {\n if (cultureName) {\n this.culture = cultureName;\n }\n }\n /**\n * Returns the format function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateFormat = function (options) {\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\n };\n /**\n * Returns the format function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberFormat = function (options) {\n if (options && !options.currency) {\n options.currency = defaultCurrencyCode;\n }\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateParser = function (options) {\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberParser = function (options) {\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\n };\n /**\n * Returns the formatted string based on format options.\n *\n * @param {number} value - Specifies the number to format.\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatNumber = function (value, option) {\n return this.getNumberFormat(option)(value);\n };\n /**\n * Returns the formatted date string based on format options.\n *\n * @param {Date} value - Specifies the number to format.\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatDate = function (value, option) {\n return this.getDateFormat(option)(value);\n };\n /**\n * Returns the date object for given date string and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\n * @returns {Date} ?\n */\n Internationalization.prototype.parseDate = function (value, option) {\n return this.getDateParser(option)(value);\n };\n /**\n * Returns the number object from the given string value and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\n * @returns {number} ?\n */\n Internationalization.prototype.parseNumber = function (value, option) {\n return this.getNumberParser(option)(value);\n };\n /**\n * Returns Native Date Time Pattern\n *\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\n };\n /**\n * Returns Native Number Pattern\n *\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\n * @param {boolean} isExcel ?\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\n };\n /**\n * Returns the First Day of the Week\n *\n * @returns {number} ?\n */\n Internationalization.prototype.getFirstDayOfWeek = function () {\n return IntlBase.getWeekData(this.getCulture(), cldrData);\n };\n /**\n * Returns the culture\n *\n * @returns {string} ?\n */\n Internationalization.prototype.getCulture = function () {\n return this.culture || defaultCulture;\n };\n return Internationalization;\n}());\nexport { Internationalization };\n/**\n * Set the default culture to all EJ2 components\n *\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCulture(cultureName) {\n defaultCulture = cultureName;\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\n}\n/**\n * Set the default currency code to all EJ2 components\n *\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCurrencyCode(currencyCode) {\n defaultCurrencyCode = currencyCode;\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\n}\n/**\n * Load the CLDR data into context\n *\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\n * @returns {void} ?\n */\nexport function loadCldr() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var obj = data_1[_a];\n extend(cldrData, obj, {}, true);\n }\n}\n/**\n * To enable or disable RTL functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\n * @returns {void} ?\n */\nexport function enableRtl(status) {\n if (status === void 0) { status = true; }\n rightToLeft = status;\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\n}\n/**\n * To get the numeric CLDR object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} type ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getNumericObject(locale, type) {\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\n var numSystem = getValue('defaultNumberingSystem', numObject);\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\n}\n/**\n * To get the numeric CLDR number base object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\n * @returns {string} ?\n * @ignore\n * @private\n */\nexport function getNumberDependable(locale, currency) {\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\n}\n/**\n * To get the default date CLDR object.\n *\n * @param {string} mode ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getDefaultDateObject(mode) {\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\nimport { defaultCurrencyCode } from '../internationalization';\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\nimport { DateFormat } from './date-formatter';\nimport { NumberFormat } from './number-formatter';\nimport { isUndefined } from '../util';\nvar regExp = RegExp;\nexport var blazorCultureFormats = {\n 'en-US': {\n 'd': 'M/d/y',\n 'D': 'EEEE, MMMM d, y',\n 'f': 'EEEE, MMMM d, y h:mm a',\n 'F': 'EEEE, MMMM d, y h:mm:s a',\n 'g': 'M/d/y h:mm a',\n 'G': 'M/d/yyyy h:mm:ss tt',\n 'm': 'MMMM d',\n 'M': 'MMMM d',\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\n 't': 'h:mm tt',\n 'T': 'h:m:s tt',\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\n 'y': 'MMMM yyyy',\n 'Y': 'MMMM yyyy'\n }\n};\n/**\n * Date base common constants and function for date parser and formatter.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var IntlBase;\n(function (IntlBase) {\n // eslint-disable-next-line security/detect-unsafe-regex\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n // eslint-disable-next-line security/detect-unsafe-regex\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*[0# ]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\n var fractionRegex = /[0-9]/g;\n IntlBase.defaultCurrency = '$';\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\n var patternMatch = {\n 'G': '',\n 'M': 'm',\n 'L': 'm',\n 'H': 'h',\n 'c': 'd',\n '\\'': '\"',\n ' a': ' AM/PM',\n 'yy': 'yy',\n 'y': 'yyyy',\n 'EEEE': 'dddd',\n 'E': 'ddd'\n };\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\n var defaultFirstDay = 'sun';\n IntlBase.islamicRegex = /^islamic/;\n var firstDayMapper = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n };\n IntlBase.formatRegex = new regExp('(^[ncpae]{1})([0-1]?[0-9]|20)?$', 'i');\n IntlBase.currencyFormatRegex = new regExp('(^[ca]{1})([0-1]?[0-9]|20)?$', 'i');\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\n var typeMapper = {\n '$': 'isCurrency',\n '%': 'isPercent',\n '-': 'isNegative',\n 0: 'nlead',\n 1: 'nend'\n };\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\n IntlBase.defaultObject = {\n 'dates': {\n 'calendars': {\n 'gregorian': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'narrow': {\n '1': 'J',\n '2': 'F',\n '3': 'M',\n '4': 'A',\n '5': 'M',\n '6': 'J',\n '7': 'J',\n '8': 'A',\n '9': 'S',\n '10': 'O',\n '11': 'N',\n '12': 'D'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'Before Christ',\n '0-alt-variant': 'Before Common Era',\n '1': 'Anno Domini',\n '1-alt-variant': 'Common Era'\n },\n 'eraAbbr': {\n '0': 'BC',\n '0-alt-variant': 'BCE',\n '1': 'AD',\n '1-alt-variant': 'CE'\n },\n 'eraNarrow': {\n '0': 'B',\n '0-alt-variant': 'BCE',\n '1': 'A',\n '1-alt-variant': 'CE'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y',\n 'long': 'MMMM d, y',\n 'medium': 'MMM d, y',\n 'short': 'M/d/yy'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'hmsv': 'h:mm:ss a v',\n 'Hmsv': 'HH:mm:ss v',\n 'hmv': 'h:mm a v',\n 'Hmv': 'HH:mm v',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y',\n 'yM': 'M/y',\n 'yMd': 'M/d/y',\n 'yMEd': 'E, M/d/y',\n 'yMMM': 'MMM y',\n 'yMMMd': 'MMM d, y',\n 'yMMMEd': 'E, MMM d, y',\n 'yMMMM': 'MMMM y'\n }\n }\n },\n 'islamic': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Muh.',\n '2': 'Saf.',\n '3': 'Rab. I',\n '4': 'Rab. II',\n '5': 'Jum. I',\n '6': 'Jum. II',\n '7': 'Raj.',\n '8': 'Sha.',\n '9': 'Ram.',\n '10': 'Shaw.',\n '11': 'Dhuʻl-Q.',\n '12': 'Dhuʻl-H.'\n },\n 'narrow': {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '10': '10',\n '11': '11',\n '12': '12'\n },\n 'wide': {\n '1': 'Muharram',\n '2': 'Safar',\n '3': 'Rabiʻ I',\n '4': 'Rabiʻ II',\n '5': 'Jumada I',\n '6': 'Jumada II',\n '7': 'Rajab',\n '8': 'Shaʻban',\n '9': 'Ramadan',\n '10': 'Shawwal',\n '11': 'Dhuʻl-Qiʻdah',\n '12': 'Dhuʻl-Hijjah'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'AH'\n },\n 'eraAbbr': {\n '0': 'AH'\n },\n 'eraNarrow': {\n '0': 'AH'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y G',\n 'long': 'MMMM d, y G',\n 'medium': 'MMM d, y G',\n 'short': 'M/d/y GGGGG'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y G',\n 'yyyy': 'y G',\n 'yyyyM': 'M/y GGGGG',\n 'yyyyMd': 'M/d/y GGGGG',\n 'yyyyMEd': 'E, M/d/y GGGGG',\n 'yyyyMMM': 'MMM y G',\n 'yyyyMMMd': 'MMM d, y G',\n 'yyyyMMMEd': 'E, MMM d, y G',\n 'yyyyMMMM': 'MMMM y G',\n 'yyyyQQQ': 'QQQ y G',\n 'yyyyQQQQ': 'QQQQ y G'\n }\n }\n }\n },\n 'timeZoneNames': {\n 'hourFormat': '+HH:mm;-HH:mm',\n 'gmtFormat': 'GMT{0}',\n 'gmtZeroFormat': 'GMT'\n }\n },\n 'numbers': {\n 'currencies': {\n 'USD': {\n 'displayName': 'US Dollar',\n 'symbol': '$',\n 'symbol-alt-narrow': '$'\n },\n 'EUR': {\n 'displayName': 'Euro',\n 'symbol': '€',\n 'symbol-alt-narrow': '€'\n },\n 'GBP': {\n 'displayName': 'British Pound',\n 'symbol-alt-narrow': '£'\n }\n },\n 'defaultNumberingSystem': 'latn',\n 'minimumGroupingDigits': '1',\n 'symbols-numberSystem-latn': {\n 'decimal': '.',\n 'group': ',',\n 'list': ';',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'exponential': 'E',\n 'superscriptingExponent': '×',\n 'perMille': '‰',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'timeSeparator': ':'\n },\n 'decimalFormats-numberSystem-latn': {\n 'standard': '#,##0.###'\n },\n 'percentFormats-numberSystem-latn': {\n 'standard': '#,##0%'\n },\n 'currencyFormats-numberSystem-latn': {\n 'standard': '¤#,##0.00',\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\n },\n 'scientificFormats-numberSystem-latn': {\n 'standard': '#E0'\n }\n }\n };\n IntlBase.blazorDefaultObject = {\n 'numbers': {\n 'mapper': {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9'\n },\n 'mapperDigits': '0123456789',\n 'numberSymbols': {\n 'decimal': '.',\n 'group': ',',\n 'plusSign': '+',\n 'minusSign': '-',\n 'percentSign': '%',\n 'nan': 'NaN',\n 'timeSeparator': ':',\n 'infinity': '∞'\n },\n 'timeSeparator': ':',\n 'currencySymbol': '$',\n 'currencypData': {\n 'nlead': '$',\n 'nend': '',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentpData': {\n 'nlead': '',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentnData': {\n 'nlead': '-',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'currencynData': {\n 'nlead': '($',\n 'nend': ')',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalnData': {\n 'nlead': '-',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalpData': {\n 'nlead': '',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n }\n },\n 'dates': {\n 'dayPeriods': {\n 'am': 'AM',\n 'pm': 'PM'\n },\n 'dateSeperator': '/',\n 'days': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n },\n 'months': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n },\n 'eras': {\n '1': 'AD'\n }\n }\n };\n IntlBase.monthIndex = {\n 3: 'abbreviated',\n 4: 'wide',\n 5: 'narrow',\n 1: 'abbreviated'\n };\n /**\n *\n */\n IntlBase.month = 'months';\n IntlBase.days = 'days';\n /**\n * Default numerber Object\n */\n IntlBase.patternMatcher = {\n C: 'currency',\n P: 'percent',\n N: 'decimal',\n A: 'currency',\n E: 'scientific'\n };\n /**\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\n *\n * @private\n * @param {string} skeleton ?\n * @param {Object} dateObject ?\n * @param {string} type ?\n * @param {boolean} isIslamic ?\n * @param {string} blazorCulture ?\n * @returns {string} ?\n */\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\n var resPattern;\n var iType = type || 'date';\n if (blazorCulture) {\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\n }\n else {\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\n if (iType === 'dateTime') {\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\n }\n }\n else {\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\n }\n if (isUndefined(resPattern) && skeleton === 'yMd') {\n resPattern = 'M/d/y';\n }\n }\n return resPattern;\n }\n IntlBase.getResultantPattern = getResultantPattern;\n /**\n * Returns the dependable object for provided cldr data and culture\n *\n * @private\n * @param {Object} cldr ?\n * @param {string} culture ?\n * @param {string} mode ?\n * @param {boolean} isNumber ?\n * @returns {any} ?\n */\n function getDependables(cldr, culture, mode, isNumber) {\n var ret = {};\n var calendartype = mode || 'gregorian';\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\n if (isNumber) {\n ret.numericObject = getValue('numbers', ret.parserObject);\n }\n else {\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\n ret.dateObject = getValue(dateString, ret.parserObject);\n }\n return ret;\n }\n IntlBase.getDependables = getDependables;\n /**\n * Returns the symbol pattern for provided parameters\n *\n * @private\n * @param {string} type ?\n * @param {string} numSystem ?\n * @param {Object} obj ?\n * @param {boolean} isAccount ?\n * @returns {string} ?\n */\n function getSymbolPattern(type, numSystem, obj, isAccount) {\n return getValue(type + 'Formats-numberSystem-' +\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\n numSystem + '.standard', obj) : '');\n }\n IntlBase.getSymbolPattern = getSymbolPattern;\n /**\n *\n * @param {string} format ?\n * @returns {string} ?\n */\n function ConvertDateToWeekFormat(format) {\n var convertMapper = format.match(IntlBase.dateConverterMapper);\n if (convertMapper && isBlazor()) {\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\n return format.replace(IntlBase.dateConverterMapper, tempString);\n }\n return format;\n }\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\n /**\n *\n * @param {DateFormatOptions} formatOptions ?\n * @param {string} culture ?\n * @returns {DateFormatOptions} ?\n */\n function compareBlazorDateFormats(formatOptions, culture) {\n var format = formatOptions.format || formatOptions.skeleton;\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\n if (!curFormatMapper) {\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\n }\n if (curFormatMapper) {\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\n }\n return formatOptions;\n }\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\n /**\n * Returns proper numeric skeleton\n *\n * @private\n * @param {string} skeleton ?\n * @returns {any} ?\n */\n function getProperNumericSkeleton(skeleton) {\n var matches = skeleton.match(IntlBase.formatRegex);\n var ret = {};\n var pattern = matches[1].toUpperCase();\n ret.isAccount = (pattern === 'A');\n ret.type = IntlBase.patternMatcher[\"\" + pattern];\n if (skeleton.length > 1) {\n ret.fractionDigits = parseInt(matches[2], 10);\n }\n return ret;\n }\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\n /**\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\n *\n * @private\n * @param {string} pattern ?\n * @param {boolean} needFraction ?\n * @param {string} cSymbol ?\n * @param {boolean} fractionOnly ?\n * @returns {any} ?\n */\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\n var match = pattern.match(IntlBase.customRegex);\n if (match) {\n if (!fractionOnly) {\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\n nData.groupPattern = match[4];\n }\n var fraction = match[7];\n if (fraction && needFraction) {\n var fmatch = fraction.match(fractionRegex);\n if (!isNullOrUndefined(fmatch)) {\n nData.minimumFraction = fmatch.length;\n }\n else {\n nData.minimumFraction = 0;\n }\n nData.maximumFraction = fraction.length - 1;\n }\n }\n return nData;\n }\n IntlBase.getFormatData = getFormatData;\n /**\n * Changes currency symbol\n *\n * @private\n * @param {string} val ?\n * @param {string} sym ?\n * @returns {string} ?\n */\n function changeCurrencySymbol(val, sym) {\n if (val) {\n val = val.replace(IntlBase.defaultCurrency, sym);\n return (sym === '') ? val.trim() : val;\n }\n return '';\n }\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\n /**\n * Returns currency symbol based on currency code ?\n *\n * @private\n * @param {Object} numericObject ?\n * @param {string} currencyCode ?\n * @param {string} altSymbol ?\n * @param {string} ignoreCurrency ?\n * @returns {string} ?\n */\n function getCurrencySymbol(numericObject, currencyCode, altSymbol, ignoreCurrency) {\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\n var getCurrency = ignoreCurrency ? '$' : getValue('currencies.' + currencyCode + symbol, numericObject) ||\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\n return getCurrency;\n }\n IntlBase.getCurrencySymbol = getCurrencySymbol;\n /**\n * Returns formatting options for custom number format\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {any} obj ?\n * @returns {any} ?\n */\n function customFormat(format, dOptions, obj) {\n var options = {};\n var formatSplit = format.split(';');\n var data = ['pData', 'nData', 'zeroData'];\n for (var i = 0; i < formatSplit.length; i++) {\n options[\"\" + data[parseInt(i.toString(), 10)]] = customNumberFormat(formatSplit[parseInt(i.toString(), 10)], dOptions, obj);\n }\n if (isNullOrUndefined(options.nData)) {\n options.nData = extend({}, options.pData);\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\n }\n return options;\n }\n IntlBase.customFormat = customFormat;\n /**\n * Returns custom formatting options\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {Object} numObject ?\n * @returns {any} ?\n */\n function customNumberFormat(format, dOptions, numObject) {\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\n var pattern = format.match(IntlBase.customRegex);\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\n cOptions.type = undefined;\n return cOptions;\n }\n cOptions.nlead = pattern[1];\n cOptions.nend = pattern[10];\n var integerPart = pattern[6];\n var spaceCapture = integerPart.match(/ $/g) ? true : false;\n var spaceGrouping = integerPart.replace(/ $/g, '').indexOf(' ') !== -1;\n cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping;\n integerPart = integerPart.replace(/,/g, '');\n var fractionPart = pattern[7];\n if (integerPart.indexOf('0') !== -1) {\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\n }\n if (!isNullOrUndefined(fractionPart)) {\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\n if (cOptions.minimumFractionDigits === -1) {\n cOptions.minimumFractionDigits = 0;\n }\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\n }\n }\n if (!isNullOrUndefined(dOptions)) {\n dOptions.isCustomFormat = true;\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\n if (!cOptions.isCurrency) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\n }\n }\n else {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\n }\n if (!isNullOrUndefined(numObject)) {\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\n if (cOptions.useGrouping) {\n cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\n }\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\n cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, '');\n }\n return cOptions;\n }\n IntlBase.customNumberFormat = customNumberFormat;\n /**\n * Returns formatting options for currency or percent type\n *\n * @private\n * @param {string[]} parts ?\n * @param {string} actual ?\n * @param {string} symbol ?\n * @returns {any} ?\n */\n function isCurrencyPercent(parts, actual, symbol) {\n var options = { nlead: parts[0], nend: parts[1] };\n for (var i = 0; i < 2; i++) {\n var part = parts[parseInt(i.toString(), 10)];\n var loc = part.indexOf(actual);\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\n options[\"\" + typeMapper[parseInt(i.toString(), 10)]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\n options[\"\" + typeMapper[\"\" + actual]] = true;\n options.type = options.isCurrency ? 'currency' : 'percent';\n break;\n }\n }\n return options;\n }\n IntlBase.isCurrencyPercent = isCurrencyPercent;\n /**\n * Returns culture based date separator\n *\n * @private\n * @param {Object} dateObj ?\n * @returns {string} ?\n */\n function getDateSeparator(dateObj) {\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[dM]([^dM])[dM]/i);\n return value ? value[1] : '/';\n }\n IntlBase.getDateSeparator = getDateSeparator;\n /**\n * Returns Native Date Time pattern\n *\n * @private\n * @param {string} culture ?\n * @param {DateFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcelFormat ?\n * @returns {string} ?\n */\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\n var dependable = getDependables(cldr, culture, options.calendar);\n if (isBlazor()) {\n options = compareBlazorDateFormats(options, culture);\n }\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\n if (isExcelFormat) {\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\n return patternMatch[\"\" + pattern];\n });\n if (actualPattern.indexOf('z') !== -1) {\n var tLength = actualPattern.match(/z/g).length;\n var timeZonePattern = void 0;\n var options_1 = { 'timeZone': {} };\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n var value = new Date();\n var timezone = value.getTimezoneOffset();\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\n if (timezone === 0) {\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\n }\n else {\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\n }\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\n }\n actualPattern = actualPattern.replace(/ $/, '');\n }\n return actualPattern;\n }\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\n /**\n *\n * @param {string} actual ?\n * @param {any} option ?\n * @returns {any} ?\n */\n function processSymbol(actual, option) {\n if (actual.indexOf(',') !== -1) {\n var split = actual.split(',');\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\n }\n else {\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\n }\n return actual;\n }\n IntlBase.processSymbol = processSymbol;\n /**\n * Returns Native Number pattern\n *\n * @private\n * @param {string} culture ?\n * @param {NumberFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcel ?\n * @returns {string} ?\n */\n function getActualNumberFormat(culture, options, cldr, isExcel) {\n var dependable = getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numrericObject = dependable.numericObject;\n var minFrac;\n var curObj = {};\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\n var dOptions = {};\n if (curMatch) {\n dOptions.numberMapper = isBlazor() ?\n extend({}, dependable.numericObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\n var split = symbolPattern.split(';');\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\n getFormatData(split[1] || '-' + split[0], true, curCode);\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\n getFormatData(split[0], false, curCode);\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\n }\n }\n var actualPattern;\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\n parseOptions.custom = false;\n actualPattern = '###0';\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\n var defaultMinimum = 0;\n if (parseOptions.fractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\n }\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\n }\n if (options.minimumIntegerDigits) {\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\n }\n if (options.useGrouping) {\n actualPattern = groupingPattern(actualPattern);\n }\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\n if (isBlazor() && parseOptions.type !== 'currency') {\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\n }\n var cPattern = actualPattern;\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\n if (curObj.hasNegativePattern || isBlazor()) {\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\n }\n }\n if (parseOptions.type === 'percent' && !isBlazor()) {\n actualPattern += ' %';\n }\n }\n else {\n actualPattern = options.format.replace(/'/g, '\"');\n }\n if (Object.keys(dOptions).length > 0) {\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\n }\n return actualPattern;\n }\n IntlBase.getActualNumberFormat = getActualNumberFormat;\n /**\n *\n * @param {string} pattern ?\n * @param {number} minDigits ?\n * @param {number} maxDigits ?\n * @returns {string} ?\n */\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\n pattern += '.';\n for (var a = 0; a < minDigits; a++) {\n pattern += '0';\n }\n if (minDigits < maxDigits) {\n var diff = maxDigits - minDigits;\n for (var b = 0; b < diff; b++) {\n pattern += '#';\n }\n }\n return pattern;\n }\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\n /**\n *\n * @param {string} pattern ?\n * @param {number} digits ?\n * @returns {string} ?\n */\n function minimumIntegerPattern(pattern, digits) {\n var temp = pattern.split('.');\n var integer = '';\n for (var x = 0; x < digits; x++) {\n integer += '0';\n }\n return temp[1] ? (integer + '.' + temp[1]) : integer;\n }\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\n /**\n *\n * @param {string} pattern ?\n * @returns {string} ?\n */\n function groupingPattern(pattern) {\n var temp = pattern.split('.');\n var integer = temp[0];\n var no = 3 - integer.length % 3;\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\n integer = hash + integer;\n pattern = '';\n for (var x = integer.length - 1; x > 0; x = x - 3) {\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;\n }\n pattern = pattern.slice(1);\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\n }\n IntlBase.groupingPattern = groupingPattern;\n /**\n *\n * @param {string} culture ?\n * @param {Object} cldr ?\n * @returns {number} ?\n */\n function getWeekData(culture, cldr) {\n var firstDay = defaultFirstDay;\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\n var iCulture = culture;\n if ((/en-/).test(iCulture)) {\n iCulture = iCulture.slice(3);\n }\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\n if (mapper) {\n firstDay = mapper[\"\" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;\n }\n return firstDayMapper[\"\" + firstDay];\n }\n IntlBase.getWeekData = getWeekData;\n /**\n * @private\n * @param {any} pData ?\n * @param {string} aCurrency ?\n * @param {string} rCurrency ?\n * @returns {void} ?\n */\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\n if (aCurrency !== iCurrency) {\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\n var data = pData_1[_i];\n data.nend = data.nend.replace(aCurrency, iCurrency);\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\n }\n }\n }\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\n /**\n * @private\n * @param {Date} date ?\n * @returns {number} ?\n */\n function getWeekOfYear(date) {\n var newYear = new Date(date.getFullYear(), 0, 1);\n var day = newYear.getDay();\n var weeknum;\n day = (day >= 0 ? day : day + 7);\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\n if (day < 4) {\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\n if (weeknum > 52) {\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\n var nday = nYear.getDay();\n nday = nday >= 0 ? nday : nday + 7;\n weeknum = nday < 4 ? 1 : 53;\n }\n }\n else {\n weeknum = Math.floor((daynum + day - 1) / 7);\n }\n return weeknum;\n }\n IntlBase.getWeekOfYear = getWeekOfYear;\n})(IntlBase || (IntlBase = {}));\n","import { isNullOrUndefined, merge } from './util';\nvar headerRegex = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm;\nvar defaultType = 'GET';\n/**\n * Ajax class provides ability to make asynchronous HTTP request to the server\n * ```typescript\n * var ajax = new Ajax(\"index.html\", \"GET\", true);\n * ajax.send().then(\n * function (value) {\n * console.log(value);\n * },\n * function (reason) {\n * console.log(reason);\n * });\n * ```\n */\nvar Ajax = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n *\n * @param {string|Object} options ?\n * @param {string} type ?\n * @param {boolean} async ?\n * @returns defaultType any\n */\n function Ajax(options, type, async, contentType) {\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n */\n this.mode = true;\n /**\n * A boolean value indicating whether to ignore the promise reject.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n this.options = {};\n if (typeof options === 'string') {\n this.url = options;\n this.type = type ? type.toUpperCase() : defaultType;\n this.mode = !isNullOrUndefined(async) ? async : true;\n }\n else if (typeof options === 'object') {\n this.options = options;\n merge(this, this.options);\n }\n this.type = this.type ? this.type.toUpperCase() : defaultType;\n this.contentType = (this.contentType !== undefined) ? this.contentType : contentType;\n }\n /**\n *\n * Send the request to server.\n *\n * @param {any} data - To send the user data\n * @returns {Promise} ?\n */\n Ajax.prototype.send = function (data) {\n var _this = this;\n this.data = isNullOrUndefined(data) ? this.data : data;\n var eventArgs = {\n cancel: false,\n httpRequest: null\n };\n var promise = new Promise(function (resolve, reject) {\n _this.httpRequest = new XMLHttpRequest();\n _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); };\n if (!isNullOrUndefined(_this.onLoad)) {\n _this.httpRequest.onload = _this.onLoad;\n }\n if (!isNullOrUndefined(_this.onProgress)) {\n _this.httpRequest.onprogress = _this.onProgress;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onAbort)) {\n _this.httpRequest.onabort = _this.onAbort;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onError)) {\n _this.httpRequest.onerror = _this.onError;\n }\n //** Upload Events **/\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onUploadProgress)) {\n _this.httpRequest.upload.onprogress = _this.onUploadProgress;\n }\n _this.httpRequest.open(_this.type, _this.url, _this.mode);\n // Set default headers\n if (!isNullOrUndefined(_this.data) && _this.contentType !== null) {\n _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8');\n }\n if (_this.beforeSend) {\n eventArgs.httpRequest = _this.httpRequest;\n _this.beforeSend(eventArgs);\n }\n if (!eventArgs.cancel) {\n _this.httpRequest.send(!isNullOrUndefined(_this.data) ? _this.data : null);\n }\n });\n return promise;\n };\n Ajax.prototype.successHandler = function (data) {\n if (this.onSuccess) {\n this.onSuccess(data, this);\n }\n return data;\n };\n Ajax.prototype.failureHandler = function (reason) {\n if (this.onFailure) {\n this.onFailure(this.httpRequest);\n }\n return reason;\n };\n Ajax.prototype.stateChange = function (resolve, reject) {\n var data = this.httpRequest.responseText;\n if (this.dataType && this.dataType.toLowerCase() === 'json') {\n if (data === '') {\n data = undefined;\n }\n else {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // no exception handle\n }\n }\n }\n if (this.httpRequest.readyState === 4) {\n //success range should be 200 to 299\n if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) {\n resolve(this.successHandler(data));\n }\n else {\n if (this.emitError) {\n reject(new Error(this.failureHandler(this.httpRequest.statusText)));\n }\n else {\n resolve();\n }\n }\n }\n };\n /**\n * To get the response header from XMLHttpRequest\n *\n * @param {string} key Key to search in the response header\n * @returns {string} ?\n */\n Ajax.prototype.getResponseHeader = function (key) {\n var responseHeaders = {};\n var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n while (headers) {\n responseHeaders[headers[1].toLowerCase()] = headers[2];\n headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n }\n var header = responseHeaders[key.toLowerCase()];\n return isNullOrUndefined(header) ? null : header;\n };\n return Ajax;\n}());\nexport { Ajax };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNullOrUndefined as isNOU, isObject, merge } from './util';\n/**\n * The Fetch class provides a way to make asynchronous network requests, typically to retrieve resources from a server.\n * ```typescript\n * var fetchApi = new Fetch('index.html', 'GET');\n * fetchApi.send()\n * .then((value) => {\n * console.log(value);\n * }).catch((error) => {\n * console.log(error);\n * });\n * ```\n */\nvar Fetch = /** @class */ (function () {\n /**\n * Constructor for Fetch class.\n *\n * @param {string|Object} options - Specifies the URL or Request object with URL to which the request is to be sent.\n * @param {string} type - Specifies which request method is to be used, such as GET, POST, etc.\n * @param {string} contentType - Specifies the content type of the request, which is used to indicate the original media type of the resource.\n */\n function Fetch(options, type, contentType) {\n /**\n * Specifies which request method is to be used, such as GET, POST, etc.\n *\n * @default GET\n */\n this.type = 'GET';\n /**\n * A boolean value indicating whether to reject the promise or not.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n if (typeof options === 'string') {\n this.url = options;\n this.type = !isNOU(type) ? type.toUpperCase() : this.type;\n this.contentType = contentType;\n }\n else if (isObject(options) && Object.keys(options).length > 0) {\n merge(this, options);\n }\n this.contentType = !isNOU(this.contentType) ? this.contentType : 'application/json; charset=utf-8';\n }\n /**\n * Send the request to server.\n *\n * @param {string|Object} data - Specifies the data that needs to be added to the request.\n * @returns {Promise} - Returns the response to a request.\n */\n Fetch.prototype.send = function (data) {\n var _this = this;\n var contentTypes = {\n 'application/json': 'json',\n 'multipart/form-data': 'formData',\n 'application/octet-stream': 'blob',\n 'application/x-www-form-urlencoded': 'formData'\n };\n try {\n if (isNOU(this.fetchRequest) && this.type === 'GET') {\n this.fetchRequest = new Request(this.url, { method: this.type });\n }\n else if (isNOU(this.fetchRequest)) {\n this.data = !isNOU(data) ? data : this.data;\n this.fetchRequest = new Request(this.url, {\n method: this.type,\n headers: { 'Content-Type': this.contentType },\n body: this.data\n });\n }\n var eventArgs = { cancel: false, fetchRequest: this.fetchRequest };\n this.triggerEvent(this['beforeSend'], eventArgs);\n if (eventArgs.cancel) {\n return null;\n }\n this.fetchResponse = fetch(this.fetchRequest);\n return this.fetchResponse.then(function (response) {\n _this.triggerEvent(_this['onLoad'], response);\n if (!response.ok) {\n throw response;\n }\n var responseType = 'text';\n for (var _i = 0, _a = Object.keys(contentTypes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (response.headers.get('Content-Type') && response.headers.get('Content-Type').indexOf(key) !== -1) {\n responseType = contentTypes[key];\n }\n }\n return response[responseType]();\n }).then(function (data) {\n _this.triggerEvent(_this['onSuccess'], data, _this);\n return data;\n }).catch(function (error) {\n var returnVal = {};\n if (_this.emitError) {\n _this.triggerEvent(_this['onFailure'], error);\n returnVal = Promise.reject(error);\n }\n return returnVal;\n });\n }\n catch (error) {\n return error;\n }\n };\n Fetch.prototype.triggerEvent = function (callback, data, instance) {\n if (!isNOU(callback) && typeof callback === 'function') {\n callback(data, instance);\n }\n };\n return Fetch;\n}());\nexport { Fetch };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n if (Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {string} ?\n */\n Browser.getEvent = function (event) {\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true && !REGX_BROWSER.CHROME.test(navigator.userAgent)) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n // Set 'isPointer' for pointer-enabled devices (e.g., iPad on Safari)\n browserDetails['isPointer'] = ('pointerEnabled' in window.navigator);\n }\n if (typeof window !== 'undefined' && window.Capacitor && window.Capacitor.getPlatform() === 'ios') {\n browserDetails['isPointer'] = false;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { debounce, extend } from './util';\nimport { Browser } from './browser';\n/**\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\n * ```html\n *
    \n * \n * ```\n */\nvar EventHandler = /** @class */ (function () {\n function EventHandler() {\n }\n // to get the event data based on element\n EventHandler.addOrGetEventData = function (element) {\n if ('__eventList' in element) {\n return element.__eventList.events;\n }\n else {\n element.__eventList = {};\n return element.__eventList.events = [];\n }\n };\n /**\n * Add an event to the specified DOM element.\n *\n * @param {any} element - Target HTML DOM element\n * @param {string} eventName - A string that specifies the name of the event\n * @param {Function} listener - Specifies the function to run when the event occurs\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\n * @returns {Function} ?\n */\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\n var eventData = EventHandler.addOrGetEventData(element);\n var debounceListener;\n if (intDebounce) {\n debounceListener = debounce(listener, intDebounce);\n }\n else {\n debounceListener = listener;\n }\n if (bindTo) {\n debounceListener = debounceListener.bind(bindTo);\n }\n var event = eventName.split(' ');\n for (var i = 0; i < event.length; i++) {\n eventData.push({\n name: event[parseInt(i.toString(), 10)],\n listener: listener,\n debounce: debounceListener\n });\n if (Browser.isIE) {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);\n }\n else {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });\n }\n }\n return debounceListener;\n };\n /**\n * Remove an event listener that has been attached before.\n *\n * @param {any} element - Specifies the target html element to remove the event\n * @param {string} eventName - A string that specifies the name of the event to remove\n * @param {Function} listener - Specifies the function to remove\n * @returns {void} ?\n */\n EventHandler.remove = function (element, eventName, listener) {\n var eventData = EventHandler.addOrGetEventData(element);\n var event = eventName.split(' ');\n var _loop_1 = function (j) {\n var index = -1;\n var debounceListener;\n if (eventData && eventData.length !== 0) {\n eventData.some(function (x, i) {\n return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?\n (index = i, debounceListener = x.debounce, true) : false;\n });\n }\n if (index !== -1) {\n eventData.splice(index, 1);\n }\n if (debounceListener) {\n element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);\n }\n };\n for (var j = 0; j < event.length; j++) {\n _loop_1(j);\n }\n };\n /**\n * Clear all the event listeners that has been previously attached to the element.\n *\n * @param {any} element - Specifies the target html element to clear the events\n * @returns {void} ?\n */\n EventHandler.clearEvents = function (element) {\n var eventData = EventHandler.addOrGetEventData(element);\n var copyData = extend([], undefined, eventData);\n for (var i = 0; i < copyData.length; i++) {\n var parseValue = copyData[parseInt(i.toString(), 10)];\n element.removeEventListener(parseValue.name, parseValue.debounce);\n eventData.shift();\n }\n };\n /**\n * Trigger particular event of the element.\n *\n * @param {any} element - Specifies the target html element to trigger the events\n * @param {string} eventName - Specifies the event to trigger for the specified element.\n * Can be a custom event, or any of the standard events.\n * @param {any} eventProp - Additional parameters to pass on to the event properties\n * @returns {void} ?\n */\n EventHandler.trigger = function (element, eventName, eventProp) {\n var eventData = EventHandler.addOrGetEventData(element);\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\n var event_1 = eventData_1[_i];\n if (event_1.name === eventName) {\n event_1.debounce.call(this, eventProp);\n }\n }\n };\n return EventHandler;\n}());\nexport { EventHandler };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Functions related to dom operations.\n */\nimport { EventHandler } from './event-handler';\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\nvar SVG_REG = /^svg|^path|^g/;\n/**\n * Function to create Html element.\n *\n * @param {string} tagName - Name of the tag, id and class names.\n * @param {ElementProperties} properties - Object to set properties in the element.\n * @param {ElementProperties} properties.id - To set the id to the created element.\n * @param {ElementProperties} properties.className - To add classes to the element.\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\n * @returns {any} ?\n * @private\n */\nexport function createElement(tagName, properties) {\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\n if (typeof (properties) === 'undefined') {\n return element;\n }\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\n if (properties.className !== undefined) {\n element.className = properties.className;\n }\n if (properties.id !== undefined) {\n element.id = properties.id;\n }\n if (properties.styles !== undefined) {\n element.setAttribute('style', properties.styles);\n }\n if (properties.attrs !== undefined) {\n attributes(element, properties.attrs);\n }\n return element;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function addClass(elements, classes) {\n var classList = getClassList(classes);\n var regExp = RegExp;\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\n var className = classList_1[_b];\n if (isObject(ele)) {\n var curClass = getValue('attributes.className', ele);\n if (isNullOrUndefined(curClass)) {\n setValue('attributes.className', className, ele);\n }\n else if (!new regExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\n setValue('attributes.className', curClass + ' ' + className, ele);\n }\n }\n else {\n if (!ele.classList.contains(className)) {\n ele.classList.add(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function removeClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n var flag = isObject(ele);\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\n if (canRemove) {\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\n var className = classList_2[_b];\n if (flag) {\n var classes_1 = getValue('attributes.className', ele);\n var classArr = classes_1.split(' ');\n var index = classArr.indexOf(className);\n if (index !== -1) {\n classArr.splice(index, 1);\n }\n setValue('attributes.className', classArr.join(' '), ele);\n }\n else {\n ele.classList.remove(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to get classlist.\n *\n * @param {string | string[]} classes - An element the need to check visibility\n * @returns {string[]} ?\n * @private\n */\nfunction getClassList(classes) {\n var classList = [];\n if (typeof classes === 'string') {\n classList.push(classes);\n }\n else {\n classList = classes;\n }\n return classList;\n}\n/**\n * The function used to check element is visible or not.\n *\n * @param {Element|Node} element - An element the need to check visibility\n * @returns {boolean} ?\n * @private\n */\nexport function isVisible(element) {\n var ele = element;\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\n}\n/**\n * The function used to insert an array of elements into a first of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function prepend(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.insertBefore(docFrag, toElement.firstElementChild);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function used to insert an array of elements into last of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function append(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n }\n toElement.appendChild(docFrag);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function is used to evaluate script from Ajax request\n *\n * @param {Element} ele - An element is going to evaluate the script\n * @returns {void} ?\n */\nfunction executeScript(ele) {\n var eleArray = ele.querySelectorAll('script');\n eleArray.forEach(function (element) {\n var script = document.createElement('script');\n script.text = element.innerHTML;\n document.head.appendChild(script);\n detach(script);\n });\n}\n/**\n * The function used to remove the element from parentnode\n *\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\n * @returns {any} ?\n * @private\n */\nexport function detach(element) {\n var parentNode = element.parentNode;\n if (parentNode) {\n return parentNode.removeChild(element);\n }\n}\n/**\n * The function used to remove the element from Dom also clear the bounded events\n *\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\n * @returns {void} ?\n * @private\n */\nexport function remove(element) {\n var parentNode = element.parentNode;\n EventHandler.clearEvents(element);\n parentNode.removeChild(element);\n}\n/**\n * The function helps to set multiple attributes to an element\n *\n * @param {Element|Node} element - An element that need to set attributes.\n * @param {string} attributes - JSON Object that is going to as attributes.\n * @returns {Element} ?\n * @private\n */\nexport function attributes(element, attributes) {\n var keys = Object.keys(attributes);\n var ele = element;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (isObject(ele)) {\n var iKey = key;\n if (key === 'tabindex') {\n iKey = 'tabIndex';\n }\n ele.attributes[\"\" + iKey] = attributes[\"\" + key];\n }\n else {\n ele.setAttribute(key, attributes[\"\" + key]);\n }\n }\n return ele;\n}\n/**\n * The function selects the element from giving context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {any} ?\n * @private\n */\nexport function select(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n return context.querySelector(selector);\n}\n/**\n * The function selects an array of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {HTMLElement[]} ?\n * @private\n */\nexport function selectAll(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n var nodeList = context.querySelectorAll(selector);\n return nodeList;\n}\n/**\n * The function selects an id of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @returns {string} ?\n * @private\n */\nfunction querySelectId(selector) {\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\n var idList = selector.split(',');\n for (var i = 0; i < idList.length; i++) {\n var list = idList[parseInt(i.toString(), 10)].split(' ');\n for (var j = 0; j < list.length; j++) {\n if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {\n if (!list[parseInt(j.toString(), 10)].match(/\\[.*\\]/)) {\n var splitId = list[parseInt(j.toString(), 10)].split('#');\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\n var setId = list[parseInt(j.toString(), 10)].split('.');\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\n list[parseInt(j.toString(), 10)] = setId.join('.');\n }\n }\n }\n }\n idList[parseInt(i.toString(), 10)] = list.join(' ');\n }\n return idList.join(',');\n }\n return selector;\n}\n/**\n * Returns single closest parent element based on class selector.\n *\n * @param {Element} element - An element that need to find the closest element.\n * @param {string} selector - A classSelector of closest element.\n * @returns {Element} ?\n * @private\n */\nexport function closest(element, selector) {\n var el = element;\n if (typeof el.closest === 'function') {\n return el.closest(selector);\n }\n while (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n}\n/**\n * Returns all sibling elements of the given element.\n *\n * @param {Element|Node} element - An element that need to get siblings.\n * @returns {Element[]} ?\n * @private\n */\nexport function siblings(element) {\n var siblings = [];\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\n var curNode = childNodes_1[_i];\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\n siblings.push(curNode);\n }\n }\n return siblings;\n}\n/**\n * set the value if not exist. Otherwise set the existing value\n *\n * @param {HTMLElement} element - An element to which we need to set value.\n * @param {string} property - Property need to get or set.\n * @param {string} value - value need to set.\n * @returns {string} ?\n * @private\n */\nexport function getAttributeOrDefault(element, property, value) {\n var attrVal;\n var isObj = isObject(element);\n if (isObj) {\n attrVal = getValue('attributes.' + property, element);\n }\n else {\n attrVal = element.getAttribute(property);\n }\n if (isNullOrUndefined(attrVal) && value) {\n if (!isObj) {\n element.setAttribute(property, value.toString());\n }\n else {\n element.attributes[\"\" + property] = value;\n }\n attrVal = value;\n }\n return attrVal;\n}\n/**\n * Set the style attributes to Html element.\n *\n * @param {HTMLElement} element - Element which we want to set attributes\n * @param {any} attrs - Set the given attributes to element\n * @returns {void} ?\n * @private\n */\nexport function setStyleAttribute(element, attrs) {\n if (attrs !== undefined) {\n Object.keys(attrs).forEach(function (key) {\n element.style[\"\" + key] = attrs[\"\" + key];\n });\n }\n}\n/**\n * Method for add and remove classes to a dom element.\n *\n * @param {Element} element - Element for add and remove classes\n * @param {string[]} addClasses - List of classes need to be add to the element\n * @param {string[]} removeClasses - List of classes need to be remove from the element\n * @returns {void} ?\n * @private\n */\nexport function classList(element, addClasses, removeClasses) {\n addClass([element], addClasses);\n removeClass([element], removeClasses);\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Element} element - Element to compare with the selector.\n * @param {string} selector - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function matches(element, selector) {\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (matches) {\n return matches.call(element, selector);\n }\n else {\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\n }\n}\n/**\n * Method to get the html text from DOM.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} innerHTML - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function includeInnerHTML(ele, innerHTML) {\n ele.innerHTML = innerHTML;\n}\n/**\n * Method to get the containsclass.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} className - String selector which element will satisfy.\n * @returns {any} ?\n * @private\n */\nexport function containsClass(ele, className) {\n if (isObject(ele)) {\n var regExp = RegExp;\n return new regExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\n }\n else {\n return ele.classList.contains(className);\n }\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Object} element - Element to compare with the selector.\n * @param {boolean} deep ?\n * @returns {any} ?\n * @private\n */\nexport function cloneNode(element, deep) {\n if (isObject(element)) {\n if (deep) {\n return extend({}, {}, element, true);\n }\n }\n else {\n return element.cloneNode(deep);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n * @returns {void} ?\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line camelcase\n this.element.ej2_instances =\n this.element.ej2_instances ?\n this.element.ej2_instances.filter(function (i) {\n if (proxyToRaw) {\n return proxyToRaw(i) !== proxyToRaw(_this);\n }\n return i !== _this;\n })\n : [];\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @returns {void} ?\n * @private\n */\nexport function removeChildInstance(element) {\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\nexport var proxyToRaw;\nexport var setProxyToRaw = function (toRaw) { proxyToRaw = toRaw; };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createInstance, isUndefined, merge, extend, getValue } from './util';\n/**\n * Returns the Class Object\n *\n * @param {ClassObject} instance - instance of ClassObject\n * @param {string} curKey - key of the current instance\n * @param {Object} defaultValue - default Value\n * @param {Object[]} type ?\n * @returns {ClassObject} ?\n */\nfunction getObject(instance, curKey, defaultValue, type) {\n if (!Object.prototype.hasOwnProperty.call(instance.properties, curKey) || !(instance.properties[\"\" + curKey] instanceof type)) {\n instance.properties[\"\" + curKey] = createInstance(type, [instance, curKey, defaultValue]);\n }\n return instance.properties[\"\" + curKey];\n}\n/**\n * Returns object array\n *\n * @param {ClassObject} instance ?\n * @param {string} curKey ?\n * @param {Object[]} defaultValue ?\n * @param {Object} type ?\n * @param {boolean} isSetter ?\n * @param {boolean} isFactory ?\n * @returns {Object[]} ?\n */\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\n var result = [];\n var len = defaultValue ? defaultValue.length : 0;\n for (var i = 0; i < len; i++) {\n var curType = type;\n if (isFactory) {\n curType = type(defaultValue[parseInt(i.toString(), 10)], instance);\n }\n if (isSetter) {\n var inst = createInstance(curType, [instance, curKey, {}, true]);\n inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);\n result.push(inst);\n }\n else {\n result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));\n }\n }\n return result;\n}\n/**\n * Returns the properties of the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertyGetter(defaultValue, curKey) {\n return function () {\n if (!Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n this.properties[\"\" + curKey] = defaultValue;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n * Set the properties for the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertySetter(defaultValue, curKey) {\n return function (newValue) {\n if (this.properties[\"\" + curKey] !== newValue) {\n var oldVal = Object.prototype.hasOwnProperty.call(this.properties, curKey) ? this.properties[\"\" + curKey] : defaultValue;\n this.saveChanges(curKey, newValue, oldVal);\n this.properties[\"\" + curKey] = newValue;\n }\n };\n}\n/**\n * Returns complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexGetter(defaultValue, curKey, type) {\n return function () {\n return getObject(this, curKey, defaultValue, type);\n };\n}\n/**\n * Sets complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexSetter(defaultValue, curKey, type) {\n return function (newValue) {\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n if (Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n return this.properties[\"\" + curKey];\n }\n else {\n return getObject(this, curKey, defaultValue, curType);\n }\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var curType = type(newValue, this);\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayGetter(defaultValue, curKey, type) {\n return function () {\n var _this = this;\n if (!Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\n || this.ignoreCollectionWatch);\n if (!Object.prototype.hasOwnProperty.call(this.properties[\"\" + curKey], 'push') && !ignore) {\n ['push', 'pop'].forEach(function (extendFunc) {\n var descriptor = {\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[\"\" + curKey]).bind(_this),\n configurable: true\n };\n Object.defineProperty(_this.properties[\"\" + curKey], extendFunc, descriptor);\n });\n }\n if (!Object.prototype.hasOwnProperty.call(this.properties[\"\" + curKey], 'isComplexArray')) {\n Object.defineProperty(this.properties[\"\" + curKey], 'isComplexArray', { value: true });\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArraySetter(defaultValue, curKey, type) {\n return function (newValue) {\n this.isComplexArraySetter = true;\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\n this.isComplexArraySetter = false;\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var oldValueCollection = Object.prototype.hasOwnProperty.call(this.properties, curKey) ? this.properties[\"\" + curKey] : defaultValue;\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n if (!Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {string} dFunc ?\n * @param {string} curKey ?\n * @param {Object} type ?\n * @param {Object} prop ?\n * @returns {Object} ?\n */\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\n return function () {\n var newValue = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newValue[_i] = arguments[_i];\n }\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\n switch (dFunc) {\n case 'push':\n for (var i = 0; i < newValue.length; i++) {\n var newValueParse = newValue[parseInt(i.toString(), 10)];\n Array.prototype[\"\" + dFunc].apply(prop, [newValueParse]);\n var model = getArrayModel(keyString + (prop.length - 1), newValueParse, !this.controlParent, dFunc);\n this.serverDataBind(model, newValue[parseInt(i.toString(), 10)], false, dFunc);\n }\n break;\n case 'pop': {\n Array.prototype[\"\" + dFunc].apply(prop);\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\n break;\n }\n }\n return prop;\n };\n}\n/**\n *\n * @param {string} keyString ?\n * @param {Object} value ?\n * @param {boolean} isControlParent ?\n * @param {string} arrayFunction ?\n * @returns {Object} ?\n */\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\n var modelObject = keyString;\n if (isControlParent) {\n modelObject = {};\n modelObject[\"\" + keyString] = value;\n if (value && typeof value === 'object') {\n var action = 'ejsAction';\n modelObject[\"\" + keyString][\"\" + action] = arrayFunction;\n }\n }\n return modelObject;\n}\n/**\n * Method used to create property. General syntax below.\n *\n * @param {Object} defaultValue - Specifies the default value of property.\n * @returns {PropertyDecorator} ?\n * @private\n */\nexport function Property(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: propertySetter(defaultValue, key),\n get: propertyGetter(defaultValue, key),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'prop', defaultValue);\n };\n}\n/**\n * Method used to create complex property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Complex({},Type)\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Complex(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexSetter(defaultValue, key, type),\n get: complexGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex Factory property. General syntax below.\n *\n * @param {Function} type - Specifies the class factory type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @ComplexFactory(defaultType, factoryFunction)\n * propertyName: Type1 | Type2;\n * ```\n * @private\n */\nexport function ComplexFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexFactorySetter({}, key, type),\n get: complexFactoryGetter({}, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', {}, type);\n };\n}\n/**\n * Method used to create complex array property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Collection(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArraySetter(defaultValue, key, type),\n get: complexArrayGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex factory array property. General syntax below.\n *\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyCollectionInfo} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function CollectionFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArrayFactorySetter([], key, type),\n get: complexArrayFactoryGetter([], key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', {}, type);\n };\n}\n/**\n * Method used to create event property. General syntax below.\n *\n * @returns {PropertyDecorator} ?\n * ```\n * @Event(()=>{return true;})\n * ```\n * @private\n */\nexport function Event() {\n return function (target, key) {\n var eventDescriptor = {\n set: function (newValue) {\n var oldValue = this.properties[\"\" + key];\n if (oldValue !== newValue) {\n var finalContext = getParentContext(this, key);\n if (isUndefined(oldValue) === false) {\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\n }\n finalContext.context.addEventListener(finalContext.prefix, newValue);\n this.properties[\"\" + key] = newValue;\n }\n },\n get: propertyGetter(undefined, key),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, eventDescriptor);\n addPropertyCollection(target, key, 'event');\n };\n}\n/**\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\n *\n * @param {Function} classConstructor ?\n * @returns {void} ?\n * @private\n */\nexport function NotifyPropertyChanges(classConstructor) {\n /** Need to code */\n}\n/**\n * Method used to create the builderObject for the target component.\n *\n * @param {BuildInfo} target ?\n * @param {string} key ?\n * @param {string} propertyType ?\n * @param {Object} defaultValue ?\n * @param {Function} type ?\n * @returns {void} ?\n * @private\n */\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\n if (isUndefined(target.propList)) {\n target.propList = {\n props: [],\n complexProps: [],\n colProps: [],\n events: [],\n propNames: [],\n complexPropNames: [],\n colPropNames: [],\n eventNames: []\n };\n }\n target.propList[propertyType + 's'].push({\n propertyName: key,\n defaultValue: defaultValue,\n type: type\n });\n target.propList[propertyType + 'Names'].push(key);\n}\n/**\n * Returns an object containing the builder properties\n *\n * @param {Function} component ?\n * @returns {Object} ?\n * @private\n */\nfunction getBuilderProperties(component) {\n if (isUndefined(component.prototype.builderObject)) {\n component.prototype.builderObject = {\n properties: {}, propCollections: [], add: function () {\n this.isPropertyArray = true;\n this.propCollections.push(extend({}, this.properties, {}));\n }\n };\n var rex = /complex/;\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\n var key = _a[_i];\n var _loop_1 = function (prop) {\n if (rex.test(key)) {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n var childType = {};\n merge(childType, getBuilderProperties(prop.type));\n value(childType);\n var tempValue;\n if (!childType.isPropertyArray) {\n tempValue = extend({}, childType.properties, {});\n }\n else {\n tempValue = childType.propCollections;\n }\n this.properties[prop.propertyName] = tempValue;\n childType.properties = {};\n childType.propCollections = [];\n childType.isPropertyArray = false;\n return this;\n };\n }\n else {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n this.properties[prop.propertyName] = value;\n return this;\n };\n }\n };\n for (var _b = 0, _c = component.prototype.propList[\"\" + key]; _b < _c.length; _b++) {\n var prop = _c[_b];\n _loop_1(prop);\n }\n }\n }\n return component.prototype.builderObject;\n}\n/**\n * Method used to create builder for the components\n *\n * @param {any} component -specifies the target component for which builder to be created.\n * @returns {Object} ?\n * @private\n */\nexport function CreateBuilder(component) {\n var builderFunction = function (element) {\n this.element = element;\n return this;\n };\n var instanceFunction = function (element) {\n if (!Object.prototype.hasOwnProperty.call(builderFunction, 'create')) {\n builderFunction.prototype = getBuilderProperties(component);\n builderFunction.prototype.create = function () {\n var temp = extend({}, {}, this.properties);\n this.properties = {};\n return new component(temp, this.element);\n };\n }\n return new builderFunction(element);\n };\n return instanceFunction;\n}\n/**\n * Returns parent options for the object\n *\n * @param {Object} context ?\n * @param {string} prefix ?\n * @returns {ParentOption} ?\n * @private\n */\nfunction getParentContext(context, prefix) {\n if (Object.prototype.hasOwnProperty.call(context, 'parentObj') === false) {\n return { context: context, prefix: prefix };\n }\n else {\n var curText = getValue('propName', context);\n if (curText) {\n prefix = curText + '-' + prefix;\n }\n return getParentContext(getValue('parentObj', context), prefix);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { createElement, selectAll, closest } from './dom';\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { EventHandler } from './event-handler';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\n/**\n * The Animation framework provide options to animate the html DOM elements\n * ```typescript\n * let animeObject = new Animation({\n * name: 'SlideLeftIn',\n * duration: 1000\n * });\n * animeObject.animate('#anime1');\n * animeObject.animate('#anime2', { duration: 500 });\n * ```\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(options) {\n var _this = _super.call(this, options, undefined) || this;\n /**\n * @private\n */\n _this.easing = {\n ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)',\n linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)',\n easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)',\n easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)',\n easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)',\n elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)',\n elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)',\n elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)'\n };\n return _this;\n }\n Animation_1 = Animation;\n /**\n * Applies animation to the current element.\n *\n * @param {string | HTMLElement} element - Element which needs to be animated.\n * @param {AnimationModel} options - Overriding default animation settings.\n * @returns {void} ?\n */\n Animation.prototype.animate = function (element, options) {\n options = !options ? {} : options;\n var model = this.getModel(options);\n if (typeof element === 'string') {\n var elements = Array.prototype.slice.call(selectAll(element, document));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element_1 = elements_1[_i];\n model.element = element_1;\n Animation_1.delayAnimation(model);\n }\n }\n else {\n model.element = element;\n Animation_1.delayAnimation(model);\n }\n };\n /**\n * Stop the animation effect on animated element.\n *\n * @param {HTMLElement} element - Element which needs to be stop the animation.\n * @param {AnimationOptions} model - Handling the animation model at stop function.\n * @returns {void}\n */\n Animation.stop = function (element, model) {\n element.style.animation = '';\n element.removeAttribute('e-animate');\n var animationId = element.getAttribute('e-animation-id');\n if (animationId) {\n var frameId = parseInt(animationId, 10);\n cancelAnimationFrame(frameId);\n element.removeAttribute('e-animation-id');\n }\n if (model && model.end) {\n model.end.call(this, model);\n }\n };\n /**\n * Set delay to animation element\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.delayAnimation = function (model) {\n if (animationMode === 'Disable' || animationMode === GlobalAnimationMode.Disable) {\n if (model.begin) {\n model.begin.call(this, model);\n }\n if (model.end) {\n model.end.call(this, model);\n }\n }\n else {\n if (model.delay) {\n setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);\n }\n else {\n Animation_1.applyAnimation(model);\n }\n }\n };\n /**\n * Triggers animation\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.applyAnimation = function (model) {\n var _this = this;\n model.timeStamp = 0;\n var step = 0;\n var timerId = 0;\n var prevTimeStamp = 0;\n var duration = model.duration;\n model.element.setAttribute('e-animate', 'true');\n var startAnimation = function (timeStamp) {\n try {\n if (timeStamp) {\n // let step: number = model.timeStamp = timeStamp - startTime;\n /** phantomjs workaround for timestamp fix */\n prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp;\n model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp;\n prevTimeStamp = timeStamp;\n /** phantomjs workaround end */\n // trigger animation begin event\n if (!step && model.begin) {\n model.begin.call(_this, model);\n }\n step = step + 1;\n var avg = model.timeStamp / step;\n if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) {\n // apply animation effect to the current element\n model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction;\n if (model.progress) {\n model.progress.call(_this, model);\n }\n // repeat requestAnimationFrame\n requestAnimationFrame(startAnimation);\n }\n else {\n // clear requestAnimationFrame\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n model.element.removeAttribute('e-animate');\n model.element.style.animation = '';\n if (model.end) {\n model.end.call(_this, model);\n }\n }\n }\n else {\n //startTime = performance.now();\n // set initial requestAnimationFrame\n timerId = requestAnimationFrame(startAnimation);\n model.element.setAttribute('e-animation-id', timerId.toString());\n }\n }\n catch (e) {\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n if (model.fail) {\n model.fail.call(_this, e);\n }\n }\n };\n startAnimation();\n };\n /**\n * Returns Animation Model\n *\n * @param {AnimationModel} options ?\n * @returns {AnimationModel} ?\n */\n Animation.prototype.getModel = function (options) {\n return {\n name: options.name || this.name,\n delay: options.delay || this.delay,\n duration: (options.duration !== undefined ? options.duration : this.duration),\n begin: options.begin || this.begin,\n end: options.end || this.end,\n fail: options.fail || this.fail,\n progress: options.progress || this.progress,\n timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] :\n (options.timingFunction || this.easing[this.timingFunction])\n };\n };\n /**\n * @private\n * @param {AnimationModel} newProp ?\n * @param {AnimationModel} oldProp ?\n * @returns {void} ?\n */\n Animation.prototype.onPropertyChanged = function (newProp, oldProp) {\n // no code needed\n };\n /**\n * Returns module name as animation\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.getModuleName = function () {\n return 'animation';\n };\n /**\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.destroy = function () {\n //Override base destroy;\n };\n var Animation_1;\n __decorate([\n Property('FadeIn')\n ], Animation.prototype, \"name\", void 0);\n __decorate([\n Property(400)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], Animation.prototype, \"timingFunction\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"fail\", void 0);\n Animation = Animation_1 = __decorate([\n NotifyPropertyChanges\n ], Animation);\n return Animation;\n}(Base));\nexport { Animation };\n/**\n * Ripple provides material theme's wave effect when an element is clicked\n * ```html\n *
    \n * \n * ```\n *\n * @private\n * @param {HTMLElement} element - Target element\n * @param {RippleOptions} rippleOptions - Ripple options .\n * @param {Function} done .\n * @returns {void} .\n */\nexport function rippleEffect(element, rippleOptions, done) {\n var rippleModel = getRippleModel(rippleOptions);\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\n return (function () {\n // do nothing.\n });\n }\n element.setAttribute('data-ripple', 'true');\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n if (Browser.isPointer) {\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n }\n return (function () {\n element.removeAttribute('data-ripple');\n EventHandler.remove(element, 'mousedown', rippleHandler);\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\n });\n}\n/**\n * Handler for ripple model\n *\n * @param {RippleOptions} rippleOptions ?\n * @returns {RippleOptions} ?\n */\nfunction getRippleModel(rippleOptions) {\n var rippleModel = {\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\n };\n return rippleModel;\n}\n/**\n * Handler for ripple event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleHandler(e) {\n var target = (e.target);\n var selector = this.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\n return;\n }\n var offset = element.getBoundingClientRect();\n var offsetX = e.pageX - document.body.scrollLeft;\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\n document.documentElement.scrollTop : document.body.scrollTop);\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\n var diameter = radius * 2 + 'px';\n var x = offsetX - offset.left - radius;\n var y = offsetY - offset.top - radius;\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\n x = 0;\n y = 0;\n diameter = '100%';\n }\n element.classList.add('e-ripple');\n var duration = this.rippleOptions.duration.toString();\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\n 'transition-duration: ' + duration + 'ms;';\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\n element.appendChild(rippleElement);\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\n rippleElement.style.transform = 'scale(1)';\n if (element !== this.parent) {\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\n }\n}\n/**\n * Handler for ripple element mouse up event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleUpHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for ripple element mouse move event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleLeaveHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for removing ripple element\n *\n * @param {MouseEvent} e ?\n * @param {RippleArgs} eventArgs ?\n * @returns {void} ?\n * @private\n */\nfunction removeRipple(e, eventArgs) {\n var duration = eventArgs.rippleOptions.duration;\n var target = (e.target);\n var selector = eventArgs.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\n return;\n }\n var rippleElements = selectAll('.e-ripple-element', element);\n var rippleElement = rippleElements[rippleElements.length - 1];\n if (rippleElement) {\n rippleElement.style.opacity = '0.5';\n }\n if (eventArgs.parent !== element) {\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n }\n setTimeout(function () {\n if (rippleElement && rippleElement.parentNode) {\n rippleElement.parentNode.removeChild(rippleElement);\n }\n if (!element.getElementsByClassName('e-ripple-element').length) {\n element.classList.remove('e-ripple');\n }\n if (eventArgs.done) {\n eventArgs.done(e);\n }\n }, duration);\n}\nexport var isRippleEnabled = false;\n/**\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\n *\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\n * @returns {boolean} ?\n */\nexport function enableRipple(isRipple) {\n isRippleEnabled = isRipple;\n return isRippleEnabled;\n}\n/**\n * Defines the Modes of Global animation.\n *\n * @private\n */\nexport var animationMode;\n/**\n * This method is used to enable or disable the animation for all components.\n *\n * @param {string|GlobalAnimationMode} value - Specifies the value to enable or disable the animation for all components. When set to 'enable', it enables the animation for all components, regardless of the individual component's animation settings. When set to 'disable', it disables the animation for all components, regardless of the individual component's animation settings.\n * @returns {void}\n */\nexport function setGlobalAnimation(value) {\n animationMode = value;\n}\n/**\n * Defines the global animation modes for all components.\n */\nexport var GlobalAnimationMode;\n(function (GlobalAnimationMode) {\n /**\n * Defines the global animation mode as Default. Animation is enabled or disabled based on the component's animation settings.\n */\n GlobalAnimationMode[\"Default\"] = \"Default\";\n /**\n * Defines the global animation mode as Enable. Enables the animation for all components, regardless of the individual component's animation settings.\n */\n GlobalAnimationMode[\"Enable\"] = \"Enable\";\n /**\n * Defines the global animation mode as Disable. Disables the animation for all components, regardless of the individual component's animation settings.\n */\n GlobalAnimationMode[\"Disable\"] = \"Disable\";\n})(GlobalAnimationMode || (GlobalAnimationMode = {}));\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Module loading operations\n */\nimport { createInstance, setValue, getValue, deleteObject } from './util';\nvar MODULE_SUFFIX = 'Module';\nvar ModuleLoader = /** @class */ (function () {\n function ModuleLoader(parent) {\n this.loadedModules = [];\n this.parent = parent;\n }\n /**\n * Inject required modules in component library\n *\n * @returns {void} ?\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\n */\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\n var reqLength = requiredModules.length;\n if (reqLength === 0) {\n this.clean();\n return;\n }\n if (this.loadedModules.length) {\n this.clearUnusedModule(requiredModules);\n }\n for (var i = 0; i < reqLength; i++) {\n var modl = requiredModules[parseInt(i.toString(), 10)];\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\n var module = moduleList_1[_i];\n var modName = modl.member;\n if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\n var moduleObject = createInstance(module, modl.args);\n var memberName = this.getMemberName(modName);\n if (modl.isProperty) {\n setValue(memberName, module, this.parent);\n }\n else {\n setValue(memberName, moduleObject, this.parent);\n }\n var loadedModule = modl;\n loadedModule.member = memberName;\n this.loadedModules.push(loadedModule);\n }\n }\n }\n };\n /**\n * To remove the created object while destroying the control\n *\n * @returns {void}\n */\n ModuleLoader.prototype.clean = function () {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var modules = _a[_i];\n if (!modules.isProperty) {\n getValue(modules.member, this.parent).destroy();\n }\n }\n this.loadedModules = [];\n };\n /**\n * Returns the array of modules that are not loaded in the component library.\n *\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @returns {ModuleDeclaration[]} ?\n * @private\n */\n ModuleLoader.prototype.getNonInjectedModules = function (requiredModules) {\n var _this = this;\n return requiredModules.filter(function (module) { return !_this.isModuleLoaded(module.member); });\n };\n /**\n * Removes all unused modules\n *\n * @param {ModuleDeclaration[]} moduleList ?\n * @returns {void} ?\n */\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\n var _this = this;\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\n var removableModule = this.loadedModules.filter(function (module) {\n return usedModules.indexOf(module.member) === -1;\n });\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\n var mod = removableModule_1[_i];\n if (!mod.isProperty) {\n getValue(mod.member, this.parent).destroy();\n }\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\n deleteObject(this.parent, mod.member);\n }\n };\n /**\n * To get the name of the member.\n *\n * @param {string} name ?\n * @returns {string} ?\n */\n ModuleLoader.prototype.getMemberName = function (name) {\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\n };\n /**\n * Returns boolean based on whether the module specified is loaded or not\n *\n * @param {string} modName ?\n * @returns {boolean} ?\n */\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var mod = _a[_i];\n if (mod.member === this.getMemberName(modName)) {\n return true;\n }\n }\n return false;\n };\n return ModuleLoader;\n}());\nexport { ModuleLoader };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getValue, setValue, merge, isBlazor } from './util';\nimport { Base } from './base';\n/**\n * To detect the changes for inner properties.\n *\n * @private\n * @returns {void} ?\n */\nvar ChildProperty = /** @class */ (function () {\n function ChildProperty(parent, propName, defaultValue, isArray) {\n this.isComplexArraySetter = false;\n this.properties = {};\n this.changedProperties = {};\n this.childChangedProperties = {};\n this.oldProperties = {};\n this.finalUpdate = function () { };\n this.callChildDataBind = getValue('callChildDataBind', Base);\n this.parentObj = parent;\n this.controlParent = this.parentObj.controlParent || this.parentObj;\n this.propName = propName;\n this.isParentArray = isArray;\n this.setProperties(defaultValue, true);\n }\n /**\n * Updates the property changes\n *\n * @param {boolean} val ?\n * @param {string} propName ?\n * @returns {void} ?\n */\n ChildProperty.prototype.updateChange = function (val, propName) {\n if (val === true) {\n this.parentObj.childChangedProperties[\"\" + propName] = val;\n }\n else {\n delete this.parentObj.childChangedProperties[\"\" + propName];\n }\n if (this.parentObj.updateChange) {\n this.parentObj.updateChange(val, this.parentObj.propName);\n }\n };\n /**\n * Updates time out duration\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.updateTimeOut = function () {\n if (this.parentObj.updateTimeOut) {\n this.parentObj.finalUpdate();\n this.parentObj.updateTimeOut();\n }\n else {\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\n var clearUpdate = function () {\n clearTimeout(changeTime_1);\n };\n this.finalUpdate = clearUpdate;\n }\n };\n /**\n * Clears changed properties\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.clearChanges = function () {\n this.finalUpdate();\n this.updateChange(false, this.propName);\n this.oldProperties = {};\n this.changedProperties = {};\n };\n /**\n * Set property changes\n *\n * @param {Object} prop ?\n * @param {boolean} muteOnChange ?\n * @returns {void} ?\n */\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\n if (muteOnChange === true) {\n merge(this, prop);\n this.updateChange(false, this.propName);\n this.clearChanges();\n }\n else {\n merge(this, prop);\n }\n };\n /**\n * Binds data\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.dataBind = function () {\n this.callChildDataBind(this.childChangedProperties, this);\n if (this.isParentArray) {\n var curIndex = this.parentObj[this.propName].indexOf(this);\n if (Object.keys(this.changedProperties).length) {\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\n }\n }\n else {\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\n }\n this.clearChanges();\n };\n /**\n * Saves changes to newer values\n *\n * @param {string} key ?\n * @param {Object} newValue ?\n * @param {Object} oldValue ?\n * @param {boolean} restrictServerDataBind ?\n * @returns {void} ?\n */\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\n if (this.controlParent.isProtectedOnChange) {\n return;\n }\n if (!restrictServerDataBind) {\n this.serverDataBind(key, newValue, true);\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.updateChange(true, this.propName);\n this.finalUpdate();\n this.updateTimeOut();\n };\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\n var parent_1;\n var newChanges = {};\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\n /* istanbul ignore else */\n if (parentKey.indexOf('.') !== -1) {\n var complexKeys = parentKey.split('.');\n parent_1 = newChanges;\n for (var i = 0; i < complexKeys.length; i++) {\n var isFinal = i === complexKeys.length - 1;\n parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];\n }\n }\n else {\n newChanges[\"\" + parentKey] = {};\n parent_1 = newChanges[\"\" + parentKey];\n newChanges[\"\" + parentKey][\"\" + key] = value;\n }\n /* istanbul ignore next */\n if (this.isParentArray) {\n var actionProperty = 'ejsAction';\n parent_1[\"\" + actionProperty] = action ? action : 'none';\n }\n this.controlParent.serverDataBind(newChanges);\n }\n };\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\n var index = '';\n var propName = this.propName;\n /* istanbul ignore next */\n if (this.isParentArray) {\n index = this.parentObj[this.propName].indexOf(this);\n var valueLength = this.parentObj[this.propName].length;\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\n index = index !== -1 ? '-' + index : '-' + valueLength;\n propName = propName + index;\n }\n if (this.controlParent !== this.parentObj) {\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\n }\n return propName;\n };\n return ChildProperty;\n}());\nexport { ChildProperty };\n","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];\nvar bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,\n 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,\n 105, 100, 97, 116, 101, 100];\nvar accountURL;\n/**\n * License validation module\n *\n * @private\n */\nvar LicenseValidator = /** @class */ (function () {\n function LicenseValidator(key) {\n this.isValidated = false;\n this.isLicensed = true;\n this.version = '27';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/i;\n this.errors = {\n noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n trailExpired: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n versionMismatched: 'The included Syncfusion license key is invalid.',\n platformMismatched: 'The included Syncfusion license key is invalid.',\n invalidKey: 'The included Syncfusion license key is invalid.'\n };\n /**\n * To manage licensing operation.\n */\n this.manager = (function () {\n var licKey = null;\n /**\n * Sets the license key.\n *\n * @param {string} key - Specifies the license key.\n * @returns {void}\n */\n function set(key) { licKey = key; }\n /**\n * Gets the license key.\n *\n * @returns {string} -Gets the license key.\n */\n function get() { return licKey; }\n return {\n setKey: set,\n getKey: get\n };\n })();\n /**\n * To manage npx licensing operation.\n */\n this.npxManager = (function () {\n var npxLicKey = 'npxKeyReplace';\n /**\n * Gets the license key.\n *\n * @returns {string} - Gets the license key.\n */\n function get() { return npxLicKey; }\n return {\n getKey: get\n };\n })();\n this.manager.setKey(key);\n }\n /**\n * To validate the provided license key.\n *\n * @returns {boolean} ?\n */\n LicenseValidator.prototype.validate = function () {\n var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];\n var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];\n if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {\n var validateMsg = void 0;\n var validateURL = void 0;\n if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {\n var result = this.getInfoFromKey();\n if (result && result.length) {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n if (!this.platform.test(res.platform) || res.invalidPlatform) {\n validateMsg = this.errors.platformMismatched;\n }\n else if (res.version.indexOf(this.version) === -1) {\n validateMsg = this.errors.versionMismatched;\n validateMsg = validateMsg.replace('##LicenseVersion', res.version);\n validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');\n }\n else if (res.expiryDate) {\n var expDate = new Date(res.expiryDate);\n var currDate = new Date();\n if (expDate !== currDate && expDate < currDate) {\n validateMsg = this.errors.trailExpired;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n validateMsg = this.errors.invalidKey;\n }\n }\n else {\n var licenseContent = getValue(convertToChar(contentKey), containerObject);\n validateURL = getValue(convertToChar(URLKey), containerObject);\n if (licenseContent && licenseContent !== '') {\n validateMsg = licenseContent;\n }\n else {\n validateMsg = this.errors.noLicense;\n }\n }\n if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n accountURL = (validateURL && validateURL !== '') ? validateURL : 'https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=Mjc=&utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information';\n var errorDiv = createElement('div', {\n innerHTML: \"\" + validateMsg + ' ' + 'Claim your free account'\n });\n errorDiv.setAttribute('style', \"position: fixed;\\n top: 10px;\\n left: 10px;\\n right: 10px;\\n font-size: 14px;\\n background: #EEF2FF;\\n color: #222222;\\n z-index: 999999999;\\n text-align: left;\\n border: 1px solid #EEEEEE;\\n padding: 10px 11px 10px 50px;\\n border-radius: 8px;\\n font-family: Helvetica Neue, Helvetica, Arial;\");\n document.body.appendChild(errorDiv);\n this.isLicensed = false;\n }\n this.isValidated = true;\n setValue(convertToChar(bypassKey), this.isValidated, containerObject);\n }\n return this.isLicensed;\n };\n LicenseValidator.prototype.getDecryptedData = function (key) {\n try {\n return atob(key);\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Get license information from key.\n *\n * @returns {IValidator} - Get license information from key.\n */\n LicenseValidator.prototype.getInfoFromKey = function () {\n try {\n var licKey = '';\n var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,\n 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,\n 6356992, 7602176, 4587520, 7274496, 7471104, 7143424];\n var decryptedStr = [];\n var resultArray = [];\n var invalidPlatform = false;\n var isNpxKey = false;\n if (this.manager.getKey()) {\n licKey = this.manager.getKey();\n }\n else {\n isNpxKey = true;\n licKey = this.npxManager.getKey().split('npxKeyReplace')[1];\n }\n var licKeySplit = licKey.split(';');\n for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {\n var lKey = licKeySplit_1[_i];\n var decodeStr = this.getDecryptedData(lKey);\n if (!decodeStr) {\n continue;\n }\n var k = 0;\n var buffr = '';\n if (!isNpxKey) {\n for (var i = 0; i < decodeStr.length; i++, k++) {\n if (k === pkey.length) {\n k = 0;\n }\n var c = decodeStr.charCodeAt(i);\n buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));\n }\n }\n else {\n var charKey = decodeStr[decodeStr.length - 1];\n var decryptedKey = [];\n for (var i = 0; i < decodeStr.length; i++) {\n decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0)\n - charKey.charCodeAt(0);\n }\n for (var i = 0; i < decryptedKey.length; i++) {\n buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);\n }\n }\n if (this.platform.test(buffr)) {\n decryptedStr = buffr.split(';');\n invalidPlatform = false;\n // checked the length to verify the key in proper strucutre\n if (decryptedStr.length > 3) {\n resultArray.push({ platform: decryptedStr[0],\n version: decryptedStr[1],\n expiryDate: decryptedStr[2] });\n }\n }\n else if (buffr && buffr.split(';').length > 3) {\n invalidPlatform = true;\n }\n }\n if (invalidPlatform && !resultArray.length) {\n return [{ invalidPlatform: invalidPlatform }];\n }\n else {\n return resultArray.length ? resultArray : null;\n }\n }\n catch (error) {\n return null;\n }\n };\n return LicenseValidator;\n}());\nvar licenseValidator = new LicenseValidator();\n/**\n * Converts the given number to characters.\n *\n * @param {number} cArr - Specifies the license key as number.\n * @returns {string} ?\n */\nfunction convertToChar(cArr) {\n var ret = '';\n for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {\n var arr = cArr_1[_i];\n ret += String.fromCharCode(arr);\n }\n return ret;\n}\n/**\n * To set license key.\n *\n * @param {string} key - license key\n * @returns {void}\n */\nexport function registerLicense(key) {\n licenseValidator = new LicenseValidator(key);\n}\nexport var validateLicense = function (key) {\n if (key) {\n registerLicense(key);\n }\n return licenseValidator.validate();\n};\nexport var getVersion = function () {\n return licenseValidator.version;\n};\n// Method for create overlay over the sample\nexport var createLicenseOverlay = function () {\n var bannerTemplate = \"\\n
    \\n
    \\n
    \\n \\n
    \\n
    Claim your FREE account and get a key in less than a minute
    \\n
      \\n
    • Access to a 30-day free trial of any of our products.
    • \\n
    • Access to 24x5 support by developers via the support tickets, forum, feature & feedback page and chat.
    • \\n
    • 200+ ebooks on the latest technologies, industry trends, and research topics.\\n
    • \\n
    • Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion Metro Studio.
    • \\n
    • Free and unlimited access to Syncfusion technical blogs and whitepapers.
    • \\n
    \\n
    Syncfusion is trusted by 29,000+ businesses worldwide
    \\n \\n Claim your FREE account\\n
    have a Syncfusion account? Sign In
    \\n
    \\n
    \";\n if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n var errorBackground = createElement('div', {\n innerHTML: bannerTemplate\n });\n document.body.appendChild(errorBackground);\n }\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\nimport { ModuleLoader } from './module-loader';\nimport { Base } from './base';\nimport { Observer } from './observer';\nimport { ChildProperty } from './child-property';\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\nimport { createElement, addClass, removeClass, select } from './dom';\nimport { validateLicense, createLicenseOverlay, componentList } from './validate-lic';\nvar componentCount = 0;\nvar lastPageID;\nvar lastHistoryLen = 0;\n// Decalre the static variable to count the instance\nvar instancecount = 0;\n// Decalre the static variable to find if control limit exceed or not\nvar isvalid = true;\n// We have added styles to inline type so here declare the static variable to detect if banner is added or not\nvar isBannerAdded = false;\nexport var versionBasedStatePersistence = false;\n/**\n * To enable or disable version based statePersistence functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\n * @returns {void}\n */\nexport function enableVersionBasedPersistence(status) {\n versionBasedStatePersistence = status;\n}\n/**\n * Base class for all Essential JavaScript components\n */\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n /**\n * Initialize the constructor for component base\n *\n * @param {Object} options ?\n * @param {string} selector ?\n */\n function Component(options, selector) {\n var _this = _super.call(this, options, selector) || this;\n _this.randomId = uniqueID();\n /**\n * string template option for Blazor template rendering\n *\n * @private\n */\n _this.isStringTemplate = false;\n _this.needsID = false;\n _this.isReactHybrid = false;\n _this.isAngular = false;\n _this.isReact = false;\n _this.isVue = false;\n if (isNullOrUndefined(_this.enableRtl)) {\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\n }\n if (isNullOrUndefined(_this.locale)) {\n _this.setProperties({ 'locale': defaultCulture }, true);\n }\n _this.moduleLoader = new ModuleLoader(_this);\n _this.localObserver = new Observer(_this);\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\n // Based on the considered control list we have count the instance\n if (typeof window !== 'undefined' && typeof document !== 'undefined' && !validateLicense()) {\n if (componentList.indexOf(_this.getModuleName()) !== -1) {\n instancecount = instancecount + 1;\n if (instancecount > 5) {\n isvalid = false;\n }\n }\n }\n if (!isUndefined(selector)) {\n _this.appendTo();\n }\n return _this;\n }\n Component.prototype.requiredModules = function () {\n return [];\n };\n /**\n * Destroys the sub modules while destroying the widget\n *\n * @returns {void} ?\n */\n Component.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.enablePersistence) {\n this.setPersistData();\n this.detachUnloadEvent();\n }\n this.localObserver.destroy();\n if (this.refreshing) {\n return;\n }\n removeClass([this.element], ['e-control']);\n this.trigger('destroyed', { cancel: false });\n _super.prototype.destroy.call(this);\n this.moduleLoader.clean();\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\n };\n /**\n * Applies all the pending property changes and render the component again.\n *\n * @returns {void} ?\n */\n Component.prototype.refresh = function () {\n this.refreshing = true;\n this.moduleLoader.clean();\n this.destroy();\n this.clearChanges();\n this.localObserver = new Observer(this);\n this.preRender();\n this.injectModules();\n this.render();\n this.refreshing = false;\n };\n Component.prototype.accessMount = function () {\n if (this.mount && !this.isReactHybrid) {\n this.mount();\n }\n };\n /**\n * Returns the route element of the component\n *\n * @returns {HTMLElement} ?\n */\n Component.prototype.getRootElement = function () {\n if (this.isReactHybrid) {\n return this.actualElement;\n }\n else {\n return this.element;\n }\n };\n /**\n * Returns the persistence data for component\n *\n * @returns {any} ?\n */\n Component.prototype.getLocalData = function () {\n var eleId = this.getModuleName() + this.element.id;\n if (versionBasedStatePersistence) {\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\n }\n else {\n return window.localStorage.getItem(eleId);\n }\n };\n /**\n * Adding unload event to persist data when enable persistence true\n *\n * @returns {void}\n */\n Component.prototype.attachUnloadEvent = function () {\n this.handleUnload = this.handleUnload.bind(this);\n window.addEventListener('pagehide', this.handleUnload);\n };\n /**\n * Handling unload event to persist data when enable persistence true\n *\n * @returns {void}\n */\n Component.prototype.handleUnload = function () {\n this.setPersistData();\n };\n /**\n * Removing unload event to persist data when enable persistence true\n *\n * @returns {void}\n */\n Component.prototype.detachUnloadEvent = function () {\n window.removeEventListener('pagehide', this.handleUnload);\n };\n /**\n * Appends the control within the given HTML element\n *\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\n * @returns {void} ?\n */\n Component.prototype.appendTo = function (selector) {\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\n this.element = select(selector, document);\n }\n else if (!isNullOrUndefined(selector)) {\n this.element = selector;\n }\n if (!isNullOrUndefined(this.element)) {\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-control', moduleClass]);\n this.isProtectedOnChange = false;\n if (this.needsID && !this.element.id) {\n this.element.id = this.getUniqueID(this.getModuleName());\n }\n if (this.enablePersistence) {\n this.mergePersistData();\n this.attachUnloadEvent();\n }\n var inst = getValue('ej2_instances', this.element);\n if (!inst || inst.indexOf(this) === -1) {\n _super.prototype.addInstance.call(this);\n }\n this.preRender();\n this.injectModules();\n // Throw a warning for the required modules to be injected.\n var ignoredComponents = {\n schedule: 'all',\n diagram: 'all',\n PdfViewer: 'all',\n grid: ['logger'],\n richtexteditor: ['link', 'table', 'image', 'audio', 'video', 'formatPainter', 'emojiPicker', 'pasteCleanup', 'htmlEditor', 'toolbar', 'importExport'],\n treegrid: ['filter'],\n gantt: ['tooltip'],\n chart: ['Export', 'Zoom'],\n accumulationchart: ['Export'],\n 'query-builder': 'all'\n };\n var component = this.getModuleName();\n if (this.requiredModules && (!ignoredComponents[\"\" + component] || ignoredComponents[\"\" + component] !== 'all')) {\n var modulesRequired = this.requiredModules();\n for (var _i = 0, _a = this.moduleLoader.getNonInjectedModules(modulesRequired); _i < _a.length; _i++) {\n var module = _a[_i];\n var moduleName = module.name ? module.name : module.member;\n if (ignoredComponents[\"\" + component] && ignoredComponents[\"\" + component].indexOf(module.member) !== -1) {\n continue;\n }\n var componentName = component.charAt(0).toUpperCase() + component.slice(1); // To capitalize the component name\n console.warn(\"[WARNING] :: Module \\\"\" + moduleName + \"\\\" is not available in \" + componentName + \" component! You either misspelled the module name or forgot to load it.\");\n }\n }\n // Checked weather cases are valid or not. If control leads to more than five counts\n if (!isvalid && !isBannerAdded) {\n createLicenseOverlay();\n isBannerAdded = true;\n }\n this.render();\n if (!this.mount) {\n this.trigger('created');\n }\n else {\n this.accessMount();\n }\n }\n };\n /**\n * It is used to process the post rendering functionalities to a component.\n *\n * @param {Node} wrapperElement ?\n * @returns {void} ?\n */\n Component.prototype.renderComplete = function (wrapperElement) {\n if (isBlazor()) {\n var sfBlazor = 'sfBlazor';\n window[\"\" + sfBlazor].renderComplete(this.element, wrapperElement);\n }\n this.isRendered = true;\n };\n /**\n * When invoked, applies the pending property changes immediately to the component.\n *\n * @returns {void} ?\n */\n Component.prototype.dataBind = function () {\n this.injectModules();\n _super.prototype.dataBind.call(this);\n };\n /**\n * Attach one or more event handler to the current component context.\n * It is used for internal handling event internally within the component only.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.on = function (event, handler, context) {\n if (typeof event === 'string') {\n this.localObserver.on(event, handler, context);\n }\n else {\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\n var arg = event_1[_i];\n this.localObserver.on(arg.event, arg.handler, arg.context);\n }\n }\n };\n /**\n * To remove one or more event handler that has been attached with the on() method.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\n * @returns {void} ?\n * @private\n */\n Component.prototype.off = function (event, handler) {\n if (typeof event === 'string') {\n this.localObserver.off(event, handler);\n }\n else {\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\n var arg = event_2[_i];\n this.localObserver.off(arg.event, arg.handler);\n }\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.notify = function (property, argument) {\n if (this.isDestroyed !== true) {\n this.localObserver.notify(property, argument);\n }\n };\n /**\n * Get injected modules\n *\n * @returns {Function} ?\n * @private\n */\n Component.prototype.getInjectedModules = function () {\n return this.injectedModules;\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @param {Function} moduleList ?\n * @returns {void} ?\n */\n Component.Inject = function () {\n var moduleList = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n moduleList[_i] = arguments[_i];\n }\n if (!this.prototype.injectedModules) {\n this.prototype.injectedModules = [];\n }\n for (var i = 0; i < moduleList.length; i++) {\n if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {\n this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * This is a instance method to create an element.\n *\n * @param {string} tagName ?\n * @param {ElementProperties} prop ?\n * @param {boolean} isVDOM ?\n * @returns {any} ?\n * @private\n */\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\n return createElement(tagName, prop);\n };\n /**\n *\n * @param {Function} handler - handler to be triggered after state Updated.\n * @param {any} argument - Arguments to be passed to caller.\n * @returns {void} .\n * @private\n */\n Component.prototype.triggerStateChange = function (handler, argument) {\n if (this.isReactHybrid) {\n this.setState();\n this.currentContext = { calls: handler, args: argument };\n }\n };\n Component.prototype.injectModules = function () {\n if (this.injectedModules && this.injectedModules.length) {\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\n }\n };\n Component.prototype.detectFunction = function (args) {\n var prop = Object.keys(args);\n if (prop.length) {\n this[prop[0]] = args[prop[0]];\n }\n };\n Component.prototype.mergePersistData = function () {\n var data;\n if (versionBasedStatePersistence) {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\n }\n else {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n }\n if (!(isNullOrUndefined(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n };\n Component.prototype.setPersistData = function () {\n if (!this.isDestroyed) {\n if (versionBasedStatePersistence) {\n window.localStorage.setItem(this.getModuleName() +\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\n }\n else {\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\n }\n }\n };\n Component.prototype.renderReactTemplates = function (callback) {\n if (!isNullOrUndefined(callback)) {\n callback();\n }\n };\n Component.prototype.clearTemplate = function (templateName, index) {\n //No Code\n };\n Component.prototype.getUniqueID = function (definedName) {\n if (this.isHistoryChanged()) {\n componentCount = 0;\n }\n lastPageID = this.pageID(location.href);\n lastHistoryLen = history.length;\n return definedName + '_' + lastPageID + '_' + componentCount++;\n };\n Component.prototype.pageID = function (url) {\n var hash = 0;\n if (url.length === 0) {\n return hash;\n }\n for (var i = 0; i < url.length; i++) {\n var char = url.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return Math.abs(hash);\n };\n Component.prototype.isHistoryChanged = function () {\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\n };\n Component.prototype.addOnPersist = function (options) {\n var _this = this;\n var persistObj = {};\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var key = options_1[_i];\n var objValue = getValue(key, this);\n if (!isUndefined(objValue)) {\n setValue(key, this.getActualProperties(objValue), persistObj);\n }\n }\n return JSON.stringify(persistObj, function (key, value) {\n return _this.getActualProperties(value);\n });\n };\n Component.prototype.getActualProperties = function (obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n };\n Component.prototype.ignoreOnPersist = function (options) {\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\n };\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\n var newObj = {};\n var _loop_1 = function (key) {\n if (ignoreList.indexOf(key) === -1) {\n var value = obj[\"\" + key];\n if (typeof value === 'object' && !(value instanceof Array)) {\n var newList = ignoreList.filter(function (str) {\n var regExp = RegExp;\n return new regExp(key + '.').test(str);\n }).map(function (str) {\n return str.replace(key + '.', '');\n });\n newObj[\"\" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\n }\n else {\n newObj[\"\" + key] = value;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n _loop_1(key);\n }\n return newObj;\n };\n __decorate([\n Property(false)\n ], Component.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"enableRtl\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"locale\", void 0);\n Component = __decorate([\n NotifyPropertyChanges\n ], Component);\n return Component;\n}(Base));\nexport { Component };\n//Function handling for page navigation detection\n/* istanbul ignore next */\n(function () {\n if (typeof window !== 'undefined') {\n window.addEventListener('popstate', \n /* istanbul ignore next */\n function () {\n componentCount = 0;\n });\n }\n})();\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible } from './dom';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { ChildProperty } from './child-property';\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\nvar isDraggedObject = { isDragged: false };\n/**\n * Specifies the position coordinates\n */\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Position.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Position.prototype, \"top\", void 0);\n return Position;\n}(ChildProperty));\nexport { Position };\n/**\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\n * ```html\n *
    Draggable
    \n * \n * ```\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.dragLimit = Draggable_1.getDefaultPosition();\n _this.borderWidth = Draggable_1.getDefaultPosition();\n _this.padding = Draggable_1.getDefaultPosition();\n _this.diffX = 0;\n _this.prevLeft = 0;\n _this.prevTop = 0;\n _this.dragProcessStarted = false;\n _this.eleTop = 0;\n _this.tapHoldTimer = 0;\n _this.externalInitialize = false;\n _this.diffY = 0;\n _this.parentScrollX = 0;\n _this.parentScrollY = 0;\n _this.droppables = {};\n _this.bind();\n return _this;\n }\n Draggable_1 = Draggable;\n Draggable.prototype.bind = function () {\n this.toggleEvents();\n if (Browser.isIE) {\n addClass([this.element], 'e-block-touch');\n }\n this.droppables[this.scope] = {};\n };\n Draggable.getDefaultPosition = function () {\n return extend({}, defaultPosition);\n };\n Draggable.prototype.toggleEvents = function (isUnWire) {\n var ele;\n if (!isUndefined(this.handle)) {\n ele = select(this.handle, this.element);\n }\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\n if (isUnWire) {\n EventHandler.remove(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler, this);\n }\n };\n /* istanbul ignore next */\n Draggable.prototype.mobileInitialize = function (evt) {\n var _this = this;\n var target = evt.currentTarget;\n this.tapHoldTimer = setTimeout(function () {\n _this.externalInitialize = true;\n _this.removeTapholdTimer();\n _this.initialize(evt, target);\n }, this.tapHoldThreshold);\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer);\n };\n /* istanbul ignore next */\n Draggable.prototype.getScrollableParent = function (element, axis) {\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\n if (isNullOrUndefined(element)) {\n return null;\n }\n if (element[scroll[\"\" + axis]] > element[client[\"\" + axis]]) {\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\n if (axis === 'vertical') {\n this.parentScrollY = this.parentScrollY +\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\n this.tempScrollHeight = element.scrollHeight;\n }\n else {\n this.parentScrollX = this.parentScrollX +\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\n this.tempScrollWidth = element.scrollWidth;\n }\n if (!isNullOrUndefined(element)) {\n return this.getScrollableParent(element.parentNode, axis);\n }\n else {\n return element;\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n };\n Draggable.prototype.getScrollableValues = function () {\n this.parentScrollX = 0;\n this.parentScrollY = 0;\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\n };\n Draggable.prototype.initialize = function (evt, curTarget) {\n this.currentStateTarget = evt.target;\n if (this.isDragStarted()) {\n return;\n }\n else {\n this.isDragStarted(true);\n this.externalInitialize = false;\n }\n this.target = (evt.currentTarget || curTarget);\n this.dragProcessStarted = false;\n if (this.abort) {\n var abortSelectors = this.abort;\n if (typeof abortSelectors === 'string') {\n abortSelectors = [abortSelectors];\n }\n for (var i = 0; i < abortSelectors.length; i++) {\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {\n /* istanbul ignore next */\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n return;\n }\n }\n }\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\n evt.preventDefault();\n }\n this.element.setAttribute('aria-grabbed', 'true');\n var intCoord = this.getCoordinates(evt);\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\n if (!this.clone) {\n var pos = this.element.getBoundingClientRect();\n this.getScrollableValues();\n if (evt.clientX === evt.pageX) {\n this.parentScrollX = 0;\n }\n if (evt.clientY === evt.pageY) {\n this.parentScrollY = 0;\n }\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\n }\n if (this.externalInitialize) {\n this.intDragStart(evt);\n }\n else {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy, this);\n }\n this.toggleEvents(true);\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\n document.body.classList.add('e-prevent-select');\n }\n this.externalInitialize = false;\n EventHandler.trigger(document.documentElement, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, evt);\n };\n Draggable.prototype.intDragStart = function (evt) {\n this.removeTapholdTimer();\n var isChangeTouch = !isUndefined(evt.changedTouches);\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\n return;\n }\n var intCordinate = this.getCoordinates(evt);\n var pos;\n var styleProp = getComputedStyle(this.element);\n this.margin = {\n left: parseInt(styleProp.marginLeft, 10),\n top: parseInt(styleProp.marginTop, 10),\n right: parseInt(styleProp.marginRight, 10),\n bottom: parseInt(styleProp.marginBottom, 10)\n };\n var element = this.element;\n if (this.clone && this.dragTarget) {\n var intClosest = closest(evt.target, this.dragTarget);\n if (!isNullOrUndefined(intClosest)) {\n element = intClosest;\n }\n }\n /* istanbul ignore next */\n if (this.isReplaceDragEle) {\n element = this.currentStateCheck(evt.target, element);\n }\n this.offset = this.calculateParentPosition(element);\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var x = this.initialPosition.x - intCordinate.pageX;\n var y = this.initialPosition.y - intCordinate.pageY;\n var distance = Math.sqrt((x * x) + (y * y));\n if ((distance >= this.distance || this.externalInitialize)) {\n var ele = this.getHelperElement(evt);\n if (!ele || isNullOrUndefined(ele)) {\n return;\n }\n if (isChangeTouch) {\n evt.preventDefault();\n }\n var dragTargetElement = this.helperElement = ele;\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\n if (this.dragStart) {\n var curTarget = this.getProperTargetElement(evt);\n var args = {\n event: evt,\n element: element,\n target: curTarget,\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\n dragElement: dragTargetElement\n };\n this.trigger('dragStart', args);\n }\n if (this.dragArea) {\n this.setDragArea();\n }\n else {\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\n this.borderWidth = { top: 0, left: 0 };\n }\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\n if (this.clone && !this.enableTailMode) {\n this.diffX = this.position.left - this.offset.left;\n this.diffY = this.position.top - this.offset.top;\n }\n this.getScrollableValues();\n // when drag element has margin-top\n var styles = getComputedStyle(element);\n var marginTop = parseFloat(styles.marginTop);\n /* istanbul ignore next */\n if (this.clone && marginTop !== 0) {\n pos.top += marginTop;\n }\n this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0;\n /* istanbul ignore next */\n // if (this.eleTop > 0) {\n // pos.top += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n pos.top -= this.parentScrollY;\n pos.left -= this.parentScrollX;\n }\n var posValue = this.getProcessedPositionValue({\n top: (pos.top - this.diffY) + 'px',\n left: (pos.left - this.diffX) + 'px'\n });\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n pos.top += this.dragArea.scrollTop;\n }\n this.dragElePosition = { top: pos.top, left: pos.left };\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n if (!isBlazor()) {\n this.bindDragEvents(dragTargetElement);\n }\n }\n };\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\n if (isVisible(dragTargetElement)) {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop, this);\n this.setGlobalDroppables(false, this.element, dragTargetElement);\n }\n else {\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n }\n };\n Draggable.prototype.elementInViewport = function (el) {\n this.top = el.offsetTop;\n this.left = el.offsetLeft;\n this.width = el.offsetWidth;\n this.height = el.offsetHeight;\n while (el.offsetParent) {\n el = el.offsetParent;\n this.top += el.offsetTop;\n this.left += el.offsetLeft;\n }\n return (this.top >= window.pageYOffset &&\n this.left >= window.pageXOffset &&\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\n };\n Draggable.prototype.getProcessedPositionValue = function (value) {\n if (this.queryPositionInfo) {\n return this.queryPositionInfo(value);\n }\n return value;\n };\n Draggable.prototype.calculateParentPosition = function (ele) {\n if (isNullOrUndefined(ele)) {\n return { left: 0, top: 0 };\n }\n var rect = ele.getBoundingClientRect();\n var style = getComputedStyle(ele);\n return {\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\n };\n };\n Draggable.prototype.intDrag = function (evt) {\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n if (this.clone && evt.changedTouches && Browser.isDevice && Browser.isTouch) {\n evt.preventDefault();\n }\n var left;\n var top;\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var docHeight = this.getDocumentWidthHeight('Height');\n if (docHeight < this.position.top) {\n this.position.top = docHeight;\n }\n var docWidth = this.getDocumentWidthHeight('Width');\n if (docWidth < this.position.left) {\n this.position.left = docWidth;\n }\n if (this.drag) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n var flag = true;\n if (this.hoverObject) {\n if (this.hoverObject.instance !== eleObj.instance) {\n this.triggerOutFunction(evt, eleObj);\n }\n else {\n flag = false;\n }\n }\n if (flag) {\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intOver(evt, eleObj.target);\n this.hoverObject = eleObj;\n }\n }\n else if (this.hoverObject) {\n this.triggerOutFunction(evt, eleObj);\n }\n var helperElement = this.droppables[this.scope].helper;\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\n var tLeft = this.parentClientRect.left;\n var tTop = this.parentClientRect.top;\n var intCoord = this.getCoordinates(evt);\n var pagex = intCoord.pageX;\n var pagey = intCoord.pageY;\n var dLeft = this.position.left - this.diffX;\n var dTop = this.position.top - this.diffY;\n var styles = getComputedStyle(helperElement);\n if (this.dragArea) {\n if (this.enableAutoScroll) {\n this.setDragArea();\n }\n if (this.pageX !== pagex || this.skipDistanceCheck) {\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\n + parseFloat(styles.marginRight));\n if (this.dragLimit.left > dLeft && dLeft > 0) {\n left = this.dragLimit.left;\n }\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\n }\n else {\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\n }\n }\n if (this.pageY !== pagey || this.skipDistanceCheck) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n if (this.dragLimit.top > dTop && dTop > 0) {\n top = this.dragLimit.top;\n }\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\n }\n else {\n top = dTop < 0 ? this.dragLimit.top : dTop;\n }\n }\n }\n else {\n left = dLeft;\n top = dTop;\n }\n var iTop = tTop + this.borderWidth.top;\n var iLeft = tLeft + this.borderWidth.left;\n if (this.dragProcessStarted) {\n if (isNullOrUndefined(top)) {\n top = this.prevTop;\n }\n if (isNullOrUndefined(left)) {\n left = this.prevLeft;\n }\n }\n var draEleTop;\n var draEleLeft;\n if (this.helperElement.classList.contains('e-treeview')) {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);\n draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);\n }\n else {\n draEleTop = top - this.borderWidth.top;\n draEleLeft = left - this.borderWidth.left;\n }\n }\n else {\n if (this.dragArea) {\n var isDialogEle = this.helperElement.classList.contains('e-dialog');\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\n draEleLeft = (left - iLeft) < 0 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n this.dragElePosition.left : (left - iLeft);\n }\n else {\n draEleTop = top - iTop;\n draEleLeft = left - iLeft;\n }\n }\n var marginTop = parseFloat(getComputedStyle(this.element).marginTop);\n // when drag-element has margin-top\n /* istanbul ignore next */\n if (marginTop > 0) {\n if (this.clone) {\n draEleTop += marginTop;\n if (dTop < 0) {\n if ((marginTop + dTop) >= 0) {\n draEleTop = marginTop + dTop;\n }\n else {\n draEleTop -= marginTop;\n }\n }\n if (this.dragArea) {\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\n }\n }\n if ((top - iTop) < 0) {\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\n if ((tempDraEleTop + marginTop + iTop) < 0) {\n draEleTop -= marginTop + iTop;\n }\n else {\n draEleTop = tempDraEleTop;\n }\n }\n else {\n draEleTop -= marginTop + iTop;\n }\n }\n }\n if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;\n }\n /* istanbul ignore next */\n // if(this.eleTop > 0) {\n // draEleTop += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n draEleTop -= this.parentScrollY;\n draEleLeft -= this.parentScrollX;\n }\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n draEleTop += this.dragArea.scrollTop;\n }\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\n if (this.isPreventScroll) {\n dragValue = this.getProcessedPositionValue({\n top: (this.position.top - this.parentClientRect.top - 2) + 'px',\n left: (this.position.left - this.parentClientRect.left - 2) + 'px'\n });\n }\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {\n this.helperElement.scrollIntoView();\n }\n var elements = document.querySelectorAll(':hover');\n if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n var scrollParent = this.getScrollParent(elements, false);\n if (this.elementInViewport(this.helperElement)) {\n this.getScrollPosition(scrollParent, draEleTop);\n }\n else if (!this.elementInViewport(this.helperElement)) {\n elements = [].slice.call(document.querySelectorAll(':hover'));\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n scrollParent = this.getScrollParent(elements, true);\n this.getScrollPosition(scrollParent, draEleTop);\n }\n }\n this.dragProcessStarted = true;\n this.prevLeft = left;\n this.prevTop = top;\n this.position.left = left;\n this.position.top = top;\n this.pageX = pagex;\n this.pageY = pagey;\n };\n Draggable.prototype.getScrollParent = function (node, reverse) {\n var nodeEl = reverse ? node.reverse() : node;\n var hasScroll;\n for (var i = nodeEl.length - 1; i >= 0; i--) {\n hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];\n if ((hasScroll === 'auto' || hasScroll === 'scroll')\n && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {\n return nodeEl[parseInt(i.toString(), 10)];\n }\n }\n hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];\n if (hasScroll === 'visible') {\n document.scrollingElement.style.overflow = 'auto';\n return document.scrollingElement;\n }\n };\n Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {\n if (nodeEle && nodeEle === document.scrollingElement) {\n if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop\n && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n else if (nodeEle && nodeEle !== document.scrollingElement) {\n var docScrollTop = document.scrollingElement.scrollTop;\n var helperClientHeight = this.helperElement.clientHeight;\n if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - helperClientHeight + docScrollTop) < draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.getBoundingClientRect().top > (draEleTop - helperClientHeight - docScrollTop)) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n };\n Draggable.prototype.getPathElements = function (evt) {\n var elementTop = evt.clientX > 0 ? evt.clientX : 0;\n var elementLeft = evt.clientY > 0 ? evt.clientY : 0;\n return document.elementsFromPoint(elementTop, elementLeft);\n };\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\n this.hoverObject.instance.intOut(evt, eleObj.target);\n this.hoverObject.instance.dragData[this.scope] = null;\n this.hoverObject = null;\n };\n Draggable.prototype.getDragPosition = function (dragValue) {\n var temp = extend({}, dragValue);\n if (this.axis) {\n if (this.axis === 'x') {\n delete temp.top;\n }\n else if (this.axis === 'y') {\n delete temp.left;\n }\n }\n return temp;\n };\n Draggable.prototype.getDocumentWidthHeight = function (str) {\n var docBody = document.body;\n var docEle = document.documentElement;\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\n return returnValue;\n };\n Draggable.prototype.intDragStop = function (evt) {\n this.dragProcessStarted = false;\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n var type = ['touchend', 'pointerup', 'mouseup'];\n if (type.indexOf(evt.type) !== -1) {\n if (this.dragStop) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\n }\n this.intDestroy(evt);\n }\n else {\n this.element.setAttribute('aria-grabbed', 'false');\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n eleObj.instance.dragStopCalled = true;\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intDrop(evt, eleObj.target);\n }\n this.setGlobalDroppables(true);\n document.body.classList.remove('e-prevent-select');\n };\n /**\n * @param {MouseEvent | TouchEvent} evt ?\n * @returns {void}\n * @private\n */\n Draggable.prototype.intDestroy = function (evt) {\n this.dragProcessStarted = false;\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n this.element.setAttribute('aria-grabbed', 'false');\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag);\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n };\n // triggers when property changed\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Draggable.prototype.getModuleName = function () {\n return 'draggable';\n };\n Draggable.prototype.isDragStarted = function (change) {\n if (change) {\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\n }\n return isDraggedObject.isDragged;\n };\n Draggable.prototype.setDragArea = function () {\n var eleWidthBound;\n var eleHeightBound;\n var top = 0;\n var left = 0;\n var ele;\n var type = typeof this.dragArea;\n if (type === 'string') {\n ele = select(this.dragArea);\n }\n else {\n ele = this.dragArea;\n }\n if (ele) {\n var elementArea = ele.getBoundingClientRect();\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\n eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\n var styles = getComputedStyle(ele);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[parseInt(i.toString(), 10)];\n var tborder = styles['border' + key + 'Width'];\n var tpadding = styles['padding' + key];\n var lowerKey = key.toLowerCase();\n this.borderWidth[\"\" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\n this.padding[\"\" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\n }\n if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {\n top = elementArea.top + document.scrollingElement.scrollTop;\n }\n else {\n top = elementArea.top;\n }\n left = elementArea.left;\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\n }\n };\n Draggable.prototype.getProperTargetElement = function (evt) {\n var intCoord = this.getCoordinates(evt);\n var ele;\n var prevStyle = this.helperElement.style.pointerEvents || '';\n var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version, 10) > 12;\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {\n this.helperElement.style.pointerEvents = 'none';\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\n this.helperElement.style.pointerEvents = prevStyle;\n }\n else {\n ele = evt.target;\n }\n return ele;\n };\n /* istanbul ignore next */\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\n var elem;\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\n elem = this.currentStateTarget;\n }\n else {\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\n }\n return elem;\n };\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\n var intCoord = this.getCoordinates(evt);\n var pageX;\n var pageY;\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\n /* istanbul ignore next */\n if (isdragscroll) {\n pageX = this.clone ? intCoord.pageX :\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY :\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\n }\n else {\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\n }\n if (document.scrollingElement && (!isdragscroll && !this.clone)) {\n var ele = document.scrollingElement;\n var isVerticalScroll = ele.scrollHeight > 0 && ele.scrollHeight > ele.clientHeight && ele.scrollTop > 0;\n var isHorrizontalScroll = ele.scrollWidth > 0 && ele.scrollWidth > ele.clientWidth && ele.scrollLeft > 0;\n pageX = isHorrizontalScroll ? pageX - ele.scrollLeft : pageX;\n pageY = isVerticalScroll ? pageY - ele.scrollTop : pageY;\n }\n return {\n left: pageX - (this.margin.left + this.cursorAt.left),\n top: pageY - (this.margin.top + this.cursorAt.top)\n };\n };\n Draggable.prototype.getCoordinates = function (evt) {\n if (evt.type.indexOf('touch') > -1) {\n return evt.changedTouches[0];\n }\n return evt;\n };\n Draggable.prototype.getHelperElement = function (evt) {\n var element;\n if (this.clone) {\n if (this.helper) {\n element = this.helper({ sender: evt, element: this.target });\n }\n else {\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\n document.body.appendChild(element);\n }\n }\n else {\n element = this.element;\n }\n return element;\n };\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\n this.droppables[this.scope] = reset ? null : {\n draggable: drag,\n helper: helper,\n draggedElement: this.element\n };\n };\n Draggable.prototype.checkTargetElement = function (evt) {\n var target = this.getProperTargetElement(evt);\n var dropIns = this.getDropInstance(target);\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\n if (parent_1) {\n dropIns = this.getDropInstance(parent_1);\n }\n }\n return { target: target, instance: dropIns };\n };\n Draggable.prototype.getDropInstance = function (ele) {\n var name = 'getModuleName';\n var drop;\n var eleInst = ele && ele.ej2_instances;\n if (eleInst) {\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\n var inst = eleInst_1[_i];\n if (inst[\"\" + name]() === 'droppable') {\n drop = inst;\n break;\n }\n }\n }\n return drop;\n };\n Draggable.prototype.destroy = function () {\n this.toggleEvents(true);\n _super.prototype.destroy.call(this);\n };\n var Draggable_1;\n __decorate([\n Complex({}, Position)\n ], Draggable.prototype, \"cursorAt\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"clone\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"dragArea\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isDragScroll\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"isPreventSelect\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"isPreventScroll\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStop\", void 0);\n __decorate([\n Property(1)\n ], Draggable.prototype, \"distance\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"handle\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"abort\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"helper\", void 0);\n __decorate([\n Property('default')\n ], Draggable.prototype, \"scope\", void 0);\n __decorate([\n Property('')\n ], Draggable.prototype, \"dragTarget\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"axis\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTailMode\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"preventDefault\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTapHold\", void 0);\n __decorate([\n Property(750)\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\n Draggable = Draggable_1 = __decorate([\n NotifyPropertyChanges\n ], Draggable);\n return Draggable;\n}(Base));\nexport { Draggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible, matches } from './dom';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { compareElementParent } from './util';\n/**\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\n * ```html\n *
    Droppable
    \n * \n * ```\n */\nvar Droppable = /** @class */ (function (_super) {\n __extends(Droppable, _super);\n function Droppable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseOver = false;\n _this.dragData = {};\n _this.dragStopCalled = false;\n _this.bind();\n return _this;\n }\n Droppable.prototype.bind = function () {\n this.wireEvents();\n };\n Droppable.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop, this);\n };\n // triggers when property changed\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Droppable.prototype.getModuleName = function () {\n return 'droppable';\n };\n Droppable.prototype.intOver = function (event, element) {\n if (!this.mouseOver) {\n var drag = this.dragData[this.scope];\n this.trigger('over', { event: event, target: element, dragData: drag });\n this.mouseOver = true;\n }\n };\n Droppable.prototype.intOut = function (event, element) {\n if (this.mouseOver) {\n this.trigger('out', { evt: event, target: element });\n this.mouseOver = false;\n }\n };\n Droppable.prototype.intDrop = function (evt, element) {\n if (!this.dragStopCalled) {\n return;\n }\n else {\n this.dragStopCalled = false;\n }\n var accept = true;\n var drag = this.dragData[this.scope];\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\n var area;\n if (isDrag) {\n area = this.isDropArea(evt, drag.helper, element);\n if (this.accept) {\n accept = matches(drag.helper, this.accept);\n }\n }\n if (isDrag && this.drop && area.canDrop && accept) {\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\n }\n this.mouseOver = false;\n };\n Droppable.prototype.isDropArea = function (evt, helper, element) {\n var area = { canDrop: true, target: element || evt.target };\n var isTouch = evt.type === 'touchend';\n if (isTouch || area.target === helper) {\n helper.style.display = 'none';\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\n area.canDrop = false;\n area.canDrop = compareElementParent(ele, this.element);\n if (area.canDrop) {\n area.target = ele;\n }\n helper.style.display = '';\n }\n return area;\n };\n Droppable.prototype.destroy = function () {\n EventHandler.remove(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop);\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property()\n ], Droppable.prototype, \"accept\", void 0);\n __decorate([\n Property('default')\n ], Droppable.prototype, \"scope\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"over\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"out\", void 0);\n Droppable = __decorate([\n NotifyPropertyChanges\n ], Droppable);\n return Droppable;\n}(Base));\nexport { Droppable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Base } from './base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n *
    ;\n * \n * ```\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element ?\n * @param {KeyboardEventsModel} options ?\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e ?\n * @returns {void} ?\n */\n _this.keyPressHandler = function (e) {\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n }\n }\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void} ?\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp ?\n * @param {KeyboardEventsModel} oldProp ?\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {string} ?\n * @private\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} ?\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","import { extend, isNullOrUndefined } from './util';\nimport { defaultCulture } from './internationalization';\n/**\n * L10n modules provides localized text for different culture.\n * ```typescript\n * import {setCulture} from '@syncfusion/ts-base-library';\n * //load global locale object common for all components.\n * L10n.load({\n * 'fr-BE': {\n * 'button': {\n * 'check': 'vérifié'\n * }\n * }\n * });\n * //set globale default locale culture.\n * setCulture('fr-BE');\n * let instance: L10n = new L10n('button', {\n * check: 'checked'\n * });\n * //Get locale text for current property.\n * instance.getConstant('check');\n * //Change locale culture in a component.\n * instance.setLocale('en-US');\n * ```\n */\nvar L10n = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {string} controlName ?\n * @param {Object} localeStrings ?\n * @param {string} locale ?\n */\n function L10n(controlName, localeStrings, locale) {\n this.controlName = controlName;\n this.localeStrings = localeStrings;\n this.setLocale(locale || defaultCulture);\n }\n /**\n * Sets the locale text\n *\n * @param {string} locale ?\n * @returns {void} ?\n */\n L10n.prototype.setLocale = function (locale) {\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\n this.currentLocale = intLocale || this.localeStrings;\n };\n /**\n * Sets the global locale for all components.\n *\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\n * @returns {void} ?\n */\n L10n.load = function (localeObject) {\n this.locale = extend(this.locale, localeObject, {}, true);\n };\n /**\n * Returns current locale text for the property based on the culture name and control name.\n *\n * @param {string} prop - specifies the property for which localize text to be returned.\n * @returns {string} ?\n */\n L10n.prototype.getConstant = function (prop) {\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\n if (!isNullOrUndefined(this.currentLocale[\"\" + prop])) {\n return this.currentLocale[\"\" + prop];\n }\n else {\n return this.localeStrings[\"\" + prop] || '';\n }\n };\n /**\n * Returns the control constant object for current object and the locale specified.\n *\n * @param {Object} curObject ?\n * @param {string} locale ?\n * @returns {Object} ?\n */\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\n if ((curObject)[\"\" + locale]) {\n return (curObject)[\"\" + locale][this.controlName];\n }\n return null;\n };\n L10n.locale = {};\n return L10n;\n}());\nexport { L10n };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { extend } from './util';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Browser } from './browser';\nimport { Base } from './base';\nimport { ChildProperty } from './child-property';\nimport { EventHandler } from './event-handler';\n/**\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\n */\nvar SwipeSettings = /** @class */ (function (_super) {\n __extends(SwipeSettings, _super);\n function SwipeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(50)\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\n return SwipeSettings;\n}(ChildProperty));\nexport { SwipeSettings };\nvar swipeRegex = /(Up|Down)/;\n/**\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\n * ```typescript\n * let node: HTMLElement;\n * let touchObj: Touch = new Touch({\n * element: node,\n * tap: function (e) {\n * // tap handler function code\n * }\n * tapHold: function (e) {\n * // tap hold handler function code\n * }\n * scroll: function (e) {\n * // scroll handler function code\n * }\n * swipe: function (e) {\n * // swipe handler function code\n * }\n * });\n * ```\n */\nvar Touch = /** @class */ (function (_super) {\n __extends(Touch, _super);\n /* End-Properties */\n function Touch(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.touchAction = true;\n _this.tapCount = 0;\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.startEvent = function (evt) {\n if (_this.touchAction === true) {\n var point = _this.updateChangeTouches(evt);\n if (evt.changedTouches !== undefined) {\n _this.touchAction = false;\n }\n _this.isTouchMoved = false;\n _this.movedDirection = '';\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n _this.startEventData = point;\n _this.hScrollLocked = _this.vScrollLocked = false;\n _this.tStampStart = Date.now();\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.moveEvent = function (evt) {\n var point = _this.updateChangeTouches(evt);\n _this.movedPoint = point;\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\n var eScrollArgs = {};\n if (_this.isTouchMoved) {\n clearTimeout(_this.timeOutTapHold);\n _this.calcScrollPoints(evt);\n var scrollArg = {\n startEvents: _this.startEventData,\n originalEvent: evt, startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\n velocity: _this.getVelocity(point)\n };\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\n _this.trigger('scroll', eScrollArgs);\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.cancelEvent = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n _this.tapCount = 0;\n _this.swipeFn(evt);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.endEvent = function (evt) {\n _this.swipeFn(evt);\n if (!_this.isTouchMoved) {\n if (typeof _this.tap === 'function') {\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\n _this.timeOutTap = setTimeout(function () {\n _this.tapCount = 0;\n }, _this.tapThreshold);\n }\n }\n _this.modeclear();\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.swipeFn = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n var point = _this.updateChangeTouches(evt);\n var diffX = point.clientX - _this.startPoint.clientX;\n var diffY = point.clientY - _this.startPoint.clientY;\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\n _this.isTouchMoved = diffX > 1 || diffY > 1;\n var isFirefox = (/Firefox/).test(Browser.userAgent);\n if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {\n _this.isTouchMoved = false;\n }\n _this.endPoint = point;\n _this.calcPoints(evt);\n var swipeArgs = {\n originalEvent: evt,\n startEvents: _this.startEventData,\n startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY,\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\n velocity: _this.getVelocity(point)\n };\n if (_this.isTouchMoved) {\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\n var eSwipeArgs = extend(undefined, _this.defaultArgs, swipeArgs);\n var canTrigger = false;\n var ele = _this.element;\n var scrollBool = _this.isScrollable(ele);\n var moved = swipeRegex.test(_this.movedDirection);\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\n if (!scrollBool) {\n canTrigger = true;\n }\n else {\n canTrigger = _this.checkSwipe(ele, moved);\n }\n }\n if (canTrigger) {\n _this.trigger('swipe', eSwipeArgs);\n }\n }\n _this.modeclear();\n };\n _this.modeclear = function () {\n _this.modeClear = setTimeout(function () {\n _this.touchAction = true;\n }, (typeof _this.tap !== 'function' ? 0 : 20));\n _this.lastTapTime = new Date().getTime();\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n _this.bind();\n return _this;\n }\n // triggers when property changed\n /**\n *\n * @private\n * @param {TouchModel} newProp ?\n * @param {TouchModel} oldProp ?\n * @returns {void} ?\n */\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Touch.prototype.bind = function () {\n this.wireEvents();\n if (Browser.isIE) {\n this.element.classList.add('e-block-touch');\n }\n };\n /**\n * To destroy the touch instance.\n *\n * @returns {void}\n */\n Touch.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n // Need to changes the event binding once we updated the event handler.\n Touch.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\n };\n Touch.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\n };\n /**\n * Returns module name as touch\n *\n * @returns {string} ?\n * @private\n */\n Touch.prototype.getModuleName = function () {\n return 'touch';\n };\n /**\n * Returns if the HTML element is Scrollable.\n *\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\n * @returns {boolean} ?\n */\n Touch.prototype.isScrollable = function (element) {\n var eleStyle = getComputedStyle(element);\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\n if ((/(auto|scroll)/).test(style)) {\n return true;\n }\n return false;\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n Touch.prototype.tapHoldEvent = function (evt) {\n this.tapCount = 0;\n this.touchAction = true;\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\n var eTapArgs = { originalEvent: evt };\n this.trigger('tapHold', eTapArgs);\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\n };\n Touch.prototype.calcPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\n if (this.distanceX > this.distanceY) {\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\n }\n else {\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\n }\n };\n Touch.prototype.calcScrollPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\n this.hScrollLocked = true;\n }\n else {\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\n this.vScrollLocked = true;\n }\n };\n Touch.prototype.getVelocity = function (pnt) {\n var newX = pnt.clientX;\n var newY = pnt.clientY;\n var newT = Date.now();\n var xDist = newX - this.startPoint.clientX;\n var yDist = newY - this.startPoint.clientX;\n var interval = newT - this.tStampStart;\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\n };\n Touch.prototype.checkSwipe = function (ele, flag) {\n var keys = ['scroll', 'offset'];\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\n return true;\n }\n return (ele[keys[0] + temp[1]] === 0) ||\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\n };\n Touch.prototype.updateChangeTouches = function (evt) {\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\n return point;\n };\n __decorate([\n Event()\n ], Touch.prototype, \"tap\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"tapHold\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"swipe\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"scroll\", void 0);\n __decorate([\n Property(350)\n ], Touch.prototype, \"tapThreshold\", void 0);\n __decorate([\n Property(750)\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Complex({}, SwipeSettings)\n ], Touch.prototype, \"swipeSettings\", void 0);\n Touch = __decorate([\n NotifyPropertyChanges\n ], Touch);\n return Touch;\n}(Base));\nexport { Touch };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Template Engine\n */\nvar LINES = new RegExp('\\\\n|\\\\r|\\\\s\\\\s+', 'g');\nvar QUOTES = new RegExp(/'|\"/g);\nvar IF_STMT = new RegExp('if ?\\\\(');\nvar ELSEIF_STMT = new RegExp('else if ?\\\\(');\nvar ELSE_STMT = new RegExp('else');\nvar FOR_STMT = new RegExp('for ?\\\\(');\nvar IF_OR_FOR = new RegExp('(/if|/for)');\nvar CALL_FUNCTION = new RegExp('\\\\((.*)\\\\)', '');\nvar NOT_NUMBER = new RegExp('^[0-9]+$', 'g');\nvar WORD = new RegExp('[\\\\w\"\\'.\\\\s+]+', 'g');\nvar DBL_QUOTED_STR = new RegExp('\"(.*?)\"', 'g');\nvar WORDIF = new RegExp('[\\\\w\"\\'@#$.\\\\s-+]+', 'g');\nvar exp = new RegExp('\\\\${([^}]*)}', 'g');\n// let cachedTemplate: Object = {};\nvar ARR_OBJ = /^\\..*/gm;\nvar SINGLE_SLASH = /\\\\/gi;\nvar DOUBLE_SLASH = /\\\\\\\\/gi;\nvar WORDFUNC = new RegExp('[\\\\w\"\\'@#$.\\\\s+]+', 'g');\nvar WINDOWFUNC = /\\window\\./gm;\n/**\n * The function to set regular expression for template expression string.\n *\n * @param {RegExp} value - Value expression.\n * @returns {RegExp} ?\n * @private\n */\nexport function expression(value) {\n if (value) {\n exp = value;\n }\n return exp;\n}\n// /**\n// * To render the template string from the given data.\n// * @param {string} template - String Template.\n// * @param {Object[]|JSON} data - DataSource for the template.\n// * @param {Object} helper? - custom helper object.\n// */\n// export function template(template: string, data: JSON, helper?: Object): string {\n// let hash: string = hashCode(template);\n// let tmpl: Function;\n// if (!cachedTemplate[hash]) {\n// tmpl = cachedTemplate[hash] = compile(template, helper);\n// } else {\n// tmpl = cachedTemplate[hash];\n// }\n// return tmpl(data);\n// }\n/**\n * Compile the template string into template function.\n *\n * @param {string | Function} template - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n * @private\n */\nexport function compile(template, helper, ignorePrefix) {\n if (typeof template === 'function') {\n return template;\n }\n else {\n var argName = 'data';\n var evalExpResult = evalExp(template, argName, helper, ignorePrefix);\n var condtion = \"var valueRegEx = (/value=\\\\'([A-Za-z0-9 _]*)((.)([\\\\w)(!-;?-\\u25A0\\\\s]+)['])/g);\\n var hrefRegex = (/(?:href)([\\\\s='\\\"./]+)([\\\\w-./?=&\\\\\\\\#\\\"]+)((.)([\\\\w)(!-;/?-\\u25A0\\\\s]+)['])/g);\\n if(str.match(valueRegEx)){\\n var check = str.match(valueRegEx);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n str = str.replace(str, str1);\\n }\\n else if (str.match(/(?:href='')/) === null) {\\n if(str.match(hrefRegex)) {\\n var check = str.match(hrefRegex);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\\n if (check1) {\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n }\\n str = str.replace(str, str1);\\n }\\n }\\n \";\n var fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';\n var fn = new Function(argName, fnCode);\n return fn.bind(helper);\n }\n}\n/** function used to evaluate the function expression\n *\n * @param {string} str ?\n * @param {string} nameSpace ?\n * @param {Object} helper ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction evalExp(str, nameSpace, helper, ignorePrefix) {\n var varCOunt = 0;\n /**\n * Variable containing Local Keys\n */\n var localKeys = [];\n var isClass = str.match(/class=\"([^\"]+|)\\s{2}/g);\n var singleSpace = '';\n if (isClass) {\n isClass.forEach(function (value) {\n singleSpace = value.replace(/\\s\\s+/g, ' ');\n str = str.replace(value, singleSpace);\n });\n }\n if (exp.test(str)) {\n var insideBraces = false;\n var outputString = '';\n for (var i = 0; i < str.length; i++) {\n if (str[i + ''] === '$' && str[i + 1] === '{') {\n insideBraces = true;\n }\n else if (str[i + ''] === '}') {\n insideBraces = false;\n }\n outputString += (str[i + ''] === '\"' && !insideBraces) ? '\\\\\"' : str[i + ''];\n }\n str = outputString;\n }\n else {\n str = str.replace(/\\\\?\"/g, '\\\\\"');\n }\n return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\\'$1\\'').replace(exp, function (match, cnt, offset, matchStr) {\n var SPECIAL_CHAR = /@|#|\\$/gm;\n var matches = cnt.match(CALL_FUNCTION);\n // matches to detect any function calls\n if (matches) {\n var rlStr = matches[1];\n if (ELSEIF_STMT.test(cnt)) {\n //handling else-if condition\n cnt = '\";} ' + cnt.replace(matches[1], rlStr.replace(WORD, function (str) {\n str = str.trim();\n return addNameSpace(str, !(QUOTES.test(str)) && (localKeys.indexOf(str) === -1), nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (IF_STMT.test(cnt)) {\n //handling if condition\n cnt = '\"; ' + cnt.replace(matches[1], rlStr.replace(WORDIF, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (FOR_STMT.test(cnt)) {\n //handling for condition\n var rlStr_1 = matches[1].split(' of ');\n // replace for each into actual JavaScript\n cnt = '\"; ' + cnt.replace(matches[1], function (mtc) {\n localKeys.push(rlStr_1[0]);\n localKeys.push(rlStr_1[0] + 'Index');\n varCOunt = varCOunt + 1;\n return 'var i' + varCOunt + '=0; i' + varCOunt + ' < ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix) + '.length; i' + varCOunt + '++';\n }) + '{ \\n ' + rlStr_1[0] + '= ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix)\n + '[i' + varCOunt + ']; \\n var ' + rlStr_1[0] + 'Index=i' + varCOunt + '; \\n str = str + \"';\n }\n else {\n //helper function handling\n var fnStr = cnt.split('(');\n var fNameSpace = (helper && Object.prototype.hasOwnProperty.call(helper, fnStr[0]) ? 'this.' : 'global');\n fNameSpace = (/\\./.test(fnStr[0]) ? '' : fNameSpace);\n var ftArray = matches[1].split(',');\n if (matches[1].length !== 0 && !(/data/).test(ftArray[0]) && !(/window./).test(ftArray[0])) {\n matches[1] = (fNameSpace === 'global' ? nameSpace + '.' + matches[1] : matches[1]);\n }\n var splRegexp = /@|\\$|#/gm;\n var arrObj = /\\]\\./gm;\n if (WINDOWFUNC.test(cnt) && arrObj.test(cnt) || splRegexp.test(cnt)) {\n var splArrRegexp = /@|\\$|#|\\]\\./gm;\n if (splArrRegexp.test(cnt)) {\n cnt = '\"+ ' + (fNameSpace === 'global' ? '' : fNameSpace) + cnt.replace(matches[1], rlStr.replace(WORDFUNC, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '+ \"';\n }\n }\n else {\n cnt = '\" + ' + (fNameSpace === 'global' ? '' : fNameSpace) +\n cnt.replace(rlStr, addNameSpace(matches[1].replace(/,( |)data.|,/gi, ',' + nameSpace + '.').replace(/,( |)data.window/gi, ',window'), (fNameSpace === 'global' ? false : true), nameSpace, localKeys, ignorePrefix)) +\n '+\"';\n }\n }\n }\n else if (ELSE_STMT.test(cnt)) {\n // handling else condition\n cnt = '\"; ' + cnt.replace(ELSE_STMT, '} else { \\n str = str + \"');\n }\n else if (cnt.match(IF_OR_FOR)) {\n // close condition\n cnt = cnt.replace(IF_OR_FOR, '\"; \\n } \\n str = str + \"');\n }\n else if (SPECIAL_CHAR.test(cnt)) {\n // template string with double slash with special character\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n }\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // template string with double slash\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // evaluate normal expression\n cnt = cnt !== '' ? '\"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+\"' : '${}';\n }\n }\n return cnt;\n });\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !== 'true' && str !== 'false') ? nameSpace + '.' + str : str);\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceArrObj(str, addNS, nameSpace, ignoreList) {\n var arrObjReg = /^\\..*/gm;\n return ((addNS && !(NOT_NUMBER.test(str)) &&\n ignoreList.indexOf(str.split('.')[0]) === -1 && !(arrObjReg.test(str))) ? nameSpace + '.' + str : str);\n}\n// // Create hashCode for template string to storeCached function\n// function hashCode(str: string): string {\n// return str.split('').reduce((a: number, b: string) => { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\n// }\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\n}\n/**\n * Replace double slashes to single slash.\n *\n * @param {string} tempStr ?\n * @returns {any} ?\n */\nfunction SlashReplace(tempStr) {\n var double = '\\\\\\\\';\n if (tempStr.match(DOUBLE_SLASH)) {\n return tempStr;\n }\n else {\n return tempStr.replace(SINGLE_SLASH, double);\n }\n}\n/**\n *\n * @param {string} str ?\n * @param {string} nameSpaceNew ?\n * @param {string[]} keys ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\n str = str.trim();\n var windowFunc = /\\window\\./gm;\n if (!windowFunc.test(str)) {\n var quotes = /'|\"/gm;\n var splRegexp = /@|\\$|#/gm;\n if (splRegexp.test(str)) {\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\n }\n if (ARR_OBJ.test(str)) {\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\n }\n else {\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\n }\n }\n else {\n return str;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\n/**\n * Template Engine Bridge\n */\nimport { compile as render } from './template';\nimport { createElement } from './dom';\nimport { isNullOrUndefined, isBlazor } from './util';\nvar HAS_ROW = /^[\\n\\r.]+ 0) {\n elements.forEach(function (element) {\n detach(element);\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeJsEvents = function () {\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\n if (elements.length > 0) {\n elements.forEach(function (element) {\n jsEvents.forEach(function (attr) {\n if (element.hasAttribute(attr)) {\n element.removeAttribute(attr);\n }\n });\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeXssAttrs = function () {\n var _this = this;\n this.removeAttrs.forEach(function (item, index) {\n var elements = _this.wrapElement.querySelectorAll(item.selector);\n if (elements.length > 0) {\n if (item.selector === 'a[href]') {\n elements.forEach(function (element) {\n if ((element.getAttribute(item.attribute)).replace(/\\t|\\s|&/, '').indexOf('javascript:alert') !== -1) {\n element.removeAttribute(item.attribute);\n }\n });\n }\n else {\n elements.forEach(function (element) {\n element.removeAttribute(item.attribute);\n });\n }\n }\n });\n };\n return SanitizeHtmlHelper;\n}());\nexport { SanitizeHtmlHelper };\n","/**\n * Base modules\n */\nexport * from './intl/intl-base';\nexport * from './ajax';\nexport * from './fetch';\nexport * from './animation';\nexport * from './base';\nexport * from './browser';\nexport * from './component';\nexport * from './child-property';\nexport * from './draggable';\nexport * from './droppable';\nexport * from './event-handler';\nexport * from './internationalization';\nexport * from './keyboard';\nexport * from './l10n';\nexport * from './module-loader';\nexport * from './notify-property-change';\nexport * from './touch';\nexport * from './hijri-parser';\nexport * from './template-engine';\nexport * from './util';\nexport * from './dom';\nexport * from './observer';\nexport * from './sanitize-helper';\nexport * from './validate-lic';\n","/**\n * index\n */\nexport * from './src/index';\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, Event, append, compile } from '@syncfusion/ej2-base';\nimport { EventHandler, Touch, Browser, Animation as PopupAnimation, animationMode } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getUniqueID, formatUnit, select, selectAll } from '@syncfusion/ej2-base';\nimport { attributes, closest, removeClass, addClass, remove } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Complex, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '../popup/popup';\nimport { calculatePosition } from '../common/position';\nimport { isCollide, fit, destroy as collisionDestroy } from '../common/collision';\nvar TOUCHEND_HIDE_DELAY = 1500;\nvar TAPHOLD_THRESHOLD = 500;\nvar SHOW_POINTER_TIP_GAP = 0;\nvar HIDE_POINTER_TIP_GAP = 8;\nvar MOUSE_TRAIL_GAP = 2;\nvar POINTER_ADJUST = 2;\nvar ROOT = 'e-tooltip';\nvar RTL = 'e-rtl';\nvar DEVICE = 'e-bigger';\nvar ICON = 'e-icons';\nvar CLOSE = 'e-tooltip-close';\nvar TOOLTIP_WRAP = 'e-tooltip-wrap';\nvar CONTENT = 'e-tip-content';\nvar ARROW_TIP = 'e-arrow-tip';\nvar ARROW_TIP_OUTER = 'e-arrow-tip-outer';\nvar ARROW_TIP_INNER = 'e-arrow-tip-inner';\nvar TIP_BOTTOM = 'e-tip-bottom';\nvar TIP_TOP = 'e-tip-top';\nvar TIP_LEFT = 'e-tip-left';\nvar TIP_RIGHT = 'e-tip-right';\nvar POPUP_ROOT = 'e-popup';\nvar POPUP_OPEN = 'e-popup-open';\nvar POPUP_CLOSE = 'e-popup-close';\nvar POPUP_LIB = 'e-lib';\nvar HIDE_POPUP = 'e-hidden';\nvar POPUP_CONTAINER = 'e-tooltip-popup-container';\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ effect: 'FadeIn', duration: 150, delay: 0 })\n ], Animation.prototype, \"open\", void 0);\n __decorate([\n Property({ effect: 'FadeOut', duration: 150, delay: 0 })\n ], Animation.prototype, \"close\", void 0);\n return Animation;\n}(ChildProperty));\nexport { Animation };\n/**\n * Represents the Tooltip component that displays a piece of information about the target element on mouse hover.\n * ```html\n *
    Show Tooltip
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n /**\n * Constructor for creating the Tooltip Component\n *\n * @param {TooltipModel} options - specifies the options for the constructor\n * @param {string| HTMLElement} element - specifies the element for the constructor\n *\n */\n function Tooltip(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseMoveEvent = null;\n _this.mouseMoveTarget = null;\n _this.containerElement = null;\n _this.isBodyContainer = true;\n return _this;\n }\n Tooltip.prototype.initialize = function () {\n this.formatPosition();\n addClass([this.element], ROOT);\n };\n Tooltip.prototype.formatPosition = function () {\n var _a, _b;\n if (!this.position) {\n return;\n }\n if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) {\n _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1];\n }\n else {\n _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1];\n }\n };\n Tooltip.prototype.renderArrow = function () {\n this.setTipClass(this.position);\n var tip = this.createElement('div', { className: ARROW_TIP + ' ' + this.tipClass });\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass }));\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass }));\n this.tooltipEle.appendChild(tip);\n };\n Tooltip.prototype.setTipClass = function (position) {\n if (position.indexOf('Right') === 0) {\n this.tipClass = TIP_LEFT;\n }\n else if (position.indexOf('Bottom') === 0) {\n this.tipClass = TIP_TOP;\n }\n else if (position.indexOf('Left') === 0) {\n this.tipClass = TIP_RIGHT;\n }\n else {\n this.tipClass = TIP_BOTTOM;\n }\n };\n Tooltip.prototype.renderPopup = function (target) {\n var elePos = this.mouseTrail ? { top: 0, left: 0 } : this.getTooltipPosition(target);\n this.tooltipEle.classList.remove(POPUP_LIB);\n this.popupObj = new Popup(this.tooltipEle, {\n height: this.height,\n width: this.width,\n position: { X: elePos.left, Y: elePos.top },\n enableRtl: this.enableRtl,\n open: this.openPopupHandler.bind(this),\n close: this.closePopupHandler.bind(this)\n });\n };\n Tooltip.prototype.getScalingFactor = function (target) {\n if (!target) {\n return { x: 1, y: 1 };\n }\n var scalingFactors = { x: 1, y: 1 };\n var elementsWithTransform = target.closest('[style*=\"transform: scale\"]');\n if (elementsWithTransform && elementsWithTransform !== this.tooltipEle && elementsWithTransform.contains(this.tooltipEle)) {\n var computedStyle = window.getComputedStyle(elementsWithTransform);\n var transformValue = computedStyle.getPropertyValue('transform');\n var matrixValues = transformValue.match(/matrix\\(([^)]+)\\)/)[1].split(',').map(parseFloat);\n scalingFactors.x = matrixValues[0];\n scalingFactors.y = matrixValues[3];\n }\n return scalingFactors;\n };\n Tooltip.prototype.getTooltipPosition = function (target) {\n this.tooltipEle.style.display = 'block';\n var parentWithZoomStyle = this.element.closest('[style*=\"zoom\"]');\n if (parentWithZoomStyle) {\n if (!parentWithZoomStyle.contains(this.tooltipEle)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.tooltipEle.style.zoom = getComputedStyle(parentWithZoomStyle).zoom;\n }\n }\n var pos = calculatePosition(target, this.tooltipPositionX, this.tooltipPositionY, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n var scalingFactors = this.getScalingFactor(target);\n var offsetPos = this.calculateTooltipOffset(this.position, scalingFactors.x, scalingFactors.y);\n var collisionPosition = this.calculateElementPosition(pos, offsetPos);\n var collisionLeft = collisionPosition[0];\n var collisionTop = collisionPosition[1];\n var elePos = this.collisionFlipFit(target, collisionLeft, collisionTop);\n elePos.left = elePos.left / scalingFactors.x;\n elePos.top = elePos.top / scalingFactors.y;\n this.tooltipEle.style.display = '';\n return elePos;\n };\n Tooltip.prototype.windowResize = function () {\n this.reposition(this.findTarget());\n };\n Tooltip.prototype.reposition = function (target) {\n if (this.popupObj && target) {\n var elePos = this.getTooltipPosition(target);\n this.popupObj.position = { X: elePos.left, Y: elePos.top };\n this.popupObj.dataBind();\n }\n };\n Tooltip.prototype.openPopupHandler = function () {\n if (!this.mouseTrail && this.needTemplateReposition()) {\n this.reposition(this.findTarget());\n }\n this.trigger('afterOpen', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.closePopupHandler = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && !(this.opensOn === 'Click' || typeof (this.content) === 'function')) {\n this.clearTemplate(['content']);\n }\n this.clear();\n var tooltipAfterCloseEventArgs = {\n type: this.tooltipEventArgs.event ? this.tooltipEventArgs.event.type : null, cancel: false,\n target: this.tooltipEventArgs.target, event: this.tooltipEventArgs.event ? this.tooltipEventArgs.event : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(this.tooltipEventArgs.event)\n };\n this.trigger('afterClose', tooltipAfterCloseEventArgs);\n tooltipAfterCloseEventArgs = null;\n };\n Tooltip.prototype.calculateTooltipOffset = function (position, xScalingFactor, yScalingFactor) {\n if (xScalingFactor === void 0) { xScalingFactor = 1; }\n if (yScalingFactor === void 0) { yScalingFactor = 1; }\n var pos = { top: 0, left: 0 };\n var tipWidth;\n var tipHeight;\n var tooltipEleWidth;\n var tooltipEleHeight;\n var arrowEle;\n var tipAdjust;\n var tipHeightAdjust;\n var tipWidthAdjust;\n if (xScalingFactor !== 1 || yScalingFactor !== 1) {\n var tooltipEleRect = this.tooltipEle.getBoundingClientRect();\n var arrowEleRect = void 0;\n tooltipEleWidth = Math.round(tooltipEleRect.width);\n tooltipEleHeight = Math.round(tooltipEleRect.height);\n arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n if (arrowEle) {\n arrowEleRect = arrowEle.getBoundingClientRect();\n }\n tipWidth = arrowEle ? Math.round(arrowEleRect.width) : 0;\n tipHeight = arrowEle ? Math.round(arrowEleRect.height) : 0;\n tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (tooltipEleHeight - (this.tooltipEle.clientHeight * yScalingFactor));\n tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (tooltipEleWidth - (this.tooltipEle.clientWidth * xScalingFactor));\n }\n else {\n tooltipEleWidth = this.tooltipEle.offsetWidth;\n tooltipEleHeight = this.tooltipEle.offsetHeight;\n arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n tipWidth = arrowEle ? arrowEle.offsetWidth : 0;\n tipHeight = arrowEle ? arrowEle.offsetHeight : 0;\n tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight);\n tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth);\n }\n if (this.mouseTrail) {\n tipAdjust += MOUSE_TRAIL_GAP;\n }\n switch (position) {\n case 'RightTop':\n pos.left += tipWidth + tipAdjust;\n pos.top -= tooltipEleHeight - tipHeightAdjust;\n break;\n case 'RightCenter':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'RightBottom':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tipHeightAdjust);\n break;\n case 'BottomRight':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n case 'BottomCenter':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n case 'BottomLeft':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'LeftBottom':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tipHeightAdjust);\n break;\n case 'LeftCenter':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'LeftTop':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight - tipHeightAdjust);\n break;\n case 'TopLeft':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'TopRight':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n default:\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n }\n pos.left += this.offsetX;\n pos.top += this.offsetY;\n return pos;\n };\n Tooltip.prototype.updateTipPosition = function (position) {\n var selEle = selectAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER, this.tooltipEle);\n var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT];\n removeClass(selEle, removeList);\n this.setTipClass(position);\n addClass(selEle, this.tipClass);\n };\n Tooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) {\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n if (this.showTipPointer === false || arrowEle === null) {\n return;\n }\n this.updateTipPosition(position);\n var leftValue;\n var topValue;\n this.tooltipEle.style.display = 'block';\n var tooltipWidth = this.tooltipEle.clientWidth;\n var tooltipHeight = this.tooltipEle.clientHeight;\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n var tipWidth = arrowEle.offsetWidth;\n var tipHeight = arrowEle.offsetHeight;\n this.tooltipEle.style.display = '';\n if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) {\n if (this.tipClass === TIP_BOTTOM) {\n topValue = '99.9%';\n // Arrow icon aligned -2px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px';\n }\n else {\n topValue = -(tipHeight - 1) + 'px';\n // Arrow icon aligned -6px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px';\n }\n if (target) {\n var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n leftValue = POINTER_ADJUST + 'px';\n }\n else if ((tipPosExclude) && (this.tipPointerPosition === 'End' || this.tipPointerPosition === 'Start')) {\n leftValue = (this.tipPointerPosition === 'End') ? ((target.offsetWidth + ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2)) - (tipWidth / 2)) - POINTER_ADJUST + 'px'\n : ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2) - (tipWidth / 2) + POINTER_ADJUST + 'px';\n }\n else {\n leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px';\n }\n }\n }\n else {\n if (this.tipClass === TIP_RIGHT) {\n leftValue = '99.9%';\n // Arrow icon aligned -2px left from ArrowOuterTip div\n arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px';\n }\n else {\n leftValue = -(tipWidth - 1) + 'px';\n // Arrow icon aligned -2px from ArrowOuterTip width\n arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px';\n }\n var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n topValue = POINTER_ADJUST + 'px';\n }\n else {\n topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px';\n }\n }\n arrowEle.style.top = topValue;\n arrowEle.style.left = leftValue;\n };\n Tooltip.prototype.renderContent = function (target) {\n var _this = this;\n var tooltipContent = select('.' + CONTENT, this.tooltipEle);\n if (this.cssClass) {\n addClass([this.tooltipEle], this.cssClass.split(' '));\n }\n if (target && !isNullOrUndefined(target.getAttribute('title'))) {\n target.setAttribute('data-content', target.getAttribute('title'));\n target.removeAttribute('title');\n }\n if (!isNullOrUndefined(this.content)) {\n tooltipContent.innerHTML = '';\n if (this.content instanceof HTMLElement) {\n tooltipContent.appendChild(this.content);\n }\n else if (typeof this.content === 'string') {\n if (this.isAngular) {\n this.setProperties({ content: SanitizeHtmlHelper.sanitize(this.content) }, true);\n }\n else {\n this.content = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\n }\n if (this.enableHtmlParse) {\n var tempFunction = compile(this.content);\n var tempArr = tempFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent, this.root);\n if (tempArr) {\n append(tempArr, tooltipContent);\n }\n }\n else {\n tooltipContent['textContent'] = this.content;\n }\n }\n else {\n var templateFunction = compile(this.content);\n var tempArr = templateFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n if (this.isAngular) {\n setTimeout(function () {\n _this.reposition(target);\n }, 1);\n }\n append(tempArr, tooltipContent);\n }\n this.renderReactTemplates();\n }\n }\n else {\n if (target && !isNullOrUndefined(target.getAttribute('data-content'))) {\n tooltipContent.innerHTML = target.getAttribute('data-content');\n }\n }\n };\n Tooltip.prototype.renderCloseIcon = function () {\n if (!this.isSticky) {\n var existingCloseIcon = this.tooltipEle.querySelector('.' + ICON + '.' + CLOSE);\n if (existingCloseIcon) {\n remove(existingCloseIcon);\n }\n return;\n }\n var tipClose = this.createElement('div', { className: ICON + ' ' + CLOSE });\n this.tooltipEle.appendChild(tipClose);\n EventHandler.add(tipClose, Browser.touchStartEvent, this.onStickyClose, this);\n };\n Tooltip.prototype.addDescribedBy = function (target, id) {\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\n if (describedby.indexOf(id) < 0) {\n describedby.push(id);\n }\n attributes(target, { 'aria-describedby': describedby.join(' ').trim(), 'data-tooltip-id': id });\n };\n Tooltip.prototype.removeDescribedBy = function (target) {\n var id = target.getAttribute('data-tooltip-id');\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\n var index = describedby.indexOf(id);\n if (index !== -1) {\n describedby.splice(index, 1);\n }\n target.removeAttribute('data-tooltip-id');\n var orgdescribedby = describedby.join(' ').trim();\n if (orgdescribedby) {\n target.setAttribute('aria-describedby', orgdescribedby);\n }\n else {\n target.removeAttribute('aria-describedby');\n }\n };\n Tooltip.prototype.tapHoldHandler = function (evt) {\n clearTimeout(this.autoCloseTimer);\n this.targetHover(evt.originalEvent);\n };\n Tooltip.prototype.touchEndHandler = function () {\n var _this = this;\n if (this.isSticky) {\n return;\n }\n var close = function () {\n _this.close();\n };\n this.autoCloseTimer = setTimeout(close, TOUCHEND_HIDE_DELAY);\n };\n Tooltip.prototype.targetClick = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target)) {\n return;\n }\n if (target.getAttribute('data-tooltip-id') === null) {\n this.targetHover(e);\n }\n else if (!this.isSticky) {\n this.hideTooltip(this.animation.close, e, target);\n }\n };\n Tooltip.prototype.targetHover = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target) || (target.getAttribute('data-tooltip-id') !== null && this.closeDelay === 0)) {\n return;\n }\n var targetList = [].slice.call(selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document));\n for (var _i = 0, targetList_1 = targetList; _i < targetList_1.length; _i++) {\n var target_1 = targetList_1[_i];\n this.restoreElement(target_1);\n }\n this.showTooltip(target, this.animation.open, e);\n };\n Tooltip.prototype.mouseMoveBeforeOpen = function (e) {\n this.mouseMoveEvent = e;\n };\n Tooltip.prototype.mouseMoveBeforeRemove = function () {\n if (this.mouseMoveTarget) {\n EventHandler.remove(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen);\n }\n };\n Tooltip.prototype.showTooltip = function (target, showAnimation, e) {\n var _this = this;\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n if (this.openDelay && this.mouseTrail) {\n this.mouseMoveBeforeRemove();\n this.mouseMoveTarget = target;\n EventHandler.add(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen, this);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n var observeCallback = function (beforeRenderArgs) {\n _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation);\n };\n this.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this));\n };\n Tooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) {\n if (beforeRenderArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n }\n else {\n this.isHidden = false;\n if (isNullOrUndefined(this.tooltipEle)) {\n this.ctrlId = this.element.getAttribute('id') ?\n getUniqueID(this.element.getAttribute('id')) : getUniqueID('tooltip');\n this.tooltipEle = this.createElement('div', {\n className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: {\n role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content'\n }, styles: 'width:' +\n formatUnit(this.width) + ';height:' + formatUnit(this.height) + ';position:absolute;'\n });\n this.tooltipBeforeRender(target, this);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n else {\n if (target) {\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n this.addDescribedBy(target, this.ctrlId + '_content');\n this.renderContent(target);\n PopupAnimation.stop(this.tooltipEle);\n this.reposition(target);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n }\n }\n };\n Tooltip.prototype.appendContainer = function (ctrlObj) {\n if (typeof this.container == 'string') {\n if (this.container === 'body') {\n this.containerElement = document.body;\n }\n else {\n this.isBodyContainer = false;\n this.containerElement = select(this.container, document);\n }\n }\n else if (this.container instanceof HTMLElement) {\n this.containerElement = this.container;\n this.isBodyContainer = this.containerElement.tagName === 'BODY';\n }\n if (!this.isBodyContainer) {\n addClass([this.containerElement], POPUP_CONTAINER);\n }\n this.containerElement.appendChild(ctrlObj.tooltipEle);\n };\n Tooltip.prototype.tooltipBeforeRender = function (target, ctrlObj) {\n if (target) {\n if (Browser.isDevice) {\n addClass([ctrlObj.tooltipEle], DEVICE);\n }\n if (ctrlObj.width !== 'auto') {\n ctrlObj.tooltipEle.style.maxWidth = formatUnit(ctrlObj.width);\n }\n ctrlObj.tooltipEle.appendChild(ctrlObj.createElement('div', { className: CONTENT }));\n this.appendContainer(ctrlObj);\n removeClass([ctrlObj.tooltipEle], HIDE_POPUP);\n ctrlObj.addDescribedBy(target, ctrlObj.ctrlId + '_content');\n ctrlObj.renderContent(target);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n if (ctrlObj.showTipPointer) {\n ctrlObj.renderArrow();\n }\n ctrlObj.renderCloseIcon();\n ctrlObj.renderPopup(target);\n ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY);\n PopupAnimation.stop(ctrlObj.tooltipEle);\n ctrlObj.reposition(target);\n }\n };\n Tooltip.prototype.tooltipAfterRender = function (target, e, showAnimation, ctrlObj) {\n if (target) {\n removeClass([ctrlObj.tooltipEle], POPUP_OPEN);\n addClass([ctrlObj.tooltipEle], POPUP_CLOSE);\n ctrlObj.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: ctrlObj.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n if (ctrlObj.needTemplateReposition() && !ctrlObj.mouseTrail && (showAnimation.effect === 'None' || showAnimation.effect === 'FadeIn' ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.isReact && typeof ctrlObj.content != 'string'))) {\n ctrlObj.tooltipEle.style.display = 'none';\n }\n var observeCallback = function (observedArgs) {\n ctrlObj.beforeOpenCallback(observedArgs, target, showAnimation, e);\n };\n ctrlObj.trigger('beforeOpen', ctrlObj.tooltipEventArgs, observeCallback.bind(ctrlObj));\n }\n };\n Tooltip.prototype.beforeOpenCallback = function (observedArgs, target, showAnimation, e) {\n var _this = this;\n if (observedArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n this.restoreElement(target);\n }\n else {\n var openAnimation_1 = {\n name: (showAnimation.effect === 'None' && animationMode === 'Enable') ? 'FadeIn' : this.animation.open.effect,\n duration: showAnimation.duration,\n delay: showAnimation.delay,\n timingFunction: 'easeOut'\n };\n if (showAnimation.effect === 'None') {\n openAnimation_1 = undefined;\n }\n if (this.openDelay > 0) {\n var show = function () {\n if (_this.mouseTrail) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', _this.onMouseMove, _this);\n }\n if (_this.popupObj) {\n _this.popupObj.show(openAnimation_1, target);\n if (_this.mouseMoveEvent && _this.mouseTrail) {\n _this.onMouseMove(_this.mouseMoveEvent);\n }\n }\n };\n this.showTimer = setTimeout(show, this.openDelay);\n }\n else {\n if (this.popupObj) {\n this.popupObj.show(openAnimation_1, target);\n }\n }\n }\n if (e) {\n this.wireMouseEvents(e, target);\n }\n };\n Tooltip.prototype.needTemplateReposition = function () {\n // eslint-disable-next-line\n var tooltip = this;\n return !isNullOrUndefined(tooltip.viewContainerRef)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n && typeof tooltip.viewContainerRef !== 'string' || this.isReact;\n };\n Tooltip.prototype.checkCollision = function (target, x, y) {\n var elePos = {\n left: x, top: y, position: this.position,\n horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY\n };\n var affectedPos = isCollide(this.tooltipEle, this.checkCollideTarget(), x, y);\n if (affectedPos.length > 0) {\n elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' :\n this.tooltipPositionX;\n elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' :\n this.tooltipPositionY;\n }\n return elePos;\n };\n Tooltip.prototype.calculateElementPosition = function (pos, offsetPos) {\n return [this.isBodyContainer ? pos.left + offsetPos.left :\n (pos.left - this.containerElement.getBoundingClientRect().left) +\n offsetPos.left + window.pageXOffset + this.containerElement.scrollLeft,\n this.isBodyContainer ? pos.top + offsetPos.top :\n (pos.top - this.containerElement.getBoundingClientRect().top) +\n offsetPos.top + window.pageYOffset + this.containerElement.scrollTop];\n };\n Tooltip.prototype.collisionFlipFit = function (target, x, y) {\n var elePos = this.checkCollision(target, x, y);\n var newpos = elePos.position;\n if (this.tooltipPositionY !== elePos.vertical) {\n newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical);\n }\n if (this.tooltipPositionX !== elePos.horizontal) {\n if (newpos.indexOf('Left') === 0) {\n elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Left');\n }\n if (newpos.indexOf('Right') === 0) {\n elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Right');\n }\n elePos.horizontal = this.tooltipPositionX;\n }\n this.tooltipEventArgs = {\n type: null, cancel: false, target: target, event: null,\n element: this.tooltipEle, collidedPosition: newpos\n };\n this.trigger('beforeCollision', this.tooltipEventArgs);\n if (this.tooltipEventArgs.cancel) {\n newpos = this.position;\n }\n else {\n var elePosVertical = elePos.vertical;\n var elePosHorizontal = elePos.horizontal;\n if (elePos.position !== newpos) {\n var pos = calculatePosition(target, elePosHorizontal, elePosVertical, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n var scalingFactors = this.getScalingFactor(target);\n var offsetPos = this.calculateTooltipOffset(newpos, scalingFactors.x, scalingFactors.y);\n offsetPos.top -= this.getOffSetPosition('TopBottom', newpos, this.offsetY);\n offsetPos.left -= this.getOffSetPosition('RightLeft', newpos, this.offsetX);\n elePos.position = newpos;\n var elePosition = this.calculateElementPosition(pos, offsetPos);\n elePos.left = elePosition[0];\n elePos.top = elePosition[1];\n }\n else {\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n }\n }\n var eleOffset = { left: elePos.left, top: elePos.top };\n var position = this.isBodyContainer ?\n fit(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: this.windowCollision }, eleOffset) : eleOffset;\n this.tooltipEle.style.display = 'block';\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n if (this.showTipPointer && arrowEle != null && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) {\n var arrowleft = parseInt(arrowEle.style.left, 10) - (position.left - elePos.left);\n if (arrowleft < 0) {\n arrowleft = 0;\n }\n else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) {\n arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth;\n }\n arrowEle.style.left = arrowleft.toString() + 'px';\n }\n this.tooltipEle.style.display = '';\n eleOffset.left = position.left;\n eleOffset.top = position.top;\n return eleOffset;\n };\n Tooltip.prototype.getOffSetPosition = function (positionString, newPos, offsetType) {\n return ((positionString.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\n (positionString.indexOf(newPos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * offsetType) : 0;\n };\n Tooltip.prototype.checkCollideTarget = function () {\n return !this.windowCollision && this.target ? this.element : null;\n };\n Tooltip.prototype.hideTooltip = function (hideAnimation, e, targetElement) {\n var _this = this;\n if (this.closeDelay > 0) {\n clearTimeout(this.hideTimer);\n clearTimeout(this.showTimer);\n var hide = function () {\n if (_this.closeDelay && _this.tooltipEle && _this.isTooltipOpen) {\n return;\n }\n _this.tooltipHide(hideAnimation, e, targetElement);\n };\n this.hideTimer = setTimeout(hide, this.closeDelay);\n }\n else {\n this.tooltipHide(hideAnimation, e, targetElement);\n }\n };\n Tooltip.prototype.tooltipHide = function (hideAnimation, e, targetElement) {\n var _this = this;\n var target;\n if (e) {\n target = this.target ? (targetElement || e.target) : this.element;\n }\n else {\n target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n // this line commented for close the tooltip popup element even the target element destroyed in a page.\n //if (isNullOrUndefined(target)) { return; }\n this.trigger('beforeClose', this.tooltipEventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.mouseMoveBeforeRemove();\n _this.popupHide(hideAnimation, target, e);\n }\n else {\n _this.isHidden = false;\n }\n });\n };\n Tooltip.prototype.popupHide = function (hideAnimation, target, e) {\n if (target && e) {\n this.restoreElement(target);\n }\n this.isHidden = true;\n var closeAnimation = {\n name: (hideAnimation.effect === 'None' && animationMode === 'Enable') ? 'FadeOut' : this.animation.close.effect,\n duration: hideAnimation.duration,\n delay: hideAnimation.delay,\n timingFunction: 'easeIn'\n };\n if (hideAnimation.effect === 'None') {\n closeAnimation = undefined;\n }\n if (this.popupObj) {\n this.popupObj.hide(closeAnimation);\n }\n };\n Tooltip.prototype.restoreElement = function (target) {\n this.unwireMouseEvents(target);\n if (!isNullOrUndefined(target.getAttribute('data-content'))) {\n target.setAttribute('title', target.getAttribute('data-content'));\n target.removeAttribute('data-content');\n }\n this.removeDescribedBy(target);\n };\n Tooltip.prototype.clear = function () {\n var target = this.findTarget();\n if (target) {\n this.restoreElement(target);\n }\n if (this.tooltipEle) {\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n }\n if (this.isHidden) {\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n this.tooltipEle = null;\n this.popupObj = null;\n }\n };\n Tooltip.prototype.tooltipHover = function () {\n if (this.tooltipEle) {\n this.isTooltipOpen = true;\n }\n };\n Tooltip.prototype.tooltipMouseOut = function (e) {\n this.isTooltipOpen = false;\n this.hideTooltip(this.animation.close, e, this.findTarget());\n };\n Tooltip.prototype.onMouseOut = function (e) {\n var enteredElement = e.relatedTarget;\n // don't close the tooltip only if it is tooltip content element\n if (enteredElement && !this.mouseTrail) {\n var checkForTooltipElement = closest(enteredElement, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT);\n if (checkForTooltipElement) {\n EventHandler.add(checkForTooltipElement, 'mouseleave', this.tooltipElementMouseOut, this);\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.closeDelay === 0 && (this.animation.close.effect === 'None' || (this.isReact && typeof this.content != 'string'))) {\n this.clear();\n }\n }\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n this.clear();\n }\n if (this.popupObj && !this.popupObj.element.classList.contains(POPUP_OPEN)) {\n this.clear();\n }\n };\n Tooltip.prototype.tooltipElementMouseOut = function (e) {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n EventHandler.remove(this.element, 'mouseleave', this.tooltipElementMouseOut);\n this.clear();\n };\n Tooltip.prototype.onStickyClose = function () {\n this.close();\n };\n Tooltip.prototype.onMouseMove = function (event) {\n var eventPageX = 0;\n var eventPageY = 0;\n if (event.type.indexOf('touch') > -1) {\n event.preventDefault();\n eventPageX = event.touches[0].pageX;\n eventPageY = event.touches[0].pageY;\n }\n else {\n eventPageX = event.pageX;\n eventPageY = event.pageY;\n }\n PopupAnimation.stop(this.tooltipEle);\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n this.adjustArrow(event.target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n var scalingFactors = this.getScalingFactor(event.target);\n var pos = this.calculateTooltipOffset(this.position, scalingFactors.x, scalingFactors.y);\n var x = eventPageX + pos.left + this.offsetX;\n var y = eventPageY + pos.top + this.offsetY;\n var elePos = this.checkCollision(event.target, x, y);\n if (this.tooltipPositionX !== elePos.horizontal || this.tooltipPositionY !== elePos.vertical) {\n var newpos = (this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + elePos.horizontal : elePos.horizontal + elePos.vertical;\n elePos.position = newpos;\n this.adjustArrow(event.target, elePos.position, elePos.horizontal, elePos.vertical);\n var colpos = this.calculateTooltipOffset(elePos.position, scalingFactors.x, scalingFactors.y);\n elePos.left = eventPageX + colpos.left - this.offsetX;\n elePos.top = eventPageY + colpos.top - this.offsetY;\n }\n this.tooltipEle.style.left = elePos.left + 'px';\n this.tooltipEle.style.top = elePos.top + 'px';\n };\n Tooltip.prototype.keyDown = function (event) {\n if (this.tooltipEle && event.keyCode === 27) {\n this.close();\n }\n };\n Tooltip.prototype.touchEnd = function (e) {\n if (this.tooltipEle && closest(e.target, '.' + ROOT) === null && !this.isSticky) {\n this.close();\n }\n };\n Tooltip.prototype.scrollHandler = function (e) {\n if (this.tooltipEle && !this.isSticky) {\n if (!(closest(e.target, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT))\n && !this.isSticky) {\n this.close();\n }\n }\n };\n /**\n * Core method that initializes the control rendering.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.render = function () {\n this.initialize();\n this.wireEvents(this.opensOn);\n this.renderComplete();\n };\n /**\n * Initializes the values of private members.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.preRender = function () {\n this.tipClass = TIP_BOTTOM;\n this.tooltipPositionX = 'Center';\n this.tooltipPositionY = 'Top';\n this.isHidden = true;\n };\n /**\n * Binding events to the Tooltip element.\n *\n * @hidden\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.wireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_1 = triggerList; _i < triggerList_1.length; _i++) {\n var opensOn = triggerList_1[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.wireFocusEvents();\n }\n if (opensOn === 'Click') {\n EventHandler.add(this.element, Browser.touchStartEvent, this.targetClick, this);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n this.touchModule = new Touch(this.element, {\n tapHoldThreshold: TAPHOLD_THRESHOLD,\n tapHold: this.tapHoldHandler.bind(this)\n });\n EventHandler.add(this.element, Browser.touchEndEvent, this.touchEndHandler, this);\n }\n else {\n EventHandler.add(this.element, 'mouseover', this.targetHover, this);\n }\n }\n }\n this.windowResizeBound = this.windowResize.bind(this);\n this.keyDownBound = this.keyDown.bind(this);\n this.touchEndBound = this.touchEnd.bind(this);\n this.scrollWheelBound = this.scrollHandler.bind(this);\n document.addEventListener('wheel', this.scrollWheelBound);\n document.addEventListener('scroll', this.scrollWheelBound);\n document.addEventListener('touchend', this.touchEndBound);\n document.addEventListener('keydown', this.keyDownBound);\n window.addEventListener('resize', this.windowResizeBound);\n };\n Tooltip.prototype.getTriggerList = function (trigger) {\n if (!trigger) {\n return [];\n }\n if (trigger === 'Auto') {\n trigger = (Browser.isDevice) ? 'Hover' : 'Hover Focus';\n }\n return trigger.split(' ');\n };\n Tooltip.prototype.wireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n this.targetsList = targetList;\n if (!isNullOrUndefined(this.targetsList) && this.targetsList.length > 0) {\n for (var _i = 0, targetList_2 = targetList; _i < targetList_2.length; _i++) {\n var target = targetList_2[_i];\n EventHandler.add(target, 'focus', this.targetHover, this);\n }\n }\n else {\n EventHandler.add(this.element, 'focusin', this.targetHover, this);\n }\n }\n else {\n EventHandler.add(this.element, 'focusin', this.targetHover, this);\n }\n };\n Tooltip.prototype.wireMouseEvents = function (e, target) {\n if (this.tooltipEle) {\n if (!this.isSticky) {\n if (e.type === 'focus') {\n EventHandler.add(target, 'blur', this.onMouseOut, this);\n }\n if (e.type === 'focusin') {\n EventHandler.add(target, 'focusout', this.onMouseOut, this);\n }\n if (e.type === 'mouseover') {\n EventHandler.add(target, 'mouseleave', this.onMouseOut, this);\n }\n if (this.closeDelay) {\n EventHandler.add(this.tooltipEle, 'mouseenter', this.tooltipHover, this);\n EventHandler.add(this.tooltipEle, 'mouseleave', this.tooltipMouseOut, this);\n }\n }\n if (this.mouseTrail && this.openDelay === 0) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', this.onMouseMove, this);\n }\n }\n };\n /**\n * Unbinding events from the element on widget destroy.\n *\n * @hidden\n *\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.unwireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_2 = triggerList; _i < triggerList_2.length; _i++) {\n var opensOn = triggerList_2[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.unwireFocusEvents();\n }\n if (opensOn === 'Click') {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.targetClick);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n if (this.touchModule) {\n this.touchModule.destroy();\n }\n EventHandler.remove(this.element, Browser.touchEndEvent, this.touchEndHandler);\n }\n else {\n EventHandler.remove(this.element, 'mouseover', this.targetHover);\n }\n }\n }\n document.removeEventListener('touchend', this.touchEndBound);\n this.touchEndBound = null;\n document.removeEventListener('wheel', this.scrollWheelBound);\n document.removeEventListener('scroll', this.scrollWheelBound);\n this.scrollWheelBound = null;\n window.removeEventListener('resize', this.windowResizeBound);\n this.windowResizeBound = null;\n document.removeEventListener('keydown', this.keyDownBound);\n this.keyDownBound = null;\n };\n Tooltip.prototype.unwireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n if (!isNullOrUndefined(this.targetsList) && this.targetsList.length > 0) {\n for (var _i = 0, targetList_3 = targetList; _i < targetList_3.length; _i++) {\n var target = targetList_3[_i];\n EventHandler.remove(target, 'focus', this.targetHover);\n }\n }\n else {\n EventHandler.remove(this.element, 'focusin', this.targetHover);\n }\n }\n else {\n EventHandler.remove(this.element, 'focusin', this.targetHover);\n }\n };\n Tooltip.prototype.unwireMouseEvents = function (target) {\n if (!this.isSticky) {\n var triggerList = this.getTriggerList(this.opensOn);\n for (var _i = 0, triggerList_3 = triggerList; _i < triggerList_3.length; _i++) {\n var opensOn = triggerList_3[_i];\n if (opensOn === 'Focus') {\n EventHandler.remove(target, 'blur', this.onMouseOut);\n EventHandler.remove(target, 'focusout', this.onMouseOut);\n }\n if (opensOn === 'Hover' && !Browser.isDevice) {\n EventHandler.remove(target, 'mouseleave', this.onMouseOut);\n }\n }\n if (this.closeDelay) {\n EventHandler.remove(target, 'mouseenter', this.tooltipHover);\n EventHandler.remove(target, 'mouseleave', this.tooltipMouseOut);\n }\n }\n if (this.mouseTrail) {\n EventHandler.remove(target, 'mousemove touchstart mouseenter', this.onMouseMove);\n }\n };\n Tooltip.prototype.findTarget = function () {\n var target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n return target;\n };\n /**\n * Core method to return the component name.\n *\n * @private\n *\n * @returns {string} - this method returns module name.\n */\n Tooltip.prototype.getModuleName = function () {\n return 'tooltip';\n };\n /**\n * Returns the properties to be maintained in the persisted state.\n *\n * @private\n *\n * @returns {string} - this method returns persisted data.\n */\n Tooltip.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Called internally, if any of the property value changed.\n *\n * @private\n *\n * @param {TooltipModel} newProp - this param gives new property values to the method\n * @param {TooltipModel} oldProp - this param gives old property values to the method\n * @returns {void}\n *\n */\n Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) {\n var targetElement = this.findTarget();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.width = this.tooltipEle.style.maxWidth = formatUnit(newProp.width);\n this.reposition(targetElement);\n }\n break;\n case 'height':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.height = formatUnit(newProp.height);\n this.reposition(targetElement);\n }\n break;\n case 'content':\n if (this.tooltipEle) {\n this.renderContent();\n }\n break;\n case 'opensOn':\n this.unwireEvents(oldProp.opensOn);\n this.wireEvents(newProp.opensOn);\n break;\n case 'position':\n this.formatPosition();\n if (this.tooltipEle && targetElement) {\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n if (arrowInnerELe) {\n arrowInnerELe.style.top = arrowInnerELe.style.left = null;\n }\n this.reposition(targetElement);\n }\n break;\n case 'tipPointerPosition':\n if (this.tooltipEle && targetElement) {\n this.reposition(targetElement);\n }\n break;\n case 'offsetX':\n if (this.tooltipEle) {\n var x = newProp.offsetX - oldProp.offsetX;\n this.tooltipEle.style.left = (parseInt(this.tooltipEle.style.left, 10) + (x)).toString() + 'px';\n }\n break;\n case 'offsetY':\n if (this.tooltipEle) {\n var y = newProp.offsetY - oldProp.offsetY;\n this.tooltipEle.style.top = (parseInt(this.tooltipEle.style.top, 10) + (y)).toString() + 'px';\n }\n break;\n case 'cssClass':\n if (this.tooltipEle) {\n if (oldProp.cssClass) {\n removeClass([this.tooltipEle], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.tooltipEle], newProp.cssClass.split(' '));\n }\n }\n break;\n case 'enableRtl':\n if (this.tooltipEle) {\n if (this.enableRtl) {\n addClass([this.tooltipEle], RTL);\n }\n else {\n removeClass([this.tooltipEle], RTL);\n }\n }\n break;\n case 'isSticky':\n if (this.tooltipEle && targetElement) {\n this.renderCloseIcon();\n this.reposition(targetElement);\n }\n break;\n case 'container':\n if (!isNullOrUndefined(this.containerElement)) {\n removeClass([this.containerElement], POPUP_CONTAINER);\n }\n this.container = newProp.container;\n if (this.tooltipEle && targetElement) {\n this.appendContainer(this);\n this.reposition(targetElement);\n }\n }\n }\n };\n /**\n * It is used to show the Tooltip on the specified target with specific animation settings.\n *\n * @param {HTMLElement} element - Target element where the Tooltip is to be displayed. (It is an optional parameter)\n * @param {TooltipAnimationSettings} animation - Sets the specific animation, while showing the Tooltip on the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.open = function (element, animation) {\n if (isNullOrUndefined(animation)) {\n animation = this.animation.open;\n }\n if (isNullOrUndefined(element)) {\n element = this.element;\n }\n if (element.style.display === 'none') {\n return;\n }\n this.showTooltip(element, animation);\n };\n /**\n * It is used to hide the Tooltip with specific animation effect.\n *\n * @param {TooltipAnimationSettings} animation - Sets the specific animation when hiding Tooltip from the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.close = function (animation) {\n if (!animation) {\n animation = this.animation.close;\n }\n this.hideTooltip(animation);\n };\n /**\n * It is used to refresh the Tooltip content and its position.\n *\n * @param {HTMLElement} target - Target element where the Tooltip content or position needs to be refreshed.\n * @returns {void}\n */\n Tooltip.prototype.refresh = function (target) {\n if (this.tooltipEle) {\n this.renderContent(target);\n }\n if (this.popupObj && target) {\n this.reposition(target);\n }\n if (!isNullOrUndefined(this.targetsList) && !isNullOrUndefined(this.target)) {\n var target_2 = selectAll(this.target, this.element);\n if (target_2.length !== this.targetsList.length) {\n this.unwireEvents(this.opensOn);\n this.wireEvents(this.opensOn);\n }\n }\n };\n /**\n *\n * It is used to destroy the Tooltip component.\n *\n * @method destroy\n * @returns {void}\n * @memberof Tooltip\n */\n Tooltip.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n collisionDestroy();\n removeClass([this.element], ROOT);\n this.unwireEvents(this.opensOn);\n this.unwireMouseEvents(this.element);\n this.tooltipEle = null;\n this.popupObj = null;\n var currentTarget = selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', this.element);\n for (var _i = 0, currentTarget_1 = currentTarget; _i < currentTarget_1.length; _i++) {\n var target = currentTarget_1[_i];\n this.restoreElement(target);\n }\n this.containerElement = null;\n this.tipClass = null;\n this.tooltipPositionX = null;\n this.tooltipPositionY = null;\n this.ctrlId = null;\n this.tooltipEventArgs = null;\n this.touchModule = null;\n this.mouseMoveEvent = null;\n this.mouseMoveTarget = null;\n this.containerElement = null;\n this.targetsList = null;\n };\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"content\", void 0);\n __decorate([\n Property('body')\n ], Tooltip.prototype, \"container\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"target\", void 0);\n __decorate([\n Property('TopCenter')\n ], Tooltip.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetY\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableHtmlParse\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"windowCollision\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"tipPointerPosition\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"opensOn\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"mouseTrail\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isSticky\", void 0);\n __decorate([\n Complex({}, Animation)\n ], Tooltip.prototype, \"animation\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"openDelay\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"closeDelay\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property('')\n ], Tooltip.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeRender\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeCollision\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"destroyed\", void 0);\n Tooltip = __decorate([\n NotifyPropertyChanges\n ], Tooltip);\n return Tooltip;\n}(Component));\nexport { Tooltip };\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","var arrayEach = require('./_arrayEach'),\n baseCreate = require('./_baseCreate'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee'),\n getPrototype = require('./_getPrototype'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isTypedArray = require('./isTypedArray');\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = baseIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n}\n\nmodule.exports = transform;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\nfunction baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n}\n\nmodule.exports = baseToNumber;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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\nmodule.exports = cloneTypedArray;\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","module.exports = require('./lib/axios');","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.find` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n find: function find(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var getMapData = require('./_getMapData');\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 var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\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\nmodule.exports = cloneRegExp;\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `HYDRATE_EVENTS`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect2) {\n const { deps } = effect2;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect2);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { effect: activeEffect, target, type, key } : void 0;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (!!(process.env.NODE_ENV !== \"production\") && activeEffect.onTrack) {\n activeEffect.onTrack(\n extend(\n {\n effect: activeEffect\n },\n debuggerEventExtraInfo\n )\n );\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { target, type, key, newValue, oldValue, oldTarget } : void 0;\n if (deps.length === 1) {\n if (deps[0]) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(deps[0], eventInfo);\n } else {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(createDep(effects), eventInfo);\n } else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect2 of effects) {\n if (effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n for (const effect2 of effects) {\n if (!effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect2, debuggerEventExtraInfo) {\n if (effect2 !== activeEffect || effect2.allowRecurse) {\n if (!!(process.env.NODE_ENV !== \"production\") && effect2.onTrigger) {\n effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n if (effect2.scheduler) {\n effect2.scheduler();\n } else {\n effect2.run();\n }\n }\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _shallow = false) {\n this._isReadonly = _isReadonly;\n this._shallow = _shallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, shallow = this._shallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(false, shallow);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!this._shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(true, shallow);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n trackEffects(ref2.dep || (ref2.dep = createDep()), {\n target: ref2,\n type: \"get\",\n key: \"value\"\n });\n } else {\n trackEffects(ref2.dep || (ref2.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(dep, {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n });\n } else {\n triggerEffects(dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst tick = /* @__PURE__ */ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = void 0;\n this._dirty = true;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n } else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(\n true\n /* computedTrigger */\n );\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return this._value = this.effect.run();\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n return toRaw(this)._get();\n }\n}\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `HYDRATE_EVENTS`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(\n render.call(\n proxyToUse,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, void 0];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n /* do not include inferred name to avoid breaking existing code */\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else {\n suspense.pendingId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container2, anchor2, 0);\n queuePostFlushCb(effects);\n }\n };\n }\n let { anchor: anchor2 } = suspense;\n if (activeBranch) {\n anchor2 = next(activeBranch);\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor2, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n isSVG2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n isSVG,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n document.createElement(\"div\"),\n null,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n /* hydrating */\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = vnode.el = branch.el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n var _a;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n /* do not throw in dev if user provided error component */\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n isSVG,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, \"\"));\n warn(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn(`Cannot mutate \n * ```\n */\nvar Toast = /** @class */ (function (_super) {\n __extends(Toast, _super);\n /**\n * Initializes a new instance of the Toast class.\n *\n * @param {ToastModel} options - Specifies Toast model properties as options.\n * @param {HTMLElement} element - Specifies the element that is rendered as a Toast.\n */\n function Toast(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.toastCollection = [];\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets the Component module name.\n *\n * @returns {string} - returns the string\n * @private\n */\n Toast.prototype.getModuleName = function () {\n return 'toast';\n };\n /**\n * Gets the persisted state properties of the Component.\n *\n * @returns {string} - returns the string\n */\n Toast.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\n *\n * @returns {void}\n */\n Toast.prototype.destroy = function () {\n this.hide('All');\n this.element.classList.remove(CONTAINER);\n setStyleAttribute(this.element, { 'position': '', 'z-index': '' });\n if (!isNOU(this.refElement) && !isNOU(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore(this.element, this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (!this.isBlazorServer()) {\n _super.prototype.destroy.call(this);\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.preRender = function () {\n //There is no event handler\n this.isDevice = Browser.isDevice;\n if (this.width === '300px') {\n this.width = (this.isDevice && screen.width < 768) ? '100%' : '300px';\n }\n if (isNOU(this.target)) {\n this.target = document.body;\n }\n if (this.enableRtl && !this.isBlazorServer()) {\n this.element.classList.add(RTL);\n }\n };\n /**\n * Initialize the component rendering\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.render = function () {\n this.progressObj = [];\n this.intervalId = [];\n this.contentTemplate = null;\n this.toastTemplate = null;\n this.renderComplete();\n this.initRenderClass = this.element.className;\n };\n /**\n * To show Toast element on a document with the relative position.\n *\n * @param {ToastModel} toastObj - To show Toast element on screen.\n * @returns {void}\n\n */\n Toast.prototype.show = function (toastObj) {\n var collectionObj;\n if (!isNOU(toastObj)) {\n this.templateChanges(toastObj);\n collectionObj = JSON.parse(JSON.stringify(toastObj));\n extend(this, this, toastObj);\n }\n if (isNOU(this.toastContainer)) {\n this.toastContainer = this.getContainer();\n var target = typeof (this.target) === 'string' ? document.querySelector(this.target) :\n (typeof (this.target) === 'object' ? this.target : document.body);\n if (isNOU(target)) {\n return;\n }\n if (target.tagName === 'BODY') {\n this.toastContainer.style.position = 'fixed';\n }\n else {\n this.toastContainer.style.position = 'absolute';\n target.style.position = 'relative';\n }\n this.setPositioning(this.position);\n target.appendChild(this.toastContainer);\n }\n if (this.isBlazorServer() && this.element.classList.contains('e-control')) {\n this.isToastModel(toastObj);\n return;\n }\n this.toastEle = this.createElement('div', { className: ROOT, id: getUniqueID('toast') });\n this.setWidthHeight();\n this.setCSSClass(this.cssClass);\n if (isNOU(this.template) || this.template === '') {\n this.personalizeToast();\n }\n else {\n this.templateRendering();\n }\n this.setProgress();\n this.setCloseButton();\n this.setAria();\n this.appendToTarget(toastObj);\n if (this.isDevice && screen.width < 768) {\n new Touch(this.toastEle, { swipe: this.swipeHandler.bind(this) });\n }\n if (!isNOU(collectionObj)) {\n extend(collectionObj, { element: [this.toastEle] }, true);\n this.toastCollection.push(collectionObj);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * @param {string} id - specifies the id\n * @param {ToastModel} toastObj - specifies the model\n * @returns {void}\n * @hidden\n\n * This method applicable for blazor alone.\n */\n Toast.prototype.showToast = function (id, toastObj) {\n this.toastEle = this.element.querySelector('#' + id);\n this.show(toastObj);\n };\n Toast.prototype.isToastModel = function (toastObj) {\n this.toastContainer = this.element;\n this.setPositioning(this.position);\n var proxy = null || this;\n if (!isNOU(proxy.element.lastElementChild)) {\n this.setProgress();\n }\n this.setAria();\n this.appendToTarget(toastObj);\n };\n Toast.prototype.swipeHandler = function (e) {\n var toastEle = closest(e.originalEvent.target, '.' + ROOT + ':not(.' + CONTAINER + ')');\n var hideAnimation = this.animation.hide.effect;\n if (!isNOU(toastEle)) {\n if (e.swipeDirection === 'Right') {\n this.animation.hide.effect = 'SlideRightOut';\n this.hideToast('swipe', toastEle);\n }\n else if (e.swipeDirection === 'Left') {\n this.animation.hide.effect = 'SlideLeftOut';\n this.hideToast('swipe', toastEle);\n }\n this.animation.hide.effect = hideAnimation;\n }\n };\n Toast.prototype.templateChanges = function (toastObj) {\n if (!isUndefined(toastObj.content) && !isNOU(this.contentTemplate) && this.content !== toastObj.content) {\n this.clearContentTemplate();\n }\n if (!isUndefined(toastObj.template) && !isNOU(this.toastTemplate) && this.template !== toastObj.template) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.setCSSClass = function (cssClass) {\n if (cssClass) {\n var split = cssClass.indexOf(',') !== -1 ? ',' : ' ';\n classList(this.toastEle, cssClass.split(split), []);\n if (this.toastContainer) {\n classList(this.toastContainer, cssClass.split(split), []);\n }\n }\n };\n Toast.prototype.setWidthHeight = function () {\n if (this.width === '300px') {\n this.toastEle.style.width = formatUnit(this.width);\n }\n else if (this.width === '100%') {\n this.toastContainer.classList.add(WIDTHFULL);\n }\n else {\n this.toastEle.style.width = formatUnit(this.width);\n this.toastContainer.classList.remove(WIDTHFULL);\n }\n this.toastEle.style.height = formatUnit(this.height);\n };\n Toast.prototype.templateRendering = function () {\n this.fetchEle(this.toastEle, this.template, 'template');\n };\n /**\n * @param {string} value - specifies the string value.\n * @returns {string} - returns the string\n * @hidden\n */\n Toast.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNOU(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n /**\n * To Hide Toast element on a document.\n * To Hide all toast element when passing 'All'.\n *\n * @param {HTMLElement} element - To Hide Toast element on screen.\n * @returns {void}\n */\n Toast.prototype.hide = function (element) {\n this.hideToast('', element);\n };\n Toast.prototype.hideToast = function (interactionType, element) {\n if (isNOU(this.toastContainer) || this.toastContainer.childElementCount === 0) {\n return;\n }\n if (typeof element === 'string' && element === 'All') {\n for (var i = 0; i < this.toastContainer.childElementCount; i++) {\n this.destroyToast(this.toastContainer.children[i], interactionType);\n }\n return;\n }\n if (isNOU(element)) {\n element = (this.newestOnTop ? this.toastContainer.lastElementChild : this.toastContainer.firstElementChild);\n }\n this.destroyToast(element, interactionType);\n };\n Toast.prototype.fetchEle = function (ele, value, prob) {\n value = typeof (value) === 'string' ? this.sanitizeHelper(value) : value;\n var templateFn;\n var tempVar;\n var tmpArray;\n var templateProps;\n if (ele.classList.contains(TITLE)) {\n templateProps = this.element.id + 'title';\n }\n else if (ele.classList.contains(CONTENT)) {\n templateProps = this.element.id + 'content';\n }\n else {\n templateProps = this.element.id + 'template';\n }\n if (prob === 'content') {\n tempVar = this.contentTemplate;\n }\n else {\n tempVar = this.toastTemplate;\n }\n if (!isNOU(tempVar)) {\n ele.appendChild(tempVar.cloneNode(true));\n return ele;\n }\n try {\n if (typeof value !== 'function' && document.querySelectorAll(value).length > 0) {\n var elem = null;\n if (prob !== 'title') {\n elem = document.querySelector(value);\n ele.appendChild(elem);\n elem.style.display = '';\n }\n var clo = isNOU(elem) ? tempVar : elem.cloneNode(true);\n if (prob === 'content') {\n this.contentTemplate = clo;\n }\n else {\n this.toastTemplate = clo;\n }\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n templateFn = typeof value == 'object' ? templateCompiler(value) : templateCompiler(initializeCSPTemplate(function () { return value; }));\n }\n if (!isNOU(templateFn)) {\n if (!this.isBlazorServer()) {\n tmpArray = templateFn({}, this, prob, null, true);\n }\n else {\n var isString = true;\n tmpArray = templateFn({}, this, prob, templateProps, isString);\n }\n }\n if (!isNOU(tmpArray) && tmpArray.length > 0 && !(isNOU(tmpArray[0].tagName) && tmpArray.length === 1)) {\n [].slice.call(tmpArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (typeof value !== 'function' && ele.childElementCount === 0) {\n ele.innerHTML = value;\n }\n return ele;\n };\n Toast.prototype.clearProgress = function (intervalId) {\n if (!isNOU(this.intervalId[intervalId])) {\n clearInterval(this.intervalId[intervalId]);\n delete this.intervalId[intervalId];\n }\n if (!isNOU(this.progressObj[intervalId])) {\n clearInterval(this.progressObj[intervalId].intervalId);\n delete this.progressObj[intervalId];\n }\n };\n Toast.prototype.removeToastContainer = function (isClosed) {\n if (isClosed && this.toastContainer.classList.contains('e-toast-util')) {\n detach(this.toastContainer);\n }\n };\n Toast.prototype.clearContainerPos = function (isClosed) {\n var _this = this;\n if (this.isBlazorServer()) {\n this.toastContainer = null;\n return;\n }\n if (this.customPosition) {\n setStyleAttribute(this.toastContainer, { 'left': '', 'top': '' });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n this.customPosition = false;\n }\n else {\n [ROOT + '-top-left',\n ROOT + '-top-right',\n ROOT + '-bottom-left',\n ROOT + '-bottom-right',\n ROOT + '-bottom-center',\n ROOT + '-top-center',\n ROOT + '-full-width'].forEach(function (pos) {\n if (!isNOU(_this.toastContainer) && _this.toastContainer.classList.contains(pos)) {\n _this.toastContainer.classList.remove(pos);\n }\n });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n }\n if (!isNOU(this.contentTemplate)) {\n this.clearContentTemplate();\n }\n if (!isNOU(this.toastTemplate)) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.clearContentTemplate = function () {\n this.contentTemplate.style.display = 'none';\n document.body.appendChild(this.contentTemplate);\n this.contentTemplate = null;\n };\n Toast.prototype.clearToastTemplate = function () {\n this.toastTemplate.style.display = 'none';\n document.body.appendChild(this.toastTemplate);\n this.toastTemplate = null;\n };\n Toast.prototype.isBlazorServer = function () {\n return (isBlazor() && this.isServerRendered);\n };\n Toast.prototype.destroyToast = function (toastEle, interactionType) {\n var _this = this;\n var toastObj;\n for (var i = 0; i < this.toastCollection.length; i++) {\n if (this.toastCollection[i].element[0] === toastEle) {\n toastObj = this.toastCollection[i];\n this.toastCollection.splice(i, 1);\n }\n }\n var toastBeforeClose = {\n options: this,\n cancel: false,\n type: interactionType,\n element: toastEle,\n toastContainer: this.toastContainer\n };\n var hideAnimate = this.animation.hide;\n var animate = {\n duration: hideAnimate.duration, name: (hideAnimate.effect === 'None' && animationMode === 'Enable') ? 'FadeOut' : hideAnimate.effect, timingFunction: hideAnimate.easing\n };\n var intervalId = parseInt(toastEle.id.split('toast_')[1], 10);\n var toastClose = this.isBlazorServer() ? {\n options: toastObj,\n toastContainer: this.toastContainer\n } : {\n options: toastObj,\n toastContainer: this.toastContainer,\n toastObj: this\n };\n this.trigger('beforeClose', toastBeforeClose, function (toastBeforeCloseArgs) {\n if (!toastBeforeCloseArgs.cancel) {\n if (!isNOU(_this.progressObj[intervalId]) && !isNOU(toastEle.querySelector('.' + PROGRESS))) {\n _this.progressObj[intervalId].progressEle.style.width = '0%';\n }\n animate.end = function () {\n _this.clearProgress(intervalId);\n if (!_this.isBlazorServer() || isNOU(toastObj)) {\n detach(toastEle);\n }\n _this.trigger('close', toastClose);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos(true);\n }\n hideAnimate = null;\n animate = null;\n };\n new Animation(animate).animate(toastEle);\n }\n });\n };\n Toast.prototype.personalizeToast = function () {\n this.setIcon();\n this.setTitle();\n this.setContent();\n this.actionButtons();\n };\n Toast.prototype.setAria = function () {\n attributes(this.toastEle, { 'role': 'alert' });\n };\n Toast.prototype.setPositioning = function (pos) {\n if (this.isBlazorServer()) {\n return;\n }\n if (!isNaN(parseFloat(pos.X)) || !isNaN(parseFloat(pos.Y))) {\n this.customPosition = true;\n setStyleAttribute(this.toastContainer, { 'left': formatUnit(pos.X), 'top': formatUnit(pos.Y) });\n }\n else {\n this.toastContainer.classList.add(ROOT + '-' + pos.Y.toString().toLowerCase() + '-' + pos.X.toString().toLowerCase());\n }\n };\n Toast.prototype.setCloseButton = function () {\n if (!this.showCloseButton) {\n return;\n }\n var localeText = { close: 'Close' };\n this.l10n = new L10n('toast', localeText, this.locale);\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n var closeBtn = this.createElement('div', { className: CLOSEBTN + ' e-icons ', attrs: { tabindex: '0', 'aria-label': closeIconTitle, 'role': 'button' } });\n this.toastEle.classList.add('e-toast-header-close-icon');\n this.toastEle.appendChild(closeBtn);\n };\n Toast.prototype.setProgress = function () {\n if (this.timeOut > 0) {\n var id = parseInt(this.toastEle.id.split('toast_')[1], 10);\n this.intervalId[id] = window.setTimeout(this.destroyToast.bind(this, this.toastEle), this.timeOut);\n this.progressObj[id] = { hideEta: null, intervalId: null, maxHideTime: null,\n element: null, timeOutId: null, progressEle: null };\n this.progressObj[id].maxHideTime = parseFloat(this.timeOut + '');\n this.progressObj[id].hideEta = new Date().getTime() + this.progressObj[id].maxHideTime;\n this.progressObj[id].element = this.toastEle;\n if (this.extendedTimeout > 0) {\n EventHandler.add(this.toastEle, 'mouseover', this.toastHoverAction.bind(this, id));\n EventHandler.add(this.toastEle, 'mouseleave', this.delayedToastProgress.bind(this, id));\n this.progressObj[id].timeOutId = this.intervalId[id];\n }\n if (this.showProgressBar) {\n this.progressBarEle = this.createElement('div', { className: PROGRESS });\n this.toastEle.insertBefore(this.progressBarEle, this.toastEle.children[0]);\n this.progressObj[id].intervalId =\n setInterval(this.updateProgressBar.bind(this, this.progressObj[id]), 10);\n this.progressObj[id].progressEle = this.progressBarEle;\n }\n }\n };\n Toast.prototype.toastHoverAction = function (id) {\n clearTimeout(this.progressObj[id].timeOutId);\n clearInterval(this.progressObj[id].intervalId);\n this.progressObj[id].hideEta = 0;\n var toastEle = this.progressObj[id].element;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n this.progressObj[id].progressEle.style.width = '0%';\n }\n };\n Toast.prototype.delayedToastProgress = function (id) {\n var progress = this.progressObj[id];\n if (!isNOU(progress)) {\n var toastEle = progress.element;\n progress.timeOutId = window.setTimeout(this.destroyToast.bind(this, toastEle), this.extendedTimeout);\n progress.maxHideTime = parseFloat(this.extendedTimeout + '');\n progress.hideEta = new Date().getTime() + progress.maxHideTime;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n progress.intervalId = setInterval(this.updateProgressBar.bind(this, progress), 10);\n }\n }\n };\n Toast.prototype.updateProgressBar = function (progressObj) {\n var percentage = ((progressObj.hideEta - (new Date().getTime())) / progressObj.maxHideTime) * 100;\n percentage = this.progressDirection === 'Ltr' ? 100 - percentage : percentage;\n progressObj.progressEle.style.width = percentage + '%';\n };\n Toast.prototype.setIcon = function () {\n if (isNOU(this.icon) || this.icon.length === 0) {\n return;\n }\n var iconEle = this.createElement('div', { className: ICON + ' e-icons ' + this.icon });\n this.toastEle.classList.add('e-toast-header-icon');\n this.toastEle.appendChild(iconEle);\n };\n Toast.prototype.setTitle = function () {\n if (isNOU(this.title)) {\n return;\n }\n var titleEle = this.createElement('div', { className: TITLE });\n titleEle = this.fetchEle(titleEle, this.title, 'title');\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(titleEle);\n this.toastEle.appendChild(msgContainer);\n };\n Toast.prototype.setContent = function () {\n var contentEle = this.createElement('div', { className: CONTENT });\n var ele = this.element;\n if (isNOU(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s/g, '') !== '';\n if ((ele.children.length > 0 || isContent) && !(ele.firstElementChild && ele.firstElementChild.classList.contains(ROOT))) {\n this.innerEle = document.createDocumentFragment();\n var tempEle_1 = this.createElement('div');\n while (ele.childNodes.length !== 0) {\n this.innerEle.appendChild(this.element.childNodes[0]);\n }\n contentEle.appendChild(this.innerEle);\n [].slice.call(contentEle.children).forEach(function (ele) {\n tempEle_1.appendChild(ele.cloneNode(true));\n });\n this.content = tempEle_1;\n this.appendMessageContainer(contentEle);\n }\n }\n else {\n if (typeof (this.content) === 'object' && !isNOU(this.content.tagName)) {\n contentEle.appendChild(this.content);\n this.content = this.content.cloneNode(true);\n this.appendMessageContainer(contentEle);\n }\n else {\n contentEle = this.fetchEle(contentEle, this.content, 'content');\n this.appendMessageContainer(contentEle);\n }\n }\n };\n Toast.prototype.appendMessageContainer = function (element) {\n if (this.toastEle.querySelectorAll('.' + MESSAGE).length > 0) {\n this.toastEle.querySelector('.' + MESSAGE).appendChild(element);\n }\n else {\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(element);\n this.toastEle.appendChild(msgContainer);\n }\n };\n Toast.prototype.actionButtons = function () {\n var _this = this;\n var actionBtnContainer = this.createElement('div', { className: ACTIOBUTTONS });\n [].slice.call(this.buttons).forEach(function (actionBtn) {\n if (isNOU(actionBtn.model)) {\n return;\n }\n var btnDom = _this.createElement('button');\n btnDom.setAttribute('type', 'button');\n if (isNOU(actionBtn.model.cssClass) || actionBtn.model.cssClass.length === 0) {\n actionBtn.model.cssClass = 'e-primary' + ' ' + _this.cssClass;\n }\n btnDom.classList.add('e-small');\n new Button(actionBtn.model, btnDom);\n if (!isNOU(actionBtn.click) && typeof (actionBtn.click) === 'function') {\n EventHandler.add(btnDom, 'click', actionBtn.click);\n }\n actionBtnContainer.appendChild(btnDom);\n });\n if (actionBtnContainer.childElementCount > 0) {\n this.appendMessageContainer(actionBtnContainer);\n }\n };\n Toast.prototype.appendToTarget = function (toastObj) {\n var _this = this;\n var toastBeforeOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle,\n cancel: false\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle,\n cancel: false\n };\n this.trigger('beforeOpen', toastBeforeOpen, function (toastBeforeOpenArgs) {\n if (!toastBeforeOpenArgs.cancel) {\n if (!_this.isBlazorServer()) {\n _this.toastEle.style.display = 'none';\n }\n if (_this.newestOnTop && _this.toastContainer.childElementCount !== 0) {\n _this.toastContainer.insertBefore(_this.toastEle, _this.toastContainer.children[0]);\n }\n else if (!_this.isBlazorServer()) {\n _this.toastContainer.appendChild(_this.toastEle);\n }\n removeClass([_this.toastEle], TOAST_BLAZOR_HIDDEN);\n EventHandler.add(_this.toastEle, 'click', _this.clickHandler, _this);\n EventHandler.add(_this.toastEle, 'keydown', _this.keyDownHandler, _this);\n _this.toastContainer.style.zIndex = getZindexPartial(_this.toastContainer) + '';\n _this.displayToast(_this.toastEle, toastObj);\n }\n else if (_this.isBlazorServer()) {\n var intervalId = parseInt(_this.toastEle.id.split('toast_')[1], 10);\n _this.clearProgress(intervalId);\n detach(_this.toastEle);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos();\n }\n }\n });\n };\n Toast.prototype.clickHandler = function (e) {\n var _this = this;\n if (!this.isBlazorServer()) {\n e.stopPropagation();\n }\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n var clickArgs = this.isBlazorServer() ? {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e\n } : {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e, toastObj: this\n };\n var isCloseIcon = target.classList.contains(CLOSEBTN);\n this.trigger('click', clickArgs, function (toastClickArgs) {\n if ((isCloseIcon && !toastClickArgs.cancel) || toastClickArgs.clickToClose) {\n _this.destroyToast(toastEle, 'click');\n }\n });\n };\n Toast.prototype.keyDownHandler = function (e) {\n if (e.target.classList.contains(CLOSEBTN) &&\n (e.keyCode === 13 || e.keyCode === 32)) {\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n this.destroyToast(toastEle, 'key');\n }\n };\n Toast.prototype.displayToast = function (toastEle, toastObj) {\n var _this = this;\n var showAnimate = this.animation.show;\n var animate = {\n duration: showAnimate.duration, name: (showAnimate.effect === 'None' && animationMode === 'Enable') ? 'FadeIn' : showAnimate.effect, timingFunction: showAnimate.easing\n };\n var toastOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle\n };\n animate.begin = function () {\n toastEle.style.display = '';\n };\n animate.end = function () {\n _this.trigger('open', toastOpen);\n };\n new Animation(animate).animate(toastEle);\n };\n Toast.prototype.getContainer = function () {\n this.element.classList.add(CONTAINER);\n return this.element;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ToastModel} newProp - specifies the new property\n * @param {ToastModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n Toast.prototype.onPropertyChanged = function (newProp, oldProp) {\n var container = this.element;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enableRtl':\n if (newProp.enableRtl) {\n container.classList.add(RTL);\n }\n else {\n container.classList.remove(RTL);\n }\n break;\n }\n }\n };\n __decorate([\n Property('300px')\n ], Toast.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Toast.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"title\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"icon\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"newestOnTop\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showCloseButton\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showProgressBar\", void 0);\n __decorate([\n Property(5000)\n ], Toast.prototype, \"timeOut\", void 0);\n __decorate([\n Property('Rtl')\n ], Toast.prototype, \"progressDirection\", void 0);\n __decorate([\n Property(1000)\n ], Toast.prototype, \"extendedTimeout\", void 0);\n __decorate([\n Complex({}, ToastAnimationSettings)\n ], Toast.prototype, \"animation\", void 0);\n __decorate([\n Complex({}, ToastPosition)\n ], Toast.prototype, \"position\", void 0);\n __decorate([\n Collection([{}], ButtonModelProps)\n ], Toast.prototype, \"buttons\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"click\", void 0);\n Toast = __decorate([\n NotifyPropertyChanges\n ], Toast);\n return Toast;\n}(Component));\nexport { Toast };\n/**\n * Base for creating Toast through utility method.\n */\n// eslint-disable-next-line\nexport var ToastUtility;\n(function (ToastUtility) {\n /**\n * To display a simple toast using the 'ToastUtility' with 'ToastModal' or\n * as string with toast content, type, timeOut.\n * ```\n * Eg : ToastUtility.show('Toast Content Message', 'Information', 7000);\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param { ToastModel | string } content - Specifies the toast modal or the content of the Toast.\n * @param {string} type - Specifies the type of toast.\n * @param { number } timeOut - Specifies the timeOut of the toast.\n * @returns {Toast} - returns the element\n */\n function show(content, type, timeOut) {\n var toastContainerElement;\n if (document.querySelector('.' + CONTAINER)) {\n toastContainerElement = document.querySelector('.' + CONTAINER);\n }\n else {\n toastContainerElement = createElement('div', { 'className': ROOT + ' ' + CONTAINER + ' e-toast-util' });\n document.body.appendChild(toastContainerElement);\n }\n var untilToastsModel;\n if (typeof (content) === 'string') {\n var cssClass = void 0;\n var icon = void 0;\n if (!isNOU(type)) {\n switch (type) {\n case 'Warning':\n cssClass = 'e-toast-warning';\n icon = 'e-toast-warning-icon';\n break;\n case 'Success':\n cssClass = 'e-toast-success';\n icon = 'e-toast-success-icon';\n break;\n case 'Error':\n cssClass = 'e-toast-danger';\n icon = 'e-toast-error-icon';\n break;\n case 'Information':\n cssClass = 'e-toast-info';\n icon = 'e-toast-info-icon';\n break;\n }\n }\n else {\n cssClass = '';\n icon = '';\n }\n untilToastsModel = {\n content: content,\n cssClass: cssClass,\n icon: icon,\n timeOut: !isNOU(timeOut) ? timeOut : 5000\n };\n }\n else {\n untilToastsModel = content;\n }\n var toastObj = new Toast(untilToastsModel);\n toastObj.appendTo(toastContainerElement);\n toastObj.show();\n return toastObj;\n }\n ToastUtility.show = show;\n})(ToastUtility || (ToastUtility = {}));\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n isSubsetOf: isSubsetOf\n});\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\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 * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n"],"names":[],"sourceRoot":""}